<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:JMM="http://JMM/_11_5_1ab00d4_1164055757453_405595_1" xmlns:MagicDrawProfile="http://UML_Standard_Profile/MagicDraw_Profile/_be00301_1073394351331_445580_2" xmlns:Standard="http://www.eclipse.org/uml2/schemas/Standard/1" xmlns:TestProfile="http://TestProfile/_18_5_3_1ea00f4_1534265329085_427483_8828" xmlns:UMLProfileforJava="http://UML_Profile_for_Java/rimvydas_1048688023274_104450_1422" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xsi:schemaLocation="http://JMM/_11_5_1ab00d4_1164055757453_405595_1 JMM.profile.uml#_a6tl2jA_Ee2z7qeqSnoW6A http://UML_Standard_Profile/MagicDraw_Profile/_be00301_1073394351331_445580_2 UML_Standard_Profile.MagicDraw_Profile.profile.uml#_a6twLjA_Ee2z7qeqSnoW6A http://www.eclipse.org/uml2/schemas/Standard/1 pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w http://TestProfile/_18_5_3_1ea00f4_1534265329085_427483_8828 TestProfile.profile.uml#_a6ttfjA_Ee2z7qeqSnoW6A http://UML_Profile_for_Java/rimvydas_1048688023274_104450_1422 UML_Profile_for_Java.profile.uml#_a6t6IzA_Ee2z7qeqSnoW6A">
  <uml:Model xmi:id="eee_1045467100313_135436_1" name="Model" viewpoint="">
    <ownedComment xmi:id="_12_5_1ea00f4_1192205656829_316255_98" body="Author:TLS.&#xA;Created:10/12/07 6:14 PM.&#xA;Title:.&#xA;Comment:.&#xA;" annotatedElement="eee_1045467100313_135436_1"/>
    <packageImport xmi:id="_0primitiveTypesModel">
      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
    </packageImport>
    <packageImport xmi:id="_0javaPrimitiveTypesModel">
      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#_0"/>
    </packageImport>
    <packagedElement xmi:type="uml:Package" xmi:id="_16_8_2aa0154_1279551098762_130361_1794" name="Actors">
      <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1279551437986_406942_1894" name="" supplier="_16_0_1_2aa0154_1254980545062_816099_585" client="_16_8_2aa0154_1279551114886_632218_1795"/>
      <packagedElement xmi:type="uml:Package" xmi:id="_16_8_195e0323_1317625222973_686781_2265" name="Use Cases">
        <packagedElement xmi:type="uml:UseCase" xmi:id="_16_8_195e0323_1317625281987_886500_2269" name="Create employee" subject="_16_8_2aa0154_1279551114886_632218_1795"/>
        <packagedElement xmi:type="uml:UseCase" xmi:id="_16_8_195e0323_1317625240693_706018_2266" name="Search customer"/>
        <packagedElement xmi:type="uml:UseCase" xmi:id="_16_8_195e0323_1317625267516_144380_2268" name="Perform booking"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317625349889_995479_2397" name="" memberEnd="_16_8_195e0323_1317625349889_453036_2398 _16_8_195e0323_1317625349890_405941_2399" navigableOwnedEnd="_16_8_195e0323_1317625349889_453036_2398 _16_8_195e0323_1317625349890_405941_2399">
        <ownedEnd xmi:id="_16_8_195e0323_1317625349889_453036_2398" name="" visibility="private" type="_16_8_195e0323_1317625281987_886500_2269" association="_16_8_195e0323_1317625349889_995479_2397"/>
        <ownedEnd xmi:id="_16_8_195e0323_1317625349890_405941_2399" name="" visibility="private" type="_16_8_2aa0154_1279551133380_965425_1796" association="_16_8_195e0323_1317625349889_995479_2397"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317625339726_987138_2358" name="" memberEnd="_16_8_195e0323_1317625339726_807696_2359 _16_8_195e0323_1317625339727_523841_2360" navigableOwnedEnd="_16_8_195e0323_1317625339726_807696_2359 _16_8_195e0323_1317625339727_523841_2360">
        <ownedEnd xmi:id="_16_8_195e0323_1317625339726_807696_2359" name="" visibility="private" type="_16_8_195e0323_1317625240693_706018_2266" association="_16_8_195e0323_1317625339726_987138_2358"/>
        <ownedEnd xmi:id="_16_8_195e0323_1317625339727_523841_2360" name="" visibility="private" type="_16_8_2aa0154_1279551114886_632218_1795" association="_16_8_195e0323_1317625339726_987138_2358"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_248d03f8_1341919301002_500866_3267" name="" supplier="_16_8_1c200dd_1278506850265_501599_1782" client="_16_8_2aa0154_1279551114886_632218_1795"/>
      <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1279551482578_556676_1897" name="" supplier="_12_5_2aa0154_1232316618430_150345_1049" client="_16_8_2aa0154_1279551133380_965425_1796"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317625343787_96433_2371" name="" memberEnd="_16_8_195e0323_1317625343787_758024_2372 _16_8_195e0323_1317625343787_847955_2373" navigableOwnedEnd="_16_8_195e0323_1317625343787_758024_2372 _16_8_195e0323_1317625343787_847955_2373">
        <ownedEnd xmi:id="_16_8_195e0323_1317625343787_758024_2372" name="" visibility="private" type="_16_8_195e0323_1317625267516_144380_2268" association="_16_8_195e0323_1317625343787_96433_2371"/>
        <ownedEnd xmi:id="_16_8_195e0323_1317625343787_847955_2373" name="" visibility="private" type="_16_8_2aa0154_1279551114886_632218_1795" association="_16_8_195e0323_1317625343787_96433_2371"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1279551414410_955952_1891" name="" supplier="_12_5_1ea00f4_1194617669684_839205_925" client="_16_8_2aa0154_1279551133380_965425_1796"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317625353119_318603_2410" name="" memberEnd="_16_8_195e0323_1317625353120_289703_2411 _16_8_195e0323_1317625353120_723824_2412" navigableOwnedEnd="_16_8_195e0323_1317625353120_289703_2411 _16_8_195e0323_1317625353120_723824_2412">
        <ownedEnd xmi:id="_16_8_195e0323_1317625353120_289703_2411" name="" visibility="private" type="_16_8_195e0323_1317625267516_144380_2268" association="_16_8_195e0323_1317625353119_318603_2410"/>
        <ownedEnd xmi:id="_16_8_195e0323_1317625353120_723824_2412" name="" visibility="private" type="_16_8_2aa0154_1279551133380_965425_1796" association="_16_8_195e0323_1317625353119_318603_2410"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1279551533512_163443_1900" name="" supplier="_12_5_2aa0154_1204197679281_377321_1362" client="_16_8_2aa0154_1279551114886_632218_1795"/>
      <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317625346773_554130_2384" name="" memberEnd="_16_8_195e0323_1317625346773_511530_2385 _16_8_195e0323_1317625346774_935650_2386" navigableOwnedEnd="_16_8_195e0323_1317625346773_511530_2385 _16_8_195e0323_1317625346774_935650_2386">
        <ownedEnd xmi:id="_16_8_195e0323_1317625346773_511530_2385" name="" visibility="private" type="_16_8_195e0323_1317625240693_706018_2266" association="_16_8_195e0323_1317625346773_554130_2384"/>
        <ownedEnd xmi:id="_16_8_195e0323_1317625346774_935650_2386" name="" visibility="private" type="_16_8_2aa0154_1279551133380_965425_1796" association="_16_8_195e0323_1317625346773_554130_2384"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Actor" xmi:id="_16_8_2aa0154_1279551133380_965425_1796" name="Advanced User" clientDependency="_16_8_2aa0154_1279551482578_556676_1897 _16_8_2aa0154_1279551414410_955952_1891"/>
      <packagedElement xmi:type="uml:Actor" xmi:id="_16_8_2aa0154_1279551114886_632218_1795" name="Standard User" clientDependency="_16_8_248d03f8_1341919301002_500866_3267 _16_8_2aa0154_1279551437986_406942_1894 _16_8_2aa0154_1279551533512_163443_1900" useCase="_16_8_195e0323_1317625281987_886500_2269"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1192205801964_369084_104" name="com">
      <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1192205808654_322877_105" name="anaptecs">
        <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1192205815407_743919_106" name="jeaf">
          <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1192205859386_925807_107" name="junit">
            <packagedElement xmi:type="uml:Package" xmi:id="_16_8_248d03f8_1345005868635_785076_2156" name="jpa">
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_243f03e0_1345188145680_9449_2116" name="AdminService"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_248d03f8_1345046909198_942683_2970" name="CustomerQueryBuilder">
                <ownedOperation xmi:id="_16_8_248d03f8_1345046942917_754946_2988" name="createCompanyBOQueryString" visibility="public">
                  <ownedParameter xmi:id="_16_8_248d03f8_1345046996257_243328_2990" name="pQuery" visibility="public" type="_16_8_2aa0154_1282022577389_65835_1814"/>
                  <ownedParameter xmi:id="_16_8_248d03f8_1345047003042_806675_2992" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_248d03f8_1345047046614_681235_2993" name="createMyAdressBOQuery" visibility="public">
                  <ownedParameter xmi:id="_16_8_248d03f8_1345047074208_248576_2995" name="pQuery" visibility="public" type="_16_8_2aa0154_1282022577389_65835_1814"/>
                  <ownedParameter xmi:id="_16_8_248d03f8_1345047074208_66053_2996" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1257505008250_628295_567" name="interceptors">
              <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1257505020640_57711_568" name="MyTestInterceptor"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_8_19590324_1359125284573_668401_3180" name="domainObjects">
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126436926_762914_3846" name="" memberEnd="_16_8_19590324_1359126436927_507760_3848 _16_8_19590324_1359126436926_401123_3847">
                <ownedEnd xmi:id="_16_8_19590324_1359126436927_507760_3848" name="" visibility="private" type="_16_8_19590324_1359125358102_443354_3245" association="_16_8_19590324_1359126436926_762914_3846"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359126958535_821675_4039" name="Reiseweg"/>
              <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_19590324_1359126552439_914804_3882" name="VerkehrsmittelTyp">
                <ownedLiteral xmi:id="_16_8_19590324_1359126574287_993749_3899" name="Zug" classifier="_16_8_19590324_1359126552439_914804_3882"/>
                <ownedLiteral xmi:id="_16_8_19590324_1359126577368_621342_3901" name="Bus" classifier="_16_8_19590324_1359126552439_914804_3882"/>
                <ownedLiteral xmi:id="_16_8_19590324_1359126580833_46224_3903" name="Schiff" classifier="_16_8_19590324_1359126552439_914804_3882"/>
                <ownedLiteral xmi:id="_16_8_19590324_1359126582927_211486_3905" name="Tram" classifier="_16_8_19590324_1359126552439_914804_3882"/>
                <ownedLiteral xmi:id="_16_8_19590324_1359126584703_956642_3907" name="Seilbahn" classifier="_16_8_19590324_1359126552439_914804_3882"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359125372263_999934_3265" name="VerbindungspunktDO">
                <ownedAttribute xmi:id="_16_8_19590324_1359126698183_888263_3951" name="bavName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_8_19590324_1359126733176_513240_3978" name="uicCodes" visibility="private" type="_16_8_19590324_1359126713353_752204_3955" isOrdered="true" association="_16_8_19590324_1359126733176_551281_3977">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359128085735_700876_4076" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359128085735_488775_4075" name="" value="1"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359125358102_443354_3245" name="KanteDO">
                <ownedAttribute xmi:id="_16_8_19590324_1359126436926_401123_3847" name="abgang" visibility="private" type="_16_8_19590324_1359125372263_999934_3265" association="_16_8_19590324_1359126436926_762914_3846">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126457749_674513_3858" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126457748_767665_3857" name="" value="1"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_19590324_1359126461890_772325_3866" name="bestimmung" visibility="private" type="_16_8_19590324_1359125372263_999934_3265" association="_16_8_19590324_1359126461890_906009_3865">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126540811_955839_3877" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126540811_557533_3876" name="" value="1"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_19590324_1359126594898_171689_3914" name="verkehrsmittelTyp" visibility="private" type="_16_8_19590324_1359126552439_914804_3882" association="_16_8_19590324_1359126594897_437019_3913">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126622300_457627_3925" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126622300_253773_3924" name="" value="1"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_19590324_1359126830302_545995_3988" name="gerichtet" visibility="private" clientDependency="_18_5_3_1ea00f4_1566207573411_733654_12582" type="_9_5_f720368_1110473546612_366010_7561"/>
                <ownedAttribute xmi:id="_16_8_19590324_1359126888055_877078_4016" name="netzbereiche" visibility="private" type="_16_8_19590324_1359126858339_139841_3992" association="_16_8_19590324_1359126888054_837979_4014">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126916241_50840_4032" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126916241_492453_4031" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126594897_437019_3913" name="" memberEnd="_16_8_19590324_1359126594899_931290_3915 _16_8_19590324_1359126594898_171689_3914">
                <ownedEnd xmi:id="_16_8_19590324_1359126594899_931290_3915" name="" visibility="private" type="_16_8_19590324_1359125358102_443354_3245" association="_16_8_19590324_1359126594897_437019_3913"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359126713353_752204_3955" name="UICCodeDO">
                <ownedAttribute xmi:id="_16_8_19590324_1359126796420_676495_3986" name="code" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1565243629094_372707_11713" name="getCountry" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1565243638611_495448_11716" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126636757_833711_3932" name="" memberEnd="_16_8_19590324_1359126636759_102163_3934 _16_8_19590324_1359126636758_222903_3933">
                <ownedEnd xmi:id="_16_8_19590324_1359126636759_102163_3934" name="" visibility="private" type="_16_8_19590324_1359125333055_979617_3225" association="_16_8_19590324_1359126636757_833711_3932"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126461890_906009_3865" name="" memberEnd="_16_8_19590324_1359126461891_302033_3867 _16_8_19590324_1359126461890_772325_3866">
                <ownedEnd xmi:id="_16_8_19590324_1359126461891_302033_3867" name="" visibility="private" type="_16_8_19590324_1359125358102_443354_3245" association="_16_8_19590324_1359126461890_906009_3865"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359496283855_73721_2426" name="" supplier="_16_8_19590324_1359125333055_979617_3225" client="_16_8_19590324_1359125310692_354314_3205"/>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126733176_551281_3977" name="" memberEnd="_16_8_19590324_1359126733177_567259_3979 _16_8_19590324_1359126733176_513240_3978">
                <ownedEnd xmi:id="_16_8_19590324_1359126733177_567259_3979" name="" visibility="private" type="_16_8_19590324_1359125372263_999934_3265" association="_16_8_19590324_1359126733176_551281_3977"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359125310692_354314_3205" name="WegsucheDO" clientDependency="_16_8_19590324_1359496283855_73721_2426">
                <ownedOperation xmi:id="_16_8_19590324_1359127010596_387031_4059" name="suchePfade" visibility="public">
                  <ownedParameter xmi:id="_16_8_19590324_1359127023136_83214_4062" name="" visibility="public" type="_16_8_19590324_1359125333055_979617_3225" isOrdered="true" isUnique="false" direction="return">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359127060230_413339_4064" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359127060230_776863_4063" name=""/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359125333055_979617_3225" name="PfadDO">
                <ownedAttribute xmi:id="_16_8_19590324_1359126636758_222903_3933" name="kantenSequenz" visibility="private" type="_16_8_19590324_1359125358102_443354_3245" isOrdered="true" isUnique="false" association="_16_8_19590324_1359126636757_833711_3932">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126666435_464211_3944" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126666435_194225_3943" name="" value="1"/>
                </ownedAttribute>
                <ownedOperation xmi:id="_16_8_19590324_1359126943686_880841_4035" name="ermittleReiseweg">
                  <ownedParameter xmi:id="_16_8_19590324_1359126991229_248770_4058" name="" visibility="public" type="_16_8_19590324_1359126958535_821675_4039" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359126858339_139841_3992" name="NetzbereichDO">
                <ownedAttribute xmi:id="_16_8_19590324_1359126888054_36706_4015" name="kanten" visibility="private" type="_16_8_19590324_1359125358102_443354_3245" association="_16_8_19590324_1359126888054_837979_4014">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1359126902037_978506_4026" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1359126902037_386195_4025" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19590324_1359126888054_837979_4014" name="" memberEnd="_16_8_19590324_1359126888054_36706_4015 _16_8_19590324_1359126888055_877078_4016"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1550141526675_954123_11666" name="WegsucheAnfrage"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1550141614773_599180_11672" name="Strecke"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1550148354292_212123_11688" name="InfoPLUSConnection"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1566207573411_733654_12582" name="" supplier="_16_8_19590324_1359126830302_545995_3988" client="_16_8_19590324_1359126830302_545995_3988"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634885274657_147848_8074" name="Price">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634885301573_93063_8095" name="price" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634885382973_804681_8109" name="reiseweg" visibility="private" type="_16_8_19590324_1359126958535_821675_4039" association="_19_0_4_29b40597_1634885382972_672731_8108">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634885398588_618168_8120" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634885398588_829872_8119" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634885416358_585644_8132" name="verbindungspunkte" visibility="private" type="_16_8_19590324_1359125372263_999934_3265" association="_19_0_4_29b40597_1634885416358_844722_8131">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634885438794_882332_8143" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634885438778_918032_8142" name=""/>
                </ownedAttribute>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634885332110_788897_8099" name="recalculatePrice" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634885358753_136402_8102" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635315492252_987389_6381" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635315528586_51552_6383" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635315528586_613809_6384" name="pParam2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635315528586_291694_6385" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634885382972_672731_8108" name="" memberEnd="_19_0_4_29b40597_1634885382973_331687_8110 _19_0_4_29b40597_1634885382973_804681_8109">
                <ownedEnd xmi:id="_19_0_4_29b40597_1634885382973_331687_8110" name="" visibility="private" type="_19_0_4_29b40597_1634885274657_147848_8074" association="_19_0_4_29b40597_1634885382972_672731_8108"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634885416358_844722_8131" name="" memberEnd="_19_0_4_29b40597_1634885416358_69526_8133 _19_0_4_29b40597_1634885416358_585644_8132">
                <ownedEnd xmi:id="_19_0_4_29b40597_1634885416358_69526_8133" name="" visibility="private" type="_19_0_4_29b40597_1634885274657_147848_8074" association="_19_0_4_29b40597_1634885416358_844722_8131"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634885788132_15054_8818" name="DeprecatedDomainObject">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644403708063_889376_10005" name="readonlyDefault" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644403718585_175316_10007" name="" value="4711"/>
                </ownedAttribute>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634885819397_794352_8840" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634885829501_792404_8843" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1644513885813_936361_10479" name="returnPrimitive" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1644513896310_905881_10482" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1644391606198_234379_9192" name="ReadonlyDO">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644391638987_263009_9214" name="readonly" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644391646428_869450_9216" name="" value="4711"/>
                </ownedAttribute>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_246b03eb_1315371098566_343468_2458" name="" supplier="_16_8_246b03eb_1315205332867_739880_5631" client="_16_8_246b03eb_1315205216722_795897_5574"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1211615416162_773293_800" name="impl">
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1211615839771_4534_1247" name="" supplier="_12_5_2aa0154_1211615508056_445944_843" client="_12_5_2aa0154_1211615590136_556478_1131"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1238534519321_59940_864" name="domain">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238534549879_710391_906" name="ChildBO">
                  <generalization xmi:id="_16_0_1_2aa0154_1238534559846_289700_926" isSubstitutable="true" general="_16_0_1_2aa0154_1238534541239_715370_886"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238534596012_153252_930" name="childName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238534612494_280259_932" name="childNumber" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1283407749346_274996_1781" name="OrderingB">
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283407781809_605041_1805" name="a1" visibility="private" type="_16_8_2aa0154_1283407742187_775815_1761" association="_16_8_2aa0154_1283407781808_528961_1803">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283407807564_300068_1822" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283407807564_164026_1821" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409070742_862053_2201" name="a2" visibility="private" type="_16_8_2aa0154_1283407742187_775815_1761" association="_16_8_2aa0154_1283409070742_541572_2199">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283409083414_595109_2211" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283409083414_825884_2210" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409119666_218313_2228" name="a3" visibility="private" type="_16_8_2aa0154_1283407742187_775815_1761" association="_16_8_2aa0154_1283409119665_77456_2226">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283409139426_820829_2238" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283409139425_107679_2237" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409187847_988568_2251" name="a4" visibility="private" type="_16_8_2aa0154_1283407742187_775815_1761" association="_16_8_2aa0154_1283409187846_41291_2249">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283409200974_879462_2261" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283409200974_935936_2260" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238617819420_847924_1180" name="NRelationSubTwoBO">
                  <generalization xmi:id="_16_0_1_2aa0154_1238617831264_78267_1200" isSubstitutable="true" general="_16_0_1_2aa0154_1238536111652_890299_1020"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238617945545_756621_1208" name="fieldTwo" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1933031a_1390246639308_350280_5083" name="" memberEnd="_16_8_1933031a_1390246639308_277462_5085 _16_8_1933031a_1390246639308_858271_5084">
                  <ownedEnd xmi:id="_16_8_1933031a_1390246639308_277462_5085" name="" visibility="private" type="_16_8_1933031a_1390246566229_797791_5059" association="_16_8_1933031a_1390246639308_350280_5083">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1d1e0397_1390410930039_855990_4540" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1d1e0397_1390410930039_133698_4539" name=""/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1258116368375_221676_713" name="AOneBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1258116391546_768048_752" name="aName" visibility="private" clientDependency="_18_5_3_1ea00f4_1566881611725_26972_11689" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1258116477343_795191_762" name="b" visibility="private" type="_16_0_1_2aa0154_1258116379625_127009_733" association="_16_0_1_2aa0154_1258116477343_121107_761">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1258116490484_799222_774" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1258116490468_341613_773" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1262075903500_52536_629" name="cManys" visibility="private" type="_16_0_1_2aa0154_1262075771796_23502_596" association="_16_0_1_2aa0154_1262075903500_733486_628">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1262075934562_934801_641" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1262075934562_654669_640" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1262078808062_431023_1071" name="countCMany" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1262078820828_958980_1074" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1315205277042_670253_5577" name="ClassB_BO">
                  <ownedAttribute xmi:id="_16_8_246b03eb_1315205306442_965754_5620" name="classAs" visibility="private" type="_16_8_246b03eb_1315205260051_242720_5576" association="_16_8_246b03eb_1315205306441_551153_5618">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1315205469896_976772_5656" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1315205469896_606186_5655" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1315205332867_739880_5631" name="intValue" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1283409070742_541572_2199" name="" memberEnd="_16_8_2aa0154_1283409070742_928288_2200 _16_8_2aa0154_1283409070742_862053_2201"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1315205260051_242720_5576" name="ClassA_BO">
                  <ownedAttribute xmi:id="_16_8_246b03eb_1315205306441_758987_5619" name="classB" visibility="private" type="_16_8_246b03eb_1315205277042_670253_5577" association="_16_8_246b03eb_1315205306441_551153_5618">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1315205472964_117660_5658" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1315205472963_173431_5657" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1315205324869_900685_5629" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1644391722270_307006_9496" name="readonlyDefault" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644391734018_348298_9498" name="" value="4711"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1283407781808_528961_1803" name="" memberEnd="_16_8_2aa0154_1283407781808_143289_1804 _16_8_2aa0154_1283407781809_605041_1805"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238617790920_504052_1157" name="NRelationSubOneBO">
                  <generalization xmi:id="_16_0_1_2aa0154_1238617804045_286313_1177" isSubstitutable="true" general="_16_0_1_2aa0154_1238536111652_890299_1020"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238617904373_140175_1205" name="fieldOne" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1933031a_1390246566229_797791_5059" name="FlushTestSlaveBO">
                  <ownedAttribute xmi:id="_16_8_1933031a_1390246639308_858271_5084" name="masterObject" visibility="private" type="_16_8_1933031a_1390246544941_72785_5039" association="_16_8_1933031a_1390246639308_350280_5083">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1d1e0397_1390410939502_992028_4544" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1d1e0397_1390410939502_548861_4543" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1933031a_1390246793283_231687_5107" name="optionalField" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1239140765829_604931_523" name="PublicClassBO">
                  <ownedAttribute xmi:id="_16_8_195e0323_1308289443936_604991_5461" name="period" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1311749852172_51737_2928" name="gender" visibility="private" type="_16_0_1_2aa0154_1265061847640_684939_826"/>
                  <ownedAttribute xmi:id="_16_8_18440316_1413963733036_781498_2129" name="encryptedString" visibility="private" type="_16_8_180f0303_1413787765789_380755_2551"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1258116477343_121107_761" name="" memberEnd="_16_0_1_2aa0154_1258116477343_795191_762 _16_0_1_2aa0154_1258116477343_950466_763"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1262075903500_733486_628" name="" memberEnd="_16_0_1_2aa0154_1262075903500_52536_629 _16_0_1_2aa0154_1262075903500_830313_630"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1283409119665_77456_2226" name="" memberEnd="_16_8_2aa0154_1283409119665_159852_2227 _16_8_2aa0154_1283409119666_218313_2228"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1933031a_1390246544941_72785_5039" name="FlushTestMasterBO">
                  <ownedAttribute xmi:id="_16_8_1933031a_1390246758169_235131_5104" name="requiredField" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1258116379625_127009_733" name="BOneBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1258116413687_798508_754" name="bName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1258116477343_950466_763" name="a" visibility="private" type="_16_0_1_2aa0154_1258116368375_221676_713" association="_16_0_1_2aa0154_1258116477343_121107_761">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1258116498171_592390_780" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1258116498171_967223_779" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238536111652_890299_1020" name="NReleationBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238536172137_250806_1046" name="ms" visibility="private" type="_16_0_1_2aa0154_1238535989355_668965_1000" association="_16_0_1_2aa0154_1238536172137_201929_1044">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1238536197074_108247_1063" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1238536197074_229788_1062" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238536366074_155828_1088" name="myString" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1262075771796_23502_596" name="CManyBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1262075785062_135466_615" name="cNumber" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1262075903500_830313_630" name="aOne" visibility="private" type="_16_0_1_2aa0154_1258116368375_221676_713" association="_16_0_1_2aa0154_1262075903500_733486_628">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1262075960234_125051_645" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1262075960234_771623_644" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1283407742187_775815_1761" name="OrderingA">
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283407781808_143289_1804" name="orderedUnique" visibility="private" type="_16_8_2aa0154_1283407749346_274996_1781" isOrdered="true" association="_16_8_2aa0154_1283407781808_528961_1803">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283407803979_244857_1818" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283407803978_285873_1817" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409070742_928288_2200" name="orderedNotUnique" visibility="private" type="_16_8_2aa0154_1283407749346_274996_1781" isOrdered="true" isUnique="false" association="_16_8_2aa0154_1283409070742_541572_2199">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283409099578_771297_2217" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283409099578_190941_2216" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409119665_159852_2227" name="notOrderedUnique" visibility="private" type="_16_8_2aa0154_1283407749346_274996_1781" association="_16_8_2aa0154_1283409119665_77456_2226"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1283409187846_397921_2250" name="notOrderedNotUnique" visibility="private" type="_16_8_2aa0154_1283407749346_274996_1781" isUnique="false" association="_16_8_2aa0154_1283409187846_41291_2249">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1283409256221_123631_2267" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1283409256221_535836_2266" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238534541239_715370_886" name="BaseClassBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238534652347_512848_936" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238534659752_486049_938" name="number" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634890329824_110673_8928" name="deprecatedPO" visibility="private" type="_19_0_4_29b40597_1634890161991_61251_8865" association="_19_0_4_29b40597_1634890329824_319638_8926">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634890355073_275757_8944" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634890355073_130718_8943" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1311683636581_275221_5820" name="GrandchildBO">
                  <generalization xmi:id="_16_8_195e0323_1311683668647_648621_5840" isSubstitutable="true" general="_16_0_1_2aa0154_1238534549879_710391_906"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1311683712552_914374_5845" name="grandchildName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1315205306441_551153_5618" name="" memberEnd="_16_8_246b03eb_1315205306441_758987_5619 _16_8_246b03eb_1315205306442_965754_5620"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1238536172137_201929_1044" name="" memberEnd="_16_0_1_2aa0154_1238536172137_227119_1045 _16_0_1_2aa0154_1238536172137_250806_1046"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1238535989355_668965_1000" name="MReleationBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238536172137_227119_1045" name="ns" visibility="private" type="_16_0_1_2aa0154_1238536111652_890299_1020" association="_16_0_1_2aa0154_1238536172137_201929_1044">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1238536185605_593537_1057" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1238536185605_122732_1056" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1238536349808_528548_1086" name="myNumber" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1255536035312_117171_565" name="getMySpecialN" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1255536080031_610842_571" name="" visibility="public" type="_16_0_1_2aa0154_1238536111652_890299_1020" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1644513912895_537908_10483" name="returnPrimitive" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1644513924151_202826_10486" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1283409187846_41291_2249" name="" memberEnd="_16_8_2aa0154_1283409187846_397921_2250 _16_8_2aa0154_1283409187847_988568_2251"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1566881611725_26972_11689" name="" supplier="_16_8_246b03eb_1315205324869_900685_5629" client="_16_0_1_2aa0154_1258116391546_768048_752"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634890161991_61251_8865" name="DeprecatedPO">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634890242756_794000_8892" name="deprecated" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634890291360_502010_8900" name="publicClass" visibility="private" type="_16_0_1_2aa0154_1239140765829_604931_523" association="_19_0_4_29b40597_1634890291359_648498_8899">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634890302790_310742_8911" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634890302790_164711_8910" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634890329824_288278_8927" name="baseClasses" visibility="private" type="_16_0_1_2aa0154_1238534541239_715370_886" association="_19_0_4_29b40597_1634890329824_319638_8926">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634890344536_575384_8938" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634890344536_468006_8937" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634890545985_512625_10043" name="doSomethingDeprecated" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634890557044_414248_10046" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635326535360_251761_8261" name="doSomething" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635326559091_835402_8263" name="pParam1" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635326559092_196833_8264" name="pParam2" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635326559092_398998_8265" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634890291359_648498_8899" name="" memberEnd="_19_0_4_29b40597_1634890291360_256199_8901 _19_0_4_29b40597_1634890291360_502010_8900">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1634890291360_256199_8901" name="" visibility="private" type="_19_0_4_29b40597_1634890161991_61251_8865" association="_19_0_4_29b40597_1634890291359_648498_8899"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634890329824_319638_8926" name="" memberEnd="_19_0_4_29b40597_1634890329824_288278_8927 _19_0_4_29b40597_1634890329824_110673_8928"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1235419721143_99502_871" name="internal">
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1235419304422_516320_589" name="InternalStuff" clientDependency="_16_8_1d1e0397_1390409574856_898963_2387" isIndirectlyInstantiated="false">
                  <ownedAttribute xmi:type="uml:Port" xmi:id="_12_5_2aa0154_1236033381970_73760_594" name="" visibility="public" type="_16_0_1_2aa0154_1236342083772_396374_839" aggregation="composite"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_1d1e0397_1390409574856_898963_2387" name="" supplier="_18_5_3_29b40597_1588159875818_44781_13213" client="_12_5_2aa0154_1235419304422_516320_589"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1236342083772_396374_839" name="InternalServicePort" clientDependency="_16_0_1_2aa0154_1236351027437_648234_439">
                  <interfaceRealization xmi:id="_16_0_1_2aa0154_1236351027437_648234_439" name="" supplier="_16_0_1_2aa0154_1236351027406_465349_437" client="_16_0_1_2aa0154_1236342083772_396374_839" contract="_16_0_1_2aa0154_1236351027406_465349_437"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1211615835850_961439_1245" name="" supplier="_12_5_2aa0154_1211615495495_206652_824" client="_12_5_2aa0154_1211615590136_556478_1131"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585837971897_127027_12145" name="core">
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1211615590136_556478_1131" name="TestComponent" clientDependency="_12_5_2aa0154_1211615835850_961439_1245 _12_5_2aa0154_1211615839771_4534_1247 _12_5_2aa0154_1211615831694_220421_1243" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1211615831694_220421_1243" name="" supplier="_12_5_2aa0154_1211615353371_608330_781" client="_12_5_2aa0154_1211615590136_556478_1131" contract="_12_5_2aa0154_1211615353371_608330_781"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1211615627037_824644_1132" name="RequiredComponent" clientDependency="_12_5_2aa0154_1211615678372_585305_1175 _12_5_2aa0154_1211615682949_305721_1177" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1211615678372_585305_1175" name="" supplier="_12_5_2aa0154_1211615495495_206652_824" client="_12_5_2aa0154_1211615627037_824644_1132" contract="_12_5_2aa0154_1211615495495_206652_824"/>
                  <interfaceRealization xmi:id="_12_5_2aa0154_1211615682949_305721_1177" name="" supplier="_12_5_2aa0154_1211615508056_445944_843" client="_12_5_2aa0154_1211615627037_824644_1132" contract="_12_5_2aa0154_1211615508056_445944_843"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_16_0_1_2aa0154_1257808634625_725596_568" name="InterceptorTest" clientDependency="_16_0_1_2aa0154_1257808683640_723891_610 _16_0_1_2aa0154_1257873519484_914872_569">
                  <interfaceRealization xmi:id="_16_0_1_2aa0154_1257808683640_723891_610" name="" supplier="_16_0_1_2aa0154_1257808615187_245990_567" client="_16_0_1_2aa0154_1257808634625_725596_568" contract="_16_0_1_2aa0154_1257808615187_245990_567"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_16_8_1b700da_1280240610428_60013_1781" name="MailTest" clientDependency="_16_8_1b700da_1280240758741_87443_1812">
                  <interfaceRealization xmi:id="_16_8_1b700da_1280240758741_87443_1812" name="" supplier="_16_8_1c200dd_1278507535687_110013_1872" client="_16_8_1b700da_1280240610428_60013_1781" contract="_16_8_1c200dd_1278507535687_110013_1872"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1211702968716_514721_1579" name="GeneratorTest" clientDependency="_18_5_3_1ea00f4_1547579643867_693925_11059 _12_5_2aa0154_1211703014109_646475_1602" isIndirectlyInstantiated="false">
                  <ownedAttribute xmi:id="_16_8_1935031b_1285938426657_199359_4792" name="testProperty" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_19940331_1292850256153_769831_4405" body="Test property description" annotatedElement="_16_8_1935031b_1285938426657_199359_4792"/>
                    <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_8_19940331_1292849988372_333152_2275" name="">
                      <body>42</body>
                    </defaultValue>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635435578655_468066_8543" name="deprecatedAttribute" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <interfaceRealization xmi:id="_12_5_2aa0154_1211703014109_646475_1602" name="" supplier="_12_5_2aa0154_1211699792279_134630_1538" client="_12_5_2aa0154_1211702968716_514721_1579" contract="_12_5_2aa0154_1211699792279_134630_1538"/>
                  <interfaceRealization xmi:id="_18_5_3_1ea00f4_1547579643867_693925_11059" name="" supplier="_18_5_3_1ea00f4_1547573655484_425967_10128" client="_12_5_2aa0154_1211702968716_514721_1579" contract="_18_5_3_1ea00f4_1547573655484_425967_10128"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_16_8_1c200dd_1278507012109_77405_1804" name="SecurityTest" clientDependency="_16_8_1c200dd_1278508227687_967997_1927">
                  <ownedComment xmi:id="_16_8_1c200dd_1278513196953_404779_2120" body="implements the Interface JEAFSecurityTestService" annotatedElement="_16_8_1c200dd_1278507012109_77405_1804"/>
                  <interfaceRealization xmi:id="_16_8_1c200dd_1278508227687_967997_1927" name="" supplier="_16_8_1c200dd_1278506850265_501599_1782" client="_16_8_1c200dd_1278507012109_77405_1804" contract="_16_8_1c200dd_1278506850265_501599_1782"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_16_0_1_2aa0154_1271796759687_699447_621" name="AuthorizationTest" clientDependency="_16_0_1_2aa0154_1271796803750_701703_671">
                  <interfaceRealization xmi:id="_16_0_1_2aa0154_1271796803750_701703_671" name="" supplier="_16_0_1_2aa0154_1268930343578_99415_610" client="_16_0_1_2aa0154_1271796759687_699447_621" contract="_16_0_1_2aa0154_1268930343578_99415_610"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1641396823040_328774_6357" name="Product" clientDependency="_19_0_4_29b40597_1641396932414_517529_6425">
                  <interfaceRealization xmi:id="_19_0_4_29b40597_1641396932414_517529_6425" name="" supplier="_19_0_4_29b40597_1634200394708_707747_7020" client="_19_0_4_29b40597_1641396823040_328774_6357" contract="_19_0_4_29b40597_1634200394708_707747_7020"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585837978662_428437_12146" name="scheduling">
                <packagedElement xmi:type="uml:Component" xmi:id="_16_8_158b02e7_1287062936468_789297_5297" name="SchedulingTest" clientDependency="_16_8_158b02e7_1287063034093_990499_5329">
                  <interfaceRealization xmi:id="_16_8_158b02e7_1287063034093_990499_5329" name="" supplier="_16_8_158b02e7_1287062730265_869716_5223" client="_16_8_158b02e7_1287062936468_789297_5297" contract="_16_8_158b02e7_1287062730265_869716_5223"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585839466314_767618_12160" name="persistence">
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1233902874107_450963_567" name="BusinessObjectTestPort" clientDependency="_16_0_1_2aa0154_1264607199000_942169_960 _16_0_1_2aa0154_1264545259578_423797_1149">
                  <interfaceRealization xmi:id="_16_0_1_2aa0154_1264607199000_942169_960" name="" supplier="_12_5_2aa0154_1224535613264_399955_496" client="_12_5_2aa0154_1233902874107_450963_567" contract="_12_5_2aa0154_1224535613264_399955_496"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1224535783656_762690_557" name="PersistenceTest" clientDependency="_16_8_195c032a_1284472502586_462961_6247 _16_8_195c032a_1284472749906_257313_6285 _16_8_195c032a_1284473323705_624208_6294" isIndirectlyInstantiated="false">
                  <ownedAttribute xmi:id="_12_5_2aa0154_1235419439964_169257_590" name="" visibility="private" type="_12_5_2aa0154_1235419304422_516320_589"/>
                  <ownedAttribute xmi:type="uml:Port" xmi:id="_12_5_2aa0154_1233614856088_691059_1130" name="" visibility="public" type="_12_5_2aa0154_1233902874107_450963_567" aggregation="composite"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285929971471_530914_2256" name="booleanProperty" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285929987914_720006_2258" name="byteProperty" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285929994129_786305_2260" name="shortProperty" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930000797_723637_2262" name="integerProperty" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19940331_1293111294045_425843_5217" name="" value="42"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930012530_348708_2264" name="longProperty" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930039868_601963_2266" name="floatProperty" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930046677_720833_2268" name="doubleProperty" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <ownedAttribute xmi:id="_16_8_195c032a_1285254097461_632867_2254" name="stringProperty" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930085737_428272_2272" name="characterProperty" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930107550_75176_2274" name="classProperty" visibility="private" type="_9_5_f720368_1110473546612_428363_7573"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930120480_9617_2276" name="calendarProperty" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_16_8_1935031b_1285930128100_394322_2278" name="localeProperty" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635436848733_264231_6706" name="deprectedAttribute" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <packagedElement xmi:type="uml:Usage" xmi:id="_16_0_1_2aa0154_1257873519484_914872_569" name="" supplier="_16_0_1_2aa0154_1257505020640_57711_568" client="_16_0_1_2aa0154_1257808634625_725596_568"/>
                  <packagedElement xmi:type="uml:Usage" xmi:id="_16_8_195c032a_1284472502586_462961_6247" name="" supplier="_12_5_2aa0154_1232316618430_150345_1049" client="_12_5_2aa0154_1224535783656_762690_557"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_195c032a_1284472749906_257313_6285" name="" supplier="_18_5_3_29b40597_1588159875818_44781_13213" client="_12_5_2aa0154_1224535783656_762690_557"/>
                  <realization xmi:id="_16_8_195c032a_1284473323705_624208_6294" name="" supplier="_16_0_1_2aa0154_1236351027406_465349_437" client="_12_5_2aa0154_1224535783656_762690_557" realizingClassifier="_16_0_1_2aa0154_1236351027406_465349_437"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_18_5_3_29b40597_1588159875818_44781_13213" name="JUnitPersistenceUnit" clientDependency="_18_5_3_29b40597_1588161699038_270702_13369">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1588161699038_270702_13369" name="" supplier="_16_0_1_2aa0154_1238534519321_59940_864" client="_18_5_3_29b40597_1588159875818_44781_13213"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_18_5_3_29b40597_1588161721921_909286_13384" name="EmptyPersistenceUnit"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_8_19450325_1358788891326_535825_2836" name="otherpackage">
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19450325_1358788901138_963077_2837" name="Input"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19450325_1358788910270_714157_2838" name="Output"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19450325_1358789872424_302560_3960" name="InputSubclass">
                <generalization xmi:id="_16_8_19450325_1358789914115_216507_3980" isSubstitutable="true" general="_16_8_19450325_1358788901138_963077_2837"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1258493788156_158602_579" name="serviceproviders">
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1258493800156_780030_580" name="MyServiceProvider">
                <ownedOperation xmi:id="_16_0_1_2aa0154_1258493827968_619127_618" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1258493842015_756488_621" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634879087416_726052_7026" name="doSomethingDeprecated" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634879099316_197246_7029" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635231133135_173319_7497" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635231162172_343568_7499" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635231162172_34712_7500" name="pParam2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635231162173_397262_7501" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1258495467234_303791_757" name="MyServiceProviderImpl" clientDependency="_16_0_1_2aa0154_1258495512734_991753_597">
                <ownedAttribute xmi:id="_16_8_19940331_1286382314262_471045_2270" name="myProperty" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634878990792_924527_6994" name="deprecated" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <interfaceRealization xmi:id="_16_0_1_2aa0154_1258495512734_991753_597" name="" supplier="_16_0_1_2aa0154_1258493800156_780030_580" client="_16_0_1_2aa0154_1258495467234_303791_757" contract="_16_0_1_2aa0154_1258493800156_780030_580"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634878964474_972282_6973" name="DeprecatedServiceProviderImpl" clientDependency="_19_0_4_29b40597_1634879062571_718097_7020">
                <interfaceRealization xmi:id="_19_0_4_29b40597_1634879062571_718097_7020" name="" supplier="_19_0_4_29b40597_1634879026515_52257_6999" client="_19_0_4_29b40597_1634878964474_972282_6973" contract="_19_0_4_29b40597_1634879026515_52257_6999"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1634879026515_52257_6999" name="DeprecatedServiceProvider">
                <ownedOperation xmi:id="_19_0_4_29b40597_1634879073701_450359_7022" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634879082997_5900_7025" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Usage" xmi:id="_16_0_1_2aa0154_1264545259578_423797_1149" name="" supplier="_16_0_1_2aa0154_1236351027406_465349_437" client="_12_5_2aa0154_1233902874107_450963_567"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1218211402206_562702_1275" name="tx">
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211890933_467555_1856" name="" supplier="_12_5_2aa0154_1218211198096_493104_1233" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211894965_853992_1858" name="" supplier="_12_5_2aa0154_1218211104581_282923_1138" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211898746_435166_1860" name="" supplier="_12_5_2aa0154_1218211154096_918295_1176" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211903044_86002_1862" name="" supplier="_12_5_2aa0154_1218211169065_688565_1195" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211132877_852934_1157" name="TxSupportedService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211287581_152943_1255" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211289190_124147_1258" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211154096_918295_1176" name="TxRequiredService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211291768_631838_1259" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211294518_949738_1262" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211104581_282923_1138" name="TxNotSupportedService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211244502_277622_1251" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211282018_156863_1254" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211907028_45903_1864" name="" supplier="_12_5_2aa0154_1218211169065_688565_1195" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211885870_630761_1854" name="" supplier="_12_5_2aa0154_1218211185143_55351_1214" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211198096_493104_1233" name="TxNeverService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211323190_586294_1267" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211324690_496800_1270" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1218212310002_809851_1982" name="impl">
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211828913_85784_1811" name="TransactionHandlingComponent" clientDependency="_12_5_2aa0154_1218211907028_45903_1864 _12_5_2aa0154_1218211890933_467555_1856 _12_5_2aa0154_1218211894965_853992_1858 _12_5_2aa0154_1218211898746_435166_1860 _12_5_2aa0154_1218211903044_86002_1862 _12_5_2aa0154_1218211885870_630761_1854 _12_5_2aa0154_1218211860243_583597_1838 _12_5_2aa0154_1218211991395_242066_1966" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211860243_583597_1838" name="" supplier="_12_5_2aa0154_1218211020252_688222_1114" client="_12_5_2aa0154_1218211828913_85784_1811" contract="_12_5_2aa0154_1218211020252_688222_1114"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211437987_525553_1541" name="TxNotSupportedComponent" clientDependency="_12_5_2aa0154_1218211559659_828332_1679" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211559659_828332_1679" name="" supplier="_12_5_2aa0154_1218211104581_282923_1138" client="_12_5_2aa0154_1218211437987_525553_1541" contract="_12_5_2aa0154_1218211104581_282923_1138"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211463252_530427_1564" name="TxSupportedComponent" clientDependency="_12_5_2aa0154_1218211564518_262845_1696" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211564518_262845_1696" name="" supplier="_12_5_2aa0154_1218211132877_852934_1157" client="_12_5_2aa0154_1218211463252_530427_1564" contract="_12_5_2aa0154_1218211132877_852934_1157"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211533065_331408_1656" name="TxRequiresNewComponent" clientDependency="_12_5_2aa0154_1218211581659_386719_1764" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211581659_386719_1764" name="" supplier="_12_5_2aa0154_1218211169065_688565_1195" client="_12_5_2aa0154_1218211533065_331408_1656" contract="_12_5_2aa0154_1218211169065_688565_1195"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211478424_629466_1587" name="TxRequiredComponent" clientDependency="_12_5_2aa0154_1218211567971_38180_1713" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211567971_38180_1713" name="" supplier="_12_5_2aa0154_1218211154096_918295_1176" client="_12_5_2aa0154_1218211478424_629466_1587" contract="_12_5_2aa0154_1218211154096_918295_1176"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211497706_641902_1610" name="TxMandatoryComponent" clientDependency="_12_5_2aa0154_1218211570768_549158_1730" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211570768_549158_1730" name="" supplier="_12_5_2aa0154_1218211185143_55351_1214" client="_12_5_2aa0154_1218211497706_641902_1610" contract="_12_5_2aa0154_1218211185143_55351_1214"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1218211512565_950051_1633" name="TxNeverComponent" clientDependency="_12_5_2aa0154_1218211577252_121907_1747" isIndirectlyInstantiated="false">
                  <interfaceRealization xmi:id="_12_5_2aa0154_1218211577252_121907_1747" name="" supplier="_12_5_2aa0154_1218211198096_493104_1233" client="_12_5_2aa0154_1218211512565_950051_1633" contract="_12_5_2aa0154_1218211198096_493104_1233"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211169065_688565_1195" name="TxRequiresNewService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211325737_286311_1271" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211327190_342706_1274" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1218211991395_242066_1966" name="" supplier="_12_5_2aa0154_1218211132877_852934_1157" client="_12_5_2aa0154_1218211828913_85784_1811"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211185143_55351_1214" name="TxMandatoryService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211320112_20759_1263" name="testTransactionBehavior" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211321909_302831_1266" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1218211020252_688222_1114" name="TransactionHandlingService">
                <ownedOperation xmi:id="_12_5_2aa0154_1218211044690_474598_1132" name="testIndirectInvocations" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1218211062940_707479_1135" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_246b03eb_1315371090079_292492_2455" name="" supplier="_16_8_246b03eb_1315205324869_900685_5629" client="_16_8_195e0323_1311660486000_661505_2536"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1550129350288_343319_10722" name="activities">
              <packagedElement xmi:type="uml:Activity" xmi:id="_18_5_3_1ea00f4_1550129360712_451131_10724" name="SucheWegeActivity" isReentrant="true">
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550130649944_109310_11055" name="pWegsucheAnfrage" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666">
                  <ownedComment xmi:id="_18_5_3_1ea00f4_1550141582949_599020_11667" body="Parameter describes the Wegsuche that should be performed" annotatedElement="_18_5_3_1ea00f4_1550130649944_109310_11055"/>
                </ownedParameter>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550141585243_31101_11668" name="" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672" isOrdered="true" isUnique="false" direction="return">
                  <ownedComment xmi:id="_18_5_3_1ea00f4_1550141659558_454687_11677" body="List with alle Strecken that were found by Wegsuche" annotatedElement="_18_5_3_1ea00f4_1550141585243_31101_11668"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550141635612_430337_11674" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550141635612_561287_11673" name=""/>
                </ownedParameter>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550130649947_171443_11056" name="argument" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666" parameter="_18_5_3_1ea00f4_1550130649944_109310_11055"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550141585251_139223_11669" name="" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672" parameter="_18_5_3_1ea00f4_1550141585243_31101_11668"/>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_18_5_3_1ea00f4_1550211355396_486617_12166" name="Wege suchen" visibility="public" behavior="_18_5_3_1ea00f4_1550209355151_791333_11737">
                  <argument xmi:id="_18_5_3_1ea00f4_1550211355406_634442_12177" name="in" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666"/>
                  <result xmi:id="_18_5_3_1ea00f4_1550211355406_265712_12178" name="out" visibility="public" outgoing="_18_5_3_1ea00f4_1550488575533_916810_12519" type="_18_5_3_1ea00f4_1550148354292_212123_11688">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550488473150_616993_12452" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550488473150_636747_12451" name=""/>
                  </result>
                </node>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_18_5_3_1ea00f4_1550488527766_896532_12460" name="" visibility="public" behavior="_18_5_3_1ea00f4_1550130463618_415042_10953">
                  <argument xmi:id="_18_5_3_1ea00f4_1550488527777_912426_12472" name="pConnections" visibility="public" incoming="_18_5_3_1ea00f4_1550488575533_916810_12519" type="_18_5_3_1ea00f4_1550148354292_212123_11688">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550488527777_510665_12474" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550488527777_803671_12473" name=""/>
                  </argument>
                  <argument xmi:id="_18_5_3_1ea00f4_1550488527777_73919_12471" name="pValue" visibility="public" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <result xmi:id="_18_5_3_1ea00f4_1550488527777_834119_12475" name="unnamed1" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550488527777_302261_12477" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550488527777_867282_12476" name=""/>
                  </result>
                </node>
                <edge xmi:type="uml:ObjectFlow" xmi:id="_18_5_3_1ea00f4_1550488575533_916810_12519" name="" visibility="public" source="_18_5_3_1ea00f4_1550211355406_265712_12178" target="_18_5_3_1ea00f4_1550488527777_912426_12472">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550488575535_892004_12520" name="" value="1"/>
                </edge>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_18_5_3_1ea00f4_1550209355151_791333_11737" name="WegsucheDurchfuehrenActivity" isReentrant="true">
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1550210680704_993163_11825" name="unnamed1" visibility="public"/>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1550210736188_873144_11826" name="unnamed2" visibility="public"/>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550211290536_389929_12152" name="in" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666"/>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550211333729_114230_12155" name="out" visibility="public" type="_18_5_3_1ea00f4_1550148354292_212123_11688" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550488473144_841618_12450" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550488473144_859590_12449" name=""/>
                </ownedParameter>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550211290542_186908_12153" name="in" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666" parameter="_18_5_3_1ea00f4_1550211290536_389929_12152"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550211333734_167983_12156" name="out" visibility="public" type="_18_5_3_1ea00f4_1550148354292_212123_11688" parameter="_18_5_3_1ea00f4_1550211333729_114230_12155"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_18_5_3_1ea00f4_1550130463618_415042_10953" name="ErstelleStreckenActivity" isReentrant="true">
                <ownedComment xmi:id="_18_5_3_1ea00f4_1550235311853_65872_12246" body="Intention of thius activity is to transform the results from HAFAS to out internal representation as Strecke." annotatedElement="_18_5_3_1ea00f4_1550130463618_415042_10953"/>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550148312316_794886_11684" name="pConnections" visibility="public" type="_18_5_3_1ea00f4_1550148354292_212123_11688" isOrdered="true" isUnique="false">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550148335558_188891_11687" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550148335558_972883_11686" name=""/>
                </ownedParameter>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550148419140_708274_11689" name="unnamed1" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550148452965_668033_11692" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550148452965_71800_11691" name=""/>
                </ownedParameter>
                <ownedParameter xmi:id="_18_5_3_1ea00f4_1550235722862_351559_12253" name="pValue" visibility="public" type="_9_5_f720368_1110473546612_167906_7631">
                  <ownedComment xmi:id="_18_5_3_1ea00f4_1550235771520_489910_12255" body="This is an integer value as input for an activity." annotatedElement="_18_5_3_1ea00f4_1550235722862_351559_12253"/>
                </ownedParameter>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_18_5_3_1ea00f4_1550130583080_991612_11030" name="" visibility="public" behavior="_18_5_3_1ea00f4_1550129360712_451131_10724">
                  <argument xmi:id="_18_5_3_1ea00f4_1550130649937_876036_11044" name="pWegsucheAnfrage" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666"/>
                  <result xmi:id="_18_5_3_1ea00f4_1550141599831_200399_11671" name="" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550141635618_326728_11676" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550141635618_894153_11675" name=""/>
                  </result>
                </node>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550148312323_660868_11685" name="pHAFASConnections" visibility="public" type="_18_5_3_1ea00f4_1550148354292_212123_11688" parameter="_18_5_3_1ea00f4_1550148312316_794886_11684"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550148419145_281430_11690" name="unnamed1" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672" parameter="_18_5_3_1ea00f4_1550148419140_708274_11689"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_18_5_3_1ea00f4_1550235722868_725543_12254" name="pValue" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" parameter="_18_5_3_1ea00f4_1550235722862_351559_12253"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_18_5_3_1ea00f4_1550491988730_711814_12744" name="Activities Overview" isReentrant="true">
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_18_5_3_1ea00f4_1550492001777_55950_12783" name="" visibility="public" behavior="_18_5_3_1ea00f4_1550129360712_451131_10724">
                  <argument xmi:id="_18_5_3_1ea00f4_1550492001788_163947_12794" name="pWegsucheAnfrage" visibility="public" type="_18_5_3_1ea00f4_1550141526675_954123_11666"/>
                  <result xmi:id="_18_5_3_1ea00f4_1550492001789_627191_12795" name="" visibility="public" type="_18_5_3_1ea00f4_1550141614773_599180_11672">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1550492001789_598463_12797" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1550492001789_234970_12796" name=""/>
                  </result>
                </node>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1631000582422_870805_8240" name="DoNothingActivity" isReentrant="true">
                <ownedParameter xmi:id="_19_0_4_29b40597_1631000598705_867424_8241" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1631000598725_260590_8242" name="" visibility="public" parameter="_19_0_4_29b40597_1631000598705_867424_8241">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </node>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1635227218591_284364_7351" name="ActivityWithDeprecation" isReentrant="true">
                <ownedParameter xmi:id="_19_0_4_29b40597_1635227241887_419575_7352" name="pParam1" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1635227270637_315892_7354" name="pParam2" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1635227295122_754849_7357" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1635227241895_302556_7353" name="pParam1" visibility="public" parameter="_19_0_4_29b40597_1635227241887_419575_7352">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </node>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1635227270640_21607_7355" name="pParam2" visibility="public" parameter="_19_0_4_29b40597_1635227270637_315892_7354">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </node>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1635227295135_647286_7358" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" parameter="_19_0_4_29b40597_1635227295122_754849_7357"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1563203676448_845363_10826" name="pojo">
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563203693868_816419_10861" name="PlainPOJO">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563203725435_936772_10883" name="hello" visibility="private" clientDependency="_18_5_3_1ea00f4_1565241264922_664517_11513 _18_5_3_1ea00f4_1565153441744_399126_11195" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563203739634_357536_10885" name="world" visibility="private" clientDependency="_18_5_3_1ea00f4_1565153510019_436943_11222" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634831060459_779986_7841" name="doDeprectedStuff" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634831085413_990077_7844" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635325851488_580480_7924" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635325877951_711046_7926" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635325877952_392374_7927" name="pParam2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635325877952_415900_7928" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563203750060_15565_10888" name="ParentPOJO">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563203768172_994742_10910" name="parentAttribute" visibility="private" clientDependency="_18_5_3_1ea00f4_1564412811191_380413_12802" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1566193443009_998323_11589" name="weirdAttribute" visibility="private" clientDependency="_18_5_3_1ea00f4_1566193772000_677111_11962">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1566201730826_856840_12004" name="hello" visibility="private" clientDependency="_18_5_3_1ea00f4_1566201748377_774601_12007">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563203797385_718200_10913" name="ChildPOJO">
                <generalization xmi:id="_18_5_3_1ea00f4_1563203823228_465915_10937" isSubstitutable="true" general="_18_5_3_1ea00f4_1563203750060_15565_10888"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563203835532_933488_10938" name="childAttribute" visibility="private" clientDependency="_18_5_3_1ea00f4_1564412834393_905850_12817" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563204635509_67192_10956" name="AdvancedPOJO">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644402590069_953915_9999" name="readonlyDefault" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644402604690_986262_10001" name="" value="4711"/>
                </ownedAttribute>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1563204660845_967679_10979" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563204681378_51075_10981" name="pName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563204694400_772324_10982" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1644513366324_333628_10475" name="returnPrimitive" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1644513378300_506175_10478" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563426500436_900291_10740" name="ImmutablePOJO">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563426626116_216102_10834" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563426640336_495769_10836" name="something" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563426525618_230907_10763" name="ImmutablePOJOParent">
                <generalization xmi:id="_18_5_3_1ea00f4_1563601859585_534015_10901" isSubstitutable="true" general="_18_5_3_1ea00f4_1563601839903_187550_10877"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563426945736_511992_10850" name="parentAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563426965403_256906_10852" name="anotherParentAttribute" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563426546802_12335_10786" name="ImmutableChildPOJO">
                <generalization xmi:id="_18_5_3_1ea00f4_1563426597369_447808_10833" isSubstitutable="true" general="_18_5_3_1ea00f4_1563426525618_230907_10763"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563426993819_584767_10866" name="childAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563427006615_913438_10868" name="anotherChildAttribute" visibility="private" type="_9_5_f720368_1110473546612_897100_7595" isReadOnly="true"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563426574719_517428_10809" name="ImmutableAssociationPOJO">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563427074001_682368_10870" name="yetAnotherAttribute" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563427091497_937101_10877" name="readonlyAssociation" visibility="private" type="_18_5_3_1ea00f4_1563426500436_900291_10740" isOrdered="true" isReadOnly="true" association="_18_5_3_1ea00f4_1563427091497_59518_10876">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1563427116136_668195_10900" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1563427116136_160406_10899" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563431629515_773552_10952" name="immutableChildPOJO" visibility="private" type="_18_5_3_1ea00f4_1563426546802_12335_10786" isReadOnly="true" association="_18_5_3_1ea00f4_1563431629515_247824_10951">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1563431643121_688571_10973" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1563431643121_127655_10972" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634830350387_44400_7439" name="deprecatedRefs" visibility="private" type="_18_5_3_1ea00f4_1563426546802_12335_10786" association="_19_0_4_29b40597_1634830350387_507749_7438">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634830381476_546258_7450" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634830381476_293605_7449" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1634831360663_314905_7851" name="deprecatedRef" visibility="private" type="_18_5_3_1ea00f4_1563203797385_718200_10913" association="_19_0_4_29b40597_1634831360663_785367_7850">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634831370974_639659_7862" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634831370974_275148_7861" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_1ea00f4_1563427091497_59518_10876" name="" memberEnd="_18_5_3_1ea00f4_1563427091497_472134_10878 _18_5_3_1ea00f4_1563427091497_937101_10877">
                <ownedEnd xmi:id="_18_5_3_1ea00f4_1563427091497_472134_10878" name="" visibility="private" type="_18_5_3_1ea00f4_1563426574719_517428_10809" association="_18_5_3_1ea00f4_1563427091497_59518_10876"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_1ea00f4_1563431629515_247824_10951" name="" memberEnd="_18_5_3_1ea00f4_1563431629515_3033_10953 _18_5_3_1ea00f4_1563431629515_773552_10952">
                <ownedEnd xmi:id="_18_5_3_1ea00f4_1563431629515_3033_10953" name="" visibility="private" type="_18_5_3_1ea00f4_1563426574719_517428_10809" association="_18_5_3_1ea00f4_1563431629515_247824_10951"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563433316889_667130_11065" name="MutableChildPOJO">
                <generalization xmi:id="_18_5_3_1ea00f4_1563433373410_584575_11091" isSubstitutable="true" general="_18_5_3_1ea00f4_1563426525618_230907_10763"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563433346338_172636_11087" name="writeable" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563601839903_187550_10877" name="AbstractPOJO" isAbstract="true">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563601876028_19350_10902" name="abtractAttr" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563879090147_148916_11480" name="POJOWithID">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563879132797_911424_11503" name="attr" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1564405389537_715730_12560" name="name" visibility="private" clientDependency="_18_5_3_1ea00f4_1564405421490_615107_12565 _18_5_3_1ea00f4_1565242710279_916326_11687 _18_5_3_1ea00f4_1565156287671_12840_11249 _18_5_3_1ea00f4_1565616724094_948942_11524" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563946588039_740569_11157" name="POJOWithIDnMethod">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563946611598_267835_11179" name="attr" visibility="private" clientDependency="_18_5_3_1ea00f4_1565157524833_30982_11288 _18_5_3_1ea00f4_1564404348795_843833_12457" type="_9_5_f720368_1110473546612_897100_7595"/>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1563946717135_638119_11234" name="doSomethingFunny" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563946734703_1796_11237" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1564404348795_843833_12457" name="" supplier="_18_5_3_1ea00f4_1563879132797_911424_11503" client="_18_5_3_1ea00f4_1563946611598_267835_11179"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1564405421490_615107_12565" name="" supplier="_16_8_246b03eb_1315205324869_900685_5629" client="_18_5_3_1ea00f4_1564405389537_715730_12560"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1564412644315_289351_12625" name="BParentPOJO">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1564412644316_28742_12626" name="parentAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1564412666204_293772_12628" name="BChildPOJO">
                <generalization xmi:id="_18_5_3_1ea00f4_1564412666205_159234_12630" isSubstitutable="true" general="_18_5_3_1ea00f4_1564412644315_289351_12625"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1566193459019_811882_11591" name="weirdAttribute" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1564412666204_405296_12629" name="childAttribute" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1564412811191_380413_12802" name="" supplier="_18_5_3_1ea00f4_1564412644316_28742_12626" client="_18_5_3_1ea00f4_1563203768172_994742_10910"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1564412834393_905850_12817" name="" supplier="_18_5_3_1ea00f4_1564412666204_405296_12629" client="_18_5_3_1ea00f4_1563203835532_933488_10938"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565153441744_399126_11195" name="" supplier="_16_8_195e0323_1311660486000_661505_2536" client="_18_5_3_1ea00f4_1563203725435_936772_10883"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565153510019_436943_11222" name="" supplier="_16_8_246b03eb_1315205216722_795897_5574" client="_18_5_3_1ea00f4_1563203739634_357536_10885"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565156287671_12840_11249" name="" supplier="_16_8_195e0323_1311660486000_661505_2536" client="_18_5_3_1ea00f4_1564405389537_715730_12560"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565157524833_30982_11288" name="" supplier="_16_8_246b03eb_1315205216722_795897_5574" client="_18_5_3_1ea00f4_1563946611598_267835_11179"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565241264922_664517_11513" name="" supplier="_16_8_19590324_1359126698183_888263_3951" client="_18_5_3_1ea00f4_1563203725435_936772_10883"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565242710279_916326_11687" name="" supplier="_16_8_19590324_1359126698183_888263_3951" client="_18_5_3_1ea00f4_1564405389537_715730_12560"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565616724094_948942_11524" name="" supplier="_16_0_1_2aa0154_1258116391546_768048_752" client="_18_5_3_1ea00f4_1564405389537_715730_12560"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1566193772000_677111_11962" name="" supplier="_18_5_3_1ea00f4_1566193459019_811882_11591" client="_18_5_3_1ea00f4_1566193443009_998323_11589"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1566201748377_774601_12007" name="" supplier="_18_5_3_1ea00f4_1563203725435_936772_10883" client="_18_5_3_1ea00f4_1566201730826_856840_12004"/>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634830350387_507749_7438" name="" memberEnd="_19_0_4_29b40597_1634830350387_494219_7440 _19_0_4_29b40597_1634830350387_44400_7439">
                <ownedEnd xmi:id="_19_0_4_29b40597_1634830350387_494219_7440" name="" visibility="private" type="_18_5_3_1ea00f4_1563426574719_517428_10809" association="_19_0_4_29b40597_1634830350387_507749_7438"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634831360663_785367_7850" name="" memberEnd="_19_0_4_29b40597_1634831360663_463406_7852 _19_0_4_29b40597_1634831360663_314905_7851">
                <ownedEnd xmi:id="_19_0_4_29b40597_1634831360663_463406_7852" name="" visibility="private" type="_18_5_3_1ea00f4_1563426574719_517428_10809" association="_19_0_4_29b40597_1634831360663_785367_7850"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1644390500939_781126_8804" name="ReadonlyDefaultPOJO">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644391540348_117004_9178" name="readonlyDefault" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644391565161_381092_9180" name="" value="4711"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647445829711_472028_7965" name="BidirectionalA">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647445915627_595666_8015" name="transientB" visibility="private" type="_19_0_4_29b40597_1647445873161_173510_7988" association="_19_0_4_29b40597_1647445915615_233486_8014">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647445940244_720961_8039" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647445940244_796165_8038" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647445921866_490595_8028" name="transientParent" visibility="private" type="_19_0_4_29b40597_1647445829711_472028_7965" association="_19_0_4_29b40597_1647445921866_571463_8027">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647445961394_142914_8047" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647445961394_439548_8046" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647445921866_599337_8029" name="child" visibility="private" type="_19_0_4_29b40597_1647445829711_472028_7965" association="_19_0_4_29b40597_1647445921866_571463_8027">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647445964143_134805_8051" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647445964143_111542_8050" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647446035847_708812_8071" name="transientBs" visibility="private" type="_19_0_4_29b40597_1647445873161_173510_7988" association="_19_0_4_29b40597_1647446035847_157178_8070">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647446083112_222279_8090" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647446083112_784474_8089" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647445873161_173510_7988" name="BidirectionalB">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647445915627_505974_8016" name="as" visibility="private" type="_19_0_4_29b40597_1647445829711_472028_7965" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1647445915615_233486_8014">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647445943360_254709_8043" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647445943360_751465_8042" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1647446035847_454138_8072" name="theAs" visibility="private" type="_19_0_4_29b40597_1647445829711_472028_7965" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1647446035847_157178_8070">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647446086127_674148_8094" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647446086127_183958_8093" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647445915615_233486_8014" name="" memberEnd="_19_0_4_29b40597_1647445915627_595666_8015 _19_0_4_29b40597_1647445915627_505974_8016"/>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647445921866_571463_8027" name="" memberEnd="_19_0_4_29b40597_1647445921866_490595_8028 _19_0_4_29b40597_1647445921866_599337_8029"/>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647446035847_157178_8070" name="" memberEnd="_19_0_4_29b40597_1647446035847_708812_8071 _19_0_4_29b40597_1647446035847_454138_8072"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565674163155_434257_12624" name="" supplier="_18_5_3_1ea00f4_1547622731294_289584_11301" client="_16_8_195e0323_1311660486000_661505_2536"/>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565756874228_565324_11764" name="" supplier="_16_8_19590324_1359126796420_676495_3986" client="_18_5_3_1ea00f4_1563778700404_619179_11330"/>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1565756916822_842079_11774" name="" supplier="_18_5_3_1ea00f4_1565243629094_372707_11713" client="_18_5_3_1ea00f4_1565756899902_685086_11770"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585812683324_614670_11783" name="scheduling">
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_158b02e7_1287062730265_869716_5223" name="SchedulingTestService">
                <generalization xmi:id="_16_8_1981032c_1299242502694_16845_2303" isSubstitutable="true" general="_16_8_1ea00f4_1282713114801_661699_2227"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585812693074_224021_11784" name="core">
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1211615353371_608330_781" name="JEAFTestService">
                <ownedOperation xmi:id="_12_5_2aa0154_1211615481294_767091_821" name="checkRequiredService_1" visibility="public">
                  <ownedComment xmi:id="_12_5_1ea00f4_1212751030534_600063_1280" body="Method tests JEAF dependency injection mechanism for the dependency on RequiredService1." annotatedElement="_12_5_2aa0154_1211615481294_767091_821"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1211699861638_870240_1567" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1211615546159_367489_863" name="checkRequiredService_2" visibility="public">
                  <ownedComment xmi:id="_12_5_1ea00f4_1212751037710_484985_1281" body="Method tests JEAF dependency injection mechanism for the dependency on RequiredService1." annotatedElement="_12_5_2aa0154_1211615546159_367489_863"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1211699866357_801633_1569" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_1ea00f4_1212741539877_880869_887" name="testContextHandling" visibility="public">
                  <ownedComment xmi:id="_12_5_1ea00f4_1212751077589_519501_1282" body="Method tests JEAFs context handling and the passing of context information to listeners." annotatedElement="_12_5_1ea00f4_1212741539877_880869_887"/>
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212741591521_976676_965" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_1ea00f4_1212751744636_279551_1284" name="testContextAccess" visibility="public">
                  <ownedComment xmi:id="_12_5_1ea00f4_1212751806729_12917_1290" body="Method checks the access to the service invocation context from within a service implementation." annotatedElement="_12_5_1ea00f4_1212751744636_279551_1284"/>
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212751754532_251163_1289" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_1ea00f4_1212749259354_890215_1274" name="testIllgealContextAccess" visibility="public">
                  <ownedComment xmi:id="_12_5_1ea00f4_1212751102601_956691_1283" body="Method checks invalid accesses to a service invocation context." annotatedElement="_12_5_1ea00f4_1212749259354_890215_1274"/>
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212749267498_89759_1279" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1217449652832_497645_1085" name="testContextIsolation" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1217449665770_360117_1090" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246603ec_1344520218685_838905_2371" name="testSessionContextHandling" visibility="public">
                  <ownedParameter xmi:id="_16_8_246603ec_1344520237017_259771_2374" name="" visibility="public" type="_16_8_246603ec_1344520197406_875355_2353" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1257808615187_245990_567" name="InterceptorTestService">
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257808710468_26193_613" name="callService" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257808734437_753050_616" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257808734468_255975_617" name="callServiceAPE" visibility="public" raisedException="_16_0_1_2aa0154_1257876074640_633242_929">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257808744671_44643_620" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257808744671_289814_621" name="callServiceSYE" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257808754843_807397_624" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257808754843_442329_625" name="callServiceRTE" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257808767015_561184_628" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257808767031_615252_629" name="callServiceERR" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257808781750_800026_632" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1211699792279_134630_1538" name="GeneratorTestService">
                <generalization xmi:id="_16_8_2aa0154_1283334335116_244878_1781" isSubstitutable="true" general="_16_8_2aa0154_1283334300689_278924_1761"/>
                <ownedOperation xmi:id="_12_5_2aa0154_1213515840342_852931_973" name="processSimpleDatatypes" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1213515872155_105553_976" name="pDatatypes" visibility="public" type="_12_5_2aa0154_1213515458699_700727_915" direction="inout"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1213515872155_972205_977" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1213516142534_782256_1016" name="convertToWrapperDatatypes" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1213516179387_452707_1019" name="pSimpleTypes" visibility="public" type="_12_5_2aa0154_1213515458699_700727_915" direction="inout"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1213516179387_194738_1020" name="" visibility="public" type="_12_5_2aa0154_1213515897336_719895_979" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1213516179403_459908_1021" name="convertToSimpleDatatypes" visibility="public">
                  <ownedParameter xmi:id="_12_5_2aa0154_1213516206805_49375_1024" name="pWrapperTypes" visibility="public" type="_12_5_2aa0154_1213515897336_719895_979" direction="inout"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1213516206805_32501_1025" name="" visibility="public" type="_12_5_2aa0154_1213515458699_700727_915" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1257892834156_673000_969" name="testPrimitivesAsParameter" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257892896250_995832_971" name="pInteger" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257892896250_608808_972" name="pByteArray" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1257977466656_111314_795" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1257977466656_297651_794" name=""/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257893624406_32320_1087" name="pDoubleValue" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1257977466671_97773_796" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268765531031_645256_603" name="testGenericsAsParameter" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268765600828_462672_605" name="pSimpleObjects" visibility="public" type="_12_5_2aa0154_1213515458699_700727_915">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1268765633953_673969_614" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1268765633953_655697_613" name=""/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268765600828_527437_606" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268778381734_543372_761" name="testGenericsAsResult" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268778397015_279191_764" name="" visibility="public" type="_12_5_2aa0154_1213515458699_700727_915" direction="return">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1268778407500_943345_768" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1268778407500_257859_767" name=""/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1269075375484_873103_968" name="doWhatIMean" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1269075400328_459234_970" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1269075775765_864323_977" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268930477375_96061_641" name="doWhatIMean" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268930492015_841446_644" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268930436156_752718_637" name="doWhatIMean" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268930477343_60667_639" name="pParam1" visibility="public" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1269015590000_442290_971" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_19450325_1358788970979_261021_3883" name="doWithObjectsFromOtherPAckages" visibility="public">
                  <ownedParameter xmi:id="_16_8_19450325_1358789006471_234017_3885" name="pInput" visibility="public" type="_16_8_19450325_1358788901138_963077_2837"/>
                  <ownedParameter xmi:id="_16_8_19450325_1358789006473_986573_3886" name="" visibility="public" type="_16_8_19450325_1358788910270_714157_2838" direction="return">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19450325_1358789020494_174242_3888" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19450325_1358789020489_450904_3887" name=""/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597067795159_732127_12096" name="testPrimiveIntResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071455911_712109_12302" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071459370_18507_12303" name="testPrimitiveBooleanResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071478541_295459_12306" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071481884_896024_12307" name="testPrimitiveShortResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071498692_598737_12310" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071501080_809632_12311" name="testPrimitveByteResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071513060_502337_12314" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071518152_655200_12315" name="testPrimitiveCharResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071534731_755774_12318" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071552600_208896_12319" name="testPrimitiveLongResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071578733_60264_12322" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071581985_872279_12323" name="testPrimitiveFloatResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071605977_773876_12327" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1597071609533_899191_12328" name="testPrimitveDoubleResult" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1597071625998_788795_12331" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_2aa0154_1283334300689_278924_1761" name="ParentService" isAbstract="true">
                <ownedOperation xmi:id="_16_8_2aa0154_1283339172911_957412_1918" name="parentServiceMethod" visibility="public">
                  <ownedParameter xmi:id="_16_8_2aa0154_1283339188090_484464_1921" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_1c200dd_1278506850265_501599_1782" name="JEAFSecurityTestService">
                <ownedComment xmi:id="_16_8_1c200dd_1278513000421_351431_2118" body="Test Service for the Security functionality. It provides Methods to check if the login function is working correctly." annotatedElement="_16_8_1c200dd_1278506850265_501599_1782"/>
                <ownedOperation xmi:id="_16_8_1c200dd_1278507494171_90737_1867" name="checkCurrentUser" visibility="public">
                  <ownedComment xmi:id="_16_8_1c200dd_1278513136250_447415_2119" body="Method returns the currently user who is loged in. &#xA;&#xA;@return loged in User." annotatedElement="_16_8_1c200dd_1278507494171_90737_1867"/>
                  <ownedParameter xmi:id="_16_8_2aa0154_1279170581699_684977_1768" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_2aa0154_1279534073807_745010_1791" name="checkInvalidServiceAccess" visibility="public">
                  <ownedParameter xmi:id="_16_8_2aa0154_1279534130763_16027_1931" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_282013d_1283865339465_32056_1831" name="checkCurrentAnonymousUser" visibility="public">
                  <ownedComment xmi:id="_16_8_282013d_1283873925202_551504_1833" body="checks if the attribute of the currentUser which is an anonymous user are set correctly." annotatedElement="_16_8_282013d_1283865339465_32056_1831"/>
                  <ownedParameter xmi:id="_16_8_282013d_1283865720851_723861_2195" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1224535613264_399955_496" name="BusinessObjectTestService">
                <ownedComment xmi:id="_16_8_2aa0154_1282890857779_501589_1759" body="The BusinessObjectTest service provides methods that can be used to tests JEAFs implementation of business objects. All the offered method will be used by JEAF JUnit tests.&#xA;&#xA;This is a multi line comment" annotatedElement="_12_5_2aa0154_1224535613264_399955_496"/>
                <ownedComment xmi:id="_16_8_2aa0154_1282893666962_268591_1895" body="This is the second comment of this service. This is just intended to test JEAF Generator." annotatedElement="_12_5_2aa0154_1224535613264_399955_496"/>
                <ownedComment xmi:id="_16_8_2aa0154_1282893729161_653566_1896" body="">
                  <ownedComment xmi:id="_16_8_2aa0154_1282893744801_345111_1897" body="Comment with an empty body" annotatedElement="_16_8_2aa0154_1282893729161_653566_1896"/>
                </ownedComment>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1239141238874_234761_903" name="testAttributeAccess" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1239141259593_158235_908" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1239141272515_420825_909" name="testBusinessMethods" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1239141277983_568464_914" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1224535643808_608596_515" name="testBusinessObjectsWithManyToManyAssociations" visibility="public">
                  <ownedComment xmi:id="_12_5_2aa0154_1224537700082_443535_869" body="Method tests the business objects that are generated by the JEAF Generator. This test cases cares about many-to-many associations between service objects.&#xA;" annotatedElement="_12_5_2aa0154_1224535643808_608596_515"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1224535649448_325954_518" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1224537659582_458886_864" name="testServiceObjectsWithOneToManyAssociations" visibility="public">
                  <ownedComment xmi:id="_12_5_2aa0154_1224537718691_307628_870" body="Method tests the business objects that are generated by the JEAF Generator. This test cases cares about one-to-many associations between service objects.&#xA;" annotatedElement="_12_5_2aa0154_1224537659582_458886_864"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1224537666770_811327_868" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_2aa0154_1224537736238_52093_871" name="testServiceObjectsWithOneToOneAssociations" visibility="public">
                  <ownedComment xmi:id="_12_5_2aa0154_1224537773300_977837_876" body="Method tests the business objects that are generated by the JEAF Generator. This test cases cares about one-to-one associations between service objects.&#xA;" annotatedElement="_12_5_2aa0154_1224537736238_52093_871"/>
                  <ownedParameter xmi:id="_12_5_2aa0154_1224537740706_493758_875" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_12_5_1ea00f4_1226076687293_993079_527" name="testCreateSimpleBusinessObject" visibility="public">
                  <ownedParameter xmi:id="_12_5_1ea00f4_1226076704292_595050_531" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1238534747208_255511_973" name="testBusinessObjectsWithInheritance" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1238534785452_47657_980" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1238536840277_290781_1102" name="testMToNReleation" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1238536858324_410894_1107" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1242149869968_943737_1190" name="updateBusinessObject" visibility="public">
                  <ownedComment xmi:id="_16_8_2aa0154_1282901739398_360409_2089" body="Method updates the business object with the passed id." annotatedElement="_16_0_1_2aa0154_1242149869968_943737_1190"/>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1242150772625_614378_1204" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299227908125_239860_2290" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1242150716578_680611_1198" name="createBusinessObject" visibility="public">
                  <ownedParameter xmi:id="_16_8_1981032c_1299227920314_406895_2297" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1245187089953_364309_535" name="deleteBusinessObject" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1245187110875_763040_539" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299227924887_247546_2299" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1245270462312_609109_535" name="testQueryWithJPAQL" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1245270492156_464532_547" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1258116559484_420198_801" name="testAOneToBOne" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1258116575468_35592_806" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1258116575500_286551_807" name="testBOneToAOne" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1258116587421_288220_812" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1258116598031_784043_813" name="createXOne" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1258116616546_910514_818" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1262076063671_943843_1009" name="createABCObjects" visibility="public">
                  <ownedParameter xmi:id="_16_8_1981032c_1299227949216_672782_2302" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1245270478609_15084_540" name="testNativeQuery" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1245270484765_372884_545" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1262076595812_180478_1050" name="getCManys" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1262077890968_994573_1062" name="pBOneID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299227963308_639582_2304" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1981032c_1299228033661_710886_2312" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1981032c_1299228033661_576624_2311" name=""/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1262076111687_477929_1015" name="addCMany" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1262077868937_918552_1060" name="pBOneID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299227978487_421161_2306" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1262076166203_403886_1028" name="clearCMany" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1262077946937_533601_1069" name="pBOneID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299227993008_716524_2308" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1262076141062_835696_1020" name="removeCMany" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1262077933531_425822_1066" name="pBOneID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1262077933531_377845_1067" name="pCManyID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1981032c_1299228010159_534137_2310" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_195c032a_1286181276813_855823_2268" name="testDynamicPropertyAccess" visibility="public">
                  <ownedParameter xmi:id="_16_8_195c032a_1286181292651_308810_2272" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246b03eb_1308554740866_542374_4107" name="testCreateBusinessObjectsWithUserTypeMapping" visibility="public">
                  <ownedParameter xmi:id="_16_8_246b03eb_1308554772470_682861_4111" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246b03eb_1308555187095_812485_5086" name="testReadBusinessObjectsWithUserTypeMapping" visibility="public">
                  <ownedParameter xmi:id="_16_8_246b03eb_1308555212355_824173_5090" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246b03eb_1315204973401_381303_5556" name="createClassA" visibility="public">
                  <ownedParameter xmi:id="_16_8_246b03eb_1315204999112_147647_5560" name="pClassA" visibility="public" type="_16_8_195e0323_1311660441223_149702_2498"/>
                  <ownedParameter xmi:id="_16_8_246b03eb_1315204999112_463945_5561" name="" visibility="public" type="_16_8_195e0323_1311660441223_149702_2498" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246b03eb_1315205077165_227786_5562" name="updateClassA" visibility="public">
                  <ownedParameter xmi:id="_16_8_246b03eb_1315205094764_675301_5566" name="pClassA" visibility="public" type="_16_8_195e0323_1311660441223_149702_2498"/>
                  <ownedParameter xmi:id="_16_8_246b03eb_1315205094767_302466_5567" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_246b03eb_1315205098407_390228_5568" name="getClassA" visibility="public">
                  <ownedParameter xmi:id="_16_8_246b03eb_1315205118492_511776_5572" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_246b03eb_1315205118495_577557_5573" name="" visibility="public" type="_16_8_195e0323_1311660441223_149702_2498" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_248d03f8_1336575770513_812086_2812" name="testInitialObjectCache" visibility="public">
                  <ownedParameter xmi:id="_16_8_248d03f8_1336575789800_917727_2815" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_248d03f8_1336575789910_124965_2816" name="testObjectCacheReloading" visibility="public">
                  <ownedParameter xmi:id="_16_8_248d03f8_1336575811274_240058_2819" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_245203ed_1352138504046_378813_3850" name="testJDBCWorker" visibility="public">
                  <ownedParameter xmi:id="_16_8_245203ed_1352138515296_141125_3853" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_245203ed_1352138515325_553520_3854" name="testTransactionListener" visibility="public">
                  <ownedParameter xmi:id="_16_8_245203ed_1352138548615_865163_3856" name="pFail" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_8_245203ed_1352138548617_140164_3857" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_1933031a_1390246361330_958472_4739" name="testFlush" visibility="public">
                  <ownedParameter xmi:id="_16_8_1933031a_1390246394476_667550_4745" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635434956233_669647_6995" name="deprectedOperation" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635434971557_558572_6998" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1236351027406_465349_437" name="InternalStuffService">
                <ownedOperation xmi:id="_16_8_1933031a_1390246400083_958996_4746" name="testFlush" visibility="public">
                  <ownedParameter xmi:id="_16_8_1933031a_1390246424001_478898_4750" name="pObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <ownedParameter xmi:id="_16_8_1933031a_1390246424001_319480_4751" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_18_5_3_1ea00f4_1547573655484_425967_10128" name="ValidationTestService">
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547573977401_798750_10615" name="validateInNOutput" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547574096834_71326_10620" name="pString1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547574096851_42583_10621" name="pString2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547574005051_433914_10618" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547576241351_550756_10677" name="notValidOutput" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576294634_628101_10679" name="pString1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576294634_831127_10680" name="pString2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576294634_615892_10681" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547576379667_721750_10694" name="validateOutputOnly" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576379667_276248_10695" name="pString1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576379667_251898_10696" name="pString2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576379667_129320_10697" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547576441117_75635_10711" name="validateInputOnly" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576441117_440062_10712" name="pString1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576441117_790060_10713" name="pInteger" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576441117_536550_10714" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547576539151_492259_10720" name="noMethodValidation" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576539151_194732_10721" name="pString1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576539151_875213_10722" name="pBool" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547576539151_851492_10723" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1547622921461_318492_11419" name="createValidationTestObject" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547622946489_715989_11421" name="pTestObject" visibility="public" type="_18_5_3_1ea00f4_1547622684803_659125_11278"/>
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1547622946489_579157_11422" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1268930343578_99415_610" name="JEAFAuthorizationTestService">
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268930375734_715376_629" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268930402031_557854_632" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_0_1_2aa0154_1268930402062_607937_633" name="doAnotherthing1" visibility="public">
                  <ownedParameter xmi:id="_16_0_1_2aa0154_1268930436125_324786_636" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_1c200dd_1278507535687_110013_1872" name="MailTestService">
                <ownedOperation xmi:id="_16_8_1b700da_1280243150232_531106_1751" name="testCreateEmptyMessage" visibility="public">
                  <ownedComment xmi:id="_16_8_1b700da_1280243452914_925216_1757" body="Test of method createMessage(). Creates an empty MimeMessage." annotatedElement="_16_8_1b700da_1280243150232_531106_1751"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280243157756_939400_1754" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_1b700da_1280243183120_220213_1755" name="testCreateFilledMessage" visibility="public">
                  <ownedComment xmi:id="_16_8_1b700da_1280243482769_825124_1758" body="Test of method createMessage( String pContent, String pSubject, Set&lt;Address> pRecipients ). &#xA;Creates a MimeMessage filled with the content, subject and recipients specified within the parameters." annotatedElement="_16_8_1b700da_1280243183120_220213_1755"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280315948445_481689_1751" name="pAddress" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316021065_270120_1753" name="pPersonal" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316042613_116409_1754" name="pCharSet" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316056492_675791_1755" name="pContent" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316074948_584182_1756" name="pSubject" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280243191386_979490_1758" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_1b700da_1280241239736_637679_1837" name="testSendMail" visibility="public">
                  <ownedComment xmi:id="_16_8_1b700da_1280243497823_299952_1759" body="Test of method sendMail( Message pMessage ). &#xA;Starts a local SMTPServer, creates a MimeMessage and tries to send it to the SMTPServer." annotatedElement="_16_8_1b700da_1280241239736_637679_1837"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131773_420267_1985" name="pAddress" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131798_115391_1986" name="pPersonal" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131808_684846_1987" name="pCharSet" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131816_229659_1988" name="pContent" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131824_432293_1989" name="pSubject" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316131832_274477_1990" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_8_1b700da_1280243200619_871382_1759" name="testExtendedSendMail" visibility="public">
                  <ownedComment xmi:id="_16_8_1b700da_1280243505233_519795_1760" body="Test of method sendMail( String pContent, String pSubject, Set&lt;Address> pRecipients ). &#xA;Starts a local SMTPServer and tries to send a Message to the SMTPServer using the given parameters." annotatedElement="_16_8_1b700da_1280243200619_871382_1759"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135412_596282_1992" name="pAddress" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135425_848037_1993" name="pPersonal" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135433_876772_1994" name="pCharSet" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135440_248236_1995" name="pContent" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135448_813220_1996" name="pSubject" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_16_8_1b700da_1280316135456_752004_1997" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1211615508056_445944_843" name="RequiredService_2">
                <ownedOperation xmi:id="_12_5_1ea00f4_1212741629068_154983_972" name="testContextHandling_2" visibility="public">
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212741638968_822051_979" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1211615495495_206652_824" name="RequiredService_1">
                <ownedOperation xmi:id="_12_5_1ea00f4_1212741604037_116927_966" name="testContextHandling_1" visibility="public">
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212747955716_101955_1272" name="pContextObject" visibility="public" type="_12_5_1ea00f4_1212744359754_198540_1246" direction="inout"/>
                  <ownedParameter xmi:id="_12_5_1ea00f4_1212747955747_723559_1273" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563810232004_508527_12364" name="SubclassWithIDnMethod">
                <generalization xmi:id="_18_5_3_1ea00f4_1563810232004_833601_12367" isSubstitutable="true" general="_18_5_3_1ea00f4_1563810232004_842253_12363"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563810232004_854087_12370" name="attr" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1563810390235_605883_12459" name="doMore" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563810398847_237373_12462" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563778436774_353737_11308" name="IdentifiableServiceObject">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563778700404_619179_11330" name="hello" visibility="private" clientDependency="_18_5_3_1ea00f4_1565756874228_565324_11764" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1565756899902_685086_11770" name="country" visibility="private" clientDependency="_18_5_3_1ea00f4_1565756916822_842079_11774">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1565676148611_124438_13100" name="ReadonlyServiceObject">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1565676190389_103045_13123" name="readonly" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644389741037_769130_7177" name="readonlyDefault" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644389775708_854251_7179" name="" value="4711"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246603ec_1344520197406_875355_2353" name="SessionContextValues">
                <ownedAttribute xmi:id="_16_8_246603ec_1344520242415_39216_2375" name="timestamp" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_8_246603ec_1344520257090_130314_2377" name="counter" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1311660441223_149702_2498" name="ClassA">
                <ownedAttribute xmi:id="_16_8_195e0323_1311660486000_661505_2536" name="name" visibility="private" clientDependency="_18_5_3_1ea00f4_1565674163155_434257_12624 _16_8_246b03eb_1315371090079_292492_2455" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_8_195e0323_1311660534790_740410_2549" name="oneB" visibility="private" type="_16_8_195e0323_1311660470211_906951_2518" association="_16_8_195e0323_1311660534790_32273_2548">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1311660584833_825501_2566" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1311660584832_380088_2565" name=""/>
                </ownedAttribute>
                <ownedOperation xmi:id="_16_8_195e0323_1311660494911_727322_2538" name="calculate" visibility="public">
                  <ownedParameter xmi:id="_16_8_195e0323_1311660506548_967209_2541" name="" visibility="public" type="_9_5_f720368_1110473546612_897100_7595" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1212744359754_198540_1246" name="TestServiceObject">
                <ownedComment xmi:id="_16_8_2aa0154_1282895459990_207070_2088" body="This is a service object that was modeled in order to test the output of the JEAF Generator." annotatedElement="_12_5_1ea00f4_1212744359754_198540_1246"/>
                <ownedAttribute xmi:id="_12_5_1ea00f4_1212744892516_182985_1270" name="key" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_12_5_1ea00f4_1212744782268_930508_1265" name="info" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_8_244003e2_1360565518065_693390_3885" name="someTest" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_244003e2_1360565567202_32419_3888" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_244003e2_1360565567202_543930_3887" name="" value="1"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_244003e2_1360566040437_730829_3889" name="dummy1" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_244003e2_1360566072102_60577_3892" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_244003e2_1360566072102_247418_3891" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_244003e2_1360566076107_238775_3893" name="dummy2" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_244003e2_1360566099703_93070_3896" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_244003e2_1360566099702_497528_3895" name="" value="1"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_244003e2_1360566104133_907795_3897" name="dummy3" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_244003e2_1360566119653_561768_3900" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_244003e2_1360566119653_128981_3899" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563810232004_652573_12365" name="SubclassWithoutIDnMethod">
                <generalization xmi:id="_18_5_3_1ea00f4_1563810232004_701794_12366" isSubstitutable="true" general="_18_5_3_1ea00f4_1563810232004_842253_12363"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563810232004_530772_12372" name="attr" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1563810402091_566392_12463" name="doLess" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563810409496_74487_12466" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1213515897336_719895_979" name="WrapperDatatypeServiceObject">
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515914462_606845_998" name="myBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515925520_357191_1000" name="myByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515946197_605733_1002" name="myCharacter" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515961712_47738_1004" name="myDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515976493_85805_1006" name="myFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515986456_990813_1008" name="myLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515994151_869248_1010" name="myShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213516003457_230328_1012" name="myByteArray" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1213516021116_498869_1015" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1213516021116_508410_1014" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1312551534447_835168_4724" name="TestLoadStrategy">
                <ownedAttribute xmi:id="_16_8_195e0323_1312551548587_451916_4742" name="loadInternalData" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_195e0323_1312551569638_95657_4744" name="loadPublicData" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635146749299_876214_7764" name="loadDeprecatedData" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1547622684803_659125_11278" name="ValidationTestObject">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1547622731294_289584_11301" name="myEMail" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1547622782095_620436_11304" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1311660470211_906951_2518" name="ClassB">
                <ownedAttribute xmi:id="_16_8_195e0323_1311660534791_127209_2550" name="manyAs" visibility="private" type="_16_8_195e0323_1311660441223_149702_2498" isOrdered="true" association="_16_8_195e0323_1311660534790_32273_2548">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1311660569501_845819_2560" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1311660569501_186399_2559" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_8_246b03eb_1315205216722_795897_5574" name="intValue" visibility="private" clientDependency="_16_8_246b03eb_1315371098566_343468_2458" type="_9_5_f720368_1110473546612_167906_7631"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563809848745_834465_12316" name="SubclassWithID">
                <generalization xmi:id="_18_5_3_1ea00f4_1563809868158_13954_12340" isSubstitutable="true" general="_18_5_3_1ea00f4_1563778436774_353737_11308"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563809958893_771179_12349" name="attr" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1213515458699_700727_915" name="SimpleDatatypeServiceObject">
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515498801_319068_934" name="myBoolean" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515513597_926698_936" name="myByte" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515519071_947313_938" name="myChar" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515528018_890030_940" name="myDouble" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515535322_320222_942" name="myFloat" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515541875_991249_944" name="myLong" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515544878_108836_946" name="myShort" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_12_5_2aa0154_1213515555623_282612_948" name="myByteArray" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1213515582665_263282_951" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1213515582665_615388_950" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1c200dd_1278516095593_156655_2123" name="PrincipalWrapper">
                <ownedAttribute xmi:id="_16_8_1c200dd_1278516160281_722236_2142" name="lPrincipal" visibility="private" type="_9_5_f720368_1110473546690_967636_8503"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1257876074640_633242_929" name="InterceptorTestApplicationException"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563809813380_839706_12293" name="SubclassWithoutID">
                <generalization xmi:id="_18_5_3_1ea00f4_1563809873000_186426_12343" isSubstitutable="true" general="_18_5_3_1ea00f4_1563778436774_353737_11308"/>
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563809939362_658320_12347" name="attr" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_1ea00f4_1563810232004_842253_12363" name="IdentifiableServiceObjectWithMethod">
                <ownedAttribute xmi:id="_18_5_3_1ea00f4_1563810232004_524343_12368" name="hello" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedOperation xmi:id="_18_5_3_1ea00f4_1563810370343_883825_12455" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_1ea00f4_1563810384738_700081_12458" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1311660534790_32273_2548" name="" memberEnd="_16_8_195e0323_1311660534790_740410_2549 _16_8_195e0323_1311660534791_127209_2550"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598335128333_216344_12445" name="ModelWrapperTypeServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335154435_513509_12468" name="aBoolean" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598422978115_703974_12642" name="aInt" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598334544480_733589_12167" name="PrimitiveServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334623789_218014_12214" name="aBoolean" visibility="private" clientDependency="_18_5_3_29b40597_1598423199245_398738_12649 _18_5_3_29b40597_1598335181711_681061_12472">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334637363_398443_12216" name="aByte" visibility="private" clientDependency="_18_5_3_29b40597_1598335189424_352220_12475">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334646750_305063_12218" name="aShort" visibility="private" clientDependency="_18_5_3_29b40597_1598420109732_332601_12599">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334654958_213339_12220" name="aInt" visibility="private" clientDependency="_18_5_3_29b40597_1598423216781_329735_12656 _18_5_3_29b40597_1598420122774_640079_12606">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334671725_232658_12222" name="aLong" visibility="private" clientDependency="_18_5_3_29b40597_1598420134571_210479_12613">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334703697_958578_12224" name="aFloat" visibility="private" clientDependency="_18_5_3_29b40597_1598420147448_193054_12620">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334717707_893822_12226" name="aDouble" visibility="private" clientDependency="_18_5_3_29b40597_1598420158582_577104_12627">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598338565410_326689_12489" name="aChar" visibility="private" clientDependency="_18_5_3_29b40597_1598420169369_571893_12634">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598334593134_142681_12191" name="WrapperTypesServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334738261_760142_12428" name="aBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598334997728_963896_12430" name="aByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335009064_728139_12432" name="aShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335018723_162863_12434" name="aInt" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335035227_526765_12437" name="aLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335054251_690059_12439" name="aFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598335083428_153264_12441" name="aDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598338594993_521709_12491" name="aChar" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598341182729_934336_12497" name="PrimitiveArrayServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598341215324_304855_12520" name="booleanArray" visibility="private" clientDependency="_18_5_3_29b40597_1599543452360_928035_11920">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1598341480013_831678_12526" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1598341480013_525107_12525" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598341692279_133910_12531" name="WrapperArrayServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598341738007_962301_12555" name="booleanArray" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1598341858987_874989_12562" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1598341858986_333446_12561" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1598343828344_920402_12568" name="ModelWrapperArrayServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1598343861284_734571_12591" name="booleanArray" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1598343882396_137139_12594" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1598343882395_705579_12593" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420109732_332601_12599" name="" supplier="_18_5_3_29b40597_1598335009064_728139_12432" client="_18_5_3_29b40597_1598334646750_305063_12218"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420122774_640079_12606" name="" supplier="_18_5_3_29b40597_1598335018723_162863_12434" client="_18_5_3_29b40597_1598334654958_213339_12220"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420134571_210479_12613" name="" supplier="_18_5_3_29b40597_1598335035227_526765_12437" client="_18_5_3_29b40597_1598334671725_232658_12222"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420147448_193054_12620" name="" supplier="_18_5_3_29b40597_1598335054251_690059_12439" client="_18_5_3_29b40597_1598334703697_958578_12224"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420158582_577104_12627" name="" supplier="_18_5_3_29b40597_1598335083428_153264_12441" client="_18_5_3_29b40597_1598334717707_893822_12226"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598420169369_571893_12634" name="" supplier="_18_5_3_29b40597_1598338594993_521709_12491" client="_18_5_3_29b40597_1598338565410_326689_12489"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598423199245_398738_12649" name="" supplier="_18_5_3_29b40597_1598335154435_513509_12468" client="_18_5_3_29b40597_1598334623789_218014_12214"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598423216781_329735_12656" name="" supplier="_18_5_3_29b40597_1598422978115_703974_12642" client="_18_5_3_29b40597_1598334654958_213339_12220"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1599543452360_928035_11920" name="" supplier="_18_5_3_29b40597_1598341738007_962301_12555" client="_18_5_3_29b40597_1598341215324_304855_12520"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1635136250833_749023_7031" name="DeprecatedTestService">
                <ownedOperation xmi:id="_19_0_4_29b40597_1635136266383_973562_7050" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635136275059_659494_7053" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635137388281_262393_7092" name="PartiallyDeprecatedServiceObject">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635137412288_516469_7113" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635137441832_459633_7115" name="outdated" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635137722307_357597_7664" name="deprecatedRef" visibility="private" type="_19_0_4_29b40597_1635137313132_313619_7067" association="_19_0_4_29b40597_1635137722307_260252_7663">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1635137738219_424979_7675" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1635137738219_14584_7674" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635137753098_524463_7683" name="deprecatedRefs" visibility="private" type="_18_5_3_1ea00f4_1547622684803_659125_11278" association="_19_0_4_29b40597_1635137753098_481889_7682">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1635137768094_371083_7694" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1635137768094_635325_7693" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1644402649054_842940_10002" name="readonlyDefault" visibility="private" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644402657098_598528_10004" name="" value="4711"/>
                </ownedAttribute>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635137459298_428329_7117" name="doSomethingDeprecated" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635137469841_782180_7120" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635338288295_273414_8278" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635338309520_439491_8280" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635338309521_43441_8281" name="pParam2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635338309522_748830_8282" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635137313132_313619_7067" name="DeprecatedServiceObject">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635137332082_160086_7088" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1635137722307_260252_7663" name="" memberEnd="_19_0_4_29b40597_1635137722307_427742_7665 _19_0_4_29b40597_1635137722307_357597_7664">
                <ownedEnd xmi:id="_19_0_4_29b40597_1635137722307_427742_7665" name="" visibility="private" type="_19_0_4_29b40597_1635137388281_262393_7092" association="_19_0_4_29b40597_1635137722307_260252_7663"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1635137753098_481889_7682" name="" memberEnd="_19_0_4_29b40597_1635137753098_522923_7684 _19_0_4_29b40597_1635137753098_524463_7683">
                <ownedEnd xmi:id="_19_0_4_29b40597_1635137753098_522923_7684" name="" visibility="private" type="_19_0_4_29b40597_1635137388281_262393_7092" association="_19_0_4_29b40597_1635137753098_481889_7682"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635145953476_483621_7740" name="ManufacturerQuery">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145974460_209595_7761" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635145752815_801579_7706" name="ProductQuery">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145828963_201597_7728" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145852079_490132_7730" name="minAvailability" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145879987_659121_7732" name="minPrice" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145890705_932094_7734" name="maxPrice" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635145922209_97860_7736" name="manufacturer" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635146779673_866944_7768" name="DeprectedLoadStrategy">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635146808269_556435_7790" name="loadObjects" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1635146822954_736138_7792" name="loadExternalData" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1635153694710_419427_7859" name="Farbe">
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153711584_740413_7878" name="WEISS" classifier="_19_0_4_29b40597_1635153694710_419427_7859"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153716947_860261_7880" name="SCHWARZ" classifier="_19_0_4_29b40597_1635153694710_419427_7859"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153727582_576567_7882" name="BLAU" classifier="_19_0_4_29b40597_1635153694710_419427_7859"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1635153685729_778042_7839" name="Color">
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153734688_40916_7884" name="WHITE" classifier="_19_0_4_29b40597_1635153685729_778042_7839"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153740940_857835_7886" name="BLACK" classifier="_19_0_4_29b40597_1635153685729_778042_7839"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153749733_442553_7888" name="GREEN" classifier="_19_0_4_29b40597_1635153685729_778042_7839"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153755241_582170_7890" name="LightGreen" classifier="_19_0_4_29b40597_1635153685729_778042_7839"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1635153764034_206157_7892" name="LIGHT_GREEN" classifier="_19_0_4_29b40597_1635153685729_778042_7839"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635156479068_519757_7898" name="DeprecatedAppException"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635156496457_136172_7920" name="DeprecatedSysException"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1585812926194_823795_11798" name="rest">
              <packagedElement xmi:type="uml:Interface" xmi:id="_18_5_3_29b40597_1580846757252_258376_13127" name="RESTTestService">
                <ownedOperation xmi:id="_18_5_3_29b40597_1580846799436_397375_13168" name="getResource" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846833054_928128_13170" name="pID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846833055_233663_13171" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1580846842651_4997_13172" name="getTestServiceObject" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846864701_702165_13175" name="" visibility="public" type="_12_5_1ea00f4_1212744359754_198540_1246" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1580846870708_269616_13176" name="updateTestServiceObject" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846900653_287854_13178" name="pObject" visibility="public" type="_12_5_1ea00f4_1212744359754_198540_1246"/>
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846900654_899851_13179" name="" visibility="public" type="_12_5_1ea00f4_1212744359754_198540_1246" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1580846939940_842273_13194" name="doSomeNotRESTThing" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580846952853_26503_13197" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_18_5_3_29b40597_1580899081193_940544_12219" name="doSomethingRESTy" visibility="public">
                  <ownedParameter xmi:id="_18_5_3_29b40597_1580899095763_489238_12222" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634193652680_202119_6688" name="yetAnotherRESTOperation" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634193741754_92076_6690" name="pID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634193741755_297294_6691" name="pToken" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634193741756_319324_6692" name="pQueryParam1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634227379883_4925_7183" name="pCookieParam" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634193741756_781437_6693" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634273134831_591486_6894" name="handleBeanParam1" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634273171707_265924_6896" name="pContext" visibility="public" type="_19_0_4_29b40597_1634228437084_1997_7202"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634273171708_684925_6897" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1634273182067_181949_6898" name="handleBeanParam1" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634273202138_240550_6900" name="pBeanParam" visibility="public" type="_19_0_4_29b40597_1634273046627_846167_6839"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1634273754922_760707_7181" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635223697113_461413_7290" name="deprecatedOperation" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223714902_704621_7293" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635223722981_257347_7294" name="deprecatedParameter" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223764360_175587_7296" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223764363_694833_7297" name="pParam2" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223764364_654087_7298" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635223776787_356649_7299" name="deprectaedReturnValue" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223796924_27311_7301" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635223796926_299424_7302" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635340419995_205364_8607" name="deprecatedAsyncParam" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635340453844_991923_8611" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635340436856_70868_8610" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
                <ownedOperation xmi:id="_19_0_4_29b40597_1635340547388_890023_8618" name="deprecatedAsync" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635340547389_807437_8619" name="pParam1" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635340547390_457695_8621" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_18_5_3_29b40597_1580846780260_840841_13148" name="AsyncRESTService"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1635340281989_329980_8577" name="DeprecatedRESTService">
                <ownedOperation xmi:id="_19_0_4_29b40597_1635340346384_395412_8596" name="doSomething" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1635340356151_248559_8599" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_29b40597_1598334510422_293405_12133" name="objectmapping">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598335181711_681061_12472" name="" supplier="_18_5_3_29b40597_1598334738261_760142_12428" client="_18_5_3_29b40597_1598334623789_218014_12214"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1598335189424_352220_12475" name="" supplier="_18_5_3_29b40597_1598334997728_963896_12430" client="_18_5_3_29b40597_1598334637363_398443_12216"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_18_5_3_29b40597_1599576767482_160708_11955" name="PrimitiveReferenceServiceObject">
                <ownedAttribute xmi:id="_18_5_3_29b40597_1599576900092_342853_12050" name="aBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561" association="_18_5_3_29b40597_1599576900092_624573_12049">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1599576912933_263413_12073" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1599576912933_757636_12072" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1599576916235_866236_12083" name="booleanSet" visibility="private" type="_9_5_f720368_1110473546612_366010_7561" association="_18_5_3_29b40597_1599576916234_791850_12082">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1599576927285_952233_12106" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1599576927285_191086_12105" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1599580760457_368663_12243" name="buffers" visibility="private" type="_9_5_f720368_1110473546612_225069_7693" association="_18_5_3_29b40597_1599580760457_406599_12242">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1599580776815_619168_12266" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1599580776815_247896_12265" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1599580941092_403844_12304" name="strings" visibility="private" type="_9_5_f720368_1110473546612_692218_7691" association="_18_5_3_29b40597_1599580941092_679909_12303">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1599580950710_769765_12327" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1599580950710_908537_12326" name=""/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_18_5_3_29b40597_1599628806399_175473_12374" name="stringArray" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_29b40597_1599628823394_276866_12377" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_29b40597_1599628823393_141584_12376" name=""/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_29b40597_1599576900092_624573_12049" name="" memberEnd="_18_5_3_29b40597_1599576900092_958502_12051 _18_5_3_29b40597_1599576900092_342853_12050">
                <ownedEnd xmi:id="_18_5_3_29b40597_1599576900092_958502_12051" name="" visibility="private" type="_18_5_3_29b40597_1599576767482_160708_11955" association="_18_5_3_29b40597_1599576900092_624573_12049"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_29b40597_1599576916234_791850_12082" name="" memberEnd="_18_5_3_29b40597_1599576916235_670045_12084 _18_5_3_29b40597_1599576916235_866236_12083">
                <ownedEnd xmi:id="_18_5_3_29b40597_1599576916235_670045_12084" name="" visibility="private" type="_18_5_3_29b40597_1599576767482_160708_11955" association="_18_5_3_29b40597_1599576916234_791850_12082"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_29b40597_1599580760457_406599_12242" name="" memberEnd="_18_5_3_29b40597_1599580760457_19420_12244 _18_5_3_29b40597_1599580760457_368663_12243">
                <ownedEnd xmi:id="_18_5_3_29b40597_1599580760457_19420_12244" name="" visibility="private" type="_18_5_3_29b40597_1599576767482_160708_11955" association="_18_5_3_29b40597_1599580760457_406599_12242"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_29b40597_1599580941092_679909_12303" name="" memberEnd="_18_5_3_29b40597_1599580941093_479832_12305 _18_5_3_29b40597_1599580941092_403844_12304">
                <ownedEnd xmi:id="_18_5_3_29b40597_1599580941093_479832_12305" name="" visibility="private" type="_18_5_3_29b40597_1599576767482_160708_11955" association="_18_5_3_29b40597_1599580941092_679909_12303"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637043194196_665498_6378" name="MappingParent">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637043333162_56753_6424" name="name" visibility="private" clientDependency="_19_0_4_29b40597_1637043484437_45816_6484">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637043222214_266721_6400" name="MappingChild">
                <generalization xmi:id="_19_0_4_29b40597_1637043317634_637501_6423" isSubstitutable="true" general="_19_0_4_29b40597_1637043194196_665498_6378"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637043346221_694669_6426" name="value" visibility="private" clientDependency="_19_0_4_29b40597_1637043490115_241722_6487">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637043358513_199825_6429" name="MappingParentDO">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637043405067_515162_6475" name="name" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637043380796_519283_6451" name="MappingChildDO">
                <generalization xmi:id="_19_0_4_29b40597_1637043398012_670_6474" isSubstitutable="true" general="_19_0_4_29b40597_1637043358513_199825_6429"/>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637043419282_988949_6477" name="value" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1637043484437_45816_6484" name="" supplier="_19_0_4_29b40597_1637043405067_515162_6475" client="_19_0_4_29b40597_1637043333162_56753_6424"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1637043490115_241722_6487" name="" supplier="_19_0_4_29b40597_1637043419282_988949_6477" client="_19_0_4_29b40597_1637043346221_694669_6426"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637043525778_805288_6498" name="OtherMappingObject">
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637043577477_846698_6519" name="value" visibility="private" clientDependency="_19_0_4_29b40597_1637043591043_589364_6522">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_19_0_4_29b40597_1637048799494_489547_8051" name="name" visibility="private" clientDependency="_19_0_4_29b40597_1637048823724_513352_8054">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedAttribute>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1637043591043_589364_6522" name="" supplier="_19_0_4_29b40597_1637043419282_988949_6477" client="_19_0_4_29b40597_1637043577477_846698_6519"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1637048823724_513352_8054" name="" supplier="_19_0_4_29b40597_1637043405067_515162_6475" client="_19_0_4_29b40597_1637048799494_489547_8051"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1630662942053_225892_6055" name="product">
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1630903794276_657953_6053" name="domain">
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903813759_114146_6076" name="AssortmentDO">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_404291_6083" name="products" visibility="private" type="_19_0_4_29b40597_1630903813760_999165_6078" association="_19_0_4_29b40597_1630903813764_475375_6082">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903813764_954046_6109" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903813764_73841_6110" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_11083_6084" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903813760_293679_6077" name="PriceDO">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_659486_6087" name="amount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_618810_6088" name="currency" visibility="private" type="_9_5_f720368_1110473546706_958934_8849"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903813760_999165_6078" name="ProductDO">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_372581_6093" name="assortments" visibility="private" type="_19_0_4_29b40597_1630903813759_114146_6076" association="_19_0_4_29b40597_1630903813764_475375_6082">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903813764_788997_6116" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903813764_50425_6117" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_9333_6094" name="pricesPerCurrency" visibility="private" type="_19_0_4_29b40597_1630903813760_293679_6077" association="_19_0_4_29b40597_1630903813764_221011_6086">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903813764_32539_6118" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903813764_31865_6119" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_715599_6095" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_712259_6096" name="description" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_315614_6097" name="vat" visibility="private" type="_19_0_4_29b40597_1630903813760_824178_6079" association="_19_0_4_29b40597_1630903813764_931308_6090">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903813764_87804_6120" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903813764_178287_6121" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_105266_6098" name="productCategory" visibility="private" type="_19_0_4_29b40597_1630903813760_809034_6080" association="_19_0_4_29b40597_1630903813764_177547_6091">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903813764_731584_6122" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903813764_25786_6123" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1630903813764_402128_6092" name="getPrice" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1630903813764_620891_6114" name="pCurrency" visibility="public" type="_9_5_f720368_1110473546706_958934_8849"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1630903813764_312997_6115" name="" visibility="public" type="_19_0_4_29b40597_1630903813760_293679_6077" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903813760_824178_6079" name="VatDO">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903813764_936708_6100" name="rate" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903813764_475375_6082" name="" memberEnd="_19_0_4_29b40597_1630903813764_404291_6083 _19_0_4_29b40597_1630903813764_372581_6093"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903813764_221011_6086" name="" memberEnd="_19_0_4_29b40597_1630903813764_656426_6111 _19_0_4_29b40597_1630903813764_9333_6094">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630903813764_656426_6111" name="" visibility="private" type="_19_0_4_29b40597_1630903813760_999165_6078" association="_19_0_4_29b40597_1630903813764_221011_6086"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903813764_931308_6090" name="" memberEnd="_19_0_4_29b40597_1630903813764_980486_6112 _19_0_4_29b40597_1630903813764_315614_6097">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630903813764_980486_6112" name="" visibility="private" type="_19_0_4_29b40597_1630903813760_999165_6078" association="_19_0_4_29b40597_1630903813764_931308_6090"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903813764_177547_6091" name="" memberEnd="_19_0_4_29b40597_1630903813764_683487_6113 _19_0_4_29b40597_1630903813764_105266_6098">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630903813764_683487_6113" name="" visibility="private" type="_19_0_4_29b40597_1630903813760_999165_6078" association="_19_0_4_29b40597_1630903813764_177547_6091"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1630903803280_605019_6054" name="pojo">
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903820948_115446_6315" name="Assortment">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820952_5094_6322" name="products" visibility="private" type="_19_0_4_29b40597_1630903820949_137846_6317" association="_19_0_4_29b40597_1630903820952_329140_6321">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903820956_828200_6348" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903820956_576095_6349" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820952_635673_6323" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903820949_582243_6316" name="Price">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820952_499959_6326" name="amount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820952_553005_6327" name="currency" visibility="private" type="_9_5_f720368_1110473546706_958934_8849"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903820949_137846_6317" name="Product">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820953_804984_6332" name="assortments" visibility="private" type="_19_0_4_29b40597_1630903820948_115446_6315" association="_19_0_4_29b40597_1630903820952_329140_6321">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903820956_360229_6355" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903820956_749907_6356" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820953_69630_6333" name="pricesPerCurrency" visibility="private" type="_19_0_4_29b40597_1630903820949_582243_6316" association="_19_0_4_29b40597_1630903820952_749401_6325">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903820956_486683_6357" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903820956_230920_6358" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820953_886915_6334" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820953_768341_6335" name="description" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820953_908013_6336" name="vat" visibility="private" type="_19_0_4_29b40597_1630903820949_165279_6318" association="_19_0_4_29b40597_1630903820953_179693_6330">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630903820957_605595_6359" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630903820957_365854_6360" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630997168171_538783_8071" name="productCategory" visibility="private" type="_19_0_4_29b40597_1630903813760_809034_6080" association="_19_0_4_29b40597_1630997168171_612790_8070">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1630997178938_547083_8082" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1630997178938_803762_8081" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1630903820953_781151_6331" name="getPrice" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1630903820956_722260_6353" name="pCurrency" visibility="public" type="_9_5_f720368_1110473546706_958934_8849"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1630903820956_995279_6354" name="" visibility="public" type="_19_0_4_29b40597_1630903820949_582243_6316" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1630903820949_165279_6318" name="VAT">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1630903820954_50687_6339" name="rate" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903820952_329140_6321" name="" memberEnd="_19_0_4_29b40597_1630903820952_5094_6322 _19_0_4_29b40597_1630903820953_804984_6332"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903820952_749401_6325" name="" memberEnd="_19_0_4_29b40597_1630903820956_126329_6350 _19_0_4_29b40597_1630903820953_69630_6333">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630903820956_126329_6350" name="" visibility="private" type="_19_0_4_29b40597_1630903820949_137846_6317" association="_19_0_4_29b40597_1630903820952_749401_6325"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630903820953_179693_6330" name="" memberEnd="_19_0_4_29b40597_1630903820956_192463_6352 _19_0_4_29b40597_1630903820953_908013_6336">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630903820956_192463_6352" name="" visibility="private" type="_19_0_4_29b40597_1630903820949_137846_6317" association="_19_0_4_29b40597_1630903820953_179693_6330"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1630997168171_612790_8070" name="" memberEnd="_19_0_4_29b40597_1630997168171_197002_8072 _19_0_4_29b40597_1630997168171_538783_8071">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1630997168171_197002_8072" name="" visibility="private" type="_19_0_4_29b40597_1630903820949_137846_6317" association="_19_0_4_29b40597_1630997168171_612790_8070"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1630903813760_809034_6080" name="ProductCategory">
                <ownedLiteral xmi:id="_19_0_4_29b40597_1630903813764_46160_6102" name="FOOD" classifier="_19_0_4_29b40597_1630903813760_809034_6080"/>
                <ownedLiteral xmi:id="_19_0_4_29b40597_1630903813764_636491_6103" name="NON_FOOD" classifier="_19_0_4_29b40597_1630903813760_809034_6080"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1634201839783_471313_7072" name="openapi">
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1633945419793_399741_6181" name="base">
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1633945444491_928896_6215" name="Product Base Definitions" clientDependency="_19_0_4_29b40597_1634016396561_273507_6373 _19_0_4_29b40597_1634016392155_348973_6370 _19_0_4_29b40597_1634018505692_21508_6388">
                  <ownedComment xmi:id="_19_0_4_29b40597_1633945506844_223341_6241" body="This component represents the Open API interface of the accounting service." annotatedElement="_19_0_4_29b40597_1633945444491_928896_6215"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634016392155_348973_6370" name="" supplier="_19_0_4_29b40597_1634016240660_990341_6310" client="_19_0_4_29b40597_1633945444491_928896_6215"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634016396561_273507_6373" name="" supplier="_19_0_4_29b40597_1634016302565_564401_6340" client="_19_0_4_29b40597_1633945444491_928896_6215"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634018505692_21508_6388" name="" supplier="_19_0_4_29b40597_1633945419793_399741_6181" client="_19_0_4_29b40597_1633945444491_928896_6215"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634013013862_167847_6157" name="Duration">
                  <ownedComment xmi:id="_19_0_4_29b40597_1634013013865_31214_6160" body="Type represents a duration.&#xA; &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.Dauer" annotatedElement="_19_0_4_29b40597_1634013013862_167847_6157"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634013013865_97390_6161" name="value" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634013218671_291253_6263" name="timeUnit" visibility="private" type="_19_0_4_29b40597_1634013013865_772449_6159">
                    <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1634013246502_444530_6265" name="" instance="_19_0_4_29b40597_1634013013868_323702_6168"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634013013865_671314_6158" name="MoneyAmount">
                  <ownedComment xmi:id="_19_0_4_29b40597_1634013013867_737459_6163" body="Type represents an amount of money.&#xA;       &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.GeldBetrag" annotatedElement="_19_0_4_29b40597_1634013013865_671314_6158"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634013013867_675469_6164" name="amount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729" isReadOnly="true">
                    <ownedComment xmi:id="_19_0_4_29b40597_1634053496482_448814_6434" body="The amount of money. Attribute is always set." annotatedElement="_19_0_4_29b40597_1634013013867_675469_6164"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634013013867_512779_6165" name="currencyCode" visibility="private" type="_19_0_4_29b40597_1645766794250_864848_9231" isReadOnly="true"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1634013013865_772449_6159" name="TimeUnit">
                  <ownedComment xmi:id="_19_0_4_29b40597_1634013013868_545723_6172" body="Enumeration represents time units.&#xA;     &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.ZeitEinheit" annotatedElement="_19_0_4_29b40597_1634013013865_772449_6159"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013867_639046_6166" name="MINUTE" classifier="_19_0_4_29b40597_1634013013865_772449_6159">
                    <ownedComment xmi:id="_19_0_4_29b40597_1634026583518_177074_6411" body="Literal represents time unit &quot;minutes&quot;." annotatedElement="_19_0_4_29b40597_1634013013867_639046_6166"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013867_35592_6167" name="HOUR" classifier="_19_0_4_29b40597_1634013013865_772449_6159"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013868_323702_6168" name="DAY" classifier="_19_0_4_29b40597_1634013013865_772449_6159"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013868_342366_6169" name="WEEK" classifier="_19_0_4_29b40597_1634013013865_772449_6159">
                    <ownedComment xmi:id="_19_0_4_29b40597_1634026853433_981657_6412" body="Literal represents time unit &quot;weeks&quot;.&#xA;This is the comments second line ;-)" annotatedElement="_19_0_4_29b40597_1634013013868_342366_6169"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013868_471633_6170" name="MONTH" classifier="_19_0_4_29b40597_1634013013865_772449_6159"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634013013868_601468_6171" name="YEAR" classifier="_19_0_4_29b40597_1634013013865_772449_6159"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1634016240660_990341_6310" name="Accounting TEST"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1634016302565_564401_6340" name="Accounting PROD"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634108447517_938911_6298" name="ChannelCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634108612035_25061_6403" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1646836099779_873088_8078" name="" value="&quot;WEBSHOP&quot;"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634108460027_728205_6320" name="Channel">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634108579126_161962_6376" name="channelType" visibility="private" type="_19_0_4_29b40597_1634108529355_19017_6342" association="_19_0_4_29b40597_1634108579126_215830_6375">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648654819688_351056_8778" body="Type of the channel" annotatedElement="_19_0_4_29b40597_1634108579126_161962_6376"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634108591309_963338_6387" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634108591309_242618_6386" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634108599734_786850_6395" name="channelCode" visibility="private" type="_19_0_4_29b40597_1634108447517_938911_6298" association="_19_0_4_29b40597_1634108599734_950704_6394">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648654952109_707222_8779" body="The business code of the channel" annotatedElement="_19_0_4_29b40597_1634108599734_786850_6395"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634108677949_591580_6411" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634108677949_928962_6410" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643785681809_612103_7466" name="code" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643788702023_804746_7468" name="selfServiceChannel" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_19_0_4_29b40597_1646836440637_357686_8079" name="" value="true"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634109388294_807351_6442" name="reseller" visibility="private" type="_19_0_4_29b40597_1634109363867_578933_6415" association="_19_0_4_29b40597_1634109388293_24785_6440">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647427724785_688157_7456" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647427724785_45933_7455" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1634108529355_19017_6342" name="ChannelType">
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634108544000_223430_6361" name="COUNTER" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634108552846_960686_6363" name="CALL_CENTER" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634108558592_829058_6365" name="MOBILE" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634108565622_341524_6367" name="TVM" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1634108569838_524739_6369" name="WEB" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1635343396152_150497_8661" name="LEGACY_POS" classifier="_19_0_4_29b40597_1634108529355_19017_6342"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634108579126_215830_6375" name="" memberEnd="_19_0_4_29b40597_1634108579126_246080_6377 _19_0_4_29b40597_1634108579126_161962_6376">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1634108579126_246080_6377" name="" visibility="private" type="_19_0_4_29b40597_1634108460027_728205_6320" association="_19_0_4_29b40597_1634108579126_215830_6375"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634108599734_950704_6394" name="" memberEnd="_19_0_4_29b40597_1634108599734_694732_6396 _19_0_4_29b40597_1634108599734_786850_6395">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1634108599734_694732_6396" name="" visibility="private" type="_19_0_4_29b40597_1634108460027_728205_6320" association="_19_0_4_29b40597_1634108599734_950704_6394"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634109363867_578933_6415" name="Reseller">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634109388293_324282_6441" name="channels" visibility="private" type="_19_0_4_29b40597_1634108460027_728205_6320" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1634109388293_24785_6440">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634109402740_495549_6452" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634109402740_655230_6451" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634117605319_341568_6483" name="products" visibility="private" type="_19_0_4_29b40597_1634117581860_381384_6457" association="_19_0_4_29b40597_1634117605319_182094_6482">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634117625973_794285_6500" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634117625972_545988_6499" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643365220372_657457_7671" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634119013850_911573_6554" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1644511357335_788287_10468" name="doSomething" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1644511372431_984353_10471" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1644513938586_849497_10487" name="returnPrimitive" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1644513949720_367211_10490" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634109388293_24785_6440" name="" memberEnd="_19_0_4_29b40597_1634109388293_324282_6441 _19_0_4_29b40597_1634109388294_807351_6442"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634117581860_381384_6457" name="Product">
                  <ownedComment xmi:id="_19_0_4_29b40597_1647358577470_548319_6748" body="Data type represents a product definition" annotatedElement="_19_0_4_29b40597_1634117581860_381384_6457"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634117605319_925569_6484" name="resellers" visibility="private" type="_19_0_4_29b40597_1634109363867_578933_6415" association="_19_0_4_29b40597_1634117605319_182094_6482">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634117617756_139428_6494" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634117617756_809962_6493" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643365242435_74080_7673" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634118897131_213454_6546" name="image" visibility="private">
                    <ownedComment xmi:id="_19_0_4_29b40597_1647358765034_526423_7747" body="Image describing the product." annotatedElement="_19_0_4_29b40597_1634118897131_213454_6546"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634118914231_192449_6549" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634118914231_640094_6548" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634118937747_472825_6550" name="link" visibility="private" type="_9_5_f720368_1110473546643_795445_7839"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634118978555_422483_6552" name="productID" visibility="private" type="_10_5_622020d_1132928313497_609212_7526" isReadOnly="true"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645768426105_905041_9292" name="supportedCurrencies" visibility="private" type="_19_0_4_29b40597_1645766794250_864848_9231" association="_19_0_4_29b40597_1645768426105_424956_9291">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645768443089_290941_9303" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645768443089_490907_9302" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645789481701_353009_9321" name="productCodes" visibility="private" type="_19_0_4_29b40597_1645766110569_100896_8767" association="_19_0_4_29b40597_1645789481701_506842_9320">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645789518205_794359_9330" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645789518205_166811_9329" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647358592013_920900_6749" name="description" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634117923342_700497_6532" name="sortiments" visibility="private" type="_19_0_4_29b40597_1634117906395_138598_6505" association="_19_0_4_29b40597_1634117923342_949432_6530">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647425011945_56722_7446" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647425011944_388953_7445" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649138259591_898927_8720" name="uri" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1649138300559_328806_8722" name="" value="&quot;https://products.anaptecs.de/123456789&quot;"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634117605319_182094_6482" name="" memberEnd="_19_0_4_29b40597_1634117605319_341568_6483 _19_0_4_29b40597_1634117605319_925569_6484"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634117906395_138598_6505" name="Sortiment">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634117923342_730680_6531" name="products" visibility="private" type="_19_0_4_29b40597_1634117581860_381384_6457" association="_19_0_4_29b40597_1634117923342_949432_6530">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634117935875_208728_6540" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634117935875_925512_6539" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634117923342_949432_6530" name="" memberEnd="_19_0_4_29b40597_1634117923342_730680_6531 _19_0_4_29b40597_1634117923342_700497_6532"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634133524525_345297_6452" name="DateObject">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137584833_525872_6496" name="localTime" visibility="private" type="_19_0_4_29b40597_1634137658901_265736_6534"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137820158_329499_6537" name="localDate" visibility="private" type="_19_0_4_29b40597_1634137673285_630223_6535"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137831132_833411_6539" name="localDateTime" visibility="private" type="_19_0_4_29b40597_1634137680668_587967_6536"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137843467_39745_6541" name="calendar" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137889684_208387_6565" name="sqlDate" visibility="private" type="_9_5_f720368_1110473546690_186067_8563"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634137903765_379419_6567" name="utilDate" visibility="private" type="_9_5_f720368_1110473546706_999299_8853"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634137875201_288640_6544" name="PrimitiveObject">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634133539480_442065_6473" name="aBoolean" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138504926_675661_6571" name="bBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138521201_887585_6573" name="cBoolean" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138546684_708122_6575" name="aByte" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138564730_773835_6577" name="bByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138579318_505972_6579" name="aShort" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138594224_561232_6581" name="bShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138674047_328740_6583" name="aInteger" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138691068_278159_6585" name="bInteger" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138710475_473560_6587" name="cInteger" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138738068_341162_6589" name="aLong" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138745089_20267_6591" name="bLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138893851_246930_6624" name="aBigInteger" visibility="private" type="_9_5_f720368_1110473546628_396621_7731"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138758040_555615_6593" name="aCharacter" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138790145_291079_6595" name="bCharacter" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138862401_235622_6620" name="aFloat" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138880201_276410_6622" name="bFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138975801_365338_6626" name="aDouble" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634138987246_146423_6628" name="bDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634139009471_984852_6630" name="aBigDecimal" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634139056799_880654_6632" name="aString" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634139076342_315596_6634" name="bString" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634140145761_661818_6636" name="PrimitiveArraysObject">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145763_918547_6637" name="aBooleanArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140184968_917941_6707" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140184968_436439_6706" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145763_48711_6638" name="bBooleanArray" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140219341_449192_6725" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140219341_6337_6724" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145763_736612_6639" name="cBooleanArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140281628_27517_6743" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140281628_417411_6742" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145763_482106_6640" name="aByteArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140188391_57141_6709" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140188391_825074_6708" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145763_866512_6641" name="bByteArray" visibility="private" type="_9_5_f720368_1110473546612_256090_7563">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140223835_922097_6727" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140223835_533228_6726" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_851321_6642" name="aShortArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140211985_177292_6721" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140211985_726327_6720" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_515245_6643" name="bShortArray" visibility="private" type="_9_5_f720368_1110473546612_509786_7681">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140272834_626573_6739" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140272833_52425_6738" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_422974_6644" name="aIntegerArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140204699_319485_6717" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140204699_752985_6716" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_114803_6645" name="bIntegerArray" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140243906_566513_6735" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140243906_871614_6734" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_713695_6646" name="cIntegerArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140289052_900048_6745" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140289052_518850_6744" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_46385_6647" name="aLongArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140208104_636734_6719" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140208104_963431_6718" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_590636_6648" name="bLongArray" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140248019_609032_6737" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140248019_609967_6736" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_27972_6649" name="aBigIntegerArray" visibility="private" type="_9_5_f720368_1110473546628_396621_7731">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140180835_831250_6705" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140180835_676387_6704" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_537122_6650" name="aCharacterArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140193818_371051_6711" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140193818_615004_6710" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145764_717060_6651" name="bCharacterArray" visibility="private" type="_9_5_f720368_1110473546612_321995_7565">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140227934_665889_6729" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140227934_618450_6728" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_186406_6652" name="aFloatArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140200362_850058_6715" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140200362_749200_6714" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_383586_6653" name="bFloatArray" visibility="private" type="_9_5_f720368_1110473546612_585522_7603">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140236570_662344_6733" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140236570_565699_6732" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_243679_6654" name="aDoubleArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140197373_618078_6713" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140197373_257229_6712" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_387963_6655" name="bDoubleArray" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140232507_740003_6731" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140232507_884974_6730" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_895696_6656" name="aBigDecimalArray" visibility="private" type="_9_5_f720368_1110473546628_256023_7729">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140176051_903842_6703" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140176051_832329_6702" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_742738_6657" name="aStringArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140215995_738983_6723" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140215995_906572_6722" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634140145765_374507_6658" name="bStringArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634140277338_43185_6741" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634140277338_53240_6740" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648460695788_252809_7753" name="cStringArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648460709797_940087_7756" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648460709797_867162_7755" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634145078807_370303_6747" name="ParentClass">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634145183651_392079_6822" name="parentAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1650896254931_583626_10696" name="ibans" visibility="private" type="_19_0_4_29b40597_1650896012354_901730_10660" association="_19_0_4_29b40597_1650896254931_60704_10695">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650896269144_248245_10707" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650896269144_367379_10706" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634145103751_101719_6770" name="ChildA" isAbstract="true">
                  <ownedComment xmi:id="_19_0_4_29b40597_1649128510405_346718_8686" body="single line class comment" annotatedElement="_19_0_4_29b40597_1634145103751_101719_6770"/>
                  <generalization xmi:id="_19_0_4_29b40597_1634145145405_384927_6817" isSubstitutable="true" general="_19_0_4_29b40597_1634145078807_370303_6747"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634145208568_417099_6824" name="childAAttribute" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634145114362_675145_6792" name="ChildB">
                  <ownedComment xmi:id="_19_0_4_29b40597_1649128499422_580234_8685" body="Multi&#xA;line&#xA;class&#xA;comment" annotatedElement="_19_0_4_29b40597_1634145114362_675145_6792"/>
                  <generalization xmi:id="_19_0_4_29b40597_1634145148045_950787_6820" isSubstitutable="true" general="_19_0_4_29b40597_1634145078807_370303_6747"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634145227514_915111_6826" name="childBAttribute" visibility="private">
                    <ownedComment xmi:id="_19_0_4_29b40597_1649128279162_106005_6580" body="A child attribute" annotatedElement="_19_0_4_29b40597_1634145227514_915111_6826"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634145247259_637948_6833" name="composition" visibility="private" type="_19_0_4_29b40597_1634145078807_370303_6747" association="_19_0_4_29b40597_1634145247259_412173_6832">
                    <ownedComment xmi:id="_19_0_4_29b40597_1649128256832_17438_6579" body="the composition" annotatedElement="_19_0_4_29b40597_1634145247259_637948_6833"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634145270735_215926_6844" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634145270735_927748_6843" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1634145247259_412173_6832" name="" memberEnd="_19_0_4_29b40597_1634145247259_364853_6834 _19_0_4_29b40597_1634145247259_637948_6833">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1634145247259_364853_6834" name="" visibility="private" type="_19_0_4_29b40597_1634145114362_675145_6792" association="_19_0_4_29b40597_1634145247259_412173_6832"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634148129444_60131_6850" name="ChildAA">
                  <generalization xmi:id="_19_0_4_29b40597_1634148182137_881377_6900" isSubstitutable="true" general="_19_0_4_29b40597_1634145103751_101719_6770"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634148189719_107459_6901" name="childAAAttribute" visibility="private">
                    <ownedComment xmi:id="_19_0_4_29b40597_1649128290580_252522_6581" body="Multi&#xA;line&#xA;docs" annotatedElement="_19_0_4_29b40597_1634148189719_107459_6901"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649131393715_414971_8694" name="sizedArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649131467794_777719_8701" name="requiredArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1649131483405_795031_8704" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1649131483404_695187_8703" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634148141334_510482_6872" name="ChildBB">
                  <generalization xmi:id="_19_0_4_29b40597_1634148159862_914317_6895" isSubstitutable="true" general="_19_0_4_29b40597_1634145114362_675145_6792"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634148168084_819045_6896" name="childBBAttribute" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343442780_497939_8664" name="deprecatedAttribute" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343472649_996427_8672" name="deprecatedBs" visibility="private" type="_19_0_4_29b40597_1634145114362_675145_6792" association="_19_0_4_29b40597_1635343472649_126765_8671">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1635343486282_859798_8683" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1635343486282_374583_8682" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343499251_976575_8695" name="deprecatedParent" visibility="private" type="_19_0_4_29b40597_1634145078807_370303_6747" association="_19_0_4_29b40597_1635343499251_146486_8694">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1635343518065_604784_8706" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1635343518065_185597_8705" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635416190448_259845_6451" name="deprecatedArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1635416225436_802715_6455" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1635416225436_832400_6454" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634228437084_1997_7202" name="Context">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634228550843_742548_7223" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634228569628_993218_7225" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634230054501_522588_7248" name="resellerID" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634272621117_75780_6822" name="pathParam" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634272695182_30469_6831" name="queryParam" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634273046627_846167_6839" name="BeanParameter">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634273091757_340668_6860" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1634273091758_207152_6861" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343985929_131572_9419" name="oldStyle" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1635343472649_126765_8671" name="" memberEnd="_19_0_4_29b40597_1635343472649_388839_8673 _19_0_4_29b40597_1635343472649_996427_8672">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1635343472649_388839_8673" name="" visibility="private" type="_19_0_4_29b40597_1634148141334_510482_6872" association="_19_0_4_29b40597_1635343472649_126765_8671"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1635343499251_146486_8694" name="" memberEnd="_19_0_4_29b40597_1635343499251_329031_8696 _19_0_4_29b40597_1635343499251_976575_8695">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1635343499251_329031_8696" name="" visibility="private" type="_19_0_4_29b40597_1634148141334_510482_6872" association="_19_0_4_29b40597_1635343499251_146486_8694"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635343884423_513128_9370" name="DeprecatedContext">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343884423_898237_9371" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343884423_221172_9372" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343884423_486982_9373" name="resellerID" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635343884423_117594_9375" name="queryParam" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1635423836732_686917_6326" name="DeprecatedEnum">
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1635423871473_538873_6345" name="ONE" classifier="_19_0_4_29b40597_1635423836732_686917_6326"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1635423876030_59204_6347" name="TWO" classifier="_19_0_4_29b40597_1635423836732_686917_6326"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1635423879256_183901_6349" name="THREE" classifier="_19_0_4_29b40597_1635423836732_686917_6326"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1635495304178_812334_7120" name="OpenAPITestObject">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635495350079_227151_7142" name="readOnlyAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635495366453_915371_7144" name="readWriteAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635495390409_490784_7146" name="writeOnlyAttribute" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635495477944_937086_7790" name="nullableAttribute" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635495495496_322228_7792" name="notNullableAttribute" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635498990637_324225_6337" name="readOnlyArray" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635499010049_690616_6339" name="readWriteArray" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635499036373_780006_6341" name="writeOnlyArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635499064474_398052_6346" name="nullableArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1635499083577_207180_6348" name="notNullableArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1643973801656_621928_7686" name="Partner">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643974015048_410272_7743" name="postalAddresses" visibility="private" type="_19_0_4_29b40597_1643973845625_433637_7709" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1643974015048_79916_7742">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1643974029533_564782_7754" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1643974029533_712758_7753" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1643973845625_433637_7709" name="PostalAddress">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643973871235_722810_7730" name="street" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643973946018_963943_7732" name="houseNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643973969326_576235_7734" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643973978629_579232_7736" name="postalCode" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1643974015048_79916_7742" name="" memberEnd="_19_0_4_29b40597_1643974015048_962824_7744 _19_0_4_29b40597_1643974015048_410272_7743">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1643974015048_962824_7744" name="" visibility="private" type="_19_0_4_29b40597_1643973801656_621928_7686" association="_19_0_4_29b40597_1643974015048_79916_7742"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1643974063378_495017_7788" name="Company">
                  <generalization xmi:id="_19_0_4_29b40597_1643974212787_785747_7841" isSubstitutable="true" general="_19_0_4_29b40597_1643973801656_621928_7686"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643974078352_47920_7809" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1643974092486_695981_7812" name="Person">
                  <generalization xmi:id="_19_0_4_29b40597_1643974216116_162561_7844" isSubstitutable="true" general="_19_0_4_29b40597_1643973801656_621928_7686"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643974139289_610122_7833" name="surname" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643974151002_866739_7835" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1644510712509_397955_10270" name="getDisplayName" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1644510721205_124771_10273" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1643989887732_726456_7848" name="PartnerContainer">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1643989913764_961230_7875" name="partners" visibility="private" type="_19_0_4_29b40597_1643973801656_621928_7686" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1643989913764_936280_7874">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1643989924958_827699_7886" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1643989924958_128652_7885" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1643989913764_936280_7874" name="" memberEnd="_19_0_4_29b40597_1643989913764_291841_7876 _19_0_4_29b40597_1643989913764_961230_7875">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1643989913764_291841_7876" name="" visibility="private" type="_19_0_4_29b40597_1643989887732_726456_7848" association="_19_0_4_29b40597_1643989913764_936280_7874"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645002047057_85091_6602" name="SpecialContext">
                  <generalization xmi:id="_19_0_4_29b40597_1645002075090_452802_6626" isSubstitutable="true" general="_19_0_4_29b40597_1634228437084_1997_7202"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645002186729_642396_6627" name="specificHeader" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645101806123_659810_7416" name="PrimitiveObjectWithRestrictions">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_776155_7417" name="aBoolean" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_19_0_4_29b40597_1645550043565_394297_7709" name="" value="true"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_382080_7418" name="bBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_172276_7419" name="cBoolean" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_305790_7420" name="aByte" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_698041_7421" name="bByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_273988_7422" name="aShort" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_717061_7423" name="bShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_91538_7424" name="aInteger" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_758520_7425" name="bInteger" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_368397_7426" name="cInteger" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_136954_7427" name="aLong" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_17616_7428" name="bLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_776887_7429" name="aBigInteger" visibility="private" type="_9_5_f720368_1110473546628_396621_7731"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_793239_7430" name="aCharacter" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_205713_7431" name="bCharacter" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_804020_7432" name="aFloat" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_439097_7433" name="bFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_652283_7434" name="aDouble" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1645550025603_743204_7708" name="" value="42.0"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_729403_7435" name="bDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_185257_7436" name="aBigDecimal" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_880396_7437" name="aString" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1645550060615_553083_7710" name="" value="&quot;Hello OpenAPI&quot;"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101806137_411282_7438" name="bString" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645101833980_646602_7482" name="PrimitiveArraysObjectWithRestrictions">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_165957_7483" name="aBooleanArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833980_378562_7506" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833980_207350_7507" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_455863_7484" name="bBooleanArray" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833980_987690_7508" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833980_256540_7509" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_863516_7485" name="cBooleanArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833980_741754_7510" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833980_522960_7511" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_243706_7486" name="aByteArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833980_388861_7512" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833980_570767_7513" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_407543_7487" name="bByteArray" visibility="private" type="_9_5_f720368_1110473546612_256090_7563">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_215485_7514" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_562480_7515" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_917157_7488" name="aShortArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_929872_7516" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_308506_7517" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_220286_7489" name="bShortArray" visibility="private" type="_9_5_f720368_1110473546612_509786_7681">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_651533_7518" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_875552_7519" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_952699_7490" name="aIntegerArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_940465_7520" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_419161_7521" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_731441_7491" name="bIntegerArray" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_183810_7522" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_445558_7523" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_708955_7492" name="cIntegerArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_709293_7524" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_246107_7525" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_331607_7493" name="aLongArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_3916_7526" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_737986_7527" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_267197_7494" name="bLongArray" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_63898_7528" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_356877_7529" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_807908_7495" name="aBigIntegerArray" visibility="private" type="_9_5_f720368_1110473546628_396621_7731">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_508732_7530" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_217059_7531" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_821647_7496" name="aCharacterArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_870715_7532" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_232014_7533" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_334774_7497" name="bCharacterArray" visibility="private" type="_9_5_f720368_1110473546612_321995_7565">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_773684_7534" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_791350_7535" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_700671_7498" name="aFloatArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_284219_7536" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_449576_7537" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_638031_7499" name="bFloatArray" visibility="private" type="_9_5_f720368_1110473546612_585522_7603">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_939125_7538" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_696954_7539" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_814903_7500" name="aDoubleArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_98787_7540" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_565757_7541" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_263151_7501" name="bDoubleArray" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_762292_7542" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_655907_7543" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_801631_7502" name="aBigDecimalArray" visibility="private" type="_9_5_f720368_1110473546628_256023_7729">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_612461_7544" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_236832_7545" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_225527_7503" name="aStringArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_283608_7546" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_757868_7547" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645101833980_859602_7504" name="bStringArray" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1645101833995_998744_7548" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1645101833995_253591_7549" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645443335712_800478_8224" name="Problem">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645443335714_235656_8225" name="title" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645443335714_930223_8226" name="status" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645443335714_346208_8227" name="type" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645443335714_553988_8228" name="detail" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645443335714_7144_8229" name="instance" visibility="private" isReadOnly="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645531843098_67065_7356" name="ErrorResponse" clientDependency="_19_0_4_29b40597_1645532304532_435679_7410">
                  <ownedComment xmi:id="_19_0_4_29b40597_1645535542165_180248_7412" body="Generic error response type that is used in all cases." annotatedElement="_19_0_4_29b40597_1645531843098_67065_7356"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1645532304532_435679_7410" name="" supplier="_19_0_4_29b40597_1645443335712_800478_8224" client="_19_0_4_29b40597_1645531843098_67065_7356"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645766110569_100896_8767" name="ProductCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645766150351_560774_8789" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645766794250_864848_9231" name="CurrencyCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1645766878202_772404_9252" name="code" visibility="private">
                    <ownedComment xmi:id="_19_0_4_29b40597_1645768261427_29930_9284" body="ISO 4217 currency code." annotatedElement="_19_0_4_29b40597_1645766878202_772404_9252"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1646834563892_237201_7724" name="" value="&quot;CHF&quot;"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1645768426105_424956_9291" name="" memberEnd="_19_0_4_29b40597_1645768426105_284433_9293 _19_0_4_29b40597_1645768426105_905041_9292">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1645768426105_284433_9293" name="" visibility="private" type="_19_0_4_29b40597_1634117581860_381384_6457" association="_19_0_4_29b40597_1645768426105_424956_9291"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1645789481701_506842_9320" name="" memberEnd="_19_0_4_29b40597_1645789481701_337322_9322 _19_0_4_29b40597_1645789481701_353009_9321">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1645789481701_337322_9322" name="" visibility="private" type="_19_0_4_29b40597_1634117581860_381384_6457" association="_19_0_4_29b40597_1645789481701_506842_9320"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647428226749_852272_7464" name="BidirectA">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647443777922_359261_7535" name="transientBs" visibility="private" type="_19_0_4_29b40597_1647443754194_362498_7508" association="_19_0_4_29b40597_1647443777922_931516_7534">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647443845482_15779_7548" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647443845481_858704_7547" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647444211594_893488_7577" name="parent" visibility="private" type="_19_0_4_29b40597_1647428226749_852272_7464" association="_19_0_4_29b40597_1647444211594_641487_7576">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647444242186_518011_7590" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647444242186_168128_7589" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647444211594_742207_7578" name="transientChild" visibility="private" type="_19_0_4_29b40597_1647428226749_852272_7464" association="_19_0_4_29b40597_1647444211594_641487_7576">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647444245763_556997_7594" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647444245762_675498_7593" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647443754194_362498_7508" name="BidirectB">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647443777922_456958_7536" name="a" visibility="private" type="_19_0_4_29b40597_1647428226749_852272_7464" association="_19_0_4_29b40597_1647443777922_931516_7534">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648655092288_972639_8780" body="the A" annotatedElement="_19_0_4_29b40597_1647443777922_456958_7536"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647443849311_912498_7552" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647443849311_468035_7551" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647443777922_931516_7534" name="" memberEnd="_19_0_4_29b40597_1647443777922_359261_7535 _19_0_4_29b40597_1647443777922_456958_7536"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647444211594_641487_7576" name="" memberEnd="_19_0_4_29b40597_1647444211594_893488_7577 _19_0_4_29b40597_1647444211594_742207_7578"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647534638369_228575_7961" name="BaseModuleFactory" clientDependency="_19_0_4_29b40597_1647534671086_664310_7989">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647534671086_664310_7989" name="" supplier="_19_0_4_29b40597_1633945419793_399741_6181" client="_19_0_4_29b40597_1647534638369_228575_7961"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539634769_639650_7992" name="BooleanCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539668486_981718_8014" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539687269_162583_8017" name="StringCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539698720_639045_8038" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539731019_46847_8042" name="ByteCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539750118_238290_8063" name="code" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539781153_367076_8067" name="ShortCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539794420_494304_8088" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539830653_102057_8092" name="IntegerCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539846968_121164_8113" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539872471_650927_8117" name="LongCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539886036_865446_8138" name="code" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539915276_77382_8142" name="FloatCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539942880_119367_8164" name="code" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647539952922_598192_8167" name="DoubleCode">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647539963420_767736_8188" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647876672375_65594_8321" name="PlaceRef" isAbstract="true">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647876680124_510370_8342" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647876696092_555482_8345" name="StopPlaceRef" isAbstract="true">
                  <generalization xmi:id="_19_0_4_29b40597_1647876767214_301654_8416" isSubstitutable="true" general="_19_0_4_29b40597_1647876672375_65594_8321"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647876706660_574340_8367" name="TopoRef">
                  <generalization xmi:id="_19_0_4_29b40597_1647876769815_116594_8419" isSubstitutable="true" general="_19_0_4_29b40597_1647876672375_65594_8321"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647876716238_73622_8389" name="GeoPosition">
                  <generalization xmi:id="_19_0_4_29b40597_1647876773557_701831_8423" isSubstitutable="true" general="_19_0_4_29b40597_1647876672375_65594_8321"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647876730156_374161_8410" name="longitude" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647876738804_171918_8412" name="latitude" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647877019674_643818_8430" name="Leg">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647877029448_260094_8456" name="start" visibility="private" type="_19_0_4_29b40597_1647876672375_65594_8321" association="_19_0_4_29b40597_1647877029448_470033_8455">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647877041662_838792_8467" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647877041662_912690_8466" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647925555854_478512_6586" name="stop" visibility="private" type="_19_0_4_29b40597_1647876672375_65594_8321" association="_19_0_4_29b40597_1647925555854_55933_6585">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647925566654_60150_6597" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647925566654_922313_6596" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1647925589594_790999_6605" name="stopovers" visibility="private" type="_19_0_4_29b40597_1647876672375_65594_8321" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1647925589594_448417_6604">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1647925607699_112637_6616" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1647925607699_838263_6615" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647877029448_470033_8455" name="" memberEnd="_19_0_4_29b40597_1647877029448_34787_8457 _19_0_4_29b40597_1647877029448_260094_8456">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1647877029448_34787_8457" name="" visibility="private" type="_19_0_4_29b40597_1647877019674_643818_8430" association="_19_0_4_29b40597_1647877029448_470033_8455"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647925555854_55933_6585" name="" memberEnd="_19_0_4_29b40597_1647925555854_89112_6587 _19_0_4_29b40597_1647925555854_478512_6586">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1647925555854_89112_6587" name="" visibility="private" type="_19_0_4_29b40597_1647877019674_643818_8430" association="_19_0_4_29b40597_1647925555854_55933_6585"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1647925589594_448417_6604" name="" memberEnd="_19_0_4_29b40597_1647925589594_471750_6606 _19_0_4_29b40597_1647925589594_790999_6605">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1647925589594_471750_6606" name="" visibility="private" type="_19_0_4_29b40597_1647877019674_643818_8430" association="_19_0_4_29b40597_1647925589594_448417_6604"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647928358661_303389_6620" name="SwissGeoPosition">
                  <generalization xmi:id="_19_0_4_29b40597_1647928374365_698419_6643" isSubstitutable="true" general="_19_0_4_29b40597_1647876716238_73622_8389"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647928400521_654557_6645" name="CHStopPlace">
                  <generalization xmi:id="_19_0_4_29b40597_1647928430940_178346_6690" isSubstitutable="true" general="_19_0_4_29b40597_1647876696092_555482_8345"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1647928415765_515986_6667" name="UICStopPlace">
                  <generalization xmi:id="_19_0_4_29b40597_1647928435019_456271_6693" isSubstitutable="true" general="_19_0_4_29b40597_1647876696092_555482_8345"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1648318110338_812376_6686" name="ExtensibleEnum">
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1648318141261_210334_6706" name="RED" classifier="_19_0_4_29b40597_1648318110338_812376_6686"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1648318144852_188374_6708" name="GREEN" classifier="_19_0_4_29b40597_1648318110338_812376_6686"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1648318150927_327261_6710" name="BLUE" classifier="_19_0_4_29b40597_1648318110338_812376_6686"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648496072676_784337_7758" name="EnumTest">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648496107061_939637_7780" name="property" visibility="private" type="_19_0_4_29b40597_1648318110338_812376_6686">
                    <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1648496123665_553535_7782" name="" instance="_19_0_4_29b40597_1648318144852_188374_6708"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648496133660_903796_7788" name="enumRef" visibility="private" type="_19_0_4_29b40597_1648318110338_812376_6686" association="_19_0_4_29b40597_1648496133660_398564_7787">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648496152472_183675_7799" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648496152472_83702_7798" name="" value="1"/>
                    <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1648496157564_561003_7802" name="" instance="_19_0_4_29b40597_1648318141261_210334_6706"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1648496133660_398564_7787" name="" memberEnd="_19_0_4_29b40597_1648496133660_117283_7789 _19_0_4_29b40597_1648496133660_903796_7788">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1648496133660_117283_7789" name="" visibility="private" type="_19_0_4_29b40597_1648496072676_784337_7758" association="_19_0_4_29b40597_1648496133660_398564_7787"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631714423_630869_7965" name="IntegerCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631832708_669705_8150" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631725821_54752_7987" name="BooleanCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631845860_75039_8152" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631732822_181473_8009" name="StringCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631857925_836890_8154" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631740182_606036_8031" name="ByteCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631870405_586968_8156" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631750525_311608_8053" name="ShortCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631881901_904307_8158" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631760199_656242_8075" name="LongCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631892637_361635_8160" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631774661_989793_8097" name="FloatCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631913685_293434_8162" name="code" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648631786110_420826_8121" name="DoubleCodeType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648631926965_127382_8164" name="code">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648632267318_850834_8183" name="CodeTypeUsageTest">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648632296029_806092_8204" name="booleanCode" visibility="private" type="_19_0_4_29b40597_1648631725821_54752_7987"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648632323616_43390_8206" name="booleanCodeAssociation" visibility="private" type="_19_0_4_29b40597_1648631725821_54752_7987" association="_19_0_4_29b40597_1648633117431_324191_8232">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648632341007_257954_8209" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648632341007_601590_8208" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648632362459_602640_8215" name="shortCodeTypeAssociation" visibility="private" type="_19_0_4_29b40597_1648631750525_311608_8053" association="_19_0_4_29b40597_1648632362459_444930_8214">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648632370718_259106_8224" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648632370718_457391_8223" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648632685946_174215_8230" name="stringCode" visibility="private" type="_19_0_4_29b40597_1648631732822_181473_8009"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1648632362459_444930_8214" name="" memberEnd="_19_0_4_29b40597_1648632362459_348069_8216 _19_0_4_29b40597_1648632362459_602640_8215">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1648632362459_348069_8216" name="" visibility="private" type="_19_0_4_29b40597_1648632267318_850834_8183" association="_19_0_4_29b40597_1648632362459_444930_8214"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1648633117431_324191_8232" name="" memberEnd="_19_0_4_29b40597_1648633117431_838967_8233 _19_0_4_29b40597_1648632323616_43390_8206">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1648633117431_838967_8233" name="" visibility="private" type="_19_0_4_29b40597_1648632267318_850834_8183" association="_19_0_4_29b40597_1648633117431_324191_8232"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648655349933_740058_8782" name="DirectedEdge">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648655415477_202525_8830" name="start" visibility="private" type="_19_0_4_29b40597_1648655394918_388083_8804" association="_19_0_4_29b40597_1648655415477_322888_8829">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648655456984_989765_8863" body="The start" annotatedElement="_19_0_4_29b40597_1648655415477_202525_8830"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648655445472_533282_8860" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648655445472_905724_8859" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648655419496_558700_8843" name="end" visibility="private" type="_19_0_4_29b40597_1648655394918_388083_8804" association="_19_0_4_29b40597_1648655419496_885535_8842">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648655769285_971640_8869" body="The end" annotatedElement="_19_0_4_29b40597_1648655419496_558700_8843"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1648655433872_852810_8854" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1648655433872_111942_8853" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649652533435_502585_6634" name="link" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648655394918_388083_8804" name="Stop">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648655486893_459439_8867" name="name" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649652480742_939140_6612" name="links" visibility="private" type="_19_0_4_29b40597_1649652438720_431305_6584" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1649652480742_387920_6611">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1649652500940_951926_6623" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1649652500940_302174_6622" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1648655415477_322888_8829" name="" memberEnd="_19_0_4_29b40597_1648655415477_623572_8831 _19_0_4_29b40597_1648655415477_202525_8830">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1648655415477_623572_8831" name="" visibility="private" type="_19_0_4_29b40597_1648655349933_740058_8782" association="_19_0_4_29b40597_1648655415477_322888_8829"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1648655419496_885535_8842" name="" memberEnd="_19_0_4_29b40597_1648655419496_195334_8844 _19_0_4_29b40597_1648655419496_558700_8843">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1648655419496_195334_8844" name="" visibility="private" type="_19_0_4_29b40597_1648655349933_740058_8782" association="_19_0_4_29b40597_1648655419496_885535_8842"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648655901084_16413_8871" name="UICStop">
                  <generalization xmi:id="_19_0_4_29b40597_1648655975884_44907_8920" isSubstitutable="true" general="_19_0_4_29b40597_1648655394918_388083_8804"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648655953051_524282_8916" name="uicCode" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648655920335_172948_8893" name="POI">
                  <generalization xmi:id="_19_0_4_29b40597_1648655979001_955871_8923" isSubstitutable="true" general="_19_0_4_29b40597_1648655394918_388083_8804"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648655936516_824170_8914" name="description" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648731286404_967425_8888" name="MyCustomResponseHeaders">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648731606447_413083_8949" name="Max-TTL" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648734289021_843213_9573" name="Yet-Another-Header" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648750106722_351838_9576" name="ParentBeanParamType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648751218480_136148_9598" name="novaKey" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648751235943_849628_9600" name="tkID" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1649652438720_431305_6584" name="LinkObject">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1649652464843_573772_6605" name="href" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1649652480742_387920_6611" name="" memberEnd="_19_0_4_29b40597_1649652480742_676247_6613 _19_0_4_29b40597_1649652480742_939140_6612">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1649652480742_676247_6613" name="" visibility="private" type="_19_0_4_29b40597_1648655394918_388083_8804" association="_19_0_4_29b40597_1649652480742_387920_6611"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650882679104_502442_8986" name="BankAccount">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1650882711103_921934_9007" name="iban" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650896012354_901730_10660" name="IBAN">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1650896024532_340491_10681" name="value" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650896254931_60704_10695" name="" memberEnd="_19_0_4_29b40597_1650896254931_146200_10697 _19_0_4_29b40597_1650896254931_583626_10696">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1650896254931_146200_10697" name="" visibility="private" type="_19_0_4_29b40597_1634145078807_370303_6747" association="_19_0_4_29b40597_1650896254931_60704_10695"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1661874482193_155033_7648" name="BooleanLiteralsEnum">
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874507647_963445_7668" name="YES" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874517609_445530_7672" name="ON" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874526860_762294_7674" name="off" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874532060_640748_7676" name="y" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874536143_654818_7678" name="n" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874543377_295476_7680" name="YEAH" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661874558743_510729_7682" name="NO" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661876290627_842560_9363" name="True" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                  <ownedLiteral xmi:id="_19_0_4_29b40597_1661876295493_830270_9365" name="FaLsE" classifier="_19_0_4_29b40597_1661874482193_155033_7648"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1634201854488_454524_7073" name="service1">
                <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1634200394708_707747_7020" name="ProductService" clientDependency="_19_0_4_29b40597_1648733880188_387606_9571">
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634200453970_431024_7040" name="getProducts" visibility="public" clientDependency="_19_0_4_29b40597_1648731680155_456093_8975 _19_0_4_29b40597_1648731538665_287956_8945">
                    <ownedComment xmi:id="_19_0_4_29b40597_1634224852325_601420_7182" body="Operation returns all available product." annotatedElement="_19_0_4_29b40597_1634200453970_431024_7040"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634200475176_630194_7043" name="" visibility="public" type="_19_0_4_29b40597_1634117581860_381384_6457" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1634200784646_254719_7063" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1634200784645_708111_7062" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634200714181_306812_7058" name="getProduct" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634200741622_85840_7060" name="pProductID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1651074358674_683111_7007" name="" value="4711"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634200741623_773312_7061" name="" visibility="public" type="_19_0_4_29b40597_1634117581860_381384_6457" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634218398510_479224_7175" name="createProduct" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634218434730_280459_7177" name="pProduct" visibility="public" type="_19_0_4_29b40597_1634117581860_381384_6457"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634218434731_255746_7178" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634533462979_783397_6289" name="getSortiment" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634533496776_524574_6291" name="pContext" visibility="public" type="_19_0_4_29b40597_1634228437084_1997_7202"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634533496778_428718_6292" name="" visibility="public" type="_19_0_4_29b40597_1634117906395_138598_6505" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634630601286_406158_7139" name="createChannelCode" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634630623599_423669_7141" name="pChannelCode" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634630626422_685819_7142" name="" visibility="public" type="_19_0_4_29b40597_1634108447517_938911_6298" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1634632000071_626514_7153" name="ping" visibility="public" clientDependency="_19_0_4_29b40597_1651467182717_692941_7542">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1634632008659_556514_7156" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635343824869_675998_9366" name="deprecatedOperation" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635343859188_297485_9369" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635344079339_347608_9431" name="deprecatedContext" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344105684_506176_9433" name="pContext" visibility="public" type="_19_0_4_29b40597_1635343884423_513128_9370"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344105684_623390_9434" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635344212851_55162_9440" name="deprecatedBeanParam" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344239415_892066_9442" name="pBeanParam" visibility="public" type="_19_0_4_29b40597_1634273046627_846167_6839"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344239416_979153_9443" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635344369872_440153_9449" name="deprecatedParams" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344394443_911014_9451" name="pParam1" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635344394444_847398_9453" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635394850848_830271_6323" name="deprecatedBody" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635394872851_412516_6325" name="pBody" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1646837075187_320449_8081" name="" value="Hello World!"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635394872853_11213_6326" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635396297258_69060_7032" name="deprectedComplexRequestBody" visibility="public">
                    <ownedComment xmi:id="_19_0_4_29b40597_1635398389287_673226_7063" body="Please be aware that deprecations on complex bodies are not supported. Instead the whole operation needs to be set to deprecated." annotatedElement="_19_0_4_29b40597_1635396297258_69060_7032"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635396338581_703949_7034" name="pProduct" visibility="public" type="_19_0_4_29b40597_1634117581860_381384_6457"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635396338581_816543_7035" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1635408494454_842421_6410" name="deprecatedComplexReturn" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1635408517101_197158_6413" name="" visibility="public" type="_19_0_4_29b40597_1634117581860_381384_6457" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1645002282790_705809_7421" name="loadSpecificThings" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1645002323762_144398_7423" name="pContext" visibility="public" type="_19_0_4_29b40597_1645002047057_85091_6602"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1645002323762_925653_7424" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1645720798112_293932_8745" name="createChannelCodeFromObject" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1645720815340_655465_8747" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1634108447517_938911_6298">
                      <ownedComment xmi:id="_19_0_4_29b40597_1646659786379_796042_8047" body="Channel Code that should be created." annotatedElement="_19_0_4_29b40597_1645720815340_655465_8747"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1645720847836_705909_8749" name="" visibility="public" type="_19_0_4_29b40597_1634108447517_938911_6298" direction="return">
                      <ownedComment xmi:id="_19_0_4_29b40597_1645720949434_804090_8755" body="Created channel code" annotatedElement="_19_0_4_29b40597_1645720847836_705909_8749"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1646653765592_313591_7446" name="addCurrencies" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1646653804865_465632_7448" name="pCurrencies" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231" isOrdered="true" isUnique="false">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1646653943557_249076_7465" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1646653943557_222672_7464" name="" value="1"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1646653804881_211845_7449" name="" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1646653955366_817035_7467" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1646653955366_228231_7466" name="" value="1"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1646653810088_414681_7450" name="isCurrencySupported" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1646653836854_145307_7452" name="pCurrency" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231">
                      <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1646836635678_842571_8080" name="" value="&quot;CHF&quot;"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1646653836854_723574_7453" name="" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1648635415541_475658_8256" name="testCodeTypeUsage" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648635453892_823471_8258" name="pStringCode" visibility="public" type="_19_0_4_29b40597_1648631732822_181473_8009"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648635453893_455998_8259" name="" visibility="public" type="_19_0_4_29b40597_1648631714423_630869_7965" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1648752515433_147080_10069" name="testLocalBeanParamType" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648752548297_184872_10071" name="pBeanParam" visibility="public" type="_19_0_4_29b40597_1648752441198_124114_10039"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648752548297_443554_10072" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1648755724339_622069_10099" name="testExternalBeanParameterType" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648755771448_644784_10102" name="pParent" visibility="public" type="_19_0_4_29b40597_1648750106722_351838_9576"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648755771448_544303_10103" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1648756070090_182337_10162" name="testChildBeanParameter" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648756094747_863568_10164" name="pChild" visibility="public" type="_19_0_4_29b40597_1648755950650_513968_10132"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1648756094747_118458_10165" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1650896434228_315329_10720" name="checkIBAN" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1650896462625_271962_10722" name="pIBAN" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1650896462625_873_10723" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1651074402258_159489_7008" name="getChannels" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1651074447274_962055_7010" name="pChannelTypes" visibility="public" type="_19_0_4_29b40597_1634108529355_19017_6342" isOrdered="true" isUnique="false">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1651074547424_807939_7019" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1651074547424_677187_7018" name=""/>
                      <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1651074513207_603360_7017" name="" instance="_19_0_4_29b40597_1634108558592_829058_6365"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1651074447274_734990_7011" name="" visibility="public" type="_19_0_4_29b40597_1634108460027_728205_6320" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1651074678825_326387_7029" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1651074678825_735865_7028" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1651074553573_964657_7020" name="getDefaultChannel" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1651074587549_57666_7022" name="pChannelType" visibility="public" type="_19_0_4_29b40597_1634108529355_19017_6342">
                      <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1651074742791_215248_7037" name="" instance="_19_0_4_29b40597_1634108544000_223430_6361"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1651074587549_776020_7023" name="" visibility="public" type="_19_0_4_29b40597_1634108460027_728205_6320" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1655269618053_855631_7629" name="getSupportedCurrencies" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1655269650636_733698_7631" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1634108447517_938911_6298"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1655269650636_79423_7632" name="" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655270429120_758042_9841" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655270429120_880953_9840" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1655278319037_907592_9844" name="getSupportedCurrenciesAsync" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1655278319038_902744_9845" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1634108447517_938911_6298"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1655278319039_278889_9846" name="" visibility="public" type="_19_0_4_29b40597_1645766794250_864848_9231" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655278319039_38390_9849" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655278319040_941877_9850" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1662613857055_701194_7193" name="testDateQueryParams" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857059_545827_7194" name="pPath" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857060_275711_7195" name="pStartTimestamp" visibility="public" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857060_922189_7196" name="pStartTime" visibility="public" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857060_852348_7197" name="pLocalStartTimestamp" visibility="public" type="_19_0_4_29b40597_1634137680668_587967_6536"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857060_660532_7198" name="pLocalStartTime" visibility="public" type="_19_0_4_29b40597_1648123191766_939427_4796"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857060_567661_7199" name="pLocalStartDate" visibility="public" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857061_515430_7200" name="pCalendar" visibility="public" type="_9_5_f720368_1110473546706_973459_8839"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857061_808295_7201" name="pUtilDate" visibility="public" type="_9_5_f720368_1110473546706_999299_8853"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857061_687241_7202" name="pSQLTimestamp" visibility="public" type="_9_5_f720368_1110473546690_574195_8603"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857061_445669_7203" name="pSQLTime" visibility="public" type="_9_5_f720368_1110473546690_682982_8601"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857061_475072_7204" name="pSQLDate" visibility="public" type="_9_5_f720368_1110473546690_186067_8563"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662613857062_555883_7205" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1662643409736_231426_8413" name="testDateQueryParamsBean" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662643409736_672819_8414" name="pPath" visibility="public">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662643409736_376751_8415" name="pQueryParams" visibility="public" type="_19_0_4_29b40597_1662643579658_916325_8426"/>
                    <ownedParameter xmi:id="_19_0_4_29b40597_1662643409736_415857_8416" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1634201895250_971889_7106" name="Product Services" clientDependency="_19_0_4_29b40597_1634201895252_625523_7108 _19_0_4_29b40597_1634201895252_303903_7107 _19_0_4_29b40597_1644945592842_353372_6578 _19_0_4_29b40597_1644945585057_268316_6575 _19_0_4_29b40597_1645545435532_243010_7447 _19_0_4_29b40597_1648539871689_453493_8387 _19_0_4_29b40597_1634201924568_69720_7172 _19_0_4_29b40597_1634640695050_311201_7200 _19_0_4_29b40597_1637824788237_598535_6390 _19_0_4_29b40597_1644989531601_583206_6589 _19_0_4_29b40597_1647843140511_79731_8019 _19_0_4_29b40597_1647847667361_665366_8107 _19_0_4_29b40597_1647862248945_257912_8206 _19_0_4_29b40597_1647863295005_856095_8241">
                  <ownedComment xmi:id="_19_0_4_29b40597_1634201895252_838342_7110" body="This component represents the OpenAPI interface of the accounting service.&#xA;&#xA;Dear Developers, please be aware that multi line comments can also be used." annotatedElement="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634201895252_303903_7107" name="" supplier="_19_0_4_29b40597_1634016240660_990341_6310" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634201895252_625523_7108" name="" supplier="_19_0_4_29b40597_1634016302565_564401_6340" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634201924568_69720_7172" name="" supplier="_19_0_4_29b40597_1634200394708_707747_7020" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634640695050_311201_7200" name="" supplier="_19_0_4_29b40597_1633945444491_928896_6215" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1637824788237_598535_6390" name="" supplier="_19_0_4_29b40597_1634201854488_454524_7073" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1644945585057_268316_6575" name="" supplier="_19_0_4_29b40597_1644945471940_214696_6515" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1644945592842_353372_6578" name="" supplier="_19_0_4_29b40597_1644945520032_53992_6545" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1644989531601_583206_6589" name="" supplier="_19_0_4_29b40597_1644989456128_953807_6553" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1645545435532_243010_7447" name="" supplier="_19_0_4_29b40597_1645545405182_208522_7424" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647843140511_79731_8019" name="" supplier="_19_0_4_29b40597_1647842923280_933807_7708" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647847667361_665366_8107" name="" supplier="_19_0_4_29b40597_1647847427155_943099_8069" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647862248945_257912_8206" name="" supplier="_19_0_4_29b40597_1647862148439_60724_8175" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647863295005_856095_8241" name="" supplier="_19_0_4_29b40597_1647863270568_622874_8211" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648539871689_453493_8387" name="" supplier="_19_0_4_29b40597_1648537156637_687396_7823" client="_19_0_4_29b40597_1634201895250_971889_7106"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1637824792881_916793_6393" name="Sale">
                  <ownedComment xmi:id="_19_0_4_29b40597_1651668292853_166061_7015" body="Chännel&#xA;€&#xA;Ö" annotatedElement="_19_0_4_29b40597_1637824792881_916793_6393"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1637824917208_168689_6414" name="transactionAmount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1644937500161_410003_6378" name="sale" visibility="private" type="_19_0_4_29b40597_1634108460027_728205_6320" association="_19_0_4_29b40597_1644937500161_919275_6377">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1644937504774_560562_6387" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1644937504774_759611_6386" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1644937500161_919275_6377" name="" memberEnd="_19_0_4_29b40597_1644937500161_216197_6379 _19_0_4_29b40597_1644937500161_410003_6378">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1644937500161_216197_6379" name="" visibility="private" type="_19_0_4_29b40597_1637824792881_916793_6393" association="_19_0_4_29b40597_1644937500161_919275_6377"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1644945471940_214696_6515" name="TEST Environment"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1644945520032_53992_6545" name="PROD Environment">
                  <ownedComment xmi:id="_19_0_4_29b40597_1644945643404_613280_6580" body="This is our lovely production environment&#xA;&#xA;It can stand any load, until it crashes ;-)" annotatedElement="_19_0_4_29b40597_1644945520032_53992_6545"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1644989456128_953807_6553" name="DEMO Environment"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1645545405182_208522_7424" name="CustomErrorResponse" clientDependency="_19_0_4_29b40597_1645546361830_709711_7706"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1645546361830_709711_7706" name="" supplier="_19_0_4_29b40597_1645443335712_800478_8224" client="_19_0_4_29b40597_1645545405182_208522_7424"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647842923280_933807_7708" name="Products" clientDependency="_19_0_4_29b40597_1647842983265_876463_7736 _19_0_4_29b40597_1647842993563_931115_7739 _19_0_4_29b40597_1647843001963_199945_7742 _19_0_4_29b40597_1647843021538_300738_7745 _19_0_4_29b40597_1647843037158_817141_8016">
                  <ownedComment xmi:id="_19_0_4_29b40597_1647847174532_134721_8053" body="Tag groups all product related operations together." annotatedElement="_19_0_4_29b40597_1647842923280_933807_7708"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647842983265_876463_7736" name="" supplier="_19_0_4_29b40597_1634200453970_431024_7040" client="_19_0_4_29b40597_1647842923280_933807_7708"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647842993563_931115_7739" name="" supplier="_19_0_4_29b40597_1634200714181_306812_7058" client="_19_0_4_29b40597_1647842923280_933807_7708"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647843001963_199945_7742" name="" supplier="_19_0_4_29b40597_1634218398510_479224_7175" client="_19_0_4_29b40597_1647842923280_933807_7708"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647843021538_300738_7745" name="" supplier="_19_0_4_29b40597_1634533462979_783397_6289" client="_19_0_4_29b40597_1647842923280_933807_7708"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647843037158_817141_8016" name="" supplier="_19_0_4_29b40597_1637824792881_916793_6393" client="_19_0_4_29b40597_1647842923280_933807_7708"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647847427155_943099_8069" name="MasterData" clientDependency="_19_0_4_29b40597_1647847565475_567586_8104 _19_0_4_29b40597_1647847544760_393847_8098 _19_0_4_29b40597_1647847555871_998540_8101">
                  <ownedComment xmi:id="_19_0_4_29b40597_1647847536860_548081_8096" body="Tag marks all operations that are connected with Master Data." annotatedElement="_19_0_4_29b40597_1647847427155_943099_8069"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647847544760_393847_8098" name="" supplier="_19_0_4_29b40597_1634200453970_431024_7040" client="_19_0_4_29b40597_1647847427155_943099_8069"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647847555871_998540_8101" name="" supplier="_19_0_4_29b40597_1634200714181_306812_7058" client="_19_0_4_29b40597_1647847427155_943099_8069"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647847565475_567586_8104" name="" supplier="_19_0_4_29b40597_1634533462979_783397_6289" client="_19_0_4_29b40597_1647847427155_943099_8069"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647862148439_60724_8175" name="Another Tag" clientDependency="_19_0_4_29b40597_1647862168856_449628_8203">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647862168856_449628_8203" name="" supplier="_19_0_4_29b40597_1646653810088_414681_7450" client="_19_0_4_29b40597_1647862148439_60724_8175"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647863270568_622874_8211" name="B Tag" clientDependency="_19_0_4_29b40597_1647863283673_823975_8238">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647863283673_823975_8238" name="" supplier="_19_0_4_29b40597_1646653765592_313591_7446" client="_19_0_4_29b40597_1647863270568_622874_8211"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1647863556506_927583_8245" name="Invalid Tag" clientDependency="_19_0_4_29b40597_1647863567805_260030_8272">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1647863567805_260030_8272" name="" supplier="_19_0_4_29b40597_1645002282790_705809_7421" client="_19_0_4_29b40597_1647863556506_927583_8245"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1648537156637_687396_7823" name="MyOAuthSecuritySchema" clientDependency="_19_0_4_29b40597_1648539164308_545619_8319 _19_0_4_29b40597_1648552000157_68280_8423">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648539164308_545619_8319" name="" supplier="_19_0_4_29b40597_1648537351404_851324_7853" client="_19_0_4_29b40597_1648537156637_687396_7823"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648552000157_68280_8423" name="" supplier="_19_0_4_29b40597_1648551977408_799856_8396" client="_19_0_4_29b40597_1648537156637_687396_7823"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1648537351404_851324_7853" name="ImplicitOAuthFlow" clientDependency="_19_0_4_29b40597_1648539366908_238483_8352 _19_0_4_29b40597_1648539167750_299054_8322">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648539167750_299054_8322" name="" supplier="_19_0_4_29b40597_1648538920485_976352_8287" client="_19_0_4_29b40597_1648537351404_851324_7853"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648539366908_238483_8352" name="" supplier="_19_0_4_29b40597_1648539348616_670463_8325" client="_19_0_4_29b40597_1648537351404_851324_7853"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1648538920485_976352_8287" name="Pet Write Scope"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1648539348616_670463_8325" name="Pet Read Scope"/>
                <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1648551977408_799856_8396" name="AuthCodeOAuthFlow" clientDependency="_19_0_4_29b40597_1648552062159_196376_8435 _19_0_4_29b40597_1648552069620_882484_8438">
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648552062159_196376_8435" name="" supplier="_19_0_4_29b40597_1648538920485_976352_8287" client="_19_0_4_29b40597_1648551977408_799856_8396"/>
                  <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648552069620_882484_8438" name="" supplier="_19_0_4_29b40597_1648539348616_670463_8325" client="_19_0_4_29b40597_1648551977408_799856_8396"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648731538665_287956_8945" name="" supplier="_19_0_4_29b40597_1648731286404_967425_8888" client="_19_0_4_29b40597_1634200453970_431024_7040"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648731634882_847441_8952" name="DefaultResponseHeaders">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648731590462_916595_8947" name="Cache-Control" visibility="private">
                    <ownedComment xmi:id="_19_0_4_29b40597_1648733401357_916025_9543" body="Results for this call are cacheable for the duration as it is defined in this header field" annotatedElement="_19_0_4_29b40597_1648731590462_916595_8947"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1648733114457_782878_9388" name="" value="&quot;public, max-age=10000&quot;"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648731680155_456093_8975" name="" supplier="_19_0_4_29b40597_1648731634882_847441_8952" client="_19_0_4_29b40597_1634200453970_431024_7040"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648733805681_491305_9545" name="GlobalResponseHeader">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648733834759_998400_9567" name="X-Global-Response-Header" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1648733866580_467954_9569" name="" value="Hello World"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1648733880188_387606_9571" name="" supplier="_19_0_4_29b40597_1648733805681_491305_9545" client="_19_0_4_29b40597_1634200394708_707747_7020"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648752441198_124114_10039" name="LocalBeanParamType">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648752441198_771688_10040" name="localKey" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648752441198_137638_10041" name="localID" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648755950650_513968_10132" name="ChildBeanParameterType">
                  <generalization xmi:id="_19_0_4_29b40597_1648755969636_549489_10155" isSubstitutable="true" general="_19_0_4_29b40597_1648750106722_351838_9576"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1648755985534_345403_10157" name="childProperty" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1651467132761_10674_7515" name="NoContentResponse" clientDependency="_19_0_4_29b40597_1651467335438_119471_7555"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1651467182717_692941_7542" name="" supplier="_19_0_4_29b40597_1651467132761_10674_7515" client="_19_0_4_29b40597_1634632000071_626514_7153"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1651467335438_119471_7555" name="" supplier="_19_0_4_29b40597_1645443335712_800478_8224" client="_19_0_4_29b40597_1651467132761_10674_7515"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1662643579658_916325_8426" name="DateQueryParamsBean">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_694988_8427" name="offsetDateTime" visibility="private" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_329946_8428" name="offsetTime" visibility="private" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_305274_8429" name="localDateTime" visibility="private" type="_19_0_4_29b40597_1648123215215_31227_4798"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_709226_8430" name="localTime" visibility="private" type="_19_0_4_29b40597_1648123191766_939427_4796"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_898514_8431" name="localDate" visibility="private" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_829855_8432" name="utilDate" visibility="private" type="_9_5_f720368_1110473546706_999299_8853"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_70952_8433" name="calendar" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_821876_8434" name="sqlTimestamp" visibility="private" type="_9_5_f720368_1110473546690_574195_8603"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_16743_8435" name="sqlTime" visibility="private" type="_9_5_f720368_1110473546690_682982_8601"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1662643579658_648419_8436" name="sqlDate" visibility="private" type="_9_5_f720368_1110473546690_186067_8563"/>
                </packagedElement>
              </packagedElement>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1194386800000_841644_143" name="accounting">
            <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1232316618430_150345_1049" name="AccountingBasicDataService">
              <ownedOperation xmi:id="_12_5_2aa0154_1232316896268_593673_1156" name="createResponsibilityType" visibility="public">
                <ownedParameter xmi:id="_12_5_2aa0154_1232316949783_799522_1159" name="pType" visibility="public" type="_12_5_2aa0154_1232316805239_788091_1122" direction="inout"/>
                <ownedParameter xmi:id="_12_5_2aa0154_1232316949798_924291_1160" name="" visibility="public" type="_12_5_2aa0154_1232316805239_788091_1122" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1239227604707_32038_545" name="createBank" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1239227879292_545175_551" body="Method creates a new persistent Bank object in the database.&#xA;&#xA;@param pBank Service object containing all the attributes to create a new persistent Bank object. The parameter must not be null&#xA;@return Bank Service object describing the created bank object. The returned object contains besides the attributes also the object id of the created persistent bank object. The method never returns null." annotatedElement="_16_0_1_2aa0154_1239227604707_32038_545"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1239227646857_992679_549" name="pBank" visibility="public" type="_16_0_1_2aa0154_1239229857335_145980_947"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1239229967601_160817_999" name="" visibility="public" type="_16_0_1_2aa0154_1239229857335_145980_947" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1242076062562_311427_1157" name="createEmployee" visibility="public">
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242076107187_300423_1159" name="pPerson" visibility="public" type="_12_5_2aa0154_1204275369812_518583_1133"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242077289562_350217_1191" name="pResponsibilityType" visibility="public" type="_12_5_2aa0154_1232316805239_788091_1122"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242079635343_599836_1205" name="pBank" visibility="public" type="_16_0_1_2aa0154_1239229857335_145980_947"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242079635343_481527_1206" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1194816391828_287196_949" name="impl">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927592607_630195_1386" name="" supplier="_12_5_1ea00f4_1194387303984_103217_956" client="_16_0_1_2aa0154_1236638183781_724474_1095"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1204190535171_205459_761" name="" supplier="_12_5_2aa0154_1204190434609_597562_710" client="_12_5_1ea00f4_1194618455620_612_990"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_12_5_1ea00f4_1199284430931_537247_934" name="" supplier="_12_5_1ea00f4_1194388677031_83558_2030" client="_12_5_1ea00f4_1199284396587_941011_932"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1238446874422_138206_489" name="" supplier="_16_0_1_2aa0154_1236949705880_680160_1419" client="_16_0_1_2aa0154_1238446855110_228190_487"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_12_5_1ea00f4_1194386800000_932963_144" name="domain">
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_831215_932" name="ResponsibilityTypeBO">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_482014_961" name="type" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223907132297_280219_1344" name="typeChar" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223907367078_900526_1347" name="sortorder" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387605234_459803_1550" name="" memberEnd="_12_5_1ea00f4_1194387605234_430511_1551 _12_5_1ea00f4_1194387605234_981268_1552"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_486390_930" name="MyPersonBO">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_975462_958" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_510900_959" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_128785_960" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194388250546_433596_1972" name="accounts" visibility="private" type="_12_5_1ea00f4_1194387303953_86321_916" association="_12_5_1ea00f4_1194388250546_541510_1970">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1199287775952_193626_962" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1199287775952_80897_961" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387465734_895779_1386" name="employee" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387465734_205530_1384">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1242076377937_682211_1180" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1242076377937_554466_1179" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387412203_772685_1278" name="customer" visibility="private" type="_12_5_1ea00f4_1194387303953_275373_926" association="_12_5_1ea00f4_1194387412203_588391_1276">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1221481895025_909547_1209" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1221481895025_794313_1208" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_12_5_2aa0154_1223906483987_509716_1326" name="calculateAge" visibility="public">
                    <ownedParameter xmi:id="_12_5_2aa0154_1223906504690_453362_1329" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1236949705880_680160_1419" name="getFullName" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1236949722568_629513_1423" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387739750_161708_1611" name="" memberEnd="_12_5_1ea00f4_1194387739750_589322_1612 _12_5_1ea00f4_1194387739750_918276_1613"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_378160_920" name="BookingBO">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303968_367487_945" name="amount" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194388199375_273268_1917" name="account" visibility="private" type="_12_5_1ea00f4_1194387303953_86321_916" association="_12_5_1ea00f4_1194388199375_912112_1915">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1199287538513_362164_953" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1199287538513_878236_952" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1221481662233_368223_1153" name="remitters" visibility="private" type="_12_5_1ea00f4_1194387303953_486390_930" association="_12_5_2aa0154_1221481662233_817882_1152">
                    <ownedComment xmi:id="_12_5_2aa0154_1221482348917_48201_1213" body="Person who authorized the booking." annotatedElement="_12_5_2aa0154_1221481662233_368223_1153"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1225222611000_871090_1056" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1225222611000_307171_1055" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223906289365_909265_1055" name="sessionKey" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1223906402738_689440_1324" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1223906402738_851118_1323" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194388250546_541510_1970" name="" memberEnd="_12_5_1ea00f4_1194388250546_977445_1971 _12_5_1ea00f4_1194388250546_433596_1972"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_502307_922" name="CustomerBO" isAbstract="true">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387880187_49314_1724" name="accounts" visibility="private" type="_12_5_1ea00f4_1194387303953_86321_916" association="_12_5_1ea00f4_1194387880187_846058_1723">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387890968_9779_1774" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387890968_420200_1773" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387561125_822061_1497" name="attendingEmployees" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387561125_4424_1495">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1194816015515_808131_943" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1194816015515_68559_942" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223906622970_29649_1330" name="active" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926763048_935371_507" name="adress" visibility="private" type="_16_0_1_2aa0154_1236926665881_127294_476" association="_16_0_1_2aa0154_1236926763048_398912_506">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1238618703795_448561_1218" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1238618703795_56619_1217" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194388199375_912112_1915" name="" memberEnd="_12_5_1ea00f4_1194388199375_68481_1916 _12_5_1ea00f4_1194388199375_273268_1917"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387412203_588391_1276" name="" memberEnd="_12_5_1ea00f4_1194387412203_595251_1277 _12_5_1ea00f4_1194387412203_772685_1278"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_134505_918" name="BankBO">
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223910037436_930544_1324" name="MUTUAL_SAVINGS" visibility="public" isStatic="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_12_5_2aa0154_1223910051916_691534_1326" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223910055431_533847_1327" name="PRIVATE_BANK" visibility="public" isStatic="true">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                    <defaultValue xmi:type="uml:LiteralString" xmi:id="_12_5_2aa0154_1223910070005_675283_1329" name="" value="2"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387357718_951353_1223" name="employees" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387357718_359123_1221">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387717984_103999_1607" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387717984_864817_1606" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387739750_589322_1612" name="accounts" visibility="private" type="_12_5_1ea00f4_1194387303953_86321_916" association="_12_5_1ea00f4_1194387739750_161708_1611">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387750671_335352_1662" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387750671_817112_1661" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303968_439664_941" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303968_210768_942" name="code" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223906740563_559961_1332" name="type" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1236926665881_127294_476" name="MyAddressBO">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926692349_408760_495" name="street" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926704176_651017_497" name="zipCode" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926723972_814383_499" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926732940_438289_501" name="country" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_893059_928" name="CompanyBO">
                  <generalization xmi:id="_12_5_1ea00f4_1194387303953_596170_935" isSubstitutable="false" general="_12_5_1ea00f4_1194387303953_502307_922"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303968_742863_955" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_103217_956" name="registrationNumber" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303984_954655_957" name="taxNumber" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_275373_926" name="IndividualBO">
                  <generalization xmi:id="_12_5_1ea00f4_1194387303953_926903_934" isSubstitutable="false" general="_12_5_1ea00f4_1194387303953_502307_922"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387412203_595251_1277" name="person" visibility="private" type="_12_5_1ea00f4_1194387303953_486390_930" association="_12_5_1ea00f4_1194387412203_588391_1276">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387423437_466080_1327" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387423437_496421_1326" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_353841_924" name="EmployeeBO">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387357718_354249_1222" name="bank" visibility="private" type="_12_5_1ea00f4_1194387303953_134505_918" association="_12_5_1ea00f4_1194387357718_359123_1221">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387375531_379767_1272" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387375531_247778_1271" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387465734_275573_1385" name="person" visibility="private" type="_12_5_1ea00f4_1194387303953_486390_930" association="_12_5_1ea00f4_1194387465734_205530_1384">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387472375_505836_1435" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387472375_872581_1434" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387561125_890283_1496" name="attendedCustomers" visibility="private" type="_12_5_1ea00f4_1194387303953_502307_922" association="_12_5_1ea00f4_1194387561125_4424_1495">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387569328_651366_1546" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387569328_2991_1545" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387605234_430511_1551" name="superior" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387605234_459803_1550">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387685406_471131_1605" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387685406_279458_1604" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387605234_981268_1552" name="employees" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387605234_459803_1550">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387620093_553484_1601" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387620093_616949_1600" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387817593_881219_1669" name="responsibility" visibility="private" type="_12_5_1ea00f4_1194387303953_831215_932" association="_12_5_1ea00f4_1194387817593_691166_1668">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387828718_758153_1719" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387828718_848559_1718" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387561125_4424_1495" name="" memberEnd="_12_5_1ea00f4_1194387561125_890283_1496 _12_5_1ea00f4_1194387561125_822061_1497"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387817593_691166_1668" name="" memberEnd="_12_5_1ea00f4_1194387817593_913161_1670 _12_5_1ea00f4_1194387817593_881219_1669">
                  <ownedEnd xmi:id="_12_5_1ea00f4_1194387817593_913161_1670" name="" visibility="private" type="_12_5_1ea00f4_1194387303953_353841_924" association="_12_5_1ea00f4_1194387817593_691166_1668"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194387303953_86321_916" name="AccountBO">
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387303953_314708_936" name="number" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387739750_918276_1613" name="bank" visibility="private" type="_12_5_1ea00f4_1194387303953_134505_918" association="_12_5_1ea00f4_1194387739750_161708_1611">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387759531_852953_1664" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387759531_614161_1663" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194387880187_889573_1725" name="customer" visibility="private" type="_12_5_1ea00f4_1194387303953_502307_922" association="_12_5_1ea00f4_1194387880187_846058_1723">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194387902875_959710_1776" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194387902875_938700_1775" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194388199375_68481_1916" name="bookings" visibility="private" type="_12_5_1ea00f4_1194387303953_378160_920" association="_12_5_1ea00f4_1194388199375_912112_1915">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194388203656_72587_1966" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194388203656_947021_1965" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_1ea00f4_1194388250546_977445_1971" name="authorizedPersons" visibility="private" type="_12_5_1ea00f4_1194387303953_486390_930" association="_12_5_1ea00f4_1194388250546_541510_1970">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1194388273812_194482_2021" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1194388273812_478163_2020" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_12_5_2aa0154_1223907029297_656736_1341" name="interestRate" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
                  <ownedOperation xmi:id="_12_5_1ea00f4_1194388677031_83558_2030" name="calculateBalance" visibility="public">
                    <ownedComment xmi:id="_12_5_1ea00f4_1199282375134_358496_892" body="Method calculates the current balance of the account. Therefore the the amount of every booking is accumulated." annotatedElement="_12_5_1ea00f4_1194388677031_83558_2030"/>
                    <ownedParameter xmi:id="_12_5_2aa0154_1211233691007_681517_759" name="" visibility="public" type="_9_5_f720368_1110473546628_256023_7729" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387880187_846058_1723" name="" memberEnd="_12_5_1ea00f4_1194387880187_49314_1724 _12_5_1ea00f4_1194387880187_889573_1725"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387357718_359123_1221" name="" memberEnd="_12_5_1ea00f4_1194387357718_354249_1222 _12_5_1ea00f4_1194387357718_951353_1223"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1236926763048_398912_506" name="" memberEnd="_16_0_1_2aa0154_1236926763048_149933_508 _16_0_1_2aa0154_1236926763048_935371_507">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1236926763048_149933_508" name="" visibility="private" type="_12_5_1ea00f4_1194387303953_502307_922" association="_16_0_1_2aa0154_1236926763048_398912_506">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1236926950290_295298_541" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1236926950290_881590_540" name=""/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1194387465734_205530_1384" name="" memberEnd="_12_5_1ea00f4_1194387465734_275573_1385 _12_5_1ea00f4_1194387465734_895779_1386"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_12_5_2aa0154_1221481662233_817882_1152" name="" memberEnd="_12_5_2aa0154_1221481662233_927904_1154 _12_5_2aa0154_1221481662233_368223_1153">
                  <ownedEnd xmi:id="_12_5_2aa0154_1221481662233_927904_1154" name="" visibility="private" type="_12_5_1ea00f4_1194387303953_378160_920" association="_12_5_2aa0154_1221481662233_817882_1152"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236813228394_12245_897" name="" supplier="_12_5_2aa0154_1223906483987_509716_1326" client="_16_0_1_2aa0154_1236813132056_559232_881"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927288625_696472_1309" name="" supplier="_16_0_1_2aa0154_1236926704176_651017_497" client="_16_0_1_2aa0154_1236926989133_238400_1165"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927218923_22473_1303" name="" supplier="_12_5_2aa0154_1223906622970_29649_1330" client="_16_0_1_2aa0154_1236638183781_338071_1092"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927297782_150041_1312" name="" supplier="_16_0_1_2aa0154_1236926723972_814383_499" client="_16_0_1_2aa0154_1236927010851_377242_1169"/>
              <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1204190792359_356648_838" name="" supplier="_12_5_2aa0154_1204190671609_305157_803" client="_12_5_1ea00f4_1194618455620_612_990"/>
              <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1234506944986_491752_1067" name="AccountingPersistenceUnit" clientDependency="_18_5_3_29b40597_1588067277417_59526_12322 _18_5_3_29b40597_1588063707301_250832_12160">
                <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1588063707301_250832_12160" name="" supplier="_12_5_1ea00f4_1194386800000_932963_144" client="_12_5_2aa0154_1234506944986_491752_1067"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_29b40597_1588067277417_59526_12322" name="" supplier="_16_0_1_2aa0154_1244642677437_281662_387" client="_12_5_2aa0154_1234506944986_491752_1067"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927587732_464613_1383" name="" supplier="_12_5_1ea00f4_1194387303968_742863_955" client="_16_0_1_2aa0154_1236638183781_600906_1094"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927597951_563702_1389" name="" supplier="_12_5_1ea00f4_1194387303984_954655_957" client="_16_0_1_2aa0154_1236638183781_847985_1096"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1204190638718_211317_779" name="schufa">
                <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1204190671609_305157_803" name="SchufaService">
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1268899843625_167257_715" name="performSchufaCheck" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1268899862406_543485_718" name="pRequest" visibility="public" type="_16_0_1_2aa0154_1268899780703_216197_689"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1268899862406_759091_719" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1204190648390_173999_780" name="impl">
                  <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1204190659953_89586_781" name="SCHUFA" clientDependency="_12_5_2aa0154_1204190690593_320927_804" isIndirectlyInstantiated="false">
                    <interfaceRealization xmi:id="_12_5_2aa0154_1204190690593_320927_804" name="" supplier="_12_5_2aa0154_1204190671609_305157_803" client="_12_5_2aa0154_1204190659953_89586_781" contract="_12_5_2aa0154_1204190671609_305157_803"/>
                  </packagedElement>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1239230129147_293860_1059" name="" supplier="_12_5_1ea00f4_1194387303968_439664_941" client="_16_0_1_2aa0154_1239229857335_126487_953"/>
              <packagedElement xmi:type="uml:Component" xmi:id="_12_5_1ea00f4_1194618455620_612_990" name="Accounting" clientDependency="_12_5_2aa0154_1204190535171_205459_761 _12_5_2aa0154_1204190792359_356648_838 _12_5_1ea00f4_1194618477026_592674_1031 _12_5_2aa0154_1232316708381_392881_1069 _12_5_2aa0154_1234507003767_242828_1094">
                <ownedComment xmi:id="_12_5_2aa0154_1234390548215_899549_1331" body="This component contains all accounting functions offered by the accounting service." annotatedElement="_12_5_1ea00f4_1194618455620_612_990"/>
                <ownedAttribute xmi:id="_16_8_19940331_1294577138362_712299_2961" name="defaultInterrestRate" visibility="private" type="_9_5_f720368_1110473546612_585522_7603">
                  <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_8_19940331_1294577239900_230585_2968" name="">
                    <body>0.105</body>
                  </defaultValue>
                </ownedAttribute>
                <interfaceRealization xmi:id="_12_5_1ea00f4_1194618477026_592674_1031" name="" supplier="_12_5_1ea00f4_1194617669684_839205_925" client="_12_5_1ea00f4_1194618455620_612_990" contract="_12_5_1ea00f4_1194617669684_839205_925"/>
                <interfaceRealization xmi:id="_12_5_2aa0154_1232316708381_392881_1069" name="" supplier="_12_5_2aa0154_1232316618430_150345_1049" client="_12_5_1ea00f4_1194618455620_612_990" contract="_12_5_2aa0154_1232316618430_150345_1049"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_8_19590324_1359698530106_999066_3852" name="domainobjects">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359698572557_802149_3877" name="AccountDO">
                  <ownedAttribute xmi:id="_16_8_19590324_1359698592324_506616_3919" name="number" visibility="private" clientDependency="_16_8_19590324_1359698638819_18767_3927" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_16_8_19590324_1359698602220_75888_3921" name="interestRate" visibility="private" clientDependency="_16_8_19590324_1359698651425_426482_3930" type="_9_5_f720368_1110473546612_585522_7603"/>
                  <ownedAttribute xmi:id="_16_8_19590324_1359698619310_295183_3923" name="balance" visibility="private" clientDependency="_16_8_19590324_1359698656190_392193_3933" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedOperation xmi:id="_16_8_19590324_1359706517731_124019_4264" name="getBankID" visibility="public">
                    <ownedParameter xmi:id="_16_8_19590324_1359706530377_927809_4267" name="" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359698656190_392193_3933" name="" supplier="_12_5_1ea00f4_1194388677031_83558_2030" client="_16_8_19590324_1359698619310_295183_3923"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359698638819_18767_3927" name="" supplier="_12_5_1ea00f4_1194387303953_314708_936" client="_16_8_19590324_1359698592324_506616_3919"/>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359698651425_426482_3930" name="" supplier="_12_5_2aa0154_1223907029297_656736_1341" client="_16_8_19590324_1359698602220_75888_3921"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_12_5_1ea00f4_1199284328087_953172_917" name="" supplier="_12_5_1ea00f4_1194387303953_314708_936" client="_12_5_1ea00f4_1199284270181_679129_893"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1204190578921_547457_777" name="swift">
                <packagedElement xmi:type="uml:Package" xmi:id="_12_5_2aa0154_1204190586312_773662_778" name="impl">
                  <packagedElement xmi:type="uml:Component" xmi:id="_12_5_2aa0154_1204190411796_357260_687" name="SWIFTAccounting" clientDependency="_12_5_2aa0154_1204190434656_28465_712 _16_0_1_2aa0154_1244642956031_58058_817" isIndirectlyInstantiated="false">
                    <interfaceRealization xmi:id="_12_5_2aa0154_1204190434656_28465_712" name="" supplier="_12_5_2aa0154_1204190434609_597562_710" client="_12_5_2aa0154_1204190411796_357260_687" contract="_12_5_2aa0154_1204190434609_597562_710"/>
                    <packagedElement xmi:type="uml:Usage" xmi:id="_16_0_1_2aa0154_1244642956031_58058_817" name="" supplier="_12_5_2aa0154_1234506944986_491752_1067" client="_12_5_2aa0154_1204190411796_357260_687"/>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1244642677437_281662_387" name="domain">
                    <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1244642703562_380177_409" name="SwiftTransactionLogBO">
                      <ownedAttribute xmi:id="_16_0_1_2aa0154_1244642781796_529230_432" name="timestamp" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                      <ownedAttribute xmi:id="_16_0_1_2aa0154_1244642795453_274673_434" name="amount" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
                    </packagedElement>
                  </packagedElement>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_2aa0154_1204190434609_597562_710" name="SwiftAccountingService">
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1244635079515_256429_560" name="performBooking" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1244635293390_851738_1185" body="Method performs a booking of the passed amount. Therefore besides the booking also the source and target account have to be passed.&#xA;&#xA;@param pBooking Booking that should be performed. The parameter must not be null and both, the source and target account have to be set." annotatedElement="_16_0_1_2aa0154_1244635079515_256429_560"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1244635108828_190591_786" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229" direction="inout"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1244635117625_21535_788" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236813223347_629257_894" name="" supplier="_12_5_1ea00f4_1194387303984_128785_960" client="_12_5_2aa0154_1204275496203_290834_1213"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1268899780703_216197_689" name="SchufaRequest">
                <ownedAttribute xmi:id="_16_0_1_2aa0154_1268899793328_706063_708" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_0_1_2aa0154_1268899799921_506298_710" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_0_1_2aa0154_1268899807921_642168_712" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236813207580_57604_891" name="" supplier="_12_5_1ea00f4_1194387303984_510900_959" client="_12_5_2aa0154_1204275477343_947017_1211"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1239230151413_501042_1066" name="" supplier="_12_5_1ea00f4_1194387303968_210768_942" client="_16_0_1_2aa0154_1239229857351_296220_954"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927282391_299719_1306" name="" supplier="_16_0_1_2aa0154_1236926692349_408760_495" client="_16_0_1_2aa0154_1236926979539_725469_1163"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1236927302173_801070_1315" name="" supplier="_16_0_1_2aa0154_1236926732940_438289_501" client="_16_0_1_2aa0154_1236926997726_736574_1167"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1239230168038_51671_1073" name="" supplier="_12_5_2aa0154_1223906740563_559961_1332" client="_16_0_1_2aa0154_1239229857351_146407_955"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1237529721456_452420_935" name="" supplier="_12_5_1ea00f4_1194387303953_275373_926" client="_16_0_1_2aa0154_1236638183765_800844_1082"/>
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1631122338531_503843_6567" name="pojo">
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1631122403566_623890_6602" name="Account">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122473110_997114_6670" name="iban" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122832912_182671_6691" name="owner" visibility="private" type="_19_0_4_29b40597_1631122440524_789981_6646" association="_19_0_4_29b40597_1631122832912_530286_6690">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631122854341_571173_6702" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1631122854341_788600_6701" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122956772_605300_6719" name="currency" visibility="private" type="_9_5_f720368_1110473546706_958934_8849"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123096135_476562_6783" name="allBookings" visibility="private" type="_19_0_4_29b40597_1631123005867_660511_6722" association="_19_0_4_29b40597_1631123096135_71863_6782">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631123193812_763464_6800" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1631123193812_198533_6799" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1631122930036_210170_6715" name="calcuateBalance" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1631122946598_115698_6718" name="" visibility="public" type="_9_5_f720368_1110473546628_256023_7729" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1631122440524_789981_6646" name="Customer">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122489172_946504_6672" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122531543_396581_6674" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122543116_416232_6676" name="email" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631122832912_348150_6692" name="accounts" visibility="private" type="_19_0_4_29b40597_1631122403566_623890_6602" association="_19_0_4_29b40597_1631122832912_530286_6690">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631122864989_848056_6708" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1631122864988_589129_6707" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_19_0_4_29b40597_1631122719757_412129_6681" name="getDisplayName" visibility="public">
                    <ownedParameter xmi:id="_19_0_4_29b40597_1631122739980_557064_6684" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1631122832912_530286_6690" name="" memberEnd="_19_0_4_29b40597_1631122832912_182671_6691 _19_0_4_29b40597_1631122832912_348150_6692"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1631123005867_660511_6722" name="Booking">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123044902_533778_6749" name="sourceAccount" visibility="private" type="_19_0_4_29b40597_1631122403566_623890_6602" association="_19_0_4_29b40597_1631123044902_759210_6748">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631123062868_769621_6760" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1631123062868_451269_6759" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123067126_620344_6768" name="targetAccount" visibility="private" type="_19_0_4_29b40597_1631122403566_623890_6602" association="_19_0_4_29b40597_1631123067126_339049_6767">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631123198867_104595_6804" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1631123198867_468950_6803" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123113691_939085_6793" name="amount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123133388_466721_6795" name="currency" visibility="private" type="_9_5_f720368_1110473546706_958934_8849"/>
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631123158804_168499_6797" name="executionTimestamp" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1631123044902_759210_6748" name="" memberEnd="_19_0_4_29b40597_1631123044902_491150_6750 _19_0_4_29b40597_1631123044902_533778_6749">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1631123044902_491150_6750" name="" visibility="private" type="_19_0_4_29b40597_1631123005867_660511_6722" association="_19_0_4_29b40597_1631123044902_759210_6748"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1631123067126_339049_6767" name="" memberEnd="_19_0_4_29b40597_1631123067126_796207_6769 _19_0_4_29b40597_1631123067126_620344_6768">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1631123067126_796207_6769" name="" visibility="private" type="_19_0_4_29b40597_1631123005867_660511_6722" association="_19_0_4_29b40597_1631123067126_339049_6767"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1631123096135_71863_6782" name="" memberEnd="_19_0_4_29b40597_1631123096135_610008_6784 _19_0_4_29b40597_1631123096135_476562_6783">
                  <ownedEnd xmi:id="_19_0_4_29b40597_1631123096135_610008_6784" name="" visibility="private" type="_19_0_4_29b40597_1631122403566_623890_6602" association="_19_0_4_29b40597_1631123096135_71863_6782"/>
                </packagedElement>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1236638183765_800844_1082" name="Individual" clientDependency="_16_0_1_2aa0154_1237529721456_452420_935">
              <generalization xmi:id="_16_0_1_2aa0154_1236638183765_427232_1085" isSubstitutable="false" general="_16_0_1_2aa0154_1236638183765_726460_1083"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638480293_972287_1253" name="person" visibility="private" type="_12_5_2aa0154_1204275369812_518583_1133" association="_16_0_1_2aa0154_1236638480293_461081_1252">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1236638504605_41593_1263" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1236638504605_941910_1262" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_1ea00f4_1194617887244_723645_945" name="Account">
              <ownedAttribute xmi:id="_12_5_1ea00f4_1199284270181_679129_893" name="iban" visibility="private" clientDependency="_12_5_1ea00f4_1199284328087_953172_917" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_12_5_1ea00f4_1199284396587_941011_932" name="balance" visibility="private" clientDependency="_12_5_1ea00f4_1199284430931_537247_934" type="_9_5_f720368_1110473546628_256023_7729"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204275430046_213562_1158" name="authorizedPersons" visibility="private" type="_12_5_2aa0154_1204275369812_518583_1133" association="_12_5_2aa0154_1204275430046_627384_1157">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1204275445875_722389_1208" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1204275445875_396389_1207" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_1ea00f4_1222880445606_426489_1019" name="bookings" visibility="private" type="_12_5_2aa0154_1204197442437_906165_1229" association="_12_5_1ea00f4_1222880445606_837484_1018">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1222880473132_186608_1069" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1222880473132_639650_1068" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239744267170_315255_555" name="bankID" visibility="private" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
              <ownedOperation xmi:id="_16_8_195e0323_1308723216425_549078_5616" name="calclulateBalance" visibility="public">
                <ownedParameter xmi:id="_16_8_195e0323_1308723235417_87960_5619" name="" visibility="public" type="_9_5_f720368_1110473546612_897100_7595" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1239229857335_145980_947" name="Bank">
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239229857335_337297_949" name="MUTUAL_SAVINGS" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_16_0_1_2aa0154_1239229857351_44382_957" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239229857335_959895_950" name="PRIVATE_BANK" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_16_0_1_2aa0154_1239229857351_378391_958" name="" value="2"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239229857335_126487_953" name="name" visibility="private" clientDependency="_16_0_1_2aa0154_1239230129147_293860_1059" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239229857351_296220_954" name="code" visibility="private" clientDependency="_16_0_1_2aa0154_1239230151413_501042_1066" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1239229857351_146407_955" name="type" visibility="private" clientDependency="_16_0_1_2aa0154_1239230168038_51671_1073" type="_16_0_1_2aa0154_1253741300640_231157_570"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1236638183765_726460_1083" name="Customer" isAbstract="true">
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638183781_338071_1092" name="active" visibility="private" clientDependency="_16_0_1_2aa0154_1236927218923_22473_1303" type="_9_5_f720368_1110473546612_366010_7561"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926979539_725469_1163" name="street" visibility="private" clientDependency="_16_0_1_2aa0154_1236927282391_299719_1306" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926989133_238400_1165" name="zipCode" visibility="private" clientDependency="_16_0_1_2aa0154_1236927288625_696472_1309" type="_9_5_f720368_1110473546612_167906_7631"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236927010851_377242_1169" name="city" visibility="private" clientDependency="_16_0_1_2aa0154_1236927297782_150041_1312" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236926997726_736574_1167" name="country" visibility="private" clientDependency="_16_0_1_2aa0154_1236927302173_801070_1315" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1204197442437_906165_1229" name="Booking">
              <ownedAttribute xmi:id="_12_5_2aa0154_1204197462171_38656_1248" name="amount" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                <ownedComment xmi:id="_16_8_2aa0154_1282906679152_652994_1816" body="Amount of the booking. The attribute must not be null." annotatedElement="_12_5_2aa0154_1204197462171_38656_1248"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204197545937_623694_1254" name="source" visibility="private" type="_12_5_1ea00f4_1194617887244_723645_945" association="_12_5_2aa0154_1204197545937_277687_1253">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1204197583406_972596_1357" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1204197583406_875544_1356" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204197567937_801145_1307" name="target" visibility="private" type="_12_5_1ea00f4_1194617887244_723645_945" association="_12_5_2aa0154_1204197567937_258663_1306">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1204275397171_242431_1153" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1204275397171_834335_1152" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_2aa0154_1222180424468_971021_943" name="token" visibility="private" type="_12_5_2aa0154_1210923760759_715253_1187" association="_12_5_2aa0154_1222180424468_455178_942">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1222180446734_537648_993" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1222180446734_503759_992" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_1ea00f4_1222869746751_179836_982" name="remitters" visibility="private" type="_12_5_2aa0154_1204275369812_518583_1133" association="_12_5_1ea00f4_1222869746751_969462_981">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1222869774749_923093_1040" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1222869774749_722223_1039" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_1ea00f4_1222880445606_37229_1020" name="account" visibility="private" type="_12_5_1ea00f4_1194617887244_723645_945" association="_12_5_1ea00f4_1222880445606_837484_1018">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1222880482771_956520_1071" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1222880482771_414845_1070" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1210923760759_715253_1187" name="SecurityToken">
              <ownedAttribute xmi:id="_12_5_2aa0154_1210923812534_743821_1207" name="sessionKey" visibility="private" isReadOnly="true">
                <ownedComment xmi:id="_16_8_2aa0154_1282906719090_247123_2083" body="The attribute contains the session key of the security token that was used when the booking was executed." annotatedElement="_12_5_2aa0154_1210923812534_743821_1207"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1211007803928_576402_1225" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1211007803928_580835_1224" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_12_5_2aa0154_1222180424468_694690_944" name="booking" visibility="private" type="_12_5_2aa0154_1204197442437_906165_1229" association="_12_5_2aa0154_1222180424468_455178_942">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_2aa0154_1222180458250_885990_995" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_2aa0154_1222180458234_785680_994" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1643712839978_732261_8110" name="value" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359706838393_882499_4417" name="" supplier="_16_8_19590324_1359698592324_506616_3919" client="_16_8_19590324_1359706734435_182929_4312"/>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1222880445606_837484_1018" name="" memberEnd="_12_5_1ea00f4_1222880445606_426489_1019 _12_5_1ea00f4_1222880445606_37229_1020"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19590324_1359706734431_28718_4310" name="AccountInfo">
              <ownedAttribute xmi:id="_16_8_19590324_1359706734435_182929_4312" name="iban" visibility="private" clientDependency="_16_8_19590324_1359706838393_882499_4417" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_16_8_19590324_1359706734436_850364_4313" name="balance" visibility="private" clientDependency="_16_8_19590324_1359706833429_802062_4409" type="_9_5_f720368_1110473546612_897100_7595"/>
              <ownedAttribute xmi:id="_16_8_19590324_1359706734439_173868_4316" name="bankID" visibility="private" clientDependency="_16_8_19590324_1359706828530_403282_4405" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
              <ownedOperation xmi:id="_16_8_19590324_1359706734434_480449_4311" name="calclulateBalance" visibility="public">
                <ownedParameter xmi:id="_16_8_19590324_1359706734441_925600_4318" name="" visibility="public" type="_9_5_f720368_1110473546612_897100_7595" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359706828530_403282_4405" name="" supplier="_16_8_19590324_1359706517731_124019_4264" client="_16_8_19590324_1359706734439_173868_4316"/>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_2aa0154_1204275430046_627384_1157" name="" memberEnd="_12_5_2aa0154_1204275430046_213562_1158 _12_5_2aa0154_1204275430046_70920_1159"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1232316805239_788091_1122" name="ResponsibilityType">
              <ownedAttribute xmi:id="_12_5_2aa0154_1232316805239_207858_1124" name="type" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1232316805239_887186_1125" name="typeChar" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1232316805239_606236_1126" name="sortorder" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_2aa0154_1222180424468_455178_942" name="" memberEnd="_12_5_2aa0154_1222180424468_971021_943 _12_5_2aa0154_1222180424468_694690_944"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1204275369812_518583_1133" name="Person">
              <ownedAttribute xmi:id="_12_5_2aa0154_1204275466906_978856_1209" name="name" visibility="private" clientDependency="_19_0_4_29b40597_1634840490993_124641_7890" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204275477343_947017_1211" name="firstName" visibility="private" clientDependency="_16_0_1_2aa0154_1236813207580_57604_891" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204275496203_290834_1213" name="dateOfBirth" visibility="private" clientDependency="_16_0_1_2aa0154_1236813223347_629257_894" type="_9_5_f720368_1110473546706_973459_8839"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204275430046_70920_1159" name="accounts" visibility="private" type="_12_5_1ea00f4_1194617887244_723645_945" association="_12_5_2aa0154_1204275430046_627384_1157">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_12_5_1ea00f4_1222869707601_740099_976" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_12_5_1ea00f4_1222869707601_974317_975" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638480293_668831_1254" name="customer" visibility="private" type="_16_0_1_2aa0154_1236638183765_800844_1082" association="_16_0_1_2aa0154_1236638480293_461081_1252">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1236638529792_97575_1271" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1236638529792_810924_1270" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236813132056_559232_881" name="age" visibility="private" clientDependency="_16_0_1_2aa0154_1236813228394_12245_897" type="_9_5_f720368_1110473546612_167906_7631"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1238446855110_228190_487" name="displayName" visibility="private" clientDependency="_16_0_1_2aa0154_1238446874422_138206_489" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1236638480293_461081_1252" name="" memberEnd="_16_0_1_2aa0154_1236638480293_972287_1253 _16_0_1_2aa0154_1236638480293_668831_1254"/>
            <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_0_1_2aa0154_1253741300640_231157_570" name="BankType">
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1253741400765_712414_593" name="typeCode" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedLiteral xmi:id="_16_0_1_2aa0154_1253741358031_626958_589" name="MUTUAL_SAVINGS(&quot;MS&quot;)" classifier="_16_0_1_2aa0154_1253741300640_231157_570">
                <ownedComment xmi:id="_16_0_1_2aa0154_1253742947046_640048_860" body="Enumeration literal for bank of type &quot;Mutual Savings&quot;." annotatedElement="_16_0_1_2aa0154_1253741358031_626958_589"/>
              </ownedLiteral>
              <ownedLiteral xmi:id="_16_0_1_2aa0154_1253741371312_756401_591" name="PRIVATE_BANK(&quot;PB&quot;)" classifier="_16_0_1_2aa0154_1253741300640_231157_570">
                <ownedComment xmi:id="_16_0_1_2aa0154_1253742960609_258130_861" body="Enumeration literal for bank of type &quot;Private Bank&quot;." annotatedElement="_16_0_1_2aa0154_1253741371312_756401_591"/>
              </ownedLiteral>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_2aa0154_1204197567937_258663_1306" name="" memberEnd="_12_5_2aa0154_1204197567937_164759_1308 _12_5_2aa0154_1204197567937_801145_1307">
              <ownedEnd xmi:id="_12_5_2aa0154_1204197567937_164759_1308" name="" visibility="private" type="_12_5_2aa0154_1204197442437_906165_1229" association="_12_5_2aa0154_1204197567937_258663_1306"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1211005191392_384871_918" name="AccountingServiceSystemException"/>
            <packagedElement xmi:type="uml:Usage" xmi:id="_12_5_2aa0154_1234507003767_242828_1094" name="" supplier="_12_5_2aa0154_1234506944986_491752_1067" client="_12_5_1ea00f4_1194618455620_612_990"/>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_1ea00f4_1222869746751_969462_981" name="" memberEnd="_12_5_1ea00f4_1222869746751_490410_983 _12_5_1ea00f4_1222869746751_179836_982">
              <ownedEnd xmi:id="_12_5_1ea00f4_1222869746751_490410_983" name="" visibility="private" type="_12_5_2aa0154_1204197442437_906165_1229" association="_12_5_1ea00f4_1222869746751_969462_981"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1204197241687_494434_1182" name="SwiftAccount">
              <generalization xmi:id="_12_5_2aa0154_1204197334031_564354_1202" isSubstitutable="false" general="_12_5_1ea00f4_1194617887244_723645_945"/>
              <ownedAttribute xmi:id="_12_5_2aa0154_1204197379171_666866_1226" name="bic" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_12_5_2aa0154_1204197545937_277687_1253" name="" memberEnd="_12_5_2aa0154_1204197545937_506150_1255 _12_5_2aa0154_1204197545937_623694_1254">
              <ownedEnd xmi:id="_12_5_2aa0154_1204197545937_506150_1255" name="" visibility="private" type="_12_5_2aa0154_1204197442437_906165_1229" association="_12_5_2aa0154_1204197545937_277687_1253"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1236638183765_801504_1084" name="Company">
              <generalization xmi:id="_16_0_1_2aa0154_1236638183765_603419_1088" isSubstitutable="false" general="_16_0_1_2aa0154_1236638183765_726460_1083"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638183781_600906_1094" name="name" visibility="private" clientDependency="_16_0_1_2aa0154_1236927587732_464613_1383" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638183781_724474_1095" name="registrationNumber" visibility="private" clientDependency="_16_0_1_2aa0154_1236927592607_630195_1386" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236638183781_847985_1096" name="taxNumber" visibility="private" clientDependency="_16_0_1_2aa0154_1236927597951_563702_1389" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_16_0_1_2aa0154_1236949646599_61738_1416" name="attendant" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1282022577389_65835_1814" name="CustomerQuery">
              <ownedAttribute xmi:id="_16_8_2aa0154_1282022587426_45500_1832" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_8_2aa0154_1282022594359_617236_1834" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_8_2aa0154_1282022602569_519555_1836" name="companyName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_8_2aa0154_1282022611701_387888_1838" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_12_5_2aa0154_1211005209108_72272_938" name="AccountingServiceApplicationException"/>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_19590324_1359706833429_802062_4409" name="" supplier="_16_8_19590324_1359698619310_295183_3923" client="_16_8_19590324_1359706734436_850364_4313"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_12_5_1ea00f4_1194617669684_839205_925" name="AccountingService">
              <ownedComment xmi:id="_16_0_1_2aa0154_1244627252015_137968_1170" body="This interface defines the common services that are provided by the accounting component. This interface is intended to be an example to demonstrate how to use JEAF." annotatedElement="_12_5_1ea00f4_1194617669684_839205_925"/>
              <ownedOperation xmi:id="_12_5_1ea00f4_1194617932382_298608_965" name="createAccount" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244626721296_909629_1169" body="Method creates a new account for the passed customer. The method uses the passed person as authorized person.&#xA;&#xA;@param pCustomer Customer for which the account will be created. The parameter must not be null.&#xA;@param pAuthorizedPerson Person who will be authorized for the passed account. The parameter must not be null.&#xA;@return {@link Account} Created account object. The method never returns null.&#xA;" annotatedElement="_12_5_1ea00f4_1194617932382_298608_965"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242131553468_886215_1179" name="pCustomer" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242131553468_977346_1180" name="pAuthorizedPerson" visibility="public" type="_12_5_2aa0154_1204275369812_518583_1133"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242131553546_698330_1181" name="" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1244640186640_258542_547" name="getAccount" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244640754296_509724_1170" body="Method returns the account with the passed account id.&#xA;&#xA;@param pAccountID ID of the account that should be returned. The parameter must not be null.&#xA;@return {@link Account} Account service object with the passed id. The method never returns null.&#xA;" annotatedElement="_16_0_1_2aa0154_1244640186640_258542_547"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1244640206031_361317_549" name="pAccountID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                <ownedParameter xmi:id="_16_8_19590324_1284281317435_927070_3019" name="" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_12_5_1ea00f4_1198228214308_710473_917" name="lockAccount" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244628931953_562658_1175" body="Method locks the passed account. If the account is already locked, nothing will happen.&#xA;&#xA;@param pAccount Account that should be locked. The parameter must not be null.&#xA;" annotatedElement="_12_5_1ea00f4_1198228214308_710473_917"/>
                <ownedParameter xmi:id="_12_5_1ea00f4_1198234613991_368388_923" name="pAccount" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945" direction="inout"/>
                <ownedParameter xmi:id="_12_5_1ea00f4_1198234619727_275199_924" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1244627447484_911590_1171" name="unlock" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244629015593_908073_1176" body="Method unlocks the passed account. If the account is already unlocked, nothing will happen.&#xA;&#xA;@param pAccount Account that should be unlocked. The parameter must not be null.&#xA;" annotatedElement="_16_0_1_2aa0154_1244627447484_911590_1171"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1244627447484_799964_1172" name="pAccount" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945" direction="inout"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1244627447484_915233_1173" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_12_5_2aa0154_1204197679281_377321_1362" name="performBooking" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244635252515_975358_1184" body="Method performs a booking of the passed amount. Therefore besides the booking also the source and target account have to be passed.&#xA;&#xA;@param pBooking Booking that should be performed. The parameter must not be null and both, the source and target account have to be set.&#xA;@param pSecurityToken Current security token of the caller. The parameter must not be null.&#xA;" annotatedElement="_12_5_2aa0154_1204197679281_377321_1362"/>
                <ownedParameter xmi:id="_12_5_2aa0154_1204197700421_752236_1366" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229" direction="inout"/>
                <ownedParameter xmi:id="_12_5_2aa0154_1210933199174_207662_1211" name="pSecurityToken" visibility="public" type="_12_5_2aa0154_1210923760759_715253_1187" direction="inout"/>
                <ownedParameter xmi:id="_12_5_2aa0154_1204197700421_701627_1367" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1236638072970_933358_1060" name="createCustomer" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244629613093_613661_1177" body="Method creates a new customer object from the data of the passed service object.&#xA;&#xA;@param pNewCustomer Customer service object describing the data of the customer that should be created. The parameter must not be null.&#xA;@param pAttendingEmployeeID ID of the employee that will be the attendant for the created customer. The parameter must not be null.&#xA;@return {@link Customer} Customer object describing the created customer. The method never returns null and the returned object is not same instance as the passed one.&#xA;" annotatedElement="_16_0_1_2aa0154_1236638072970_933358_1060"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1236638634056_195399_1586" name="pNewCustomer" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1244625272546_239589_1167" name="pAttendingEmployeeID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                <ownedParameter xmi:id="_16_8_19590324_1284281341692_523232_3020" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1238709359936_102924_533" name="getCustomer" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1238710013843_419983_930" body="Method returns the customer with the passed service object id.&#xA;&#xA;@param pCustomerID ID of the customer that should be returned. The parameter must not be null.&#xA;@return {@link Customer} Customer object with the passed id or null if the object does not exist." annotatedElement="_16_0_1_2aa0154_1238709359936_102924_533"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1238709410655_851066_536" name="pCustomerID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1632477683478_764228_7187" name="pLoadStrategy" visibility="public" type="_19_0_4_29b40597_1632477567830_41518_5715"/>
                <ownedParameter xmi:id="_16_8_19590324_1284281351760_26740_3021" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1242132705953_366848_1182" name="createPerson" visibility="public">
                <ownedComment xmi:id="_16_0_1_2aa0154_1244629764406_638121_1178" body="Method creates a new Person object with the data of the passed service object.&#xA;&#xA;@param pPerson Person service object whose data should be used to create a new persistent Person object. The parameter must not be null.&#xA;@return {@link Person} Person service object describing the created person. The object is not the same instance as the passed one. The method never returns null.&#xA;" annotatedElement="_16_0_1_2aa0154_1242132705953_366848_1182"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242132722140_310013_1184" name="pPerson" visibility="public" type="_12_5_2aa0154_1204275369812_518583_1133"/>
                <ownedParameter xmi:id="_16_0_1_2aa0154_1242132722140_560119_1185" name="" visibility="public" type="_12_5_2aa0154_1204275369812_518583_1133" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_0_1_2aa0154_1254980545062_816099_585" name="searchCustomers" visibility="public">
                <ownedParameter xmi:id="_16_8_19590324_1284281367258_185292_3022" name="pQuery" visibility="public" type="_16_8_2aa0154_1282022577389_65835_1814"/>
                <ownedParameter xmi:id="_16_8_19590324_1284281367260_437698_3023" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19590324_1284281367282_36246_3025" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19590324_1284281367282_149127_3024" name="" value="1"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_8_2aa0154_1281367045206_149092_1751" name="actors">
              <packagedElement xmi:type="uml:Actor" xmi:id="_16_8_2aa0154_1281367085204_459306_1774" name="Accounting User" clientDependency="_16_8_2aa0154_1281367133829_322388_1819"/>
              <packagedElement xmi:type="uml:Actor" xmi:id="_16_8_2aa0154_1281367176339_349191_1820" name="Accounting Basic Data Admin" clientDependency="_16_8_2aa0154_1281367232047_783928_1859"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1281367133829_322388_1819" name="" supplier="_12_5_1ea00f4_1194617669684_839205_925" client="_16_8_2aa0154_1281367085204_459306_1774"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_2aa0154_1281367232047_783928_1859" name="" supplier="_12_5_2aa0154_1232316618430_150345_1049" client="_16_8_2aa0154_1281367176339_349191_1820"/>
              <packagedElement xmi:type="uml:Actor" xmi:id="_19_0_4_29b40597_1631081922552_176312_6080" name="Support User" clientDependency="_19_0_4_29b40597_1631082045215_134617_6116"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1631082045215_134617_6116" name="" supplier="_16_0_1_2aa0154_1244627447484_911590_1171" client="_19_0_4_29b40597_1631081922552_176312_6080"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1534265503058_963731_8908" name="validation">
              <packagedElement xmi:type="uml:Enumeration" xmi:id="_18_5_3_1ea00f4_1534265514023_65523_8909" name="CustomEnum">
                <ownedLiteral xmi:id="_18_5_3_1ea00f4_1534265530807_700802_8910" name="UP_AND_AWAY" classifier="_18_5_3_1ea00f4_1534265514023_65523_8909"/>
                <ownedLiteral xmi:id="_18_5_3_1ea00f4_1534265546301_39547_8911" name="STAY_HERE" classifier="_18_5_3_1ea00f4_1534265514023_65523_8909"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1630992365042_895181_6764" name="activities">
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1630992385999_765951_6765" name="PerformBookingActivity" isReentrant="true">
                <ownedComment xmi:id="_19_0_4_29b40597_1631006426038_247103_8247" body="Activity is responsible to perform a booking from one account to another." annotatedElement="_19_0_4_29b40597_1630992385999_765951_6765"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1630992453765_357714_6832" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1630992542358_713893_6845" name="pSecurityToken" visibility="public" type="_12_5_2aa0154_1210923760759_715253_1187"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1645436938142_785544_7655" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1630992453768_287228_6833" name="pBooking" visibility="public" outgoing="_19_0_4_29b40597_1631006893536_94694_8474" type="_12_5_2aa0154_1204197442437_906165_1229" parameter="_19_0_4_29b40597_1630992453765_357714_6832"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1630992542363_44162_6846" name="pSecurityToken" visibility="public" type="_12_5_2aa0154_1210923760759_715253_1187" parameter="_19_0_4_29b40597_1630992542358_713893_6845"/>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_19_0_4_29b40597_1631006477113_2177_8312" name="" visibility="public" outgoing="_19_0_4_29b40597_1631006788855_617881_8435" incoming="_19_0_4_29b40597_1631006542905_6723_8338" behavior="_19_0_4_29b40597_1631006253234_337872_8245">
                  <argument xmi:id="_19_0_4_29b40597_1631006558626_738348_8343" name="pAccount" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945"/>
                  <result xmi:id="_19_0_4_29b40597_1631006606644_25589_8374" name="" visibility="public" outgoing="_19_0_4_29b40597_1631006716927_815967_8425">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </result>
                </node>
                <node xmi:type="uml:InitialNode" xmi:id="_19_0_4_29b40597_1631006537838_246342_8329" name="" visibility="public" outgoing="_19_0_4_29b40597_1631006542905_6723_8338"/>
                <node xmi:type="uml:DecisionNode" xmi:id="_19_0_4_29b40597_1631006651659_939208_8407" name="Transfer illegal?" visibility="public" outgoing="_19_0_4_29b40597_1631006884869_675003_8469" incoming="_19_0_4_29b40597_1631006788855_617881_8435 _19_0_4_29b40597_1631006716927_815967_8425"/>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_19_0_4_29b40597_1631006862547_165622_8453" name="" visibility="public" incoming="_19_0_4_29b40597_1631006884869_675003_8469" behavior="_19_0_4_29b40597_1631006357822_556322_8246">
                  <argument xmi:id="_19_0_4_29b40597_1631006893537_333124_8476" name="pBooking" visibility="public" incoming="_19_0_4_29b40597_1631006893536_94694_8474" type="_12_5_2aa0154_1204197442437_906165_1229"/>
                  <result xmi:id="_19_0_4_29b40597_1631007014895_94271_8564" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                </node>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1645436938151_669126_7656" name="" visibility="public" parameter="_19_0_4_29b40597_1645436938142_785544_7655">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </node>
                <edge xmi:type="uml:ControlFlow" xmi:id="_19_0_4_29b40597_1631006542905_6723_8338" name="" visibility="public" source="_19_0_4_29b40597_1631006537838_246342_8329" target="_19_0_4_29b40597_1631006477113_2177_8312">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631006542905_816569_8339" name="" value="1"/>
                </edge>
                <edge xmi:type="uml:ObjectFlow" xmi:id="_19_0_4_29b40597_1631006716927_815967_8425" name="" visibility="public" source="_19_0_4_29b40597_1631006606644_25589_8374" target="_19_0_4_29b40597_1631006651659_939208_8407">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631006716927_413894_8426" name="" value="1"/>
                </edge>
                <edge xmi:type="uml:ControlFlow" xmi:id="_19_0_4_29b40597_1631006788855_617881_8435" name="" visibility="public" source="_19_0_4_29b40597_1631006477113_2177_8312" target="_19_0_4_29b40597_1631006651659_939208_8407">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631006788855_354427_8436" name="" value="1"/>
                </edge>
                <edge xmi:type="uml:ControlFlow" xmi:id="_19_0_4_29b40597_1631006884869_675003_8469" name="" visibility="public" source="_19_0_4_29b40597_1631006651659_939208_8407" target="_19_0_4_29b40597_1631006862547_165622_8453">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631006884869_861330_8470" name="" value="1"/>
                </edge>
                <edge xmi:type="uml:ObjectFlow" xmi:id="_19_0_4_29b40597_1631006893536_94694_8474" name="" visibility="public" source="_19_0_4_29b40597_1630992453768_287228_6833" target="_19_0_4_29b40597_1631006893537_333124_8476">
                  <weight xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1631006893536_437741_8475" name="" value="1"/>
                </edge>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1630992418784_733558_6767" name="Accounting Activities" isReentrant="true">
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_19_0_4_29b40597_1630992438434_56172_6807" name="" visibility="public" behavior="_19_0_4_29b40597_1630992385999_765951_6765">
                  <argument xmi:id="_19_0_4_29b40597_1630992453759_575989_6821" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229"/>
                  <argument xmi:id="_19_0_4_29b40597_1630992542364_833971_6847" name="pSecurityToken" visibility="public" type="_12_5_2aa0154_1210923760759_715253_1187"/>
                  <result xmi:id="_19_0_4_29b40597_1645436946510_662514_7658" name="" visibility="public">
                    <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                  </result>
                </node>
                <node xmi:type="uml:CallBehaviorAction" xmi:id="_19_0_4_29b40597_1630992766299_346837_6881" name="" visibility="public" behavior="_19_0_4_29b40597_1630992753208_406649_6872">
                  <argument xmi:id="_19_0_4_29b40597_1630992792751_717959_6895" name="pNewCustomer" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083"/>
                  <argument xmi:id="_19_0_4_29b40597_1630992832952_671023_6920" name="pAttendingEmployee" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  <result xmi:id="_19_0_4_29b40597_1630992860472_170167_6948" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083"/>
                </node>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1630992753208_406649_6872" name="CreateCustomerActivity" isReentrant="true">
                <ownedComment xmi:id="_19_0_4_29b40597_1631006173829_761488_8244" body="Activity is responsible to create a new customer. Besides storing the data this also includes additional tasks like address validation." annotatedElement="_19_0_4_29b40597_1630992753208_406649_6872"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1630992792754_905309_6906" name="pNewCustomer" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1630992832956_161844_6931" name="pAttendingEmployee" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1630992860477_538218_6959" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" direction="return"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1630992792755_50732_6907" name="pNewCustomer" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" parameter="_19_0_4_29b40597_1630992792754_905309_6906"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1630992832958_301180_6932" name="pAttendingEmployee" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" parameter="_19_0_4_29b40597_1630992832956_161844_6931"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1630992860479_973545_6960" name="" visibility="public" type="_16_0_1_2aa0154_1236638183765_726460_1083" parameter="_19_0_4_29b40597_1630992860477_538218_6959"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1631006253234_337872_8245" name="CheckUNRestrictionsActivity" isReentrant="true">
                <ownedParameter xmi:id="_19_0_4_29b40597_1631006558626_416551_8354" name="account" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1631006606649_482927_8385" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1631006558638_304920_8355" name="account" visibility="public" type="_12_5_1ea00f4_1194617887244_723645_945" parameter="_19_0_4_29b40597_1631006558626_416551_8354"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1631006606650_76230_8386" name="" visibility="public" parameter="_19_0_4_29b40597_1631006606649_482927_8385">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </node>
              </packagedElement>
              <packagedElement xmi:type="uml:Activity" xmi:id="_19_0_4_29b40597_1631006357822_556322_8246" name="ExecuteSWIFTMoneyTransfer" isReentrant="true">
                <ownedParameter xmi:id="_19_0_4_29b40597_1631006893537_39699_8477" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1631007014902_986773_8575" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1631006893550_939207_8489" name="pBooking" visibility="public" type="_12_5_2aa0154_1204197442437_906165_1229" parameter="_19_0_4_29b40597_1631006893537_39699_8477"/>
                <node xmi:type="uml:ActivityParameterNode" xmi:id="_19_0_4_29b40597_1631007014903_152772_8576" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" parameter="_19_0_4_29b40597_1631007014902_986773_8575"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1631201849377_676029_6283" name="messaging">
              <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1631201891367_123797_6316" name="impl">
                <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1631202053327_335119_6343" name="MessagingServiceProviderImpl" clientDependency="_19_0_4_29b40597_1631202086429_417832_6365">
                  <ownedAttribute xmi:id="_19_0_4_29b40597_1631202102630_394179_6368" name="connectURL" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <interfaceRealization xmi:id="_19_0_4_29b40597_1631202086429_417832_6365" name="" supplier="_19_0_4_29b40597_1631201978342_846596_6318" client="_19_0_4_29b40597_1631202053327_335119_6343" contract="_19_0_4_29b40597_1631201978342_846596_6318"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1631201978342_846596_6318" name="MessagingServiceProvider">
                <ownedOperation xmi:id="_19_0_4_29b40597_1631202004620_494094_6338" name="sendMessage" visibility="public">
                  <ownedParameter xmi:id="_19_0_4_29b40597_1631202031958_221214_6340" name="pMessage" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedParameter xmi:id="_19_0_4_29b40597_1631202031960_77222_6341" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedParameter>
                </ownedOperation>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1632477567830_41518_5715" name="CustomerLoadStrategy">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1632477611062_421538_5737" name="loadAccount" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1632477625406_548043_5739" name="loadBookings" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1634840490993_124641_7890" name="" supplier="_12_5_1ea00f4_1194387303984_975462_958" client="_12_5_2aa0154_1204275466906_978856_1209"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1650876306502_876723_9455" name="spring">
          <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1650876316727_219403_9456" name="base">
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876316727_111572_9458" name="Product Base Definitions" clientDependency="_19_0_4_29b40597_1650876317312_90913_9699 _19_0_4_29b40597_1650876317312_785311_9696 _19_0_4_29b40597_1650876317312_623687_9698">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317312_115065_9700" body="This component represents the Open API interface of the accounting service." annotatedElement="_19_0_4_29b40597_1650876316727_111572_9458"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317312_785311_9696" name="" supplier="_19_0_4_29b40597_1650876316727_144873_9463" client="_19_0_4_29b40597_1650876316727_111572_9458"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317312_623687_9698" name="" supplier="_19_0_4_29b40597_1650876316727_303346_9462" client="_19_0_4_29b40597_1650876316727_111572_9458"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317312_90913_9699" name="" supplier="_19_0_4_29b40597_1650876316727_219403_9456" client="_19_0_4_29b40597_1650876316727_111572_9458"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_891956_9459" name="Duration">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317312_180574_9702" body="Type represents a duration.&#xA; &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.Dauer" annotatedElement="_19_0_4_29b40597_1650876316727_891956_9459"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317312_859621_9703" name="value" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_658175_9704" name="timeUnit" visibility="private" type="_19_0_4_29b40597_1650876316727_695136_9461">
                <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1650876317396_670541_10150" name="" instance="_19_0_4_29b40597_1650876317327_202923_9712"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_46785_9460" name="MoneyAmount">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317327_294583_9706" body="Type represents an amount of money.&#xA;       &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.GeldBetrag" annotatedElement="_19_0_4_29b40597_1650876316727_46785_9460"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_643581_9707" name="amount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729" isReadOnly="true">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_489098_10151" body="The amount of money. Attribute is always set." annotatedElement="_19_0_4_29b40597_1650876317327_643581_9707"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_412331_9708" name="currencyCode" visibility="private" type="_19_0_4_29b40597_1650876316742_131817_9505" isReadOnly="true"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1650876316727_695136_9461" name="TimeUnit">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317327_575160_9716" body="Enumeration represents time units.&#xA;     &#xA;NOVA 14 Mapping&#xA;* nova-base.xsd.ZeitEinheit" annotatedElement="_19_0_4_29b40597_1650876316727_695136_9461"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_541291_9710" name="MINUTE" classifier="_19_0_4_29b40597_1650876316727_695136_9461">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_976309_10154" body="Literal represents time unit &quot;minutes&quot;." annotatedElement="_19_0_4_29b40597_1650876317327_541291_9710"/>
              </ownedLiteral>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_910668_9711" name="HOUR" classifier="_19_0_4_29b40597_1650876316727_695136_9461"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_202923_9712" name="DAY" classifier="_19_0_4_29b40597_1650876316727_695136_9461"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_22815_9713" name="WEEK" classifier="_19_0_4_29b40597_1650876316727_695136_9461">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_870281_10155" body="Literal represents time unit &quot;weeks&quot;.&#xA;This is the comments second line ;-)" annotatedElement="_19_0_4_29b40597_1650876317327_22815_9713"/>
              </ownedLiteral>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_27807_9714" name="MONTH" classifier="_19_0_4_29b40597_1650876316727_695136_9461"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_438219_9715" name="YEAR" classifier="_19_0_4_29b40597_1650876316727_695136_9461"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876316727_303346_9462" name="Accounting TEST"/>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876316727_144873_9463" name="Accounting PROD"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_588172_9464" name="ChannelCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_937588_9722" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317396_510254_10158" name="" value="&quot;WEBSHOP&quot;"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_412412_9465" name="Channel">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_176620_9724" name="channelType" visibility="private" type="_19_0_4_29b40597_1650876316727_745113_9466" association="_19_0_4_29b40597_1650876316727_72571_9467">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_563567_10161" body="Type of the channel" annotatedElement="_19_0_4_29b40597_1650876317327_176620_9724"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_469959_10160" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_421467_10162" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_903539_9725" name="channelCode" visibility="private" type="_19_0_4_29b40597_1650876316727_588172_9464" association="_19_0_4_29b40597_1650876316727_345453_9468">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_12047_10165" body="The business code of the channel" annotatedElement="_19_0_4_29b40597_1650876317327_903539_9725"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_347807_10164" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_40176_10166" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_840436_9726" name="code" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_796614_9727" name="selfServiceChannel" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_19_0_4_29b40597_1650876317396_460065_10167" name="" value="true"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_633189_9728" name="reseller" visibility="private" type="_19_0_4_29b40597_1650876316727_26968_9469" association="_19_0_4_29b40597_1650876316727_308819_9470">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_65197_10168" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_646183_10169" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1650876316727_745113_9466" name="ChannelType">
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_357798_9730" name="COUNTER" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_487389_9731" name="CALL_CENTER" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_359741_9732" name="MOBILE" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_616694_9733" name="TVM" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_266063_9734" name="WEB" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_879952_9735" name="LEGACY_POS" classifier="_19_0_4_29b40597_1650876316727_745113_9466"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316727_72571_9467" name="" memberEnd="_19_0_4_29b40597_1650876317327_875460_9737 _19_0_4_29b40597_1650876317327_176620_9724">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_875460_9737" name="" visibility="private" type="_19_0_4_29b40597_1650876316727_412412_9465" association="_19_0_4_29b40597_1650876316727_72571_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316727_345453_9468" name="" memberEnd="_19_0_4_29b40597_1650876317327_811430_9738 _19_0_4_29b40597_1650876317327_903539_9725">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_811430_9738" name="" visibility="private" type="_19_0_4_29b40597_1650876316727_412412_9465" association="_19_0_4_29b40597_1650876316727_345453_9468"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_26968_9469" name="Reseller">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_527708_9741" name="channels" visibility="private" type="_19_0_4_29b40597_1650876316727_412412_9465" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1650876316727_308819_9470">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_550923_10175" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_665612_10176" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_558902_9742" name="products" visibility="private" type="_19_0_4_29b40597_1650876316727_802699_9471" association="_19_0_4_29b40597_1650876316727_211539_9472">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_862641_10177" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_626282_10178" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_531180_9743" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_757751_9744" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317327_990809_9739" name="doSomething" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317396_318196_10173" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317327_904424_9740" name="returnPrimitive" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317396_687018_10174" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316727_308819_9470" name="" memberEnd="_19_0_4_29b40597_1650876317327_527708_9741 _19_0_4_29b40597_1650876317327_633189_9728"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316727_802699_9471" name="Product">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317327_652508_9746" body="Data type represents a product definition" annotatedElement="_19_0_4_29b40597_1650876316727_802699_9471"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_591172_9747" name="resellers" visibility="private" type="_19_0_4_29b40597_1650876316727_26968_9469" association="_19_0_4_29b40597_1650876316727_211539_9472">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_871739_10181" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_500064_10182" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_84942_9748" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_962903_9749" name="image" visibility="private">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_268997_10185" body="Image describing the product." annotatedElement="_19_0_4_29b40597_1650876317327_962903_9749"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_295569_10184" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_997156_10186" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_284646_9750" name="link" visibility="private" type="_9_5_f720368_1110473546643_795445_7839"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_615516_9751" name="productID" visibility="private" type="_10_5_622020d_1132928313497_609212_7526" isReadOnly="true"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_25472_9752" name="supportedCurrencies" visibility="private" type="_19_0_4_29b40597_1650876316742_131817_9505" association="_19_0_4_29b40597_1650876316742_475230_9506">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_7674_10188" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_717999_10189" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_314104_9753" name="productCodes" visibility="private" type="_19_0_4_29b40597_1650876316742_331431_9504" association="_19_0_4_29b40597_1650876316742_396214_9507">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_231096_10191" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_462029_10192" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_696826_9754" name="description" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_590068_9755" name="sortiments" visibility="private" type="_19_0_4_29b40597_1650876316742_773347_9473" association="_19_0_4_29b40597_1650876316742_174487_9474">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_930322_10194" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_480205_10195" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_696930_9756" name="uri" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317396_869529_10197" name="" value="&quot;https://products.anaptecs.de/123456789&quot;"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316727_211539_9472" name="" memberEnd="_19_0_4_29b40597_1650876317327_558902_9742 _19_0_4_29b40597_1650876317327_591172_9747"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_773347_9473" name="Sortiment">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_89800_9758" name="products" visibility="private" type="_19_0_4_29b40597_1650876316727_802699_9471" association="_19_0_4_29b40597_1650876316742_174487_9474">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317396_422362_10199" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317396_775510_10200" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_174487_9474" name="" memberEnd="_19_0_4_29b40597_1650876317327_89800_9758 _19_0_4_29b40597_1650876317327_590068_9755"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_13966_9475" name="DateObject">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_32183_9760" name="localTime" visibility="private" type="_19_0_4_29b40597_1634137658901_265736_6534"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_878903_9761" name="localDate" visibility="private" type="_19_0_4_29b40597_1634137673285_630223_6535"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_407921_9762" name="localDateTime" visibility="private" type="_19_0_4_29b40597_1634137680668_587967_6536"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_870800_9763" name="calendar" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_882782_9764" name="sqlDate" visibility="private" type="_9_5_f720368_1110473546690_186067_8563"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_786471_9765" name="utilDate" visibility="private" type="_9_5_f720368_1110473546706_999299_8853"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_411030_9476" name="PrimitiveObject">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_425640_9767" name="aBoolean" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_292422_9768" name="bBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_793776_9769" name="cBoolean" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_454693_9770" name="aByte" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_950723_9771" name="bByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_634356_9772" name="aShort" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_956408_9773" name="bShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_826734_9774" name="aInteger" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_717978_9775" name="bInteger" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_127922_9776" name="cInteger" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_570214_9777" name="aLong" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_707070_9778" name="bLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_435020_9779" name="aBigInteger" visibility="private" type="_9_5_f720368_1110473546628_396621_7731"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_101883_9780" name="aCharacter" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_172685_9781" name="bCharacter" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_177054_9782" name="aFloat" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_39738_9783" name="bFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_256094_9784" name="aDouble" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_53425_9785" name="bDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_986136_9786" name="aBigDecimal" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_94566_9787" name="aString" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_88005_9788" name="bString" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_208570_9477" name="PrimitiveArraysObject">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_335710_9790" name="aBooleanArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_825794_10202" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_380489_10203" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_927204_9791" name="bBooleanArray" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_200242_10204" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_732255_10205" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_596844_9792" name="cBooleanArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_524454_10206" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_19239_10207" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_569452_9793" name="aByteArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_492488_10208" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_464457_10209" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_135109_9794" name="bByteArray" visibility="private" type="_9_5_f720368_1110473546612_256090_7563">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_835141_10210" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_847039_10211" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_40519_9795" name="aShortArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_401978_10212" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_238709_10213" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_355835_9796" name="bShortArray" visibility="private" type="_9_5_f720368_1110473546612_509786_7681">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_980895_10214" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_590368_10215" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_854598_9797" name="aIntegerArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_733162_10216" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_418111_10217" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_883092_9798" name="bIntegerArray" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_215493_10218" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_285280_10219" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_471588_9799" name="cIntegerArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_933781_10220" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_973509_10221" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_51603_9800" name="aLongArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_656256_10222" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_900888_10223" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_62591_9801" name="bLongArray" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_378467_10224" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_464681_10225" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_227599_9802" name="aBigIntegerArray" visibility="private" type="_9_5_f720368_1110473546628_396621_7731">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_840350_10226" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_60529_10227" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_718325_9803" name="aCharacterArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_949451_10228" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_826247_10229" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_629952_9804" name="bCharacterArray" visibility="private" type="_9_5_f720368_1110473546612_321995_7565">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_857138_10230" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_958525_10231" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_770473_9805" name="aFloatArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_900264_10232" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_302809_10233" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_687193_9806" name="bFloatArray" visibility="private" type="_9_5_f720368_1110473546612_585522_7603">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_183584_10234" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_883960_10235" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_571851_9807" name="aDoubleArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_403321_10236" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_956936_10237" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_258507_9808" name="bDoubleArray" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_155336_10238" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_857597_10239" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_633252_9809" name="aBigDecimalArray" visibility="private" type="_9_5_f720368_1110473546628_256023_7729">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_628599_10240" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_533964_10241" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_979534_9810" name="aStringArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_343067_10242" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_764057_10243" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_693762_9811" name="bStringArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_678145_10244" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_109174_10245" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_419228_9812" name="cStringArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_971794_10246" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_18583_10247" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_276212_9478" name="ParentClass">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_577609_9816" name="parentAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_684758_9479" name="ChildA" isAbstract="true">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317327_453703_9819" body="single line class comment" annotatedElement="_19_0_4_29b40597_1650876316742_684758_9479"/>
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_59645_9815" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_276212_9478"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_40407_9820" name="childAAttribute" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_249385_9480" name="ChildB">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317327_44051_9823" body="Multi&#xA;line&#xA;class&#xA;comment" annotatedElement="_19_0_4_29b40597_1650876316742_249385_9480"/>
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_895401_9814" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_276212_9478"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_810042_9824" name="childBAttribute" visibility="private">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_209936_10248" body="A child attribute" annotatedElement="_19_0_4_29b40597_1650876317327_810042_9824"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_750965_9825" name="composition" visibility="private" type="_19_0_4_29b40597_1650876316742_276212_9478" association="_19_0_4_29b40597_1650876316742_928405_9481">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_246218_10251" body="the composition" annotatedElement="_19_0_4_29b40597_1650876317327_750965_9825"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_920309_10250" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_124663_10252" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_928405_9481" name="" memberEnd="_19_0_4_29b40597_1650876317327_694237_9827 _19_0_4_29b40597_1650876317327_750965_9825">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_694237_9827" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_249385_9480" association="_19_0_4_29b40597_1650876316742_928405_9481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_853648_9482" name="ChildAA">
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_681168_9818" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_684758_9479"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_471331_9828" name="childAAAttribute" visibility="private">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_556182_10253" body="Multi&#xA;line&#xA;docs" annotatedElement="_19_0_4_29b40597_1650876317327_471331_9828"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_245950_9829" name="sizedArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_807068_9830" name="requiredArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_670923_10255" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_260286_10256" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_20174_9483" name="ChildBB">
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_448328_9822" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_249385_9480"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_405038_9832" name="childBBAttribute" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_679655_9833" name="deprecatedAttribute" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_980029_9834" name="deprecatedBs" visibility="private" type="_19_0_4_29b40597_1650876316742_249385_9480" association="_19_0_4_29b40597_1650876316742_889326_9486">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_822517_10258" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_913161_10259" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_818823_9835" name="deprecatedParent" visibility="private" type="_19_0_4_29b40597_1650876316742_276212_9478" association="_19_0_4_29b40597_1650876316742_67529_9487">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_214875_10261" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_39951_10262" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_912723_9836" name="deprecatedArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_467116_10264" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_657192_10265" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_356649_9484" name="Context">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_964343_9839" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_158702_9840" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_390537_9841" name="resellerID" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_776713_9842" name="pathParam" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_619106_9843" name="queryParam" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_289231_9485" name="BeanParameter">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_878107_9845" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_27725_9846" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_388303_9847" name="oldStyle" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_889326_9486" name="" memberEnd="_19_0_4_29b40597_1650876317327_59330_9849 _19_0_4_29b40597_1650876317327_980029_9834">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_59330_9849" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_20174_9483" association="_19_0_4_29b40597_1650876316742_889326_9486"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_67529_9487" name="" memberEnd="_19_0_4_29b40597_1650876317327_989089_9850 _19_0_4_29b40597_1650876317327_818823_9835">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_989089_9850" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_20174_9483" association="_19_0_4_29b40597_1650876316742_67529_9487"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_683094_9488" name="DeprecatedContext">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_361084_9851" name="accessToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_356061_9852" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_556284_9853" name="resellerID" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_525938_9854" name="queryParam" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1650876316742_985847_9489" name="DeprecatedEnum">
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_977071_9856" name="ONE" classifier="_19_0_4_29b40597_1650876316742_985847_9489"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_123298_9857" name="TWO" classifier="_19_0_4_29b40597_1650876316742_985847_9489"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317327_610409_9858" name="THREE" classifier="_19_0_4_29b40597_1650876316742_985847_9489"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_673990_9490" name="OpenAPITestObject">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_177840_9860" name="readOnlyAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_992766_9861" name="readWriteAttribute" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_613666_9862" name="writeOnlyAttribute" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_721709_9863" name="nullableAttribute" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_370125_9864" name="notNullableAttribute" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_106651_9865" name="readOnlyArray" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_940743_9866" name="readWriteArray" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_491417_9867" name="writeOnlyArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_295718_9868" name="nullableArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_692436_9869" name="notNullableArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_531332_9491" name="Partner">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_127652_9873" name="postalAddresses" visibility="private" type="_19_0_4_29b40597_1650876316742_106678_9492" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1650876316742_102224_9493">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_853445_10289" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_142737_10290" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_106678_9492" name="PostalAddress">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_436765_9875" name="street" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_274521_9876" name="houseNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_803703_9877" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_508105_9878" name="postalCode" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_102224_9493" name="" memberEnd="_19_0_4_29b40597_1650876317327_806652_9880 _19_0_4_29b40597_1650876317327_127652_9873">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_806652_9880" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_531332_9491" association="_19_0_4_29b40597_1650876316742_102224_9493"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_735344_9494" name="Company">
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_952793_9871" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_531332_9491"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_747572_9881" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_80986_9495" name="Person">
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_980924_9872" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_531332_9491"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_871105_9884" name="surname" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_89072_9885" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317327_509953_9883" name="getDisplayName" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317412_288154_10291" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_145984_9496" name="PartnerContainer">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_530572_9887" name="partners" visibility="private" type="_19_0_4_29b40597_1650876316742_531332_9491" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1650876316742_300004_9497">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_195468_10292" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_805036_10293" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_300004_9497" name="" memberEnd="_19_0_4_29b40597_1650876317327_71676_9889 _19_0_4_29b40597_1650876317327_530572_9887">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317327_71676_9889" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_145984_9496" association="_19_0_4_29b40597_1650876316742_300004_9497"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_890015_9498" name="SpecialContext">
              <generalization xmi:id="_19_0_4_29b40597_1650876317327_835315_9838" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_356649_9484"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_785328_9890" name="specificHeader" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_7936_9499" name="PrimitiveObjectWithRestrictions">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_165421_9892" name="aBoolean" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_19_0_4_29b40597_1650876317412_346622_10295" name="" value="true"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_196564_9893" name="bBoolean" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_691603_9894" name="cBoolean" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_941134_9895" name="aByte" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_268376_9896" name="bByte" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_262359_9897" name="aShort" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_499607_9898" name="bShort" visibility="private" type="_9_5_f720368_1110473546612_509786_7681"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_323091_9899" name="aInteger" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_431379_9900" name="bInteger" visibility="private" type="_9_5_f720368_1110473546612_167906_7631"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_517132_9901" name="cInteger" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_668739_9902" name="aLong" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_445375_9903" name="bLong" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_349914_9904" name="aBigInteger" visibility="private" type="_9_5_f720368_1110473546628_396621_7731"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_874627_9905" name="aCharacter" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317327_584692_9906" name="bCharacter" visibility="private" type="_9_5_f720368_1110473546612_321995_7565"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_42744_9907" name="aFloat" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_876425_9908" name="bFloat" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_163226_9909" name="aDouble" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317412_415779_10305" name="" value="42.0"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_742640_9910" name="bDouble" visibility="private" type="_9_5_f720368_1110473546612_897100_7595"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_569770_9911" name="aBigDecimal" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_861351_9912" name="aString" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317412_816502_10307" name="" value="&quot;Hello OpenAPI&quot;"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_674050_9913" name="bString" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_937385_9500" name="PrimitiveArraysObjectWithRestrictions">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_351979_9915" name="aBooleanArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_867314_10310" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_269620_10311" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_628742_9916" name="bBooleanArray" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_364040_10312" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_257871_10313" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_853680_9917" name="cBooleanArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_216669_10314" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_538337_10315" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_990746_9918" name="aByteArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_342365_10316" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_985987_10317" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_195352_9919" name="bByteArray" visibility="private" type="_9_5_f720368_1110473546612_256090_7563">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_722968_10319" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_270934_10320" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_980513_9920" name="aShortArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_494681_10321" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_256593_10322" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_847354_9921" name="bShortArray" visibility="private" type="_9_5_f720368_1110473546612_509786_7681">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_907613_10323" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_361401_10324" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_180376_9922" name="aIntegerArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_640227_10325" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_812724_10326" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_508167_9923" name="bIntegerArray" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_877242_10327" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_831235_10328" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_600974_9924" name="cIntegerArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_80375_10329" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_698355_10330" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_740055_9925" name="aLongArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_608529_10331" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_676612_10332" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_308354_9926" name="bLongArray" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_983580_10334" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_689027_10335" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_146406_9927" name="aBigIntegerArray" visibility="private" type="_9_5_f720368_1110473546628_396621_7731">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_445878_10336" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_663616_10337" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_742013_9928" name="aCharacterArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_533512_10338" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_445210_10339" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_765817_9929" name="bCharacterArray" visibility="private" type="_9_5_f720368_1110473546612_321995_7565">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_174263_10340" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_445854_10341" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_239820_9930" name="aFloatArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_440861_10342" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_967177_10343" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_132397_9931" name="bFloatArray" visibility="private" type="_9_5_f720368_1110473546612_585522_7603">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_899307_10344" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_791621_10345" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_109384_9932" name="aDoubleArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_4217_10346" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_406257_10347" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_459616_9933" name="bDoubleArray" visibility="private" type="_9_5_f720368_1110473546612_897100_7595">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_352024_10349" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_430760_10350" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_578578_9934" name="aBigDecimalArray" visibility="private" type="_9_5_f720368_1110473546628_256023_7729">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_891496_10351" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_655911_10352" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_116133_9935" name="aStringArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_905308_10353" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_654063_10354" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_941839_9936" name="bStringArray" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_161980_10355" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_13222_10356" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_138694_9501" name="Problem">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_905518_9938" name="title" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_949627_9939" name="status" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_377348_9940" name="type" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_950078_9941" name="detail" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_985426_9942" name="instance" visibility="private" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_234180_9502" name="ErrorResponse" clientDependency="_19_0_4_29b40597_1650876316742_433700_9503">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317343_334488_9944" body="Generic error response type that is used in all cases." annotatedElement="_19_0_4_29b40597_1650876316742_234180_9502"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876316742_433700_9503" name="" supplier="_19_0_4_29b40597_1650876316742_138694_9501" client="_19_0_4_29b40597_1650876316742_234180_9502"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_331431_9504" name="ProductCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_186358_9946" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_131817_9505" name="CurrencyCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_302093_9948" name="code" visibility="private">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_551046_10366" body="ISO 4217 currency code." annotatedElement="_19_0_4_29b40597_1650876317343_302093_9948"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317412_801675_10367" name="" value="&quot;CHF&quot;"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_475230_9506" name="" memberEnd="_19_0_4_29b40597_1650876317343_911415_9950 _19_0_4_29b40597_1650876317327_25472_9752">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_911415_9950" name="" visibility="private" type="_19_0_4_29b40597_1650876316727_802699_9471" association="_19_0_4_29b40597_1650876316742_475230_9506"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_396214_9507" name="" memberEnd="_19_0_4_29b40597_1650876317343_173093_9951 _19_0_4_29b40597_1650876317327_314104_9753">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_173093_9951" name="" visibility="private" type="_19_0_4_29b40597_1650876316727_802699_9471" association="_19_0_4_29b40597_1650876316742_396214_9507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_691006_9508" name="BidirectA">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_626537_9952" name="transientBs" visibility="private" type="_19_0_4_29b40597_1650876316742_34903_9509" association="_19_0_4_29b40597_1650876316742_125026_9510">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_361530_10369" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_794160_10370" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_998283_9953" name="parent" visibility="private" type="_19_0_4_29b40597_1650876316742_691006_9508" association="_19_0_4_29b40597_1650876316742_49142_9511">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_573610_10372" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_253078_10373" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_929666_9954" name="transientChild" visibility="private" type="_19_0_4_29b40597_1650876316742_691006_9508" association="_19_0_4_29b40597_1650876316742_49142_9511">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_114280_10374" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_184596_10375" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_34903_9509" name="BidirectB">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_113592_9956" name="a" visibility="private" type="_19_0_4_29b40597_1650876316742_691006_9508" association="_19_0_4_29b40597_1650876316742_125026_9510">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_484702_10378" body="the A" annotatedElement="_19_0_4_29b40597_1650876317343_113592_9956"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_38861_10377" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_948414_10379" name="" value="1"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_125026_9510" name="" memberEnd="_19_0_4_29b40597_1650876317343_626537_9952 _19_0_4_29b40597_1650876317343_113592_9956"/>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_49142_9511" name="" memberEnd="_19_0_4_29b40597_1650876317343_998283_9953 _19_0_4_29b40597_1650876317343_929666_9954"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_34061_9513" name="BooleanCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_20574_9960" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_724680_9514" name="StringCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_220139_9962" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_897268_9515" name="ByteCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_804510_9964" name="code" visibility="private" type="_9_5_f720368_1110473546612_256090_7563"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_542116_9516" name="ShortCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_102111_9966" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_957958_9517" name="IntegerCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_313396_9968" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_451489_9518" name="LongCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_810566_9970" name="code" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_460834_9519" name="FloatCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_460112_9972" name="code" visibility="private" type="_9_5_f720368_1110473546612_585522_7603"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_717721_9520" name="DoubleCode">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_964528_9974" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_371383_9521" name="PlaceRef" isAbstract="true">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_17048_9979" name="name" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_170546_9522" name="StopPlaceRef" isAbstract="true">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_900759_9978" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_371383_9521"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_12644_9523" name="TopoRef">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_802360_9976" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_371383_9521"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_445218_9524" name="GeoPosition">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_329389_9977" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_371383_9521"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_831103_9986" name="longitude" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_6806_9987" name="latitude" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_425205_9525" name="Leg">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_304405_9989" name="start" visibility="private" type="_19_0_4_29b40597_1650876316742_371383_9521" association="_19_0_4_29b40597_1650876316742_236731_9526">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_395723_10380" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_381864_10381" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_877845_9990" name="stop" visibility="private" type="_19_0_4_29b40597_1650876316742_371383_9521" association="_19_0_4_29b40597_1650876316742_64000_9527">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_306783_10382" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_513379_10383" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_480584_9991" name="stopovers" visibility="private" type="_19_0_4_29b40597_1650876316742_371383_9521" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1650876316742_194669_9528">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_426767_10384" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_961790_10385" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_236731_9526" name="" memberEnd="_19_0_4_29b40597_1650876317343_2427_9993 _19_0_4_29b40597_1650876317343_304405_9989">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_2427_9993" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_425205_9525" association="_19_0_4_29b40597_1650876316742_236731_9526"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_64000_9527" name="" memberEnd="_19_0_4_29b40597_1650876317343_507110_9994 _19_0_4_29b40597_1650876317343_877845_9990">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_507110_9994" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_425205_9525" association="_19_0_4_29b40597_1650876316742_64000_9527"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_194669_9528" name="" memberEnd="_19_0_4_29b40597_1650876317343_168714_9995 _19_0_4_29b40597_1650876317343_480584_9991">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_168714_9995" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_425205_9525" association="_19_0_4_29b40597_1650876316742_194669_9528"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_635330_9529" name="SwissGeoPosition">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_49775_9985" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_445218_9524"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_127183_9530" name="CHStopPlace">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_990973_9982" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_170546_9522"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_88989_9531" name="UICStopPlace">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_801722_9981" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_170546_9522"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Enumeration" xmi:id="_19_0_4_29b40597_1650876316742_642449_9532" name="ExtensibleEnum">
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317343_757963_9999" name="RED" classifier="_19_0_4_29b40597_1650876316742_642449_9532"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317343_980907_10000" name="GREEN" classifier="_19_0_4_29b40597_1650876316742_642449_9532"/>
              <ownedLiteral xmi:id="_19_0_4_29b40597_1650876317343_810730_10001" name="BLUE" classifier="_19_0_4_29b40597_1650876316742_642449_9532"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_342431_9533" name="EnumTest">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_227092_10003" name="property" visibility="private" type="_19_0_4_29b40597_1650876316742_642449_9532">
                <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1650876317412_360498_10389" name="" instance="_19_0_4_29b40597_1650876317343_980907_10000"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_466506_10004" name="enumRef" visibility="private" type="_19_0_4_29b40597_1650876316742_642449_9532" association="_19_0_4_29b40597_1650876316742_290023_9534">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_140897_10390" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_467306_10391" name="" value="1"/>
                <defaultValue xmi:type="uml:InstanceValue" xmi:id="_19_0_4_29b40597_1650876317412_995552_10392" name="" instance="_19_0_4_29b40597_1650876317343_757963_9999"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_290023_9534" name="" memberEnd="_19_0_4_29b40597_1650876317343_757964_10006 _19_0_4_29b40597_1650876317343_466506_10004">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_757964_10006" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_342431_9533" association="_19_0_4_29b40597_1650876316742_290023_9534"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_571392_9535" name="IntegerCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_615616_10007" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_369026_9536" name="BooleanCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_304645_10009" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_464515_9537" name="StringCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_864666_10011" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_432031_9538" name="ByteCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_942763_10013" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_834447_9539" name="ShortCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_56395_10015" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_860313_9540" name="LongCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_435165_10017" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_296032_9541" name="FloatCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_504349_10019" name="code" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_836105_9542" name="DoubleCodeType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_903876_10021" name="code">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_270924_9543" name="CodeTypeUsageTest">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_54462_10023" name="booleanCode" visibility="private" type="_19_0_4_29b40597_1650876316742_369026_9536"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_196805_10024" name="booleanCodeAssociation" visibility="private" type="_19_0_4_29b40597_1650876316742_369026_9536" association="_19_0_4_29b40597_1650876316742_530075_9545">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_8502_10410" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_511617_10411" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_163435_10025" name="shortCodeTypeAssociation" visibility="private" type="_19_0_4_29b40597_1650876316742_834447_9539" association="_19_0_4_29b40597_1650876316742_349254_9544">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_720536_10412" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_822243_10413" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_957287_10026" name="stringCode" visibility="private" type="_19_0_4_29b40597_1650876316742_464515_9537"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_349254_9544" name="" memberEnd="_19_0_4_29b40597_1650876317343_607788_10028 _19_0_4_29b40597_1650876317343_163435_10025">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_607788_10028" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_270924_9543" association="_19_0_4_29b40597_1650876316742_349254_9544"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_530075_9545" name="" memberEnd="_19_0_4_29b40597_1650876317343_415417_10029 _19_0_4_29b40597_1650876317343_196805_10024">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_415417_10029" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_270924_9543" association="_19_0_4_29b40597_1650876316742_530075_9545"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_198788_9546" name="DirectedEdge">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_615191_10030" name="start" visibility="private" type="_19_0_4_29b40597_1650876316742_529455_9547" association="_19_0_4_29b40597_1650876316742_74343_9548">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_555445_10415" body="The start" annotatedElement="_19_0_4_29b40597_1650876317343_615191_10030"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_894934_10414" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_523246_10416" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_641844_10031" name="end" visibility="private" type="_19_0_4_29b40597_1650876316742_529455_9547" association="_19_0_4_29b40597_1650876316742_384302_9549">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317412_250115_10418" body="The end" annotatedElement="_19_0_4_29b40597_1650876317343_641844_10031"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_175665_10417" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_406638_10419" name="" value="1"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_749428_10032" name="link" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_529455_9547" name="Stop">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_7644_10036" name="name" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_347287_10037" name="links" visibility="private" type="_19_0_4_29b40597_1650876316742_649261_9554" isOrdered="true" isUnique="false" association="_19_0_4_29b40597_1650876316742_904585_9555">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317412_734137_10421" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317412_124214_10422" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_74343_9548" name="" memberEnd="_19_0_4_29b40597_1650876317343_101492_10039 _19_0_4_29b40597_1650876317343_615191_10030">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_101492_10039" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_198788_9546" association="_19_0_4_29b40597_1650876316742_74343_9548"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_384302_9549" name="" memberEnd="_19_0_4_29b40597_1650876317343_448923_10040 _19_0_4_29b40597_1650876317343_641844_10031">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_448923_10040" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_198788_9546" association="_19_0_4_29b40597_1650876316742_384302_9549"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_908776_9550" name="UICStop">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_496749_10034" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_529455_9547"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_997253_10041" name="uicCode" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_932786_9551" name="POI">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_722350_10035" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_529455_9547"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_722167_10043" name="description" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_603040_9552" name="MyCustomResponseHeaders">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_279667_10045" name="Max-TTL" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_499923_10046" name="Yet-Another-Header" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_696589_9553" name="ParentBeanParamType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_676475_10049" name="novaKey" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_169351_10050" name="tkID" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876316742_649261_9554" name="LinkObject">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317343_30035_10052" name="href" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876316742_904585_9555" name="" memberEnd="_19_0_4_29b40597_1650876317343_324197_10054 _19_0_4_29b40597_1650876317343_347287_10037">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317343_324197_10054" name="" visibility="private" type="_19_0_4_29b40597_1650876316742_529455_9547" association="_19_0_4_29b40597_1650876316742_904585_9555"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1652332662272_105865_7029" name="serializers">
              <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876316742_732608_9512" name="BaseModuleFactory" clientDependency="_19_0_4_29b40597_1650876317343_111128_9958">
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317343_111128_9958" name="" supplier="_19_0_4_29b40597_1650876316727_219403_9456" client="_19_0_4_29b40597_1650876316742_732608_9512"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1652333641821_320953_9227" name="ObjectMapperFactory" clientDependency="_19_0_4_29b40597_1652333694666_53487_9274">
                <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1652333694666_53487_9274" name="" supplier="_19_0_4_29b40597_1650876316742_732608_9512" client="_19_0_4_29b40597_1652333641821_320953_9227"/>
              </packagedElement>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1650876316727_887372_9457" name="service">
            <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1650876317158_497375_9608" name="ProductService" clientDependency="_19_0_4_29b40597_1650876317158_99375_9631">
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_114207_10059" name="getProducts" visibility="public" clientDependency="_19_0_4_29b40597_1650876317158_741493_9627 _19_0_4_29b40597_1650876317158_555577_9629">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317424_810835_10436" body="Operation returns all available product." annotatedElement="_19_0_4_29b40597_1650876317396_114207_10059"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_15855_10435" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317433_956675_10655" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317433_302177_10656" name=""/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_521617_10060" name="getProduct" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_919218_10438" name="pProductID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_905093_10439" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_833642_10061" name="createProduct" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_475218_10441" name="pProduct" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_634950_10442" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_689413_10062" name="getSortiment" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_934292_10444" name="pContext" visibility="public" type="_19_0_4_29b40597_1650876316742_356649_9484"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317424_558757_10445" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_773347_9473" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_109596_10063" name="createChannelCode" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_391021_10447" name="pChannelCode" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_202143_10448" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_291845_10064" name="ping" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_703181_10450" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_433683_10065" name="deprecatedOperation" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_780572_10452" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_27150_10066" name="deprecatedContext" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_305597_10454" name="pContext" visibility="public" type="_19_0_4_29b40597_1650876316742_683094_9488"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_398053_10455" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_410447_10067" name="deprecatedBeanParam" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_162985_10457" name="pBeanParam" visibility="public" type="_19_0_4_29b40597_1650876316742_289231_9485"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_628626_10458" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_824310_10068" name="deprecatedParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_329097_10460" name="pParam1" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_572413_10461" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_687435_10069" name="deprecatedBody" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317426_639209_10463" name="pBody" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                  <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317433_772616_10684" name="" value="&quot;Hello World!&quot;"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_998896_10464" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_855505_10070" name="deprectedComplexRequestBody" visibility="public">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317427_484867_10468" body="Please be aware that deprecations on complex bodies are not supported. Instead the whole operation needs to be set to deprecated." annotatedElement="_19_0_4_29b40597_1650876317396_855505_10070"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_368072_10466" name="pProduct" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_541131_10467" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_831059_10071" name="deprecatedComplexReturn" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_366910_10470" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_126448_10072" name="loadSpecificThings" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_72313_10472" name="pContext" visibility="public" type="_19_0_4_29b40597_1650876316742_890015_9498"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_535413_10473" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_139704_10073" name="createChannelCodeFromObject" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_83170_10475" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464">
                  <ownedComment xmi:id="_19_0_4_29b40597_1650876317433_621490_10696" body="Channel Code that should be created." annotatedElement="_19_0_4_29b40597_1650876317427_83170_10475"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_981062_10476" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464" direction="return">
                  <ownedComment xmi:id="_19_0_4_29b40597_1650876317433_405791_10697" body="Created channel code" annotatedElement="_19_0_4_29b40597_1650876317427_981062_10476"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_464542_10074" name="addCurrencies" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_152343_10478" name="pCurrencies" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505" isOrdered="true" isUnique="false">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317433_693201_10700" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317433_542505_10701" name="" value="1"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_964967_10479" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317433_296292_10703" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317433_690997_10704" name="" value="1"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_965190_10075" name="isCurrencySupported" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_381105_10481" name="pCurrency" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505">
                  <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317433_993754_10707" name="" value="&quot;CHF&quot;"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317427_388285_10482" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_341852_10076" name="testCodeTypeUsage" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_431614_10484" name="pStringCode" visibility="public" type="_19_0_4_29b40597_1650876316742_464515_9537"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_135883_10485" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_571392_9535" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_684530_10077" name="testLocalBeanParamType" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_664476_10487" name="pBeanParam" visibility="public" type="_19_0_4_29b40597_1650876317158_651694_9632"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_700387_10488" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_326830_10078" name="testExternalBeanParameterType" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_225645_10490" name="pParent" visibility="public" type="_19_0_4_29b40597_1650876316742_696589_9553"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_826415_10491" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1650876317396_620788_10079" name="testChildBeanParameter" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_370228_10493" name="pChild" visibility="public" type="_19_0_4_29b40597_1650876317158_899899_9633"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1650876317428_119054_10494" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_372597_9609" name="Product Services" clientDependency="_19_0_4_29b40597_1650876317396_472013_10086 _19_0_4_29b40597_1650876317312_264126_9697 _19_0_4_29b40597_1650876317327_100205_9718 _19_0_4_29b40597_1650876317327_215258_9720 _19_0_4_29b40597_1650876317396_249466_10058 _19_0_4_29b40597_1650876317396_815080_10081 _19_0_4_29b40597_1650876317396_748468_10082 _19_0_4_29b40597_1650876317396_977275_10083 _19_0_4_29b40597_1650876317396_872996_10084 _19_0_4_29b40597_1650876317396_332435_10085 _19_0_4_29b40597_1650876317396_590658_10087 _19_0_4_29b40597_1650876317396_260523_10088 _19_0_4_29b40597_1650876317396_322622_10089 _19_0_4_29b40597_1650876317396_166908_10090">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_560211_10091" body="This component represents the OpenAPI interface of the accounting service.&#xA;&#xA;Dear Developers, please be aware that multi line comments can also be used." annotatedElement="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317312_264126_9697" name="" supplier="_19_0_4_29b40597_1650876316727_111572_9458" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317327_100205_9718" name="" supplier="_19_0_4_29b40597_1650876316727_303346_9462" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317327_215258_9720" name="" supplier="_19_0_4_29b40597_1650876316727_144873_9463" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_249466_10058" name="" supplier="_19_0_4_29b40597_1650876317158_497375_9608" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_815080_10081" name="" supplier="_19_0_4_29b40597_1650876317158_272254_9614" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_748468_10082" name="" supplier="_19_0_4_29b40597_1650876317158_771158_9617" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_977275_10083" name="" supplier="_19_0_4_29b40597_1650876317158_586913_9613" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_872996_10084" name="" supplier="_19_0_4_29b40597_1650876317158_270462_9622" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_332435_10085" name="" supplier="_19_0_4_29b40597_1650876317158_428417_9619" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_472013_10086" name="" supplier="_19_0_4_29b40597_1650876316727_887372_9457" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_590658_10087" name="" supplier="_19_0_4_29b40597_1650876317158_644776_9618" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_260523_10088" name="" supplier="_19_0_4_29b40597_1650876317158_947116_9620" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_322622_10089" name="" supplier="_19_0_4_29b40597_1650876317158_235251_9612" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_166908_10090" name="" supplier="_19_0_4_29b40597_1650876317158_284480_9615" client="_19_0_4_29b40597_1650876317158_372597_9609"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_993301_9610" name="Sale">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_423635_10094" name="transactionAmount" visibility="private" type="_9_5_f720368_1110473546628_256023_7729"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_140216_10095" name="sale" visibility="private" type="_19_0_4_29b40597_1650876316727_412412_9465" association="_19_0_4_29b40597_1650876317158_221462_9611">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1650876317429_431276_10507" name="" value="1"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1650876317429_53489_10508" name=""/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Association" xmi:id="_19_0_4_29b40597_1650876317158_221462_9611" name="" memberEnd="_19_0_4_29b40597_1650876317396_573345_10097 _19_0_4_29b40597_1650876317396_140216_10095">
              <ownedEnd xmi:id="_19_0_4_29b40597_1650876317396_573345_10097" name="" visibility="private" type="_19_0_4_29b40597_1650876317158_993301_9610" association="_19_0_4_29b40597_1650876317158_221462_9611"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_235251_9612" name="TEST Environment"/>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_586913_9613" name="PROD Environment">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_831208_10099" body="This is our lovely production environment&#xA;&#xA;It can stand any load, until it crashes ;-)" annotatedElement="_19_0_4_29b40597_1650876317158_586913_9613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_272254_9614" name="DEMO Environment"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_284480_9615" name="CustomErrorResponse" clientDependency="_19_0_4_29b40597_1650876317158_280444_9616"/>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317158_280444_9616" name="" supplier="_19_0_4_29b40597_1650876316742_138694_9501" client="_19_0_4_29b40597_1650876317158_284480_9615"/>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_771158_9617" name="Products" clientDependency="_19_0_4_29b40597_1650876317396_517413_10103 _19_0_4_29b40597_1650876317396_300303_10106 _19_0_4_29b40597_1650876317396_165364_10093 _19_0_4_29b40597_1650876317396_329575_10104 _19_0_4_29b40597_1650876317396_970899_10105">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_530535_10107" body="Tag groups all product related operations together." annotatedElement="_19_0_4_29b40597_1650876317158_771158_9617"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_165364_10093" name="" supplier="_19_0_4_29b40597_1650876317158_993301_9610" client="_19_0_4_29b40597_1650876317158_771158_9617"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_517413_10103" name="" supplier="_19_0_4_29b40597_1650876317396_689413_10062" client="_19_0_4_29b40597_1650876317158_771158_9617"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_329575_10104" name="" supplier="_19_0_4_29b40597_1650876317396_114207_10059" client="_19_0_4_29b40597_1650876317158_771158_9617"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_970899_10105" name="" supplier="_19_0_4_29b40597_1650876317396_833642_10061" client="_19_0_4_29b40597_1650876317158_771158_9617"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_300303_10106" name="" supplier="_19_0_4_29b40597_1650876317396_521617_10060" client="_19_0_4_29b40597_1650876317158_771158_9617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_644776_9618" name="MasterData" clientDependency="_19_0_4_29b40597_1650876317396_5704_10109 _19_0_4_29b40597_1650876317396_234611_10110 _19_0_4_29b40597_1650876317396_614763_10111">
              <ownedComment xmi:id="_19_0_4_29b40597_1650876317396_334089_10112" body="Tag marks all operations that are connected with Master Data." annotatedElement="_19_0_4_29b40597_1650876317158_644776_9618"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_5704_10109" name="" supplier="_19_0_4_29b40597_1650876317396_521617_10060" client="_19_0_4_29b40597_1650876317158_644776_9618"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_234611_10110" name="" supplier="_19_0_4_29b40597_1650876317396_114207_10059" client="_19_0_4_29b40597_1650876317158_644776_9618"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_614763_10111" name="" supplier="_19_0_4_29b40597_1650876317396_689413_10062" client="_19_0_4_29b40597_1650876317158_644776_9618"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_428417_9619" name="Another Tag" clientDependency="_19_0_4_29b40597_1650876317396_453796_10114">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_453796_10114" name="" supplier="_19_0_4_29b40597_1650876317396_965190_10075" client="_19_0_4_29b40597_1650876317158_428417_9619"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_947116_9620" name="B Tag" clientDependency="_19_0_4_29b40597_1650876317396_858678_10116">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_858678_10116" name="" supplier="_19_0_4_29b40597_1650876317396_464542_10074" client="_19_0_4_29b40597_1650876317158_947116_9620"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_189956_9621" name="Invalid Tag" clientDependency="_19_0_4_29b40597_1650876317396_772088_10118">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_772088_10118" name="" supplier="_19_0_4_29b40597_1650876317396_126448_10072" client="_19_0_4_29b40597_1650876317158_189956_9621"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_270462_9622" name="MyOAuthSecuritySchema" clientDependency="_19_0_4_29b40597_1650876317396_724897_10120 _19_0_4_29b40597_1650876317396_598557_10119">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_598557_10119" name="" supplier="_19_0_4_29b40597_1650876317158_998532_9623" client="_19_0_4_29b40597_1650876317158_270462_9622"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_724897_10120" name="" supplier="_19_0_4_29b40597_1650876317158_254783_9626" client="_19_0_4_29b40597_1650876317158_270462_9622"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_998532_9623" name="ImplicitOAuthFlow" clientDependency="_19_0_4_29b40597_1650876317396_129565_10122 _19_0_4_29b40597_1650876317396_750354_10123">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_129565_10122" name="" supplier="_19_0_4_29b40597_1650876317158_97974_9624" client="_19_0_4_29b40597_1650876317158_998532_9623"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_750354_10123" name="" supplier="_19_0_4_29b40597_1650876317158_276846_9625" client="_19_0_4_29b40597_1650876317158_998532_9623"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_97974_9624" name="Pet Write Scope"/>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_276846_9625" name="Pet Read Scope"/>
            <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1650876317158_254783_9626" name="AuthCodeOAuthFlow" clientDependency="_19_0_4_29b40597_1650876317396_756225_10125 _19_0_4_29b40597_1650876317396_218808_10127">
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_756225_10125" name="" supplier="_19_0_4_29b40597_1650876317158_97974_9624" client="_19_0_4_29b40597_1650876317158_254783_9626"/>
              <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317396_218808_10127" name="" supplier="_19_0_4_29b40597_1650876317158_276846_9625" client="_19_0_4_29b40597_1650876317158_254783_9626"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317158_741493_9627" name="" supplier="_19_0_4_29b40597_1650876316742_603040_9552" client="_19_0_4_29b40597_1650876317396_114207_10059"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_225218_9628" name="DefaultResponseHeaders">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_893032_10130" name="Cache-Control" visibility="private">
                <ownedComment xmi:id="_19_0_4_29b40597_1650876317429_234522_10533" body="Results for this call are cacheable for the duration as it is defined in this header field" annotatedElement="_19_0_4_29b40597_1650876317396_893032_10130"/>
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317429_364223_10534" name="" value="&quot;public, max-age=10000&quot;"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317158_555577_9629" name="" supplier="_19_0_4_29b40597_1650876317158_225218_9628" client="_19_0_4_29b40597_1650876317396_114207_10059"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_583834_9630" name="GlobalResponseHeader">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_807842_10132" name="X-Global-Response-Header" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                <defaultValue xmi:type="uml:LiteralString" xmi:id="_19_0_4_29b40597_1650876317430_220236_10535" name="" value="Hello World"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Dependency" xmi:id="_19_0_4_29b40597_1650876317158_99375_9631" name="" supplier="_19_0_4_29b40597_1650876317158_583834_9630" client="_19_0_4_29b40597_1650876317158_497375_9608"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_651694_9632" name="LocalBeanParamType">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_938262_10134" name="localKey" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_897583_10135" name="localID" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1650876317158_899899_9633" name="ChildBeanParameterType">
              <generalization xmi:id="_19_0_4_29b40597_1650876317343_664873_10048" isSubstitutable="true" general="_19_0_4_29b40597_1650876316742_696589_9553"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1650876317396_104319_10137" name="childProperty" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
              </ownedAttribute>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1655183701679_311203_7029" name="RESTProductService">
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701684_903925_7030" name="getProducts" visibility="public">
                <ownedComment xmi:id="_19_0_4_29b40597_1655183701690_711207_7053" body="Operation returns all available product." annotatedElement="_19_0_4_29b40597_1655183701684_903925_7030"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701689_306593_7052" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655183701701_604687_7116" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655183701701_355868_7117" name=""/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655803915105_210420_7089" name="pMaxResultSize" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655803936598_612427_7091" name="" value="1"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655803936597_773629_7090" name=""/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701684_483080_7031" name="getProduct" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701691_38654_7055" name="pProductID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701691_779624_7056" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701684_87264_7032" name="createProduct" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701691_137188_7058" name="pProduct" visibility="public" type="_19_0_4_29b40597_1650876316727_802699_9471"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701691_52080_7059" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701685_263253_7033" name="getSortiment" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701692_720473_7061" name="pContext" visibility="public" type="_19_0_4_29b40597_1650876316742_356649_9484"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701692_694207_7062" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_773347_9473" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701685_136150_7034" name="createChannelCode" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701693_455066_7064" name="pChannelCode" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701693_748357_7065" name="" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655183701686_553778_7035" name="ping" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655183701693_407772_7067" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655184407986_337500_9439" name="testInit" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655184423117_149875_9442" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655268015710_654984_7065" name="getSupportedCurrencies" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655268212100_58792_7603" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655268040877_263017_7068" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655268530581_439297_7608" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655268530580_361356_7607" name=""/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655279341786_994252_9881" name="getSupportedCurrenciesAsync" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655279341786_910327_9882" name="pChannelCode" visibility="public" type="_19_0_4_29b40597_1650876316727_588172_9464"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655279341786_916296_9883" name="" visibility="public" type="_19_0_4_29b40597_1650876316742_131817_9505" isOrdered="true" isUnique="false" direction="return">
                  <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_19_0_4_29b40597_1655279341786_285506_9886" name="" value="*"/>
                  <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_19_0_4_29b40597_1655279341786_802317_9887" name=""/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1655911709829_60815_7091" name="testParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1655911723462_421171_7094" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655911762279_411167_7096" name="pBigDecimalHeader" visibility="public" type="_9_5_f720368_1110473546628_256023_7729"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655911896296_258120_7097" name="pIntCookieParam" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1655911980219_205320_7098" name="pLocaleQueryParam" visibility="public" type="_9_5_f720368_1110473546706_180147_8891"/>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662015708808_627849_7147" name="testEnumParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662015799207_301471_7151" name="pChannelType" visibility="public" type="_19_0_4_29b40597_1650876316727_745113_9466"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662015799209_755175_7152" name="pTimeUnit" visibility="public" type="_19_0_4_29b40597_1650876316727_695136_9461"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662015799209_31826_7153" name="pExtensibleEnum" visibility="public" type="_19_0_4_29b40597_1650876316742_642449_9532"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662015726180_163127_7150" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662043440399_236220_8036" name="testEnumHeaderParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662043440399_993172_8037" name="pChannelType" visibility="public" type="_19_0_4_29b40597_1650876316727_745113_9466"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662043440399_675442_8038" name="pTimeUnit" visibility="public" type="_19_0_4_29b40597_1650876316727_695136_9461"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662043440399_957265_8039" name="pExtensibleEnum" visibility="public" type="_19_0_4_29b40597_1650876316742_642449_9532"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662043440399_28298_8040" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662113225550_634548_7157" name="testDateQueryParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662562409302_726039_7181" name="pPath" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662365160117_694785_7696" name="pStartTimestamp" visibility="public" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662372778067_189099_7717" name="pStartTime" visibility="public" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662364999989_268819_7159" name="pLocalStartTimestamp" visibility="public" type="_19_0_4_29b40597_1634137680668_587967_6536"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662365160118_502608_7697" name="pLocalStartTime" visibility="public" type="_19_0_4_29b40597_1648123191766_939427_4796"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662365174168_244997_7698" name="pLocalStartDate" visibility="public" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662372809016_400130_7719" name="pCalendar" visibility="public" type="_9_5_f720368_1110473546706_973459_8839"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662372837133_407567_7720" name="pUtilDate" visibility="public" type="_9_5_f720368_1110473546706_999299_8853"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662537705712_166773_7176" name="pSQLTimestamp" visibility="public" type="_9_5_f720368_1110473546690_574195_8603"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662452550951_900766_7176" name="pSQLTime" visibility="public" type="_9_5_f720368_1110473546690_682982_8601"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662452550949_884409_7175" name="pSQLDate" visibility="public" type="_9_5_f720368_1110473546690_186067_8563"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662364999991_337982_7160" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662619290011_381256_8399" name="testDateQueryParamsBean" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662619344070_745546_8403" name="pPath" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662619348862_844278_8404" name="pQueryParams" visibility="public" type="_19_0_4_29b40597_1662617418116_407392_8305"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662619313237_526999_8402" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662696388231_807051_7231" name="testDateHeaderParams" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388235_726322_7233" name="pPath" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388236_989146_7234" name="pOffsetDateTime" visibility="public" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388236_345681_7235" name="pOffsetTime" visibility="public" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388236_840288_7236" name="pLocalDateTime" visibility="public" type="_19_0_4_29b40597_1648123215215_31227_4798"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_354850_7237" name="pLocalTime" visibility="public" type="_19_0_4_29b40597_1634137658901_265736_6534"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_64180_7238" name="pLocalDate" visibility="public" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_565780_7239" name="pCalendar" visibility="public" type="_9_5_f720368_1110473546706_973459_8839"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_769284_7240" name="pUtilDate" visibility="public" type="_9_5_f720368_1110473546706_999299_8853"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_771406_7241" name="pSQLTimestamp" visibility="public" type="_9_5_f720368_1110473546690_574195_8603"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_833332_7242" name="pSQLTime" visibility="public" type="_9_5_f720368_1110473546690_682982_8601"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_797598_7243" name="pSQLDate" visibility="public" type="_9_5_f720368_1110473546690_186067_8563"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388237_922505_7244" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1662696388235_115561_7232" name="testDateHeaderParamsBean" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388238_80752_7246" name="pPath" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388239_343251_7247" name="pHeaderParams" visibility="public" type="_19_0_4_29b40597_1662696441757_351272_7326"/>
                <ownedParameter xmi:id="_19_0_4_29b40597_1662696388239_350361_7248" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1656324554860_351696_7101" name="impl">
              <packagedElement xmi:type="uml:Component" xmi:id="_19_0_4_29b40597_1656324584589_129954_7135" name="ProductManagement" clientDependency="_19_0_4_29b40597_1656324639189_796055_7193">
                <interfaceRealization xmi:id="_19_0_4_29b40597_1656324639189_796055_7193" name="" supplier="_19_0_4_29b40597_1655183701679_311203_7029" client="_19_0_4_29b40597_1656324584589_129954_7135" contract="_19_0_4_29b40597_1655183701679_311203_7029"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1662617418116_407392_8305" name="DateQueryParamsBean">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618552029_786010_8347" name="offsetDateTime" visibility="private" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618567470_293868_8349" name="offsetTime" visibility="private" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618579103_694144_8351" name="localDateTime" visibility="private" type="_19_0_4_29b40597_1648123215215_31227_4798"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618594154_559633_8353" name="localTime" visibility="private" type="_19_0_4_29b40597_1648123191766_939427_4796"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618606113_430553_8355" name="localDate" visibility="private" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618626454_387684_8357" name="utilDate" visibility="private" type="_9_5_f720368_1110473546706_999299_8853"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618647337_125701_8359" name="calendar" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618660191_429418_8361" name="sqlTimestamp" visibility="private" type="_9_5_f720368_1110473546690_574195_8603"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618677373_102015_8363" name="sqlTime" visibility="private" type="_9_5_f720368_1110473546690_682982_8601"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662618695509_763879_8365" name="sqlDate" visibility="private" type="_9_5_f720368_1110473546690_186067_8563"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1662696441757_351272_7326" name="DateHeaderParamsBean">
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441758_721061_7327" name="offsetDateTime" visibility="private" type="_19_0_4_29b40597_1648122986135_422282_4798"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441758_257710_7328" name="offsetTime" visibility="private" type="_19_0_4_29b40597_1662365080075_608191_4796"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441758_379026_7329" name="localDateTime" visibility="private" type="_19_0_4_29b40597_1648123215215_31227_4798"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_108175_7330" name="localTime" visibility="private" type="_19_0_4_29b40597_1648123191766_939427_4796"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_557134_7331" name="localDate" visibility="private" type="_19_0_4_29b40597_1648123202415_987130_4797"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_740144_7332" name="utilDate" visibility="private" type="_9_5_f720368_1110473546706_999299_8853"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_614898_7333" name="calendar" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_169944_7334" name="sqlTimestamp" visibility="private" type="_9_5_f720368_1110473546690_574195_8603"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_729131_7335" name="sqlTime" visibility="private" type="_9_5_f720368_1110473546690_682982_8601"/>
              <ownedAttribute xmi:id="_19_0_4_29b40597_1662696441759_551539_7336" name="sqlDate" visibility="private" type="_9_5_f720368_1110473546690_186067_8563"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1661922055497_34169_7123" name="broken">
          <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1661922081168_487723_7124" name="rest">
            <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1661922105302_824816_7158" name="BrokenRESTResource">
              <ownedOperation xmi:id="_19_0_4_29b40597_1661922161426_384139_9407" name="multipeBodies" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1661922189631_976859_9409" name="pBody1" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1661922189647_401369_9410" name="pBody2" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1661922189647_539078_9411" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1661934658857_73042_10220" name="invalidPath" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1661934668153_590024_10223" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_19_0_4_29b40597_1661949778244_170997_10777" name="invalidOperationWithBody" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1661949807263_512399_10781" name="pBody" visibility="public">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
                <ownedParameter xmi:id="_19_0_4_29b40597_1661949796302_229802_10780" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_19_0_4_29b40597_1661922236471_686767_9418" name="PathlessRESTResource">
              <ownedOperation xmi:id="_19_0_4_29b40597_1661932692696_79234_10211" name="pathlessOperation" visibility="public">
                <ownedParameter xmi:id="_19_0_4_29b40597_1661932711038_599333_10214" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1634137642684_313534_6532" name="java">
      <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1634137652799_489944_6533" name="time">
        <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634137658901_265736_6534" name="LocalTime"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634137673285_630223_6535" name="LocalDate"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1634137680668_587967_6536" name="LocalDateTime"/>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276549074937_787297_695" name="Java Mail API">
      <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276548794029_572956_683" name="javax">
        <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276548794029_484913_684" name="mail">
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_247877_869" name="ReadOnlyFolderException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_104702_979" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_18587_4243" name="folder" visibility="private" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_118651_4233" name="ReadOnlyFolderException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_366358_4234" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_157977_4236" name="ReadOnlyFolderException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_904169_4237" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_252657_4238" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_24296_4240" name="getFolder" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_730755_4241" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_862889_854" name="MethodNotSupportedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_760719_976" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_115896_4024" name="MethodNotSupportedException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_683479_4026" name="MethodNotSupportedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_113979_4027" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_453592_871" name="SendFailedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_132589_980" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_883434_4287" name="invalid" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794450_612763_4291" name="" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794450_741501_4292" name=""/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_356398_4293" name="validSent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794450_55923_4297" name="" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794450_673194_4298" name=""/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_768333_4299" name="validUnsent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
              <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794450_431152_4303" name="" value="*"/>
              <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794450_171985_4304" name=""/>
            </ownedAttribute>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_612877_4244" name="SendFailedException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_566794_4246" name="SendFailedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_852052_4247" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_670880_4249" name="SendFailedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_607073_4250" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_494227_4251" name="exception" visibility="public" type="_9_5_f720368_1110473546612_465691_7599" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_839530_4253" name="SendFailedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_119236_4254" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_210994_4255" name="exception" visibility="public" type="_9_5_f720368_1110473546612_465691_7599" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_105528_4256" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_535218_4260" name="address1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_542421_4264" name="address2" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_802270_4269" name="getValidSentAddresses" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_384715_4270" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_303936_4275" name="getValidUnsentAddresses" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_216827_4276" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_536525_4281" name="getInvalidAddresses" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_308367_4282" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_959499_860" name="NoSuchProviderException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_560931_978" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_654121_4078" name="NoSuchProviderException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_210504_4080" name="NoSuchProviderException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_661258_4081" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_191470_886" name="URLName">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_384841_4738" name="fullURL" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_481480_4739" name="protocol" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_996484_4740" name="username" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_880996_4741" name="password" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_883842_4742" name="host" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_297738_4743" name="hostAddress" visibility="private" type="_9_5_f720368_1110473546643_279990_7769"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_150661_4744" name="hostAddressKnown" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_885540_4745" name="port" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_606342_4746" name="file" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_425329_4747" name="ref" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_585399_4748" name="hashCode" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_733553_4749" name="doEncode" visibility="private" isStatic="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_442408_4750" name="dontNeedEncoding" visibility="package" isStatic="true" type="_9_5_f720368_1110473546706_6839_8837"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_594669_4751" name="caseDiff" visibility="package" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794481_766390_4752" name="">
                <body>32</body>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_319399_4669" name="URLName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_416959_4670" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_339174_4671" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_9651_4672" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_549344_4673" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_324967_4674" name="string3" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_763114_4675" name="string4" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_574085_4677" name="URLName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_980131_4678" name="url" visibility="public" type="_9_5_f720368_1110473546643_795445_7839" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_563088_4680" name="URLName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_333269_4681" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_741334_4683" name="toString" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_471252_4684" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_521042_4685" name="parseString" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_180346_4686" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_847792_4687" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_11975_4688" name="getPort" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_312310_4689" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_716032_4691" name="getProtocol" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_273055_4692" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_781179_4694" name="getFile" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_157935_4695" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_413514_4697" name="getRef" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_675528_4698" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_732810_4700" name="getHost" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_914185_4701" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_937214_4703" name="getUsername" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_131062_4704" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_235043_4706" name="getPassword" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_33130_4707" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_366015_4709" name="getURL" visibility="public" raisedException="_9_5_f720368_1110473546643_918362_7779">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_710585_4710" name="" visibility="public" type="_9_5_f720368_1110473546643_795445_7839" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_939731_4712" name="equals" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_838809_4713" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_845667_4714" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_849883_4715" name="hashCode" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_590975_4716" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_532255_4717" name="getHostAddress" visibility="private" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_787157_4718" name="" visibility="public" type="_9_5_f720368_1110473546643_279990_7769" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_645608_4720" name="encode" visibility="package" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_230868_4721" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_704080_4722" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_932574_4723" name="_encode" visibility="private" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_903478_4724" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_379701_4725" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_753329_4726" name="decode" visibility="package" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_280125_4727" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_397631_4728" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_262173_4729" name="indexOfAny" visibility="private" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_694309_4730" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_573991_4731" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_709840_4732" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_67009_4733" name="indexOfAny" visibility="private" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_955284_4734" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_369780_4735" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_40943_4736" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_537413_4737" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_717656_850" name="MessageRemovedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_911464_974" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_100734_3999" name="MessageRemovedException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_627546_4001" name="MessageRemovedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_943929_4002" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276548794029_5895_720" name="internet">
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_220604_721" name="AddressException">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_818957_905" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_156954_761"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_247759_1288" name="ref" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_834218_1289" name="pos" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_789151_1266" name="AddressException" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_767303_1268" name="AddressException" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_743560_1269" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_7156_1271" name="AddressException" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_130795_1272" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_250409_1273" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_21929_1275" name="AddressException" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_682831_1276" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_848566_1277" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_268571_1278" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_317436_1280" name="getRef" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_421711_1281" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_41892_1283" name="getPos" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_107763_1284" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_644536_1286" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_743078_1287" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_44545_757" name="NewsAddress">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_877261_937" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_354516_816"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_243975_2723" name="newsgroup" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_6811_2724" name="host" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_546303_2678" name="NewsAddress" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_313715_2680" name="NewsAddress" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_856393_2681" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_419216_2683" name="NewsAddress" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_687801_2684" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_318735_2685" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_867165_2687" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_739505_2688" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_737132_2690" name="setNewsgroup" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_717559_2691" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_686618_2692" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_270517_2694" name="getNewsgroup" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_560621_2695" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_829970_2697" name="setHost" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_153785_2698" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_938451_2699" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_252480_2701" name="getHost" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_412346_2702" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_600936_2704" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_256084_2705" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_692476_2706" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_401091_2707" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_320525_2708" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_429412_2709" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_829024_2710" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_775811_2711" name="toString" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_138996_2712" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_215107_2716" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_283588_2717" name="parse" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_781131_2718" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_184755_2719" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_44545_757" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_897759_731" name="HeaderTokenizer">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_144513_1456" name="string" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_980950_1457" name="skipComments" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_754426_1458" name="delimiters" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_574935_1459" name="currentPos" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_56144_1460" name="maxPos" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_763374_1461" name="nextPos" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_659014_1462" name="peekPos" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_405850_1463" name="RFC822" visibility="public" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_853812_1464" name="">
                  <body>()&lt;>@,;:\&quot;\u9 .[]</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_492107_1465" name="MIME" visibility="public" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_904052_1466" name="">
                  <body>()&lt;>@,;:\&quot;\u9 []/?=</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_394902_1467" name="EOFToken" visibility="private" isStatic="true" type="_16_6_2_1ea00f4_1276548794029_107726_732" isReadOnly="true"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_107726_732" name="Token">
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_19061_1478" name="type" visibility="private">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_441683_1479" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_746605_1480" name="ATOM" visibility="public" isStatic="true" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_919436_1481" name="">
                    <body>-1</body>
                  </defaultValue>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_732291_1482" name="QUOTEDSTRING" visibility="public" isStatic="true" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_36163_1483" name="">
                    <body>-2</body>
                  </defaultValue>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_447377_1484" name="COMMENT" visibility="public" isStatic="true" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_653560_1485" name="">
                    <body>-3</body>
                  </defaultValue>
                </ownedAttribute>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_573725_1486" name="EOF" visibility="public" isStatic="true" isReadOnly="true">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794107_713427_1487" name="">
                    <body>-4</body>
                  </defaultValue>
                </ownedAttribute>
                <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_683816_1468" name="Token" visibility="public">
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_701212_1469" name="i" visibility="public" direction="inout">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_446109_1470" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_447002_1472" name="getType" visibility="public">
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_242379_1473" name="" visibility="public" direction="return">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                  </ownedParameter>
                </ownedOperation>
                <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_897197_1475" name="getValue" visibility="public">
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_248295_1476" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                </ownedOperation>
              </nestedClassifier>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_795548_1427" name="HeaderTokenizer" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_343913_1428" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_417443_1429" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_761756_1430" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_42302_1432" name="HeaderTokenizer" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_716461_1433" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_483066_1434" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_673648_1436" name="HeaderTokenizer" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_101801_1437" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_134096_1439" name="next" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_419982_1440" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_107726_732" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_482556_1441" name="peek" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_983901_1442" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_107726_732" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_841345_1443" name="getRemainder" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_61378_1444" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_705003_1446" name="getNext" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_195510_1447" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_107726_732" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_388900_1449" name="skipWhiteSpace" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_628877_1450" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_763672_1451" name="filterToken" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_136730_1452" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_709237_1453" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_999214_1454" name="i1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_375497_1455" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_358211_729" name="hdr" visibility="package">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_712907_1425" name="name" visibility="package" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794107_695107_1426" name="line" visibility="package" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_686556_1412" name="hdr" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_347114_1413" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_274361_1415" name="hdr" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_523334_1416" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_866328_1417" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_50495_1419" name="getName" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_541397_1420" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_326156_1422" name="getValue" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_152707_1423" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_181180_763" name="SharedInputStream" isAbstract="true">
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_127766_2761" name="getPosition" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_972224_2762" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_823011_2764" name="newStream" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_208237_2765" name="l" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_145641_2766" name="l1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_221211_2767" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_457217_725" name="ContentDisposition">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_814040_1356" name="disposition" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_452310_1357" name="list" visibility="private" type="_16_6_2_1ea00f4_1276548794029_806703_759"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_337028_1322" name="ContentDisposition" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_153638_1324" name="ContentDisposition" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_544077_1325" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_126768_1326" name="parameterlist" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_524105_1328" name="ContentDisposition" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_707331_1329" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_446962_1331" name="getDisposition" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_738282_1332" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_969789_1334" name="getParameter" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_762846_1335" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_813218_1336" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_507582_1338" name="getParameterList" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_223120_1339" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_911244_1341" name="setDisposition" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_582108_1342" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_795715_1343" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_648092_1345" name="setParameter" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_700693_1346" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_17679_1347" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_56292_1348" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_36422_1350" name="setParameterList" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_397324_1351" name="parameterlist" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_565524_1352" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_252048_1354" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_819416_1355" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_624733_744" name="MimeBodyPart" clientDependency="_16_6_2_1ea00f4_1276548794045_652517_911">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_887408_912" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_898007_822"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794154_127512_2052" name="dh" visibility="protected"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794154_628305_2053" name="content" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794154_268593_2057" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794154_51494_2058" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794154_575461_2059" name="contentStream" visibility="protected" type="_9_5_f720368_1110473546596_677017_7415"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794154_372433_2060" name="headers" visibility="protected" type="_16_6_2_1ea00f4_1276548794029_352210_736"/>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_652517_911" name="" supplier="_16_6_2_1ea00f4_1276548794029_45585_751" client="_16_6_2_1ea00f4_1276548794029_624733_744" contract="_16_6_2_1ea00f4_1276548794029_45585_751"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_720163_1781" name="MimeBodyPart" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_857202_1783" name="MimeBodyPart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_703931_1784" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_160040_1786" name="MimeBodyPart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_177770_1787" name="internetheaders" visibility="public" type="_16_6_2_1ea00f4_1276548794029_352210_736" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_4995_1788" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_27763_1793" name="getSize" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_882857_1794" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_442246_1796" name="getLineCount" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_204909_1797" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_39235_1799" name="getContentType" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_824598_1800" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_477779_1802" name="isMimeType" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_840961_1803" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_3141_1804" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_396426_1806" name="getDisposition" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_326045_1807" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_447613_1809" name="setDisposition" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_453106_1810" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_911397_1811" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_132768_1813" name="getEncoding" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_472467_1814" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_694586_1816" name="getContentID" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_510750_1817" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_397883_1819" name="getContentMD5" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_87709_1820" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_835710_1822" name="setContentMD5" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_771531_1823" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_757901_1824" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_219208_1826" name="getContentLanguage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_23514_1827" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_661976_1832" name="setContentLanguage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_371676_1833" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_155901_1837" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_350169_1839" name="getDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_636902_1840" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_512748_1842" name="setDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_162961_1843" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_20436_1844" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_403134_1846" name="setDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_592007_1847" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_457097_1848" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_778670_1849" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_577752_1851" name="getFileName" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_892260_1852" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_60381_1854" name="setFileName" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_595106_1855" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_335169_1856" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_502719_1858" name="getInputStream" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_801744_1859" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_820216_1861" name="getContentStream" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_998791_1862" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_934013_1864" name="getRawInputStream" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_977494_1865" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_499946_1867" name="getDataHandler" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_615372_1882" name="" visibility="public" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_220122_1884" name="getContent" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_226826_1885" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_865221_1887" name="setDataHandler" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_768303_1888" name="datahandler" visibility="public" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_767665_1889" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_153818_1891" name="setContent" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_605905_1892" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_764726_1893" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_349354_1894" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_131905_1896" name="setText" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_399280_1897" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_697208_1898" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_376663_1900" name="setText" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_491536_1901" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_692553_1902" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_310619_1903" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_604653_1905" name="setContent" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_704405_1906" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_996753_1907" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_128041_1909" name="writeTo" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_61045_1910" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_332574_1911" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_282733_1912" name="getHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_15301_1913" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_831997_1914" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_856567_1919" name="getHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_706065_1920" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_758462_1921" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_791545_1922" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_881629_1924" name="setHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_298702_1925" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_770456_1926" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_168496_1927" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_386092_1929" name="addHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_20823_1930" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_98752_1931" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_577226_1932" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794138_843661_1933" name="removeHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_341561_1934" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794138_171573_1935" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_789832_1936" name="getAllHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_158913_1937" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_96972_1939" name="getMatchingHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_567410_1940" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_971569_1944" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_619067_1946" name="getNonMatchingHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_125290_1947" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_227479_1951" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_197647_1953" name="addHeaderLine" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_912474_1954" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_578831_1955" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_164877_1956" name="getAllHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_754478_1957" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_214556_1959" name="getMatchingHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_565223_1960" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_361215_1964" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_120907_1966" name="getNonMatchingHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_781914_1967" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_542130_1971" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_509266_1973" name="updateHeaders" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_269994_1974" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_655295_1975" name="isMimeType" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_13759_1976" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_826953_1977" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_466020_1978" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_496195_1980" name="setText" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_540958_1981" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_729255_1982" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_770904_1983" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_49909_1984" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_448123_1986" name="getDisposition" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_194826_1987" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_814998_1988" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_14873_1990" name="setDisposition" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_583547_1991" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_823343_1992" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_114800_1993" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_767043_1995" name="getDescription" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_279568_1996" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_749282_1997" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_111639_1999" name="setDescription" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_206780_2000" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_117219_2001" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_214871_2002" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_768158_2003" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_585069_2005" name="getFileName" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_925439_2006" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_160509_2007" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_645778_2009" name="setFileName" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_492972_2010" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_523315_2011" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_448236_2012" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_534203_2014" name="getContentLanguage" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_415387_2015" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_420525_2016" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_180366_2021" name="setContentLanguage" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_319695_2022" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_345483_2023" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_724991_2027" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_203223_2029" name="getEncoding" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_718074_2030" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_110579_2031" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_631876_2033" name="setEncoding" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_781445_2034" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_864768_2035" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_689005_2036" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_852722_2038" name="updateHeaders" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_911523_2039" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_760498_2040" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_977152_2041" name="invalidateContentHeaders" visibility="package" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_631385_2042" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_518949_2043" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_566883_2044" name="writeTo" visibility="package" isStatic="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_510031_2045" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_925045_2046" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_476039_2047" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_559989_2051" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_156954_761" name="ParseException">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_673876_938" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_363373_2756" name="ParseException" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_683994_2758" name="ParseException" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_92720_2759" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_182117_738" name="MailDateFormat">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_701566_909" isSubstitutable="true" general="_9_5_f720368_1110473546690_285600_8683"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_482479_1715" name="debug" visibility="package" isStatic="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_232872_1716" name="tz" visibility="private" isStatic="true" type="_9_5_f720368_1110473546706_290048_8939"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_488608_1717" name="cal" visibility="private" isStatic="true" type="_9_5_f720368_1110473546706_973459_8839"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_981163_1680" name="MailDateFormat" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_690566_1682" name="format" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_990881_1683" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_513977_1684" name="stringbuffer" visibility="public" type="_9_5_f720368_1110473546612_225069_7693" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_675988_1685" name="fieldposition" visibility="public" type="_9_5_f720368_1110473546690_589454_8655" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_509006_1686" name="" visibility="public" type="_9_5_f720368_1110473546612_225069_7693" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_577485_1687" name="parse" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_711719_1688" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_1973_1689" name="parseposition" visibility="public" type="_9_5_f720368_1110473546690_85929_8669" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_324785_1690" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_696938_1691" name="parseDate" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_36200_1692" name="c" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_338066_1696" name="parseposition" visibility="public" type="_9_5_f720368_1110473546690_85929_8669" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_94696_1697" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_275562_1698" name="ourUTC" visibility="private" isStatic="true" concurrency="guarded">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_26296_1699" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_451153_1700" name="i1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_983265_1701" name="i2" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_206751_1702" name="i3" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_364714_1703" name="i4" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_933074_1704" name="i5" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_589900_1705" name="i6" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_767735_1706" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_667575_1707" name="setCalendar" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_923985_1708" name="calendar" visibility="public" type="_9_5_f720368_1110473546706_973459_8839" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_555462_1709" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_774739_1711" name="setNumberFormat" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_627707_1712" name="numberformat" visibility="public" type="_9_5_f720368_1110473546690_833550_8665" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_885770_1713" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_158066_740" name="MailDateParser" visibility="package">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_359374_1749" name="index" visibility="package">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_616494_1750" name="orig" visibility="package">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794123_621174_1754" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794123_74587_1755" name=""/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_769111_1718" name="MailDateParser" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_295482_1719" name="c" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_608160_1724" name="skipUntilNumber" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_927894_1725" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_940914_1726" name="skipWhiteSpace" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_217217_1727" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_290928_1728" name="peekChar" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_461654_1729" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_999832_1730" name="skipChar" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_34941_1731" name="c" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_172165_1732" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_212771_1733" name="skipIfChar" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_770501_1734" name="c" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_667146_1735" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_378946_1736" name="parseNumber" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_252315_1737" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_930433_1738" name="parseMonth" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_901863_1739" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_952277_1740" name="parseTimeZone" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_790113_1741" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_68358_1742" name="parseNumericTimeZone" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_11833_1743" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_137314_1744" name="parseAlphaTimeZone" visibility="public" raisedException="_9_5_f720368_1110473546690_199190_8667">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_285988_1745" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_302014_1746" name="getIndex" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_866364_1747" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_900853_746" name="MimeMessage" clientDependency="_16_6_2_1ea00f4_1276548794045_669929_913">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_144089_914" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_584265_843"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_877804_2421" name="dh" visibility="protected"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_289317_2422" name="content" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794185_663909_2426" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794185_577838_2427" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_380083_2428" name="contentStream" visibility="protected" type="_9_5_f720368_1110473546596_677017_7415"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_771676_2429" name="headers" visibility="protected" type="_16_6_2_1ea00f4_1276548794029_352210_736"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_486194_2430" name="flags" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_964094_830"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_299830_2431" name="modified" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_766919_2432" name="saved" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_289780_2433" name="mailDateFormat" visibility="private" isStatic="true" type="_16_6_2_1ea00f4_1276548794029_182117_738"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_976138_2434" name="answeredFlag" visibility="private" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_964094_830" isReadOnly="true"/>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_669929_913" name="" supplier="_16_6_2_1ea00f4_1276548794029_45585_751" client="_16_6_2_1ea00f4_1276548794029_900853_746" contract="_16_6_2_1ea00f4_1276548794029_45585_751"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_241482_747" name="RecipientType">
                <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_558516_915" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_156276_844"/>
                <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_997976_2440" name="NEWSGROUPS" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794029_241482_747" isReadOnly="true"/>
                <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_732626_2435" name="RecipientType" visibility="protected">
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_625240_2436" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                </ownedOperation>
                <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_477463_2438" name="readResolve" visibility="protected" raisedException="_9_5_f720368_1110473546596_920902_7449">
                  <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_726920_2439" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
                </ownedOperation>
              </nestedClassifier>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_969776_2061" name="MimeMessage" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_419786_2062" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_687176_2064" name="MimeMessage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_658834_2065" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_873787_2066" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_660237_2068" name="MimeMessage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_485191_2069" name="mimemessage" visibility="public" type="_16_6_2_1ea00f4_1276548794029_900853_746" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_62846_2071" name="MimeMessage" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_49772_2072" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_469885_2073" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_917320_2075" name="MimeMessage" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_107001_2076" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_908753_2077" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_286907_2078" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_509083_2080" name="MimeMessage" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_167858_2081" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_289422_2082" name="internetheaders" visibility="public" type="_16_6_2_1ea00f4_1276548794029_352210_736" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_962404_2083" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_646115_2087" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_227654_2089" name="parse" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_531018_2090" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_34127_2091" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_386999_2092" name="getFrom" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_607038_2093" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_311138_2098" name="setFrom" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_490854_2099" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_494906_2100" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_33397_2102" name="setFrom" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_258829_2103" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_44428_2105" name="addFrom" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_859152_2106" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_155246_2110" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_295014_2111" name="getRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_253104_2112" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_81079_2113" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_918123_2118" name="getAllRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_83131_2119" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794154_858619_2124" name="setRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_714886_2125" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_57268_2126" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794154_759972_2130" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_909249_2132" name="setRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_392668_2133" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_376292_2134" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_72139_2135" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_96975_2137" name="addRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_994125_2138" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_316864_2139" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_375201_2143" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_523657_2144" name="addRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_276417_2145" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_886178_2146" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_33671_2147" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_904688_2148" name="getReplyTo" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_455070_2149" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_774480_2154" name="setReplyTo" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_734550_2155" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_143908_2159" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_799496_2161" name="getAddressHeader" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_852156_2162" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_438332_2163" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_816937_2168" name="setAddressHeader" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_953563_2169" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_443131_2170" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_326346_2174" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_51563_2176" name="addAddressHeader" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_740745_2177" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_518448_2178" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_98136_2182" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_615950_2183" name="getSubject" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_219148_2184" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_863043_2186" name="setSubject" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_787646_2187" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_12472_2188" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_649970_2190" name="setSubject" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_348857_2191" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_806374_2192" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_371938_2193" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_121764_2195" name="getSentDate" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_670176_2196" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_737433_2198" name="setSentDate" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_863870_2199" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_124776_2200" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_654313_2202" name="getReceivedDate" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_992801_2203" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_822170_2205" name="getSize" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_858918_2206" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_789330_2208" name="getLineCount" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_247469_2209" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_687557_2211" name="getContentType" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_838239_2212" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_913332_2214" name="isMimeType" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_498339_2215" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_112134_2216" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_565045_2218" name="getDisposition" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_511069_2219" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_54845_2221" name="setDisposition" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_947713_2222" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_53158_2223" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_210728_2225" name="getEncoding" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_780030_2226" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_53869_2228" name="getContentID" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_882240_2229" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_75507_2231" name="setContentID" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_265558_2232" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_506841_2233" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_727102_2235" name="getContentMD5" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_297575_2236" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_531417_2238" name="setContentMD5" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_679749_2239" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_263687_2240" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_310925_2242" name="getDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_301789_2243" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_874462_2245" name="setDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_355764_2246" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_743018_2247" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_734927_2249" name="setDescription" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_754996_2250" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_318843_2251" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_661131_2252" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_897179_2254" name="getContentLanguage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_592809_2255" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_859034_2260" name="setContentLanguage" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_148829_2261" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_91740_2265" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_508526_2267" name="getMessageID" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_913269_2268" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_559682_2270" name="getFileName" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_153706_2271" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_764015_2273" name="setFileName" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_474763_2274" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_409034_2275" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_870242_2277" name="getHeaderName" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_232713_2278" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_604357_2279" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_5576_2281" name="getInputStream" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_442482_2282" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_556114_2284" name="getContentStream" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_137708_2285" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_291451_2287" name="getRawInputStream" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_97443_2288" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_697891_2290" name="getDataHandler" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_15556_2291" name="" visibility="public" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_23246_2293" name="getContent" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_832451_2294" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_570237_2296" name="setDataHandler" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_915300_2297" name="datahandler" visibility="public" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_356262_2298" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_328845_2300" name="setContent" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_324459_2301" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_831366_2302" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_98441_2303" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_152731_2305" name="setText" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_808788_2306" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_988549_2307" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_227978_2309" name="setText" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_990324_2310" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_895418_2311" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_715284_2312" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_77825_2314" name="setContent" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_307527_2315" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_465783_2316" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_661333_2318" name="reply" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_836344_2319" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_224780_2320" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_450324_2321" name="eliminateDuplicates" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_45259_2322" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_685623_2323" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_949515_2327" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_751225_2331" name="writeTo" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_395880_2332" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_599955_2333" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794169_867856_2334" name="writeTo" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794169_852144_2335" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_390243_2336" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_61928_2340" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_530416_2341" name="getHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_738010_2342" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_51428_2343" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_383624_2348" name="getHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_292697_2349" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_71770_2350" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_904348_2351" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_779987_2353" name="setHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_217720_2354" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_421245_2355" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_337401_2356" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_18904_2358" name="addHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_677642_2359" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_447071_2360" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_329977_2361" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_118072_2362" name="removeHeader" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_225693_2363" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_611340_2364" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_430779_2365" name="getAllHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_36183_2366" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_901567_2368" name="getMatchingHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_635429_2369" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_108869_2373" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_443257_2375" name="getNonMatchingHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_920250_2376" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_202906_2380" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_749262_2382" name="addHeaderLine" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_37894_2383" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_733713_2384" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_759685_2385" name="getAllHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_913517_2386" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_686857_2388" name="getMatchingHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_541083_2389" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_912117_2393" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_963125_2395" name="getNonMatchingHeaderLines" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_688870_2396" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_235330_2400" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_467312_2402" name="getFlags" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_164392_2403" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_91074_2405" name="isSet" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_854119_2406" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_940893_2407" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_710837_2409" name="setFlags" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_204267_2410" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_588093_2411" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_412973_2412" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_23522_2414" name="saveChanges" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_770967_2415" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_950299_2416" name="updateHeaders" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_539332_2417" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_741600_2418" name="createInternetHeaders" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_762715_2419" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_492111_2420" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_352210_736" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_352210_736" name="InternetHeaders">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_850293_1679" name="headers" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_452954_1610" name="InternetHeaders" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_396066_1612" name="InternetHeaders" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_556373_1613" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_119381_1615" name="load" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_696956_1616" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_842120_1617" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_554663_1618" name="getHeader" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_709963_1619" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_650400_1620" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_83738_1625" name="getHeader" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_724329_1626" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_93081_1627" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_698939_1628" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_753819_1630" name="setHeader" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_417227_1631" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_169762_1632" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_62961_1633" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_418258_1635" name="addHeader" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_559497_1636" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_303969_1637" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_668074_1638" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_972805_1639" name="removeHeader" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_492852_1640" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_304859_1641" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_718232_1642" name="getAllHeaders" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_207495_1643" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_711502_1645" name="getMatchingHeaders" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_80241_1646" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_613951_1650" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_498287_1652" name="getNonMatchingHeaders" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_196704_1653" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_952416_1657" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_926871_1659" name="addHeaderLine" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_277826_1660" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_924270_1661" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_162823_1662" name="getAllHeaderLines" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_469293_1663" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_701322_1665" name="getMatchingHeaderLines" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_906932_1666" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_316621_1670" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_666588_1672" name="getNonMatchingHeaderLines" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_683612_1673" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_823155_1677" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_806703_759" name="ParameterList">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_415548_2755" name="list" visibility="private" type="_9_5_f720368_1110473546706_512249_8873"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_83273_2725" name="ParameterList" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_75144_2727" name="ParameterList" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_120749_2728" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_965522_2730" name="size" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_696220_2731" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_233243_2732" name="get" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_239113_2733" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_29562_2734" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_615833_2736" name="set" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_127818_2737" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_411123_2738" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_840323_2739" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_240802_2741" name="remove" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_509890_2742" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_17110_2743" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_670685_2744" name="getNames" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_886462_2745" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_292725_2747" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_859247_2748" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_365300_2749" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_509804_2750" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_136809_2751" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_991045_2752" name="quote" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_569560_2753" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_952822_2754" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_442521_753" name="MimePartDataSource" clientDependency="_16_6_2_1ea00f4_1276548794060_64314_936">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794201_929333_2564" name="part" visibility="private" type="_16_6_2_1ea00f4_1276548794029_45585_751"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794201_807892_2565" name="context" visibility="private" type="_16_6_2_1ea00f4_1276548794045_592028_848"/>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_64314_936" name="" supplier="_16_6_2_1ea00f4_1276548794045_884500_846" client="_16_6_2_1ea00f4_1276548794029_442521_753" contract="_16_6_2_1ea00f4_1276548794045_884500_846"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_47836_2546" name="MimePartDataSource" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_714251_2547" name="mimepart" visibility="public" type="_16_6_2_1ea00f4_1276548794029_45585_751" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_115229_2549" name="getInputStream" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_108149_2550" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_832555_2552" name="getOutputStream" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_378005_2553" name="" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_310993_2555" name="getContentType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_635067_2556" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_822272_2558" name="getName" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_663504_2559" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_738440_2561" name="getMessageContext" visibility="public" concurrency="guarded">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_173064_2562" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_592028_848" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_45585_751" name="MimePart" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_934572_917" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_851251_862"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_682677_2486" name="getHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_536961_2487" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_887370_2488" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_669659_2489" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_309088_2491" name="addHeaderLine" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_477579_2492" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_374504_2493" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_833309_2494" name="getAllHeaderLines" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_889925_2495" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_528244_2497" name="getMatchingHeaderLines" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_543142_2498" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_162381_2502" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_887352_2504" name="getNonMatchingHeaderLines" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_981357_2505" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_118897_2509" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_425933_2511" name="getEncoding" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_857484_2512" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_251165_2514" name="getContentID" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_591261_2515" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_515751_2517" name="getContentMD5" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_115160_2518" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_259057_2520" name="setContentMD5" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_130190_2521" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_951946_2522" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_468528_2524" name="getContentLanguage" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_49900_2525" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_730989_2530" name="setContentLanguage" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_295975_2531" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_413118_2535" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_619565_2537" name="setText" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_664365_2538" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_778179_2539" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_784076_2541" name="setText" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_679078_2542" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_137128_2543" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_204929_2544" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_529568_765" name="UniqueValue" visibility="package">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_621091_2777" name="part" visibility="private" isStatic="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_291553_2768" name="getUniqueBoundaryValue" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_720683_2769" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_603010_2771" name="getUniqueMessageIDValue" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_497954_2772" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_545607_2773" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_784369_2775" name="UniqueValue" visibility="package"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_94286_749" name="MimeMultipart">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_568172_916" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_306757_856"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_674595_2484" name="ds" visibility="protected"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794185_805048_2485" name="parsed" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_358779_2441" name="MimeMultipart" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_762990_2443" name="MimeMultipart" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_45529_2444" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_693446_2446" name="MimeMultipart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_5075_2447" name="datasource" visibility="public" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_773633_2449" name="setSubType" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_589794_2450" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_963825_2451" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_726205_2453" name="getCount" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_29294_2454" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_489892_2456" name="getBodyPart" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_92326_2457" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_984545_2458" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_545847_2460" name="getBodyPart" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_233411_2461" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_137398_2462" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_913713_2464" name="updateHeaders" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_340852_2465" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_111975_2466" name="writeTo" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_431704_2467" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_622552_2468" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_796897_2469" name="parse" visibility="protected" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_399554_2470" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_359993_2471" name="createInternetHeaders" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_143334_2472" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_983483_2473" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_352210_736" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_99122_2474" name="createMimeBodyPart" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_992911_2475" name="internetheaders" visibility="public" type="_16_6_2_1ea00f4_1276548794029_352210_736" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_870930_2476" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_124951_2480" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_624733_744" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794185_13693_2481" name="createMimeBodyPart" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_242961_2482" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794185_985464_2483" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_624733_744" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_167560_723" name="AsciiOutputStream" visibility="package">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_808184_906" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_117809_1316" name="breakOnNonAscii" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_669057_1317" name="ascii" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_76043_1318" name="non_ascii" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_768801_1319" name="linelen" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_984832_1320" name="longLine" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_342842_1321" name="ret" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_835386_1290" name="AsciiOutputStream" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_616093_1291" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_389736_1293" name="write" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_931730_1294" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_470453_1295" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_741827_1296" name="write" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_461256_1297" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_578506_1301" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_913740_1302" name="write" visibility="public" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_485040_1303" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_81194_1307" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_301461_1308" name="i1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_549407_1309" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_558626_1310" name="check" visibility="private" isLeaf="true" raisedException="_9_5_f720368_1110473546596_502964_7425">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_23941_1311" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_478693_1312" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_72879_1313" name="getAscii" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_850773_1314" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_858960_742" name="matchEnum" visibility="package" clientDependency="_16_6_2_1ea00f4_1276548794045_95901_910">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_217522_1771" name="e" visibility="private" type="_9_5_f720368_1110473546706_70178_8859"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_318868_1772" name="names" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794123_762121_1776" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794123_318901_1777" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_481290_1778" name="match" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_404337_1779" name="want_line" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_178864_1780" name="next_header" visibility="private" type="_16_6_2_1ea00f4_1276548794029_358211_729"/>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_95901_910" name="" supplier="_9_5_f720368_1110473546706_70178_8859" client="_16_6_2_1ea00f4_1276548794029_858960_742" contract="_9_5_f720368_1110473546706_70178_8859"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_918698_1756" name="matchEnum" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_878649_1757" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_314851_1758" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_621569_1762" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_372685_1763" name="b1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_310535_1765" name="hasMoreElements" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_913725_1766" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_394911_1767" name="nextElement" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_441673_1768" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794123_871768_1769" name="nextMatch" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794123_474384_1770" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_358211_729" direction="return"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_487019_755" name="MimeUtility">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_281523_2666" name="ALL" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794247_941373_2667" name="">
                  <body>-1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_566355_2668" name="defaultJavaCharset" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_322755_2669" name="defaultMIMECharset" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_772766_2670" name="mime2java" visibility="private" isStatic="true" type="_9_5_f720368_1110473546706_512249_8873"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_516729_2671" name="java2mime" visibility="private" isStatic="true" type="_9_5_f720368_1110473546706_512249_8873"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_161578_2672" name="ALL_ASCII" visibility="package" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794247_730483_2673" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_776117_2674" name="MOSTLY_ASCII" visibility="package" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794247_770332_2675" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794247_520699_2676" name="MOSTLY_NONASCII" visibility="package" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794247_655778_2677" name="">
                  <body>3</body>
                </defaultValue>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_451408_2566" name="MimeUtility" visibility="private"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_874988_2568" name="getEncoding" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_615140_2569" name="datasource" visibility="public" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_852009_2570" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_409602_2572" name="getEncoding" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_502157_2573" name="datahandler" visibility="public" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_596234_2574" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_898522_2576" name="decode" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_949043_2577" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_317932_2578" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_614101_2579" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_126911_2580" name="encode" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_138758_2581" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_258179_2582" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_236574_2583" name="" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_613548_2584" name="encode" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_900353_2585" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_170107_2586" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_818185_2587" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_987984_2588" name="" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_535131_2589" name="encodeText" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_226574_2590" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_829061_2591" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_212607_2592" name="encodeText" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_288952_2593" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_896279_2594" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_693164_2595" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_619592_2596" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_523931_2597" name="decodeText" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_708031_2598" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_253060_2599" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_702480_2600" name="encodeWord" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_964076_2601" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_58234_2602" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_399578_2603" name="encodeWord" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_353087_2604" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_741939_2605" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_733242_2606" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_843943_2607" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_766672_2608" name="encodeWord" visibility="private" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_357161_2609" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_616107_2610" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_284342_2611" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_551773_2612" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_72817_2613" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_126328_2614" name="doEncode" visibility="private" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_24603_2615" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_675835_2616" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_721751_2617" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_301568_2618" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_439520_2619" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_753768_2620" name="b1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_372654_2621" name="b2" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_71912_2622" name="stringbuffer" visibility="public" type="_9_5_f720368_1110473546612_225069_7693" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_549566_2623" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_843735_2624" name="decodeWord" visibility="public" isStatic="true" raisedException="_9_5_f720368_1110473546612_504345_7497 _16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_814397_2625" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_200069_2626" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_367129_2627" name="quote" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_353014_2628" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_357192_2629" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_565066_2630" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_607073_2631" name="javaCharset" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_876459_2632" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_20437_2633" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_952276_2634" name="mimeCharset" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_816350_2635" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_791083_2636" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_779632_2637" name="getDefaultJavaCharset" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_279280_2638" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_212500_2640" name="getDefaultMIMECharset" visibility="package" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_178560_2641" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794201_109587_2643" name="loadMappings" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794201_482454_2644" name="lineinputstream" visibility="public" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_945899_2647" name="hashtable" visibility="public" type="_9_5_f720368_1110473546706_512249_8873" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_520565_2648" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_122263_2649" name="checkAscii" visibility="package" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_670509_2650" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_718456_2651" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_92816_2652" name="checkAscii" visibility="package" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_649561_2653" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_107429_2657" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_112263_2658" name="checkAscii" visibility="package" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_663604_2659" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_825450_2660" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_506411_2661" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_50648_2662" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794247_47925_2663" name="nonascii" visibility="private" isLeaf="true" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_309202_2664" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794247_751106_2665" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_898730_727" name="ContentType">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_568341_1409" name="primaryType" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_241737_1410" name="subType" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_419290_1411" name="list" visibility="private" type="_16_6_2_1ea00f4_1276548794029_806703_759"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_671832_1358" name="ContentType" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_447804_1360" name="ContentType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_994311_1361" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_466142_1362" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_72012_1363" name="parameterlist" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_827128_1365" name="ContentType" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_156954_761">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_842735_1366" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_804774_1368" name="getPrimaryType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_974495_1369" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_904948_1371" name="getSubType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_972949_1372" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_281064_1374" name="getBaseType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_997156_1375" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_116399_1377" name="getParameter" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_368417_1378" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_611042_1379" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_497352_1381" name="getParameterList" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_357021_1382" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_109876_1384" name="setPrimaryType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_54069_1385" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_848957_1386" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_264797_1388" name="setSubType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_172263_1389" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_773469_1390" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_608765_1392" name="setParameter" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_84290_1393" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_162025_1394" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_3675_1395" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_818541_1397" name="setParameterList" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_479133_1398" name="parameterlist" visibility="public" type="_16_6_2_1ea00f4_1276548794029_806703_759" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_61850_1399" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_799567_1401" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_121006_1402" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_921538_1403" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_61134_1404" name="contenttype" visibility="public" type="_16_6_2_1ea00f4_1276548794029_898730_727" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_626771_1405" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_835768_1406" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_897525_1407" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_934422_1408" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_163348_734" name="InternetAddress" clientDependency="_16_6_2_1ea00f4_1276548794045_464838_907">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_176749_908" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_354516_816"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_861604_1602" name="address" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_400382_1603" name="personal" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_940852_1604" name="encodedPersonal" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_242274_1605" name="rfc822phrase" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_778481_1606" name="specialsNoDotNoAt" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794123_612297_1607" name="">
                  <body>()&lt;>,;:\&quot;[]</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794123_11024_1608" name="specialsNoDot" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794123_868277_1609" name="">
                  <body>()&lt;>,;:\&quot;[]@</body>
                </defaultValue>
              </ownedAttribute>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_464838_907" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_16_6_2_1ea00f4_1276548794029_163348_734" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_762273_1488" name="InternetAddress" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_12971_1490" name="InternetAddress" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_700068_1491" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_147275_1493" name="InternetAddress" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_624369_1494" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_816066_1495" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_787150_1497" name="InternetAddress" visibility="public" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_92888_1498" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_857035_1499" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_536662_1501" name="InternetAddress" visibility="public" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_960638_1502" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_760884_1503" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_777473_1504" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_814013_1506" name="clone" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_10127_1507" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_889923_1508" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_614990_1509" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_901683_1511" name="setAddress" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_29681_1512" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_95099_1513" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_27969_1515" name="setPersonal" visibility="public" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_469898_1516" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_634913_1517" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_529445_1518" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_308317_1520" name="setPersonal" visibility="public" raisedException="_9_5_f720368_1110473546612_504345_7497">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_763798_1521" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_245844_1522" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_319529_1524" name="getAddress" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_184342_1525" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_821496_1527" name="getPersonal" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_716749_1528" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_679217_1530" name="toString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_354100_1531" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_814623_1532" name="toUnicodeString" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_813840_1533" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_422525_1534" name="quotePhrase" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_274518_1535" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_741751_1536" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_205286_1537" name="unquote" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_544210_1538" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_38939_1539" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_290137_1540" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_294454_1541" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_696182_1542" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_499563_1543" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_708469_1544" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_471663_1545" name="toString" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_327071_1546" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_881713_1550" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_633736_1551" name="toString" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_545012_1552" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_11880_1556" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_236873_1557" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_144948_1558" name="lengthOfFirstSegment" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_371999_1559" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_204341_1560" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_21166_1561" name="lengthOfLastSegment" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_644066_1562" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_164954_1563" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_819992_1564" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_817813_1565" name="getLocalAddress" visibility="public" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_631872_1566" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_123140_1567" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_163348_734" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_847942_1569" name="parse" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_164079_1570" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_560183_1571" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_163348_734" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_258105_1575" name="parse" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_91019_1576" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_352620_1577" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_950655_1578" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_163348_734" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_268375_1582" name="checkAddress" visibility="private" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794029_220604_721">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_642063_1583" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_50642_1584" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_172917_1585" name="b1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_704559_1586" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_997983_1587" name="isSimple" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_425762_1588" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_127071_1590" name="isGroup" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_891648_1591" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_86895_1593" name="indexOfAny" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_509_1594" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_974433_1595" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_385051_1596" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794107_148382_1597" name="indexOfAny" visibility="private" isStatic="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_148492_1598" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_48752_1599" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_600206_1600" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794107_998552_1601" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_25698_818" name="AuthenticationFailedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_334996_964" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_506806_3130" name="AuthenticationFailedException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_737630_3132" name="AuthenticationFailedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_684520_3133" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_387430_877" name="Store" isAbstract="true">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_169104_981" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_335301_873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_777965_4570" name="storeListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_318090_4571" name="folderListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_886235_4512" name="Store" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_238718_4513" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_234210_4514" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_600206_4516" name="getDefaultFolder" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_600660_4517" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_50419_4519" name="getFolder" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_214166_4520" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_889888_4521" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_852266_4523" name="getFolder" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_763216_4524" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_303397_4525" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_319405_4527" name="getPersonalNamespaces" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_89866_4528" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_114143_4533" name="getUserNamespaces" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_192748_4534" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_537752_4535" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_793310_4540" name="getSharedNamespaces" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_944358_4541" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_577513_4546" name="addStoreListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_452866_4547" name="storelistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_647751_712" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_145104_4548" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_230799_4549" name="removeStoreListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_420668_4550" name="storelistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_647751_712" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_32048_4551" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_548437_4552" name="notifyStoreListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_54649_4553" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_138137_4554" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_537169_4555" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_64190_4556" name="addFolderListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_180962_4557" name="folderlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_759221_696" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_829546_4558" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_647316_4559" name="removeFolderListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_582634_4560" name="folderlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_759221_696" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_490296_4561" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_875441_4562" name="notifyFolderListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_513680_4563" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_717528_4564" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_645544_4565" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_751889_4566" name="notifyFolderRenamedListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_882793_4567" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_931466_4568" name="folder1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_311853_4569" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_354516_816" name="Address" clientDependency="_16_6_2_1ea00f4_1276548794060_441522_963" isAbstract="true">
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_441522_963" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_16_6_2_1ea00f4_1276548794045_354516_816" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_582720_3120" name="getType" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_601726_3121" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_945625_3123" name="toString" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_372831_3124" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_150574_3125" name="equals" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_749585_3126" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_297981_3127" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_887928_3128" name="Address" visibility="public"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_554318_864" name="PasswordAuthentication" isLeaf="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_105756_4196" name="userName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_218827_4197" name="password" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_680661_4186" name="PasswordAuthentication" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_433847_4187" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_207155_4188" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_87300_4190" name="getUserName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_350632_4191" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_265697_4193" name="getPassword" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_985919_4194" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_177299_839" name="Header">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_801188_3723" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_188605_3724" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_965665_3713" name="Header" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_156785_3714" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_714287_3715" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_477547_3717" name="getName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_709049_3718" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_500275_3720" name="getValue" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_262979_3721" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_306757_856" name="Multipart" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794372_951957_4068" name="parts" visibility="protected" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794372_677085_4069" name="contentType" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794372_77299_4070" name="parent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_851251_862"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_637441_4029" name="Multipart" visibility="protected"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_138559_4031" name="setMultipartDataSource" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_996316_4032" name="multipartdatasource" visibility="public" type="_16_6_2_1ea00f4_1276548794045_585665_858" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_926822_4033" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_596389_4035" name="getContentType" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_975979_4036" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_157942_4038" name="getCount" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_610877_4039" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_48812_4041" name="getBodyPart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_387413_4042" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_429228_4043" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_961753_4045" name="removeBodyPart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_163519_4046" name="bodypart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_180819_4047" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_347761_4048" name="removeBodyPart" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_256101_4049" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_283873_4050" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_761648_4051" name="addBodyPart" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_909056_4052" name="bodypart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_191609_4053" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794372_103405_4054" name="addBodyPart" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_328554_4055" name="bodypart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_776888_4056" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_133703_4057" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794372_435034_4058" name="writeTo" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_794080_4059" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_25033_4060" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794372_852546_4061" name="getParent" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_268014_4062" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_851251_862" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794372_435703_4064" name="setParent" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_342600_4065" name="part" visibility="public" type="_16_6_2_1ea00f4_1276548794045_851251_862" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_560813_4066" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_964094_830" name="Flags" clientDependency="_16_6_2_1ea00f4_1276548794060_808172_967 _16_6_2_1ea00f4_1276548794060_272800_968">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_160722_3394" name="system_flags" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_283326_3395" name="user_flags" visibility="private" type="_9_5_f720368_1110473546706_512249_8873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_331302_3396" name="ANSWERED_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_933197_3397" name="">
                <body>1</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_185129_3398" name="DELETED_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_806499_3399" name="">
                <body>2</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_550311_3400" name="DRAFT_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_547583_3401" name="">
                <body>4</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_439240_3402" name="FLAGGED_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_40395_3403" name="">
                <body>8</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_262629_3404" name="RECENT_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_358320_3405" name="">
                <body>16</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_212522_3406" name="SEEN_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_394613_3407" name="">
                <body>32</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_482630_3408" name="USER_BIT" visibility="private" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794310_791793_3409" name="">
                <body>-2147483648</body>
              </defaultValue>
            </ownedAttribute>
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_808172_967" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_16_6_2_1ea00f4_1276548794045_964094_830" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_272800_968" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_16_6_2_1ea00f4_1276548794045_964094_830" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_681769_831" name="Flag" isLeaf="true">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_317041_3413" name="ANSWERED" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_463596_3414" name="DELETED" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_492511_3415" name="DRAFT" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_674160_3416" name="FLAGGED" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_503769_3417" name="RECENT" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_390944_3418" name="SEEN" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_182239_3419" name="USER" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_681769_831" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_331366_3420" name="bit" visibility="private">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_833649_3410" name="Flag" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_599561_3411" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </nestedClassifier>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_797099_3337" name="Flags" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_198447_3339" name="Flags" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_567556_3340" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_50924_3342" name="Flags" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_818337_3343" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_878000_3345" name="Flags" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_632739_3346" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_281255_3348" name="add" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_920467_3349" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_962640_3350" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_654404_3351" name="add" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_366593_3352" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_933904_3353" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_977533_3354" name="add" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_673558_3355" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_303500_3356" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_24692_3357" name="remove" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_649283_3358" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_398030_3359" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_404255_3360" name="remove" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_37567_3361" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_887652_3362" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_522620_3363" name="remove" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_872670_3364" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_170902_3365" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_957739_3366" name="contains" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_491529_3367" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_71137_3368" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_859598_3369" name="contains" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_77000_3370" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_735741_3371" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_830431_3372" name="contains" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_582604_3373" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_131320_3374" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_199055_3375" name="equals" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_15670_3376" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_331167_3377" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_255295_3378" name="hashCode" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_971406_3379" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_8129_3380" name="getSystemFlags" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_834286_3381" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_549917_3386" name="getUserFlags" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_298640_3387" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_696951_3392" name="clone" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_320881_3393" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_335301_873" name="Service" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_18785_4363" name="session" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_319634_875"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_438440_4364" name="url" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_191470_886"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_276017_4365" name="debug" visibility="protected">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_345606_4366" name="connected" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_175876_4367" name="connectionListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_945482_4368" name="q" visibility="private" type="_16_6_2_1ea00f4_1276548794045_201409_824"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_766852_4369" name="qLock" visibility="private" type="_9_5_f720368_1110473546612_117118_7661"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_418546_4305" name="Service" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_920005_4306" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_935220_4307" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_746234_4309" name="connect" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_246469_4310" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_160383_4311" name="connect" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_82105_4312" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_358712_4313" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_109985_4314" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_364590_4315" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_562474_4316" name="connect" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_15410_4317" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_262286_4318" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_170961_4319" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_808288_4320" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_361356_4321" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_795658_4322" name="protocolConnect" visibility="protected" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_357829_4323" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_543236_4324" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_227986_4325" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_502137_4326" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_314321_4327" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_260598_4328" name="isConnected" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_17495_4329" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_56286_4331" name="setConnected" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_366643_4332" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_62086_4333" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_510861_4335" name="close" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_228149_4336" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_428642_4337" name="getURLName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_143512_4338" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_643088_4340" name="setURLName" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_499625_4341" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_28245_4342" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_231113_4344" name="addConnectionListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_802684_4345" name="connectionlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_873970_690" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_726484_4346" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_661804_4347" name="removeConnectionListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_249238_4348" name="connectionlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_873970_690" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_984227_4349" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_838073_4350" name="notifyConnectionListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_486184_4351" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_378152_4352" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_526387_4353" name="toString" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_886477_4354" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_978268_4355" name="queueEvent" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_95901_4356" name="mailevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_717144_698" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_792100_4357" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_158398_4358" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_729309_4359" name="terminateQueue" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_358200_4360" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_249674_4361" name="finalize" visibility="protected" raisedException="_9_5_f720368_1110473546612_726183_7711">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_843812_4362" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_201409_824" name="EventQueue" visibility="package" clientDependency="_16_6_2_1ea00f4_1276548794060_408771_966">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_871452_3290" name="head" visibility="private" type="_16_6_2_1ea00f4_1276548794045_606758_825"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_135417_3291" name="tail" visibility="private" type="_16_6_2_1ea00f4_1276548794045_606758_825"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_695365_3292" name="qThread" visibility="private" type="_9_5_f720368_1110473546612_126551_7703"/>
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_408771_966" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_16_6_2_1ea00f4_1276548794045_201409_824" contract="_9_5_f720368_1110473546612_953158_7669"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_606758_825" name="QueueElement" visibility="package">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_413947_3298" name="next" visibility="package" type="_16_6_2_1ea00f4_1276548794045_606758_825"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_595325_3299" name="prev" visibility="package" type="_16_6_2_1ea00f4_1276548794045_606758_825"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_644110_3300" name="event" visibility="package" type="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_910107_3301" name="vector" visibility="package" type="_9_5_f720368_1110473546706_971153_8947"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_659821_3293" name="QueueElement" visibility="package">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_413889_3294" name="eventqueue" visibility="public" type="_16_6_2_1ea00f4_1276548794045_201409_824" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_320209_3295" name="mailevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_717144_698" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_667268_3296" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
              </ownedOperation>
            </nestedClassifier>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_302427_3278" name="EventQueue" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_195811_3280" name="enqueue" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_7107_3281" name="mailevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_717144_698" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_697717_3282" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_773822_3283" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_371841_3284" name="dequeue" visibility="private" concurrency="guarded" raisedException="_9_5_f720368_1110473546612_11593_7635">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_969679_3285" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_606758_825" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_92172_3286" name="run" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_957352_3287" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_978070_3288" name="stop" visibility="package">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_339470_3289" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_592028_848" name="MessageContext">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_896158_3998" name="part" visibility="private" type="_16_6_2_1ea00f4_1276548794045_851251_862"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_717337_3982" name="MessageContext" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_992915_3983" name="part" visibility="public" type="_16_6_2_1ea00f4_1276548794045_851251_862" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_390016_3985" name="getPart" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_584547_3986" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_851251_862" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_139365_3988" name="getMessage" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_654732_3989" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_296205_3991" name="getMessage" visibility="private" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_471272_3992" name="part" visibility="public" type="_16_6_2_1ea00f4_1276548794045_851251_862" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_272744_3993" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_826304_3995" name="getSession" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_949146_3996" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794045_884500_846" name="MessageAware" isAbstract="true">
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_366077_3979" name="getMessageContext" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_36937_3980" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_592028_848" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_792436_879" name="StoreClosedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_562964_982" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_807712_4582" name="store" visibility="private" type="_16_6_2_1ea00f4_1276548794045_387430_877"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_666243_4572" name="StoreClosedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_778075_4573" name="store" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_724146_4575" name="StoreClosedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_140879_4576" name="store" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_883871_4577" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_847718_4579" name="getStore" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_301224_4580" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_319634_875" name="Session" isLeaf="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_385013_4501" name="props" visibility="private" type="_9_5_f720368_1110473546706_441504_8903"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_559082_4502" name="authenticator" visibility="private" type="_16_6_2_1ea00f4_1276548794045_772617_820"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_23956_4503" name="authTable" visibility="private" type="_9_5_f720368_1110473546706_512249_8873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_960026_4504" name="debug" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_236216_4505" name="providers" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_146527_4506" name="providersByProtocol" visibility="private" type="_9_5_f720368_1110473546706_512249_8873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_685595_4507" name="providersByClassName" visibility="private" type="_9_5_f720368_1110473546706_512249_8873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_664798_4508" name="addressMap" visibility="private" type="_9_5_f720368_1110473546706_441504_8903"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_91177_4509" name="getResources" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_253886_7537"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_674087_4510" name="getSystemResources" visibility="private" isStatic="true" type="_9_5_f720368_1110473546612_253886_7537"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_205215_4511" name="defaultSession" visibility="private" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_319634_875"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_183641_4370" name="Session" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_96808_4371" name="properties" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_233627_4372" name="authenticator" visibility="public" type="_16_6_2_1ea00f4_1276548794045_772617_820" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_4990_4374" name="getInstance" visibility="public" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_729866_4375" name="properties" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_646685_4376" name="authenticator" visibility="public" type="_16_6_2_1ea00f4_1276548794045_772617_820" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_729915_4377" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_747094_4379" name="getInstance" visibility="public" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_296858_4380" name="properties" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_172794_4381" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_810198_4383" name="getDefaultInstance" visibility="public" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_369190_4384" name="properties" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_479110_4385" name="authenticator" visibility="public" type="_16_6_2_1ea00f4_1276548794045_772617_820" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_488899_4386" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_263624_4388" name="getDefaultInstance" visibility="public" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_46493_4389" name="properties" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_635998_4390" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_239259_4392" name="setDebug" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_525895_4393" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_745941_4394" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_609152_4396" name="getDebug" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_180132_4397" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_69828_4399" name="getProviders" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_949104_4400" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_238745_4405" name="getProvider" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_36924_4406" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_801099_4407" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_410026_4409" name="setProvider" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_802627_4410" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_250964_4411" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_231833_4413" name="getStore" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_217803_4414" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_552412_4416" name="getStore" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_59839_4417" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_886146_4418" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_698289_4420" name="getStore" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_353481_4421" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_357892_4422" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_515889_4424" name="getStore" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_227442_4425" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_510474_4426" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_378631_4428" name="getStore" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_976822_4429" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_825820_4430" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_574271_4431" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_319940_4433" name="getFolder" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_129760_4434" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_418700_4435" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_713025_4437" name="getTransport" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_945912_4438" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794450_520143_4440" name="getTransport" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_982695_4441" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794450_734588_4442" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_721240_4444" name="getTransport" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_694948_4445" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_936667_4446" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_557753_4448" name="getTransport" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_133492_4449" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_923060_4450" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_168634_4452" name="getTransport" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_495616_4453" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_662287_4454" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_397652_4456" name="getTransport" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_930368_4457" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_161872_4458" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_489313_4459" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_341690_4461" name="getService" visibility="private" raisedException="_16_6_2_1ea00f4_1276548794045_959499_860">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_513656_4462" name="provider" visibility="public" type="_16_6_2_1ea00f4_1276548794045_811989_866" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_567462_4463" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_257277_4464" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_678803_4466" name="setPasswordAuthentication" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_939158_4467" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_180272_4468" name="passwordauthentication" visibility="public" type="_16_6_2_1ea00f4_1276548794045_554318_864" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_532068_4469" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_649472_4471" name="getPasswordAuthentication" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_112239_4472" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_169578_4473" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_554318_864" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_136088_4475" name="requestPasswordAuthentication" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_484495_4476" name="inetaddress" visibility="public" type="_9_5_f720368_1110473546643_279990_7769" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_221779_4477" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_763934_4478" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_982774_4479" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_171917_4480" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_363998_4481" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_554318_864" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_819578_4482" name="getProperties" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_865709_4483" name="" visibility="public" type="_9_5_f720368_1110473546706_441504_8903" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_981341_4485" name="getProperty" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_397374_4486" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_219304_4487" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_242407_4489" name="loadProviders" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_154624_4490" name="class" visibility="public" type="_9_5_f720368_1110473546612_428363_7573" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_430399_4491" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_983373_4492" name="loadProvidersFromStream" visibility="private" raisedException="_9_5_f720368_1110473546596_502964_7425">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_791711_4493" name="inputstream" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_856283_4494" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_433159_4495" name="loadAddressMap" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_522202_4496" name="class" visibility="public" type="_9_5_f720368_1110473546612_428363_7573" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_320380_4497" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_957526_4498" name="pr" visibility="private" isStatic="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_421771_4499" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_770612_4500" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_501429_837" name="FolderNotFoundException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_526395_970" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_158314_3712" name="folder" visibility="private" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_680842_3696" name="FolderNotFoundException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_740624_3698" name="FolderNotFoundException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_566169_3699" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_859943_3701" name="FolderNotFoundException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_933605_3702" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_844293_3703" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_440128_3705" name="FolderNotFoundException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_83426_3706" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_286407_3707" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_917504_3709" name="getFolder" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_545914_3710" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_734978_827" name="FetchProfile">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_578082_3328" name="specials" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_491142_3329" name="headers" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_517528_828" name="Item">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_598390_3333" name="ENVELOPE" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_517528_828" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_579278_3334" name="CONTENT_INFO" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_517528_828" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_342371_3335" name="FLAGS" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_517528_828" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794310_655152_3336" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_581075_3330" name="Item" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_850551_3331" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
            </nestedClassifier>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_899378_3302" name="FetchProfile" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_542901_3304" name="add" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_320721_3305" name="item" visibility="public" type="_16_6_2_1ea00f4_1276548794045_517528_828" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_466533_3306" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_970614_3307" name="add" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_830720_3308" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_855113_3309" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_32672_3310" name="contains" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_124933_3311" name="item" visibility="public" type="_16_6_2_1ea00f4_1276548794045_517528_828" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_54405_3312" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_948084_3313" name="contains" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_709810_3314" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_563461_3315" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_785613_3316" name="getItems" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_348119_3317" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_517528_828" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_812340_3322" name="getHeaderNames" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_949069_3323" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276548794029_76329_685" name="event">
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_873970_690" name="ConnectionListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_551872_890" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_587019_1013" name="opened" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_872610_1014" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_7558_1015" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_293532_1016" name="disconnected" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_553971_1017" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_965234_1018" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_45876_1019" name="closed" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_812310_1020" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_317206_1021" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_647751_712" name="StoreListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_662573_901" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_839659_1173" name="notification" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_328067_1174" name="storeevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_170876_710" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_939705_1175" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_35690_718" name="TransportListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_696261_904" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_408393_1257" name="messageDelivered" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_555091_1258" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_998486_1259" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_421211_1260" name="messageNotDelivered" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_935155_1261" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_731190_1262" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_565752_1263" name="messagePartiallyDelivered" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_205815_1264" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_325935_1265" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_4458_702" name="MessageChangedListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_227808_896" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_548383_1100" name="messageChanged" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_618483_1101" name="messagechangedevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_930773_700" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_822461_1102" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_669370_686" name="ConnectionAdapter" clientDependency="_16_6_2_1ea00f4_1276548794045_807578_888" isAbstract="true">
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_807578_888" name="" supplier="_16_6_2_1ea00f4_1276548794029_873970_690" client="_16_6_2_1ea00f4_1276548794029_669370_686" contract="_16_6_2_1ea00f4_1276548794029_873970_690"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_472214_985" name="opened" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_975755_986" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_347364_987" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_130105_988" name="disconnected" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_741208_989" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_911811_990" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_626502_991" name="closed" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_97440_992" name="connectionevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_543637_688" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_23880_993" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_402705_994" name="ConnectionAdapter" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_170876_710" name="StoreEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_532636_900" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_237135_1167" name="ALERT" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_605826_1168" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_788505_1169" name="NOTICE" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_986522_1170" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_393657_1171" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_406882_1172" name="message" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_999160_1153" name="StoreEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_438714_1154" name="store" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_263784_1155" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_63898_1156" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_147395_1158" name="getMessageType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_309354_1159" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_6986_1161" name="getMessage" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_850251_1162" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_750490_1164" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_216715_1165" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_731327_1166" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_975492_694" name="FolderEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_749670_892" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_406340_1056" name="CREATED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_680705_1057" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_271653_1058" name="DELETED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_977650_1059" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_524971_1060" name="RENAMED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_178877_1061" name="">
                  <body>3</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_925675_1062" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_62602_1063" name="folder" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_312950_1064" name="newFolder" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_681322_1033" name="FolderEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_504364_1034" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_978005_1035" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_709878_1036" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_368186_1038" name="FolderEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_689826_1039" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_677534_1040" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_635325_1041" name="folder1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_176081_1042" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_854140_1044" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_79289_1045" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_832915_1047" name="getFolder" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_653854_1048" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_630922_1050" name="getNewFolder" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_899893_1051" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_787640_1053" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_264828_1054" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_678148_1055" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_242515_704" name="MessageCountAdapter" clientDependency="_16_6_2_1ea00f4_1276548794045_274045_897" isAbstract="true">
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_274045_897" name="" supplier="_16_6_2_1ea00f4_1276548794029_23409_708" client="_16_6_2_1ea00f4_1276548794029_242515_704" contract="_16_6_2_1ea00f4_1276548794029_23409_708"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_797017_1103" name="messagesAdded" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_267546_1104" name="messagecountevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_550609_706" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_649600_1105" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_471912_1106" name="messagesRemoved" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_993584_1107" name="messagecountevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_550609_706" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_346959_1108" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_84656_1109" name="MessageCountAdapter" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_717144_698" name="MailEvent" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_624808_894" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_914960_1074" name="MailEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_851566_1075" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_451060_1077" name="dispatch" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_461490_1078" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_201321_1079" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_420359_714" name="TransportAdapter" clientDependency="_16_6_2_1ea00f4_1276548794045_904524_902" isAbstract="true">
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_904524_902" name="" supplier="_16_6_2_1ea00f4_1276548794029_35690_718" client="_16_6_2_1ea00f4_1276548794029_420359_714" contract="_16_6_2_1ea00f4_1276548794029_35690_718"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_676018_1176" name="messageDelivered" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_678076_1177" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_71138_1178" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_717740_1179" name="messageNotDelivered" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_877448_1180" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_918350_1181" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_751648_1182" name="messagePartiallyDelivered" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_674159_1183" name="transportevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_282602_716" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_672171_1184" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_545789_1185" name="TransportAdapter" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_550609_706" name="MessageCountEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_406242_898" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_535444_1135" name="ADDED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_903217_1136" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_477504_1137" name="REMOVED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_195481_1138" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_299573_1139" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_686817_1140" name="removed" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_112441_1141" name="msgs" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_584265_843">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794076_232041_1145" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794076_26383_1146" name=""/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_463644_1111" name="MessageCountEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_213400_1112" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_923778_1113" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_783030_1114" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_409955_1115" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_323214_1120" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_522699_1121" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_406844_1123" name="isRemoved" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_712304_1124" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_615345_1126" name="getMessages" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_462936_1127" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_468994_1132" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_981478_1133" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_681836_1134" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_23409_708" name="MessageCountListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_899414_899" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_978684_1147" name="messagesAdded" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_564915_1148" name="messagecountevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_550609_706" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_536017_1149" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_72305_1150" name="messagesRemoved" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_823993_1151" name="messagecountevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_550609_706" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_452232_1152" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_430433_692" name="FolderAdapter" clientDependency="_16_6_2_1ea00f4_1276548794045_408240_891" isAbstract="true">
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794045_408240_891" name="" supplier="_16_6_2_1ea00f4_1276548794029_759221_696" client="_16_6_2_1ea00f4_1276548794029_430433_692" contract="_16_6_2_1ea00f4_1276548794029_759221_696"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_83693_1022" name="folderCreated" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_395794_1023" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_901225_1024" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_136991_1025" name="folderRenamed" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_665260_1026" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_435169_1027" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_847325_1028" name="folderDeleted" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_62140_1029" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_371837_1030" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_901243_1031" name="FolderAdapter" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794029_759221_696" name="FolderListener" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_391503_893" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_155322_1065" name="folderCreated" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_877145_1066" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_80546_1067" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_545973_1068" name="folderDeleted" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_28394_1069" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_328579_1070" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_559706_1071" name="folderRenamed" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_479464_1072" name="folderevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_975492_694" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_392671_1073" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_543637_688" name="ConnectionEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_565746_889" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794060_264984_1006" name="OPENED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794060_6183_1007" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794060_380694_1008" name="DISCONNECTED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794060_5304_1009" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794060_90876_1010" name="CLOSED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794060_949041_1011" name="">
                  <body>3</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794060_694115_1012" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_928282_996" name="ConnectionEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_866845_997" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_73359_998" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_889957_1000" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_284789_1001" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794060_861855_1003" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_32724_1004" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794060_815414_1005" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_930773_700" name="MessageChangedEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_322055_895" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_317467_1094" name="FLAGS_CHANGED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_777515_1095" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_690095_1096" name="ENVELOPE_CHANGED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794076_100218_1097" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_92743_1098" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794076_612786_1099" name="msg" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_584265_843"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_75666_1080" name="MessageChangedEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_845185_1081" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_152824_1082" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_465773_1083" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_958792_1085" name="getMessageChangeType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_289382_1086" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_567109_1088" name="getMessage" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_277691_1089" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_564638_1091" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_432278_1092" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_929811_1093" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_282602_716" name="TransportEvent">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794045_971212_903" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_717144_698"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_27084_1231" name="MESSAGE_DELIVERED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794091_494064_1232" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_311559_1233" name="MESSAGE_NOT_DELIVERED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794091_94986_1234" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_679296_1235" name="MESSAGE_PARTIALLY_DELIVERED" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794091_292699_1236" name="">
                  <body>3</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_764925_1237" name="type" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_755_1238" name="validSent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794091_68933_1242" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794091_455979_1243" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_625302_1244" name="validUnsent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794091_324254_1248" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794091_830435_1249" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_721469_1250" name="invalid" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794091_591407_1254" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794091_405462_1255" name=""/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794091_104629_1256" name="msg" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_584265_843"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_725998_1187" name="TransportEvent" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_875488_1188" name="transport" visibility="public" type="_16_6_2_1ea00f4_1276548794045_853181_881" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_387818_1189" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_526068_1190" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_188841_1194" name="address1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_875088_1198" name="address2" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_916368_1202" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_243668_1204" name="getType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_417296_1205" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794076_786808_1207" name="getValidSentAddresses" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794076_101533_1208" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_174625_1213" name="getValidUnsentAddresses" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_290183_1214" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_747285_1219" name="getInvalidAddresses" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_608869_1220" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_528754_1225" name="getMessage" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_324930_1226" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794091_48614_1228" name="dispatch" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_519547_1229" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794091_433722_1230" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_584265_843" name="Message" clientDependency="_16_6_2_1ea00f4_1276548794060_555358_972" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_972465_3966" name="msgnum" visibility="protected">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_971157_3967" name="expunged" visibility="protected">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_159565_3968" name="folder" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_263740_3969" name="session" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_319634_875"/>
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_555358_972" name="" supplier="_16_6_2_1ea00f4_1276548794045_851251_862" client="_16_6_2_1ea00f4_1276548794045_584265_843" contract="_16_6_2_1ea00f4_1276548794045_851251_862"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_156276_844" name="RecipientType" clientDependency="_16_6_2_1ea00f4_1276548794060_708622_973">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_408193_3975" name="TO" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_156276_844" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_238197_3976" name="CC" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_156276_844" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_31293_3977" name="BCC" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_156276_844" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_102986_3978" name="type" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_708622_973" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_16_6_2_1ea00f4_1276548794045_156276_844" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_870963_3970" name="RecipientType" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_807499_3971" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_699851_3973" name="readResolve" visibility="protected" raisedException="_9_5_f720368_1110473546596_920902_7449">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_735400_3974" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
              </ownedOperation>
            </nestedClassifier>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_800815_3730" name="Message" visibility="protected"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_289033_3732" name="Message" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_45083_3733" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_267327_3734" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_938332_3736" name="Message" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_151604_3737" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_753413_3739" name="getFrom" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_688970_3740" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_693961_3745" name="setFrom" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_717557_3746" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_693804_3748" name="setFrom" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_542491_3749" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_4364_3750" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_632054_3752" name="addFrom" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_838950_3753" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_181324_3757" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_956177_3758" name="getRecipients" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_815848_3759" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_423454_3760" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_994500_3765" name="getAllRecipients" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_177699_3766" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_291362_3771" name="setRecipients" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_211869_3772" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_260783_3773" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_697448_3777" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_832265_3779" name="setRecipient" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_854879_3780" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_474320_3781" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_747340_3782" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_914343_3784" name="addRecipients" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_874557_3785" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_185207_3786" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_263693_3790" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_460822_3791" name="addRecipient" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_519867_3792" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_398399_3793" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_812374_3794" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_795508_3795" name="getReplyTo" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_420492_3796" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_805213_3801" name="setReplyTo" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_508109_3802" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_837595_3806" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_111740_3808" name="getSubject" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_987693_3809" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_610595_3811" name="setSubject" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_953647_3812" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_227139_3813" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_887052_3815" name="getSentDate" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_574570_3816" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_485930_3818" name="setSentDate" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_66203_3819" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_387503_3820" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_784396_3822" name="getReceivedDate" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_634327_3823" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_154192_3825" name="getFlags" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_813138_3826" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_823347_3828" name="isSet" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_226884_3829" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_613418_3830" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_518727_3832" name="setFlags" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_595343_3833" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_756558_3834" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_627209_3835" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_453667_3837" name="setFlag" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_679353_3838" name="flag" visibility="public" type="_16_6_2_1ea00f4_1276548794045_681769_831" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_461576_3839" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_393520_3840" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_682157_3842" name="getMessageNumber" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_926309_3843" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_867663_3845" name="setMessageNumber" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_816226_3846" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_403900_3847" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_895620_3849" name="getFolder" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_380086_3850" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_338449_3852" name="isExpunged" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_57438_3853" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_280102_3855" name="setExpunged" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_662371_3856" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_107085_3857" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_825171_3859" name="reply" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_771343_3860" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_282201_3861" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_143101_3862" name="saveChanges" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_767966_3863" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_298872_3864" name="match" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_961093_3865" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_129851_3866" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_929145_3867" name="getSize" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_655343_3868" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_318234_3870" name="getLineCount" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_520600_3871" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_552816_3873" name="getContentType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_423183_3874" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_706682_3876" name="isMimeType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_130890_3877" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_395470_3878" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_802746_3880" name="getDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_736960_3881" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_972568_3883" name="setDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_738101_3884" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_5333_3885" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_430391_3887" name="getDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_389212_3888" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_190795_3890" name="setDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_383819_3891" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_142908_3892" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_947559_3894" name="getFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_312186_3895" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_71433_3897" name="setFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_785057_3898" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_765180_3899" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_476075_3901" name="getInputStream" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_270243_3902" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_47283_3904" name="getDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_252154_3905" name="" visibility="public" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_553841_3907" name="getContent" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_918831_3908" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_868492_3910" name="setDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_170171_3911" name="datahandler" visibility="public" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_270795_3912" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_165016_3914" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_859639_3915" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_533030_3916" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_41092_3917" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_714730_3919" name="setText" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_371911_3920" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_593910_3921" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_22192_3923" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_721902_3924" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_729919_3925" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_53111_3927" name="writeTo" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_38428_3928" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_574774_3929" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_573435_3930" name="getHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_329236_3931" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_738397_3932" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_886003_3937" name="setHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_861723_3938" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_743798_3939" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_592640_3940" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_296586_3942" name="addHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_275229_3943" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_887685_3944" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_94800_3945" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_571050_3946" name="removeHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_737892_3947" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_829872_3948" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_448653_3949" name="getAllHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_552032_3950" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_632568_3952" name="getMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_123419_3953" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_425822_3957" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_400741_3959" name="getNonMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_498140_3960" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_134653_3964" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794045_851251_862" name="Part" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_217450_4182" name="ATTACHMENT" visibility="public" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794435_264277_4183" name="">
                <body>attachment</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_199782_4184" name="INLINE" visibility="public" isStatic="true" type="_9_5_f720368_1110473546612_692218_7691" isReadOnly="true">
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794435_607923_4185" name="">
                <body>inline</body>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_46330_4083" name="getSize" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_760218_4084" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_905976_4086" name="getLineCount" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_144959_4087" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_942370_4089" name="getContentType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_523033_4090" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_397681_4092" name="isMimeType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_788294_4093" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_931490_4094" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_613096_4096" name="getDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_61959_4097" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_927336_4099" name="setDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_132789_4100" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_203885_4101" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_980180_4103" name="getDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_77780_4104" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_873399_4106" name="setDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_642593_4107" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_621717_4108" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_147243_4110" name="getFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_463804_4111" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_963666_4113" name="setFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_716192_4114" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_598949_4115" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_566401_4117" name="getInputStream" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_773714_4118" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_123592_4120" name="getDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_469807_4121" name="" visibility="public" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_309477_4123" name="getContent" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_694282_4124" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_695176_4126" name="setDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_824723_4127" name="datahandler" visibility="public" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_722539_4128" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_401788_4130" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_476178_4131" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_928230_4132" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_471037_4133" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_256643_4135" name="setText" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_818750_4136" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_335562_4137" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_676699_4139" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_475075_4140" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_285433_4141" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_831936_4143" name="writeTo" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_412340_4144" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_733374_4145" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_680897_4146" name="getHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_848958_4147" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_862131_4148" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_654060_4153" name="setHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_556936_4154" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_171342_4155" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_560331_4156" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_797521_4158" name="addHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_225816_4159" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_386329_4160" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_586450_4161" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_418067_4162" name="removeHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_186131_4163" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_902973_4164" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_482919_4165" name="getAllHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_370039_4166" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_17337_4168" name="getMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_854720_4169" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_497445_4173" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_427685_4175" name="getNonMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_757997_4176" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_324545_4180" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794045_585665_858" name="MultipartDataSource" isAbstract="true">
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794372_320441_4071" name="getCount" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794372_989227_4072" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_478191_4074" name="getBodyPart" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_586300_4075" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_701228_4076" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_898007_822" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_547805_841" name="IllegalWriteException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_7758_971" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_124719_3725" name="IllegalWriteException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_585382_3727" name="IllegalWriteException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_625698_3728" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_577769_833" name="Folder" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_408901_3669" name="store" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_387430_877"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_906598_3670" name="mode" visibility="protected">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_131287_3671" name="HOLDS_MESSAGES" visibility="public" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794341_121280_3672" name="">
                <body>1</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_934447_3673" name="HOLDS_FOLDERS" visibility="public" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794341_863217_3674" name="">
                <body>2</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_214994_3675" name="READ_ONLY" visibility="public" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794341_503436_3676" name="">
                <body>1</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_104963_3677" name="READ_WRITE" visibility="public" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794341_654895_3678" name="">
                <body>2</body>
              </defaultValue>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_345848_3679" name="connectionListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_362262_3680" name="folderListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_537310_3681" name="messageCountListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_379200_3682" name="messageChangedListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_943794_3683" name="q" visibility="private" type="_16_6_2_1ea00f4_1276548794045_201409_824"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_375859_3684" name="qLock" visibility="private" type="_9_5_f720368_1110473546612_117118_7661"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_496565_3421" name="Folder" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_499333_3422" name="store" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_335003_3424" name="getName" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_528144_3425" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_237331_3427" name="getFullName" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_842612_3428" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_295824_3430" name="getURLName" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_491589_3431" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_313940_3433" name="getStore" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_870848_3434" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_387430_877" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_401880_3436" name="getParent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_701065_3437" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794310_747990_3439" name="exists" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794310_393679_3440" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_343393_3441" name="list" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_779827_3442" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_255603_3443" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_566918_3447" name="listSubscribed" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_209377_3448" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_814749_3449" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_181562_3453" name="list" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_698907_3454" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_379851_3458" name="listSubscribed" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_837198_3459" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_574721_3463" name="getSeparator" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_927375_3464" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_549822_3466" name="getType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_576855_3467" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_813239_3469" name="create" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_647970_3470" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_826416_3471" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_755753_3472" name="isSubscribed" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_568204_3473" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_987313_3475" name="setSubscribed" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_641463_3476" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_632687_3477" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_945006_3479" name="hasNewMessages" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_87031_3480" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_182879_3481" name="getFolder" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_473393_3482" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_362765_3483" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_318144_3485" name="delete" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_519018_3486" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_942470_3487" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_837980_3488" name="renameTo" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_575994_3489" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_135751_3490" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_48437_3491" name="open" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_730839_3492" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_83044_3493" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_543022_3494" name="close" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_103715_3495" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_366562_3496" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_232370_3497" name="isOpen" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_678915_3498" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_524286_3500" name="getMode" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_575528_3501" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_680154_3503" name="getPermanentFlags" visibility="public" isAbstract="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_866842_3504" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_83919_3506" name="getMessageCount" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_531686_3507" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_195977_3509" name="getNewMessageCount" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_936853_3510" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_484177_3512" name="getUnreadMessageCount" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_553209_3513" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_139231_3515" name="getMessage" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_440891_3516" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_561080_3517" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_71886_3519" name="getMessages" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_29593_3520" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_227181_3521" name="i1" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_854784_3522" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_592585_3527" name="getMessages" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_422235_3528" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_579530_3532" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_6504_3537" name="getMessages" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_741462_3538" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_733332_3543" name="appendMessages" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_999047_3544" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_762384_3548" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_139419_3549" name="fetch" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_684765_3550" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_650604_3554" name="fetchprofile" visibility="public" type="_16_6_2_1ea00f4_1276548794045_734978_827" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_472009_3555" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_615194_3556" name="setFlags" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_131740_3557" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_561032_3561" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_728099_3562" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_265823_3563" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_423627_3565" name="setFlags" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_311014_3566" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_632539_3567" name="i1" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_770368_3568" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_472805_3569" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_493046_3570" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_421821_3572" name="setFlags" visibility="public" concurrency="guarded" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_582649_3573" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_974916_3577" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_898854_3578" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_197046_3579" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_99663_3581" name="copyMessages" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_59070_3582" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_734621_3586" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_165426_3587" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_379209_3588" name="expunge" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_628827_3589" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_569580_3593" name="search" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_311253_3594" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_956736_3595" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_75997_3599" name="search" visibility="public" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_169694_3600" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_666769_3601" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_993752_3605" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_196381_3609" name="addConnectionListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_564710_3610" name="connectionlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_873970_690" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_685497_3611" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_778665_3612" name="removeConnectionListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_798920_3613" name="connectionlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_873970_690" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_425700_3614" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_879328_3615" name="notifyConnectionListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_475675_3616" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_964548_3617" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_479468_3618" name="addFolderListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_512460_3619" name="folderlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_759221_696" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_5710_3620" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_963241_3621" name="removeFolderListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_190333_3622" name="folderlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_759221_696" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_323492_3623" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_677812_3624" name="notifyFolderListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_424845_3625" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_672604_3626" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_231733_3627" name="notifyFolderRenamedListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_81816_3628" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_96845_3629" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794325_839819_3630" name="addMessageCountListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_251965_3631" name="messagecountlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_23409_708" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794325_627515_3632" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_905455_3633" name="removeMessageCountListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_888896_3634" name="messagecountlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_23409_708" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_940323_3635" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_501635_3636" name="notifyMessageAddedListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_478983_3637" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_934051_3641" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_111130_3642" name="notifyMessageRemovedListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_359922_3643" name="b" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_639900_3644" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_211780_3648" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_945555_3649" name="addMessageChangedListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_732487_3650" name="messagechangedlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_4458_702" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_268920_3651" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_72515_3652" name="removeMessageChangedListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_110980_3653" name="messagechangedlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_4458_702" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_595799_3654" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_735909_3655" name="notifyMessageChangedListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_620249_3656" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_907926_3657" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_278322_3658" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_25307_3659" name="queueEvent" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_96441_3660" name="mailevent" visibility="public" type="_16_6_2_1ea00f4_1276548794029_717144_698" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_831573_3661" name="vector" visibility="public" type="_9_5_f720368_1110473546706_971153_8947" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_346948_3662" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_257725_3663" name="terminateQueue" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_739841_3664" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_651127_3665" name="finalize" visibility="protected" raisedException="_9_5_f720368_1110473546612_726183_7711">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_118714_3666" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_528104_3667" name="toString" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_952275_3668" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_811989_866" name="Provider">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_55837_4222" name="type" visibility="private" type="_16_6_2_1ea00f4_1276548794045_370964_867"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_175728_4223" name="protocol" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_544550_4224" name="className" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_295583_4225" name="vendor" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794435_101861_4226" name="version" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_370964_867" name="Type">
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_471472_4230" name="STORE" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_370964_867" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_259197_4231" name="TRANSPORT" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_370964_867" isReadOnly="true"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794450_441684_4232" name="type" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_418781_4227" name="Type" visibility="private">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_648462_4228" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
            </nestedClassifier>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_360756_4198" name="Provider" visibility="package">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_482095_4199" name="type" visibility="public" type="_16_6_2_1ea00f4_1276548794045_370964_867" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_193375_4200" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_853123_4201" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_141909_4202" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_203186_4203" name="string3" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_5497_4205" name="getType" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_411236_4206" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_370964_867" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_395593_4208" name="getProtocol" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_283463_4209" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_599163_4211" name="getClassName" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_220213_4212" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_29130_4214" name="getVendor" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_432010_4215" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_330853_4217" name="getVersion" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_748427_4218" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794435_428511_4220" name="toString" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794435_56929_4221" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_898007_822" name="BodyPart" clientDependency="_16_6_2_1ea00f4_1276548794060_714746_965" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_576499_3277" name="parent" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_306757_856"/>
            <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_714746_965" name="" supplier="_16_6_2_1ea00f4_1276548794045_851251_862" client="_16_6_2_1ea00f4_1276548794045_898007_822" contract="_16_6_2_1ea00f4_1276548794045_851251_862"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_932654_3169" name="getParent" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_607207_3170" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_20725_3172" name="setParent" visibility="package">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_135278_3173" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_793544_3174" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_79344_3176" name="BodyPart" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_265171_3178" name="getSize" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_965301_3179" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_688405_3181" name="getLineCount" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_514453_3182" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_764967_3184" name="getContentType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_385382_3185" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_363318_3187" name="isMimeType" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_189041_3188" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_926694_3189" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_888495_3191" name="getDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_357998_3192" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_473659_3194" name="setDisposition" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_881103_3195" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_362865_3196" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_244790_3198" name="getDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_931806_3199" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_187734_3201" name="setDescription" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_351310_3202" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_889909_3203" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_260834_3205" name="getFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_318191_3206" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_359576_3208" name="setFileName" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_642196_3209" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_936039_3210" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_786599_3212" name="getInputStream" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_716916_3213" name="" visibility="public" type="_9_5_f720368_1110473546596_677017_7415" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_940681_3215" name="getDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_693583_3216" name="" visibility="public" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_206919_3218" name="getContent" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_276564_3219" name="" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_269772_3221" name="setDataHandler" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_679302_3222" name="datahandler" visibility="public" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_894878_3223" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_7614_3225" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_567988_3226" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_757197_3227" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_458608_3228" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_628369_3230" name="setText" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_888713_3231" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_988311_3232" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_710833_3234" name="setContent" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_72313_3235" name="multipart" visibility="public" type="_16_6_2_1ea00f4_1276548794045_306757_856" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_349720_3236" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_635457_3238" name="writeTo" visibility="public" isAbstract="true" raisedException="_9_5_f720368_1110473546596_502964_7425 _16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_78797_3239" name="outputstream" visibility="public" type="_9_5_f720368_1110473546612_985863_7455" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_110658_3240" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_764957_3241" name="getHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_573416_3242" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_312442_3243" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_957024_3248" name="setHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_71234_3249" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_836573_3250" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_662290_3251" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_786816_3253" name="addHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_121983_3254" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_676495_3255" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_265797_3256" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_80816_3257" name="removeHeader" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_649566_3258" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_8472_3259" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_521618_3260" name="getAllHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_989679_3261" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_115428_3263" name="getMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_400470_3264" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_774430_3268" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_306950_3270" name="getNonMatchingHeaders" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_414584_3271" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_629993_3275" name="" visibility="public" type="_9_5_f720368_1110473546706_70178_8859" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_1ea00f4_1276548794045_173068_883" name="UIDFolder" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_286788_4663" name="LASTUID" visibility="public" isStatic="true" isReadOnly="true">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794481_179845_4664" name="">
                <body>-1</body>
              </defaultValue>
            </ownedAttribute>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_760264_4634" name="getUIDValidity" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_178223_4635" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_860772_4637" name="getMessageByUID" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_828592_4638" name="l" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_11151_4639" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_114148_4641" name="getMessagesByUID" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_148756_4642" name="l" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_970667_4643" name="l1" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_946759_4644" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_378829_4649" name="getMessagesByUID" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_120723_4650" name="l" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_297714_4654" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_110553_4659" name="getUID" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_458286_4660" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_115271_4661" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
              </ownedParameter>
            </ownedOperation>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_578754_884" name="FetchProfileItem">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_26550_984" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_517528_828"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794481_788047_4668" name="UID" visibility="public" isStatic="true" type="_16_6_2_1ea00f4_1276548794045_578754_884" isReadOnly="true"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794481_833053_4665" name="FetchProfileItem" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794481_288619_4666" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_842887_835" name="FolderClosedException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_133485_969" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794341_476327_3695" name="folder" visibility="private" type="_16_6_2_1ea00f4_1276548794045_577769_833"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_132333_3685" name="FolderClosedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_850994_3686" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_181990_3688" name="FolderClosedException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_908747_3689" name="folder" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_625189_3690" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794341_812107_3692" name="getFolder" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794341_861766_3693" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_577769_833" direction="return"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_1ea00f4_1276548794029_391732_767" name="search">
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_694179_776" name="ComparisonTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_729399_943" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_242112_2848" name="LE" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_995315_2849" name="">
                  <body>1</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_980876_2850" name="LT" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_749656_2851" name="">
                  <body>2</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_702935_2852" name="EQ" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_851523_2853" name="">
                  <body>3</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_841300_2854" name="NE" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_876878_2855" name="">
                  <body>4</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_624448_2856" name="GT" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_639353_2857" name="">
                  <body>5</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_271930_2858" name="GE" visibility="public" isStatic="true" isReadOnly="true">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_16_6_2_1ea00f4_1276548794263_682601_2859" name="">
                  <body>6</body>
                </defaultValue>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_42330_2860" name="comparison" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_776706_2841" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_444554_2842" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_803027_2843" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_717830_2844" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_307571_2845" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_424746_2846" name="ComparisonTerm" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_941713_770" name="AddressTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_920558_940" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_520708_2801" name="address" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_354516_816"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_37058_2787" name="AddressTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_837221_2788" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_92712_2790" name="getAddress" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_566115_2791" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_563894_2793" name="match" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_432652_2794" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_115651_2795" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_133732_2796" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_914112_2797" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_709030_2798" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_295607_2799" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_951697_2800" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_9511_790" name="MessageIDTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_966375_950" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_738073_812"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_183143_2953" name="MessageIDTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_199171_2954" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_572753_2956" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_290029_2957" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_147145_2958" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_668464_2959" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_306124_2960" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_737209_2961" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_990437_814" name="SubjectTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_577379_962" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_738073_812"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_52112_3111" name="SubjectTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_750536_3112" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_711633_3114" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_781764_3115" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_948782_3116" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_750873_3117" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_582609_3118" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_689685_3119" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_738073_812" name="StringTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_924182_961" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_222308_3109" name="pattern" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_82812_3110" name="ignoreCase" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_762088_3088" name="StringTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_741686_3089" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_569068_3091" name="StringTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_925912_3092" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_547384_3093" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_794546_3095" name="getPattern" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_421616_3096" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_447534_3098" name="getIgnoreCase" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_3977_3099" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_483246_3101" name="match" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_511313_3102" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_89454_3103" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_287748_3104" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_37429_3105" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_355368_3106" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_648298_3107" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_995544_3108" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_566960_786" name="HeaderTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_596277_948" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_738073_812"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_845808_2933" name="headerName" visibility="protected" type="_9_5_f720368_1110473546612_692218_7691"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_397245_2918" name="HeaderTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_869393_2919" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_788334_2920" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_155931_2922" name="getHeaderName" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_559755_2923" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_811267_2925" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_161974_2926" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_705638_2927" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_929220_2928" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_766063_2929" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_438572_2930" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_619593_2931" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_283378_2932" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_422719_804" name="SearchException">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_802471_957" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_447204_852"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_931807_3058" name="SearchException" visibility="public"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_785322_3060" name="SearchException" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_666536_3061" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_675206_788" name="IntegerComparisonTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_674733_949" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_694179_776"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_777583_2952" name="number" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_386978_2934" name="IntegerComparisonTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_644525_2935" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_474404_2936" name="i1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_577958_2938" name="getNumber" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_591166_2939" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_965986_2941" name="getComparison" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_887536_2942" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_979828_2944" name="match" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_930396_2945" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_272937_2946" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_601720_2947" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_14919_2948" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_19705_2949" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_446589_2950" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_957597_2951" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_684708_802" name="RecipientTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_505714_956" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_941713_770"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_676640_3057" name="type" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_156276_844"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_599765_3042" name="RecipientTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_78986_3043" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_388532_3044" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_262788_3046" name="getRecipientType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_564623_3047" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_510662_3049" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_353690_3050" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_981655_3051" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_697021_3052" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_645177_3053" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_638695_3054" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_158438_3055" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_46573_3056" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_379969_774" name="BodyTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_431993_942" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_738073_812"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_581030_2832" name="BodyTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_24360_2833" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_490486_2835" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_525022_2836" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_625168_2837" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_927412_2838" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_432577_2839" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_500177_2840" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_778414_782" name="FromStringTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_685649_946" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_996347_768"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_242006_2900" name="FromStringTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_760950_2901" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_617048_2903" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_796417_2904" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_366789_2905" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_477092_2906" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_803790_2907" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_695399_2908" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_80531_796" name="OrTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_223655_953" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_60544_3010" name="terms" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_545283_806">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794279_324754_3014" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794279_184630_3015" name=""/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_872038_2986" name="OrTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_870796_2987" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_162353_2988" name="searchterm1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_546600_2990" name="OrTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_644824_2991" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_711694_2996" name="getTerms" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_726667_2997" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_952096_3002" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_265592_3003" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_199158_3004" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_263554_3005" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_913851_3006" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_313158_3007" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_331389_3008" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_477759_3009" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_375311_800" name="RecipientStringTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_138355_955" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_996347_768"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_991311_3041" name="type" visibility="private" type="_16_6_2_1ea00f4_1276548794045_156276_844"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_698342_3026" name="RecipientStringTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_401488_3027" name="recipienttype" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_572479_3028" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_95479_3030" name="getRecipientType" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_46775_3031" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_156276_844" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_367119_3033" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_624839_3034" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_929920_3035" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_511050_3036" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_921349_3037" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_519952_3038" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_789106_3039" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_427114_3040" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_996347_768" name="AddressStringTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_315614_939" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_738073_812"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_52491_2778" name="AddressStringTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_602064_2779" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_123399_2781" name="match" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_388569_2782" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_171760_2783" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_996294_2784" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_205171_2785" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_403976_2786" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_60535_808" name="SentDateTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_84727_959" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_101270_778"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_469046_3068" name="SentDateTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_138910_3069" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_76830_3070" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_827419_3072" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_727140_3073" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_227983_3074" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_203173_3075" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_304336_3076" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_152994_3077" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_976650_772" name="AndTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_436231_941" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_984811_2826" name="terms" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_545283_806">
                <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276548794263_252620_2830" name="" value="*"/>
                <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276548794263_587881_2831" name=""/>
              </ownedAttribute>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_18039_2802" name="AndTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_262488_2803" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_932170_2804" name="searchterm1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_266999_2806" name="AndTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_345359_2807" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_929488_2812" name="getTerms" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_98919_2813" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_72430_2818" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_460405_2819" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_591952_2820" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_934903_2821" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_856673_2822" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_845929_2823" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_271500_2824" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_465280_2825" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_291882_784" name="FromTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_692216_947" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_941713_770"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_569471_2909" name="FromTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_57863_2910" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_767475_2912" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_590616_2913" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_928318_2914" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_483168_2915" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_578646_2916" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_466384_2917" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_430069_810" name="SizeTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_423474_960" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_675206_788"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_946472_3078" name="SizeTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_932423_3079" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_886379_3080" name="i1" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_189673_3082" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_223544_3083" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_779136_3084" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_896650_3085" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_226310_3086" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_989598_3087" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_101270_778" name="DateTerm" isAbstract="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_164681_944" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_694179_776"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794263_503369_2879" name="date" visibility="protected" type="_9_5_f720368_1110473546706_999299_8853"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_155536_2861" name="DateTerm" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_300977_2862" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_657500_2863" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_887961_2865" name="getDate" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_866491_2866" name="" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_946808_2868" name="getComparison" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_20306_2869" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_564535_2871" name="match" visibility="protected">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_585338_2872" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_396780_2873" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_777810_2874" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_658413_2875" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_130688_2876" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_982905_2877" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_545596_2878" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_164961_798" name="ReceivedDateTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_623902_954" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794029_101270_778"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_135512_3016" name="ReceivedDateTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_245699_3017" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_983521_3018" name="date" visibility="public" type="_9_5_f720368_1110473546706_999299_8853" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_987072_3020" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_456388_3021" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_701664_3022" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_862294_3023" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_222584_3024" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_92520_3025" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_50261_792" name="MessageNumberTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_629387_951" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_675206_788"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_235851_2962" name="MessageNumberTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_208173_2963" name="i" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_74188_2965" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_416160_2966" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_951255_2967" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_895134_2968" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_32478_2969" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_530855_2970" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_545283_806" name="SearchTerm" clientDependency="_16_6_2_1ea00f4_1276548794060_284102_958" isAbstract="true">
              <interfaceRealization xmi:id="_16_6_2_1ea00f4_1276548794060_284102_958" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_16_6_2_1ea00f4_1276548794045_545283_806" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_835155_3063" name="match" visibility="public" isAbstract="true">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_87266_3064" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_595223_3065" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_750060_3066" name="SearchTerm" visibility="public"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_214533_794" name="NotTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_31004_952" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_545529_2985" name="term" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_55170_2971" name="NotTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_248172_2972" name="searchterm" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="inout"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_596317_2974" name="getTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_707413_2975" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_545283_806" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_83513_2977" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_345748_2978" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_14834_2979" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_558737_2980" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_619372_2981" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_112104_2982" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_192791_2983" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_202470_2984" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794029_285206_780" name="FlagTerm" isLeaf="true">
              <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_34245_945" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_545283_806"/>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_186856_2898" name="set" visibility="protected">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedAttribute>
              <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794279_821154_2899" name="flags" visibility="protected" type="_16_6_2_1ea00f4_1276548794045_964094_830"/>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_600963_2880" name="FlagTerm" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_562346_2881" name="flags" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_103272_2882" name="b" visibility="public" direction="inout">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_236423_2884" name="getFlags" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_895173_2885" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_964094_830" direction="return"/>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_644091_2887" name="getTestSet" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_793828_2888" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_818436_2890" name="match" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_815335_2891" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_82993_2892" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794263_906473_2893" name="equals" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794263_27565_2894" name="object" visibility="public" type="_9_5_f720368_1110473546612_117118_7661" direction="inout"/>
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_379971_2895" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                </ownedParameter>
              </ownedOperation>
              <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794279_279275_2896" name="hashCode" visibility="public">
                <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794279_327104_2897" name="" visibility="public" direction="return">
                  <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                </ownedParameter>
              </ownedOperation>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_772617_820" name="Authenticator" isAbstract="true">
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_691906_3164" name="requestingSite" visibility="private" type="_9_5_f720368_1110473546643_279990_7769"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_629207_3165" name="requestingPort" visibility="private">
              <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
            </ownedAttribute>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_486889_3166" name="requestingProtocol" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_806103_3167" name="requestingPrompt" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794294_943140_3168" name="requestingUserName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_708871_3135" name="reset" visibility="private">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_460552_3136" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_797985_3137" name="requestPasswordAuthentication" visibility="package" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_851174_3138" name="inetaddress" visibility="public" type="_9_5_f720368_1110473546643_279990_7769" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_564642_3139" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_303096_3140" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_752642_3141" name="string1" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_160280_3142" name="string2" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_298499_3143" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_554318_864" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_686216_3144" name="getRequestingSite" visibility="protected" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_347806_3145" name="" visibility="public" type="_9_5_f720368_1110473546643_279990_7769" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_200123_3147" name="getRequestingPort" visibility="protected" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_791352_3148" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_732406_3150" name="getRequestingProtocol" visibility="protected" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_978964_3151" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_325410_3153" name="getRequestingPrompt" visibility="protected" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_785524_3154" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_511651_3156" name="getDefaultUserName" visibility="protected" isLeaf="true">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_122971_3157" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_646113_3159" name="getPasswordAuthentication" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794294_63515_3160" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794045_554318_864" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794294_388174_3162" name="Authenticator" visibility="public"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_853181_881" name="Transport" isAbstract="true">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_271451_983" isSubstitutable="true" general="_16_6_2_1ea00f4_1276548794045_335301_873"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794466_514437_4633" name="transportListeners" visibility="private" type="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_680650_4583" name="Transport" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_257584_4584" name="session" visibility="public" type="_16_6_2_1ea00f4_1276548794045_319634_875" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_960952_4585" name="urlname" visibility="public" type="_16_6_2_1ea00f4_1276548794045_191470_886" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_721957_4587" name="send" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_430632_4588" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_174487_4589" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_840927_4590" name="send" visibility="public" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_869876_4591" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_540870_4592" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_523232_4596" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_169774_4597" name="send0" visibility="private" isStatic="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_912484_4598" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_136633_4599" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_619158_4603" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_361459_4604" name="sendMessage" visibility="public" isAbstract="true" raisedException="_16_6_2_1ea00f4_1276548794045_447204_852">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_187776_4605" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_312316_4606" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_83462_4610" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_904492_4611" name="addTransportListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_108107_4612" name="transportlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_35690_718" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_52545_4613" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_762577_4614" name="removeTransportListener" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_902700_4615" name="transportlistener" visibility="public" type="_16_6_2_1ea00f4_1276548794029_35690_718" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_443675_4616" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794466_712395_4617" name="notifyTransportListeners" visibility="protected">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_734570_4618" name="i" visibility="public" direction="inout">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
              </ownedParameter>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_75610_4619" name="address" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_480718_4623" name="address1" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_270111_4627" name="address2" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_833741_4631" name="message" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794466_638424_4632" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
              </ownedParameter>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_1ea00f4_1276548794045_447204_852" name="MessagingException">
            <generalization xmi:id="_16_6_2_1ea00f4_1276548794060_154090_975" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            <ownedAttribute xmi:id="_16_6_2_1ea00f4_1276548794357_533056_4023" name="next" visibility="private" type="_9_5_f720368_1110473546612_465691_7599"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_870944_4004" name="MessagingException" visibility="public"/>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_79670_4006" name="MessagingException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_630619_4007" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_241504_4009" name="MessagingException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_492448_4010" name="string" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_111833_4011" name="exception" visibility="public" type="_9_5_f720368_1110473546612_465691_7599" direction="inout"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_886845_4013" name="getNextException" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_838925_4014" name="" visibility="public" type="_9_5_f720368_1110473546612_465691_7599" direction="return"/>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_668130_4016" name="setNextException" visibility="public" concurrency="guarded">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_314563_4017" name="exception" visibility="public" type="_9_5_f720368_1110473546612_465691_7599" direction="inout"/>
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_317693_4018" name="" visibility="public" direction="return">
                <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
              </ownedParameter>
            </ownedOperation>
            <ownedOperation xmi:id="_16_6_2_1ea00f4_1276548794357_409615_4020" name="getMessage" visibility="public">
              <ownedParameter xmi:id="_16_6_2_1ea00f4_1276548794357_488364_4021" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
            </ownedOperation>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1648122965114_605324_4796" name="Java Extensions">
      <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1662479803456_374367_4800" name="java">
        <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1648122973099_950181_4797" name="time">
          <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648122986135_422282_4798" name="OffsetDateTime"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648123191766_939427_4796" name="LocalTime"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648123202415_987130_4797" name="LocalDate"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1648123215215_31227_4798" name="LocalDateTime"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_19_0_4_29b40597_1662365080075_608191_4796" name="OffsetTime"/>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110801802169_446586_0" name="JDK 5.0 Classes">
      <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547268_765352_16320" name="java">
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547534_885090_18037" name="math">
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308259_340946_5221" name="RoundingMode">
            <ownedComment xmi:id="_10_5_622020d_1132928308259_735370_5224" body="Specifies a &lt;i>rounding behavior&lt;/i> for numerical operations&#xA;capable of discarding precision. Each rounding mode indicates how&#xA;the least significant returned digit of a rounded result is to be&#xA;calculated.  If fewer digits are returned than the digits needed to&#xA;represent the exact numerical result, the discarded digits will be&#xA;referred to as the &lt;i>discarded fraction&lt;/i> regardless the digits'&#xA;contribution to the value of the number.  In other words,&#xA;considered as a numerical value, the discarded fraction could have&#xA;an absolute value greater than one.&#xA;&#xA;&lt;p>Each rounding mode description includes a table listing how&#xA;different two-digit decimal values would round to a one digit&#xA;decimal value under the rounding mode in question.  The result&#xA;column in the tables could be gotten by creating a&#xA;&lt;tt>BigDecimal&lt;/tt> number with the specified value, forming a&#xA;{@link MathContext} object with the proper settings&#xA;(&lt;tt>precision&lt;/tt> set to &lt;tt>1&lt;/tt>, and the&#xA;&lt;tt>roundingMode&lt;/tt> set to the rounding mode in question), and&#xA;calling {@link BigDecimal#round round} on this number with the&#xA;proper &lt;tt>MathContext&lt;/tt>.  A summary table showing the results&#xA;of these rounding operations for all rounding modes appears below.&#xA;&#xA;&lt;p>&#xA;&lt;table border>&#xA;&lt;caption top>&lt;h3>Summary of Rounding Operations Under Different Rounding Modes&lt;/h3>&lt;/caption>&#xA;&lt;tr>&lt;th>&lt;/th>&lt;th colspan=8>Result of rounding input to one digit with the given&#xA;rounding mode&lt;/th>&#xA;&lt;tr valign=top>&#xA;&lt;th>Input Number&lt;/th>&#x9; &lt;th>&lt;tt>UP&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>DOWN&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>CEILING&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>FLOOR&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>HALF_UP&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>HALF_DOWN&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>HALF_EVEN&lt;/tt>&lt;/th>&#xA;&lt;th>&lt;tt>UNNECESSARY&lt;/tt>&lt;/th>&#xA;&#xA;&lt;tr align=right>&lt;td>5.5&lt;/td>&#x9; &lt;td>6&lt;/td>  &lt;td>5&lt;/td>    &lt;td>6&lt;/td>    &lt;td>5&lt;/td>  &lt;td>6&lt;/td>      &lt;td>5&lt;/td>       &lt;td>6&lt;/td>       &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>2.5&lt;/td>&#x9; &lt;td>3&lt;/td>  &lt;td>2&lt;/td>    &lt;td>3&lt;/td>    &lt;td>2&lt;/td>  &lt;td>3&lt;/td>      &lt;td>2&lt;/td>       &lt;td>2&lt;/td>       &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>1.6&lt;/td>&#x9; &lt;td>2&lt;/td>  &lt;td>1&lt;/td>    &lt;td>2&lt;/td> &#x9; &lt;td>1&lt;/td>  &lt;td>2&lt;/td>      &lt;td>2&lt;/td>       &lt;td>2&lt;/td>       &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>1.1&lt;/td>&#x9; &lt;td>2&lt;/td>  &lt;td>1&lt;/td>    &lt;td>2&lt;/td> &#x9; &lt;td>1&lt;/td>  &lt;td>1&lt;/td>      &lt;td>1&lt;/td>       &lt;td>1&lt;/td>       &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>1.0&lt;/td>&#x9; &lt;td>1&lt;/td>  &lt;td>1&lt;/td>    &lt;td>1&lt;/td> &#x9; &lt;td>1&lt;/td>  &lt;td>1&lt;/td>      &lt;td>1&lt;/td>       &lt;td>1&lt;/td>       &lt;td>1&lt;/td>&#xA;&lt;tr align=right>&lt;td>-1.0&lt;/td> &lt;td>-1&lt;/td> &lt;td>-1&lt;/td>   &lt;td>-1&lt;/td>&#x9; &lt;td>-1&lt;/td> &lt;td>-1&lt;/td>     &lt;td>-1&lt;/td>      &lt;td>-1&lt;/td>      &lt;td>-1&lt;/td>&#xA;&lt;tr align=right>&lt;td>-1.1&lt;/td> &lt;td>-2&lt;/td> &lt;td>-1&lt;/td>   &lt;td>-1&lt;/td>&#x9; &lt;td>-2&lt;/td> &lt;td>-1&lt;/td>     &lt;td>-1&lt;/td>      &lt;td>-1&lt;/td>      &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>-1.6&lt;/td> &lt;td>-2&lt;/td> &lt;td>-1&lt;/td>   &lt;td>-1&lt;/td>&#x9; &lt;td>-2&lt;/td> &lt;td>-2&lt;/td>     &lt;td>-2&lt;/td>      &lt;td>-2&lt;/td>      &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>-2.5&lt;/td> &lt;td>-3&lt;/td> &lt;td>-2&lt;/td>   &lt;td>-2&lt;/td>&#x9; &lt;td>-3&lt;/td> &lt;td>-3&lt;/td>     &lt;td>-2&lt;/td>      &lt;td>-2&lt;/td>      &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;tr align=right>&lt;td>-5.5&lt;/td> &lt;td>-6&lt;/td> &lt;td>-5&lt;/td>   &lt;td>-5&lt;/td>&#x9; &lt;td>-6&lt;/td> &lt;td>-6&lt;/td>     &lt;td>-5&lt;/td>      &lt;td>-6&lt;/td>      &lt;td>throw &lt;tt>ArithmeticException&lt;/tt>&lt;/td>&#xA;&lt;/table>&#xA;&#xA;&#xA;&lt;p>This &lt;tt>enum&lt;/tt> is intended to replace the integer-based&#xA;enumeration of rounding mode constants in {@link BigDecimal}&#xA;({@link BigDecimal#ROUND_UP}, {@link BigDecimal#ROUND_DOWN},&#xA;etc. ).&#xA;&#xA;@see     BigDecimal&#xA;@see     MathContext&#xA;@version 1.x 01/xx/xx&#xA;@author  Josh Bloch&#xA;@author  Mike Cowlishaw&#xA;@author  Joseph D. Darcy&#xA;" annotatedElement="_10_5_622020d_1132928308259_340946_5221"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_731312_7733" name="BitSieve" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308249_445330_5215" body="A simple bit sieve used for finding prime number candidates. Allows setting&#xA;and clearing of bits in a storage array. The size of the sieve is assumed to&#xA;be constant to reduce overhead. All the bits of a new bitSieve are zero, and&#xA;bits are removed from it by setting them.&#xA;&#xA;To reduce storage space and increase efficiency, no even numbers are&#xA;represented in the sieve (each bit in the sieve represents an odd number).&#xA;The relationship between the index of a bit and the number it represents is&#xA;given by&#xA;N = offset + (2*index + 1);&#xA;Where N is the integer represented by a bit in the sieve, offset is some&#xA;even integer offset indicating where the sieve begins, and index is the&#xA;index of a bit in the sieve array.&#xA;&#xA;@see     BigInteger&#xA;@version 1.10, 12/19/03&#xA;@author  Michael McCloskey&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546628_731312_7733"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_256023_7729" name="BigDecimal" clientDependency="_10_5_622020d_1132928321709_817148_13777">
            <ownedComment xmi:id="_10_5_622020d_1132928308249_989328_5211" body="Immutable, arbitrary-precision signed decimal numbers.  A&#xA;&lt;tt>BigDecimal&lt;/tt> consists of an arbitrary precision integer&#xA;&lt;i>unscaled value&lt;/i> and a 32-bit integer &lt;i>scale&lt;/i>.  If zero&#xA;or positive, the scale is the number of digits to the right of the&#xA;decimal point.  If negative, the unscaled value of the number is&#xA;multiplied by ten to the power of the negation of the scale.  The&#xA;value of the number represented by the &lt;tt>BigDecimal&lt;/tt> is&#xA;therefore &lt;tt>(unscaledValue &amp;times; 10&lt;sup>-scale&lt;/sup>)&lt;/tt>.&#xA;&#xA;&lt;p>The &lt;tt>BigDecimal&lt;/tt> class provides operations for&#xA;arithmetic, scale manipulation, rounding, comparison, hashing, and&#xA;format conversion.  The {@link #toString} method provides a&#xA;canonical representation of a &lt;tt>BigDecimal&lt;/tt>.&#xA;&#xA;&lt;p>The &lt;tt>BigDecimal&lt;/tt> class gives its user complete control&#xA;over rounding behavior.  If no rounding mode is specified and the&#xA;exact result cannot be represented, an exception is thrown;&#xA;otherwise, calculations can be carried out to a chosen precision&#xA;and rounding mode by supplying an appropriate {@link MathContext}&#xA;object to the operation.  In either case, eight &lt;em>rounding&#xA;modes&lt;/em> are provided for the control of rounding.  Using the&#xA;integer fields in this class (such as {@link #ROUND_HALF_UP}) to&#xA;represent rounding mode is largely obsolete; the enumeration values&#xA;of the &lt;tt>RoundingMode&lt;/tt> &lt;tt>enum&lt;/tt>, (such as {@link&#xA;RoundingMode#HALF_UP}) should be used instead.&#xA;&#xA;&lt;p>When a &lt;tt>MathContext&lt;/tt> object is supplied with a precision&#xA;setting of 0 (for example, {@link MathContext#UNLIMITED}),&#xA;arithmetic operations are exact, as are the arithmetic methods&#xA;which take no &lt;tt>MathContext&lt;/tt> object.  (This is the only&#xA;behavior that was supported in releases prior to 5.)  As a&#xA;corollary of computing the exact result, the rounding mode setting&#xA;of a &lt;tt>MathContext&lt;/tt> object with a precision setting of 0 is&#xA;not used and thus irrelevant.  In the case of divide, the exact&#xA;quotient could have an infinitely long decimal expansion; for&#xA;example, 1 divided by 3.  If the quotient has a nonterminating&#xA;decimal expansion and the operation is specified to return an exact&#xA;result, an &lt;tt>ArithmeticException&lt;/tt> is thrown.  Otherwise, the&#xA;exact result of the division is returned, as done for other&#xA;operations.&#xA;&#xA;&lt;p>When the precision setting is not 0, the rules of&#xA;&lt;tt>BigDecimal&lt;/tt> arithmetic are broadly compatible with selected&#xA;modes of operation of the arithmetic defined in ANSI X3.274-1996&#xA;and ANSI X3.274-1996/AM 1-2000 (section 7.4).  Unlike those&#xA;standards, &lt;tt>BigDecimal&lt;/tt> includes many rounding modes, which&#xA;were mandatory for division in &lt;tt>BigDecimal&lt;/tt> releases prior&#xA;to 5.  Any conflicts between these ANSI standards and the&#xA;&lt;tt>BigDecimal&lt;/tt> specification are resolved in favor of&#xA;&lt;tt>BigDecimal&lt;/tt>.&#xA;&#xA;&lt;p>Since the same numerical value can have different&#xA;representations (with different scales), the rules of arithmetic&#xA;and rounding must specify both the numerical result and the scale&#xA;used in the result's representation.&#xA;&#xA;&#xA;&lt;p>In general the rounding modes and precision setting determine&#xA;how operations return results with a limited number of digits when&#xA;the exact result has more digits (perhaps infinitely many in the&#xA;case of division) than the number of digits returned.&#xA;&#xA;First, the&#xA;total number of digits to return is specified by the&#xA;&lt;tt>MathContext&lt;/tt>'s &lt;tt>precision&lt;/tt> setting; this determines&#xA;the result's &lt;i>precision&lt;/i>.  The digit count starts from the&#xA;leftmost nonzero digit of the exact result.  The rounding mode&#xA;determines how any discarded trailing digits affect the returned&#xA;result.&#xA;&#xA;&lt;p>For all arithmetic operators , the operation is carried out as&#xA;though an exact intermediate result were first calculated and then&#xA;rounded to the number of digits specified by the precision setting&#xA;(if necessary), using the selected rounding mode.  If the exact&#xA;result is not returned, some digit positions of the exact result&#xA;are discarded.  When rounding increases the magnitude of the&#xA;returned result, it is possible for a new digit position to be&#xA;created by a carry propagating to a leading &quot;9&quot; digit.&#xA;For example, rounding the value 999.9 to three digits rounding up&#xA;would be numerically equal to one thousand, represented as&#xA;100&amp;times;10&lt;sup>1&lt;/sup>.  In such cases, the new &quot;1&quot; is&#xA;the leading digit position of the returned result.&#xA;&#xA;&lt;p>Besides a logical exact result, each arithmetic operation has a&#xA;preferred scale for representing a result.  The preferred&#xA;scale for each operation is listed in the table below.&#xA;&#xA;&lt;table border>&#xA;&lt;caption top>&lt;h3>Preferred Scales for Results of Arithmetic Operations&#xA;&lt;/h3>&lt;/caption>&#xA;&lt;tr>&lt;th>Operation&lt;/th>&lt;th>Preferred Scale of Result&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>Add&lt;/td>&lt;td>max(addend.scale(), augend.scale())&lt;/td>&#xA;&lt;tr>&lt;td>Subtract&lt;/td>&lt;td>max(minuend.scale(), subtrahend.scale())&lt;/td>&#xA;&lt;tr>&lt;td>Multiply&lt;/td>&lt;td>multiplier.scale() + multiplicand.scale()&lt;/td>&#xA;&lt;tr>&lt;td>Divide&lt;/td>&lt;td>dividend.scale() - divisor.scale()&lt;/td>&#xA;&lt;/table>&#xA;&#xA;These scales are the ones used by the methods which return exact&#xA;arithmetic results; except that an exact divide may have to use a&#xA;larger scale since the exact result may have more digits.  For&#xA;example, &lt;tt>1/32&lt;/tt> is &lt;tt>0.03125&lt;/tt>.&#xA;&#xA;&lt;p>Before rounding, the scale of the logical exact intermediate&#xA;result is the preferred scale for that operation.  If the exact&#xA;numerical result cannot be represented in &lt;code>precision&lt;/code>&#xA;digits, rounding selects the set of digits to return and the scale&#xA;of the result is reduced from the scale of the intermediate result&#xA;to the least scale which can represent the &lt;code>precision&lt;/code>&#xA;digits actually returned.  If the exact result can be represented&#xA;with at most &lt;code>precision&lt;/code> digits, the representation&#xA;of the result with the scale closest to the preferred scale is&#xA;returned.  In particular, an exactly representable quotient may be&#xA;represented in fewer than &lt;code>precision&lt;/code> digits by removing&#xA;trailing zeros and decreasing the scale.  For example, rounding to&#xA;three digits using the {@linkplain RoundingMode#FLOOR floor}&#xA;rounding mode, &lt;br>&#xA;&#xA;&lt;code>19/100 = 0.19   // integer=19,  scale=2&lt;/code> &lt;br>&#xA;&#xA;but&lt;br>&#xA;&#xA;&lt;code>21/110 = 0.190  // integer=190, scale=3&lt;/code> &lt;br>&#xA;&#xA;&lt;p>Note that for add, subtract, and multiply, the reduction in&#xA;scale will equal the number of digit positions of the exact result&#xA;which are discarded. If the rounding causes a carry propagation to&#xA;create a new high-order digit position, an additional digit of the&#xA;result is discarded than when no new digit position is created.&#xA;&#xA;&lt;p>Other methods may have slightly different rounding semantics.&#xA;For example, the result of the &lt;tt>pow&lt;/tt> method using the&#xA;{@linkplain #pow(int, MathContext) specified algorithm} can&#xA;occasionally differ from the rounded mathematical result by more&#xA;than one unit in the last place, one &lt;i>{@linkplain #ulp() ulp}&lt;/i>.&#xA;&#xA;&lt;p>Two types of operations are provided for manipulating the scale&#xA;of a &lt;tt>BigDecimal&lt;/tt>: scaling/rounding operations and decimal&#xA;point motion operations.  Scaling/rounding operations ({@link&#xA;#setScale setScale} and {@link #round round}) return a&#xA;&lt;tt>BigDecimal&lt;/tt> whose value is approximately (or exactly) equal&#xA;to that of the operand, but whose scale or precision is the&#xA;specified value; that is, they increase or decrease the precision&#xA;of the stored number with minimal effect on its value.  Decimal&#xA;point motion operations ({@link #movePointLeft movePointLeft} and&#xA;{@link #movePointRight movePointRight}) return a&#xA;&lt;tt>BigDecimal&lt;/tt> created from the operand by moving the decimal&#xA;point a specified distance in the specified direction.&#xA;&#xA;&lt;p>For the sake of brevity and clarity, pseudo-code is used&#xA;throughout the descriptions of &lt;tt>BigDecimal&lt;/tt> methods.  The&#xA;pseudo-code expression &lt;tt>(i + j)&lt;/tt> is shorthand for &quot;a&#xA;&lt;tt>BigDecimal&lt;/tt> whose value is that of the &lt;tt>BigDecimal&lt;/tt>&#xA;&lt;tt>i&lt;/tt> added to that of the &lt;tt>BigDecimal&lt;/tt>&#xA;&lt;tt>j&lt;/tt>.&quot; The pseudo-code expression &lt;tt>(i == j)&lt;/tt> is&#xA;shorthand for &quot;&lt;tt>true&lt;/tt> if and only if the&#xA;&lt;tt>BigDecimal&lt;/tt> &lt;tt>i&lt;/tt> represents the same value as the&#xA;&lt;tt>BigDecimal&lt;/tt> &lt;tt>j&lt;/tt>.&quot; Other pseudo-code expressions&#xA;are interpreted similarly.  Square brackets are used to represent&#xA;the particular &lt;tt>BigInteger&lt;/tt> and scale pair defining a&#xA;&lt;tt>BigDecimal&lt;/tt> value; for example [19, 2] is the&#xA;&lt;tt>BigDecimal&lt;/tt> numerically equal to 0.19 having a scale of 2.&#xA;&#xA;&lt;p>Note: care should be exercised if &lt;tt>BigDecimal&lt;/tt> objects&#xA;are used as keys in a {@link java.util.SortedMap SortedMap} or&#xA;elements in a {@link java.util.SortedSet SortedSet} since&#xA;&lt;tt>BigDecimal&lt;/tt>'s &lt;i>natural ordering&lt;/i> is &lt;i>inconsistent&#xA;with equals&lt;/i>.  See {@link Comparable}, {@link&#xA;java.util.SortedMap} or {@link java.util.SortedSet} for more&#xA;information.&#xA;&#xA;&lt;p>All methods and constructors for this class throw&#xA;&lt;tt>NullPointerException&lt;/tt> when passed a &lt;tt>null&lt;/tt> object&#xA;reference for any input parameter.&#xA;&#xA;@see     BigInteger&#xA;@see     MathContext&#xA;@see     RoundingMode&#xA;@see     java.util.SortedMap&#xA;@see     java.util.SortedSet&#xA;@author  Josh Bloch&#xA;@author  Mike Cowlishaw&#xA;@author  Joseph D. Darcy&#xA;" annotatedElement="_9_5_f720368_1110473546628_256023_7729"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_362712_13778" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321709_817148_13777" name="" supplier="_10_5_622020d_1132928321709_31631_13774" client="_9_5_f720368_1110473546628_256023_7729" contract="_10_5_622020d_1132928321709_31631_13774"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308249_616828_5216" name="MathContext" clientDependency="_10_5_622020d_1132928321709_779506_13784" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308249_223625_5218" body="Immutable objects which encapsulate the context settings which&#xA;describe certain rules for numerical operators, such as those&#xA;implemented by the {@link BigDecimal} class.&#xA;&#xA;&lt;p>The base-independent settings are:&#xA;&lt;ol>&#xA;&lt;li>&lt;tt>precision&lt;/tt>:&#xA;the number of digits to be used for an operation; results are&#xA;rounded to this precision&#xA;&#xA;&lt;li>&lt;tt>roundingMode&lt;/tt>:&#xA;a {@link RoundingMode} object which specifies the algorithm to be&#xA;used for rounding.&#xA;&lt;/ol>&#xA;&#xA;@see     BigDecimal&#xA;@see     RoundingMode&#xA;@author  Mike Cowlishaw&#xA;@author  Joseph D. Darcy&#xA;" annotatedElement="_10_5_622020d_1132928308249_616828_5216"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321709_779506_13784" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928308249_616828_5216" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_781236_7737" name="SignedMutableBigInteger" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308259_78862_5226" body="A class used to represent multiprecision integers that makes efficient&#xA;use of allocated space by allowing a number to occupy only part of&#xA;an array so that the arrays do not have to be reallocated as often.&#xA;When performing an operation with many iterations the array used to&#xA;hold a number is only increased when necessary and does not have to&#xA;be the same size as the number it represents. A mutable number allows&#xA;calculations to occur on the same number without having to create&#xA;a new number for every step of the calculation as occurs with&#xA;BigIntegers.&#xA;&#xA;Note that SignedMutableBigIntegers only support signed addition and&#xA;subtraction. All other operations occur as with MutableBigIntegers.&#xA;&#xA;@see     BigInteger&#xA;@version 1.9, 12/19/03&#xA;@author  Michael McCloskey&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546628_781236_7737"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_985539_13785" isSubstitutable="true" general="_9_5_f720368_1110473546628_951925_7735"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321709_863162_13779" name="Comparable&lt;BigInteger>">
            <templateBinding xmi:id="_10_5_622020d_1132928321709_847556_13780" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321709_596877_13781" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546628_396621_7731"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_951925_7735" name="MutableBigInteger" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308259_650718_5220" body="A class used to represent multiprecision integers that makes efficient&#xA;use of allocated space by allowing a number to occupy only part of&#xA;an array so that the arrays do not have to be reallocated as often.&#xA;When performing an operation with many iterations the array used to&#xA;hold a number is only reallocated when necessary and does not have to&#xA;be the same size as the number it represents. A mutable number allows&#xA;calculations to occur on the same number without having to create&#xA;a new number for every step of the calculation as occurs with&#xA;BigIntegers.&#xA;&#xA;@see     BigInteger&#xA;@version 1.12, 12/19/03&#xA;@author  Michael McCloskey&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546628_951925_7735"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321709_31631_13774" name="Comparable&lt;BigDecimal>">
            <templateBinding xmi:id="_10_5_622020d_1132928321709_249464_13775" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321709_7249_13776" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546628_256023_7729"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_396621_7731" name="BigInteger" clientDependency="_10_5_622020d_1132928321709_70918_13782">
            <ownedComment xmi:id="_10_5_622020d_1132928308249_280891_5213" body="Immutable arbitrary-precision integers.  All operations behave as if&#xA;BigIntegers were represented in two's-complement notation (like Java's&#xA;primitive integer types).  BigInteger provides analogues to all of Java's&#xA;primitive integer operators, and all relevant methods from java.lang.Math.&#xA;Additionally, BigInteger provides operations for modular arithmetic, GCD&#xA;calculation, primality testing, prime generation, bit manipulation,&#xA;and a few other miscellaneous operations.&#xA;&lt;p>&#xA;Semantics of arithmetic operations exactly mimic those of Java's integer&#xA;arithmetic operators, as defined in &lt;i>The Java Language Specification&lt;/i>.&#xA;For example, division by zero throws an &lt;tt>ArithmeticException&lt;/tt>, and&#xA;division of a negative by a positive yields a negative (or zero) remainder.&#xA;All of the details in the Spec concerning overflow are ignored, as&#xA;BigIntegers are made as large as necessary to accommodate the results of an&#xA;operation.&#xA;&lt;p>&#xA;Semantics of shift operations extend those of Java's shift operators&#xA;to allow for negative shift distances.  A right-shift with a negative&#xA;shift distance results in a left shift, and vice-versa.  The unsigned&#xA;right shift operator (>>>) is omitted, as this operation makes&#xA;little sense in combination with the &quot;infinite word size&quot; abstraction&#xA;provided by this class.&#xA;&lt;p>&#xA;Semantics of bitwise logical operations exactly mimic those of Java's&#xA;bitwise integer operators.  The binary operators (&lt;tt>and&lt;/tt>,&#xA;&lt;tt>or&lt;/tt>, &lt;tt>xor&lt;/tt>) implicitly perform sign extension on the shorter&#xA;of the two operands prior to performing the operation.&#xA;&lt;p>&#xA;Comparison operations perform signed integer comparisons, analogous to&#xA;those performed by Java's relational and equality operators.&#xA;&lt;p>&#xA;Modular arithmetic operations are provided to compute residues, perform&#xA;exponentiation, and compute multiplicative inverses.  These methods always&#xA;return a non-negative result, between &lt;tt>0&lt;/tt> and &lt;tt>(modulus - 1)&lt;/tt>,&#xA;inclusive.&#xA;&lt;p>&#xA;Bit operations operate on a single bit of the two's-complement&#xA;representation of their operand.  If necessary, the operand is sign-&#xA;extended so that it contains the designated bit.  None of the single-bit&#xA;operations can produce a BigInteger with a different sign from the&#xA;BigInteger being operated on, as they affect only a single bit, and the&#xA;&quot;infinite word size&quot; abstraction provided by this class ensures that there&#xA;are infinitely many &quot;virtual sign bits&quot; preceding each BigInteger.&#xA;&lt;p>&#xA;For the sake of brevity and clarity, pseudo-code is used throughout the&#xA;descriptions of BigInteger methods.  The pseudo-code expression&#xA;&lt;tt>(i + j)&lt;/tt> is shorthand for &quot;a BigInteger whose value is&#xA;that of the BigInteger &lt;tt>i&lt;/tt> plus that of the BigInteger &lt;tt>j&lt;/tt>.&quot;&#xA;The pseudo-code expression &lt;tt>(i == j)&lt;/tt> is shorthand for&#xA;&quot;&lt;tt>true&lt;/tt> if and only if the BigInteger &lt;tt>i&lt;/tt> represents the same&#xA;value as the BigInteger &lt;tt>j&lt;/tt>.&quot;  Other pseudo-code expressions are&#xA;interpreted similarly.&#xA;&lt;p>&#xA;All methods and constructors in this class throw&#xA;&lt;CODE>NullPointerException&lt;/CODE> when passed&#xA;a null object reference for any input parameter.&#xA;&#xA;@see     BigDecimal&#xA;@version 1.68, 04/29/04&#xA;@author  Josh Bloch&#xA;@author  Michael McCloskey&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_396621_7731"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_589534_13783" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321709_70918_13782" name="" supplier="_10_5_622020d_1132928321709_863162_13779" client="_9_5_f720368_1110473546628_396621_7731" contract="_10_5_622020d_1132928321709_863162_13779"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547768_615400_18906" name="text">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_589454_8655" name="FieldPosition">
            <ownedComment xmi:id="_10_5_622020d_1132928309711_658830_6254" body="&lt;code>FieldPosition&lt;/code> is a simple class used by &lt;code>Format&lt;/code>&#xA;and its subclasses to identify fields in formatted output. Fields can&#xA;be identified in two ways:&#xA;&lt;ul>&#xA;&lt;li>By an integer constant, whose names typically end with&#xA;&lt;code>_FIELD&lt;/code>. The constants are defined in the various&#xA;subclasses of &lt;code>Format&lt;/code>.&#xA;&lt;li>By a &lt;code>Format.Field&lt;/code> constant, see &lt;code>ERA_FIELD&lt;/code>&#xA;and its friends in &lt;code>DateFormat&lt;/code> for an example.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;code>FieldPosition&lt;/code> keeps track of the position of the&#xA;field within the formatted output with two indices: the index&#xA;of the first character of the field and the index of the last&#xA;character of the field.&#xA;&#xA;&lt;p>&#xA;One version of the &lt;code>format&lt;/code> method in the various&#xA;&lt;code>Format&lt;/code> classes requires a &lt;code>FieldPosition&lt;/code>&#xA;object as an argument. You use this &lt;code>format&lt;/code> method&#xA;to perform partial formatting or to get information about the&#xA;formatted output (such as the position of a field).&#xA;&#xA;&lt;p>&#xA;If you are interested in the positions of all attributes in the&#xA;formatted string use the &lt;code>Format&lt;/code> method&#xA;&lt;code>formatToCharacterIterator&lt;/code>.&#xA;&#xA;@version     1.21 12/19/03&#xA;@author      Mark Davis&#xA;@see         java.text.Format&#xA;" annotatedElement="_9_5_f720368_1110473546690_589454_8655"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_533419_18944" name="Delegate" visibility="private" clientDependency="_10_5_622020d_1132928321959_285963_14294">
              <ownedComment xmi:id="_10_5_622020d_1132928309711_52500_6252" body="An implementation of FieldDelegate that will adjust the begin/end&#xA;of the FieldPosition if the arguments match the field of&#xA;the FieldPosition.&#xA;" annotatedElement="_9_5_f720368_1110473547784_533419_18944"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321959_285963_14294" name="" supplier="_9_5_f720368_1110473547784_970079_18950" client="_9_5_f720368_1110473547784_533419_18944" contract="_9_5_f720368_1110473547784_970079_18950"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_510_8693" name="UnicodeClassMapping" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_648263_8635" name="CollationRules" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309611_797067_6232" body="CollationRules contains the default en_US collation rules as a base&#xA;for building other collation tables.&#xA;&lt;p>Note that decompositions are done before these rules are used,&#xA;so they do not have to contain accented characters, such as A-grave.&#xA;@see                RuleBasedCollator&#xA;@see                LocaleElements&#xA;@version            1.26, 12/19/03&#xA;@author             Helena Shih, Mark Davis&#xA;" annotatedElement="_9_5_f720368_1110473546690_648263_8635"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_159410_8675" name="RBTableBuilder" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309771_629894_6276" body="This class contains all the code to parse a RuleBasedCollator pattern&#xA;and build a RBCollationTables object from it.  A particular instance&#xA;of tis class exists only during the actual build process-- once an&#xA;RBCollationTables object has been built, the RBTableBuilder object&#xA;goes away.  This object carries all of the state which is only needed&#xA;during the build process, plus a &quot;shadow&quot; copy of all of the state&#xA;that will go into the tables object itself.  This object communicates&#xA;with RBCollationTables through a separate class, RBCollationTables.BuildAPI,&#xA;this is an inner class of RBCollationTables and provides a separate&#xA;private API for communication with RBTableBuilder.&#xA;This class isn't just an inner class of RBCollationTables itself because&#xA;of its large size.  For source-code readability, it seemed better for the&#xA;builder to have its own source file.&#xA;" annotatedElement="_9_5_f720368_1110473546690_159410_8675"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_986989_8619" name="BreakIterator" clientDependency="_10_5_622020d_1132928321919_352135_14271" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309561_267358_6220" body="The &lt;code>BreakIterator&lt;/code> class implements methods for finding&#xA;the location of boundaries in text. Instances of &lt;code>BreakIterator&lt;/code>&#xA;maintain a current position and scan over text&#xA;returning the index of characters where boundaries occur.&#xA;Internally, &lt;code>BreakIterator&lt;/code> scans text using a&#xA;&lt;code>CharacterIterator&lt;/code>, and is thus able to scan text held&#xA;by any object implementing that protocol. A &lt;code>StringCharacterIterator&lt;/code>&#xA;is used to scan &lt;code>String&lt;/code> objects passed to &lt;code>setText&lt;/code>.&#xA;&#xA;&lt;p>&#xA;You use the factory methods provided by this class to create&#xA;instances of various types of break iterators. In particular,&#xA;use &lt;code>getWordIterator&lt;/code>, &lt;code>getLineIterator&lt;/code>,&#xA;&lt;code>getSentenceIterator&lt;/code>, and &lt;code>getCharacterIterator&lt;/code>&#xA;to create &lt;code>BreakIterator&lt;/code>s that perform&#xA;word, line, sentence, and character boundary analysis respectively.&#xA;A single &lt;code>BreakIterator&lt;/code> can work only on one unit&#xA;(word, line, sentence, and so on). You must use a different iterator&#xA;for each unit boundary analysis you wish to perform.&#xA;&#xA;&lt;p>&#xA;Line boundary analysis determines where a text string can be&#xA;broken when line-wrapping. The mechanism correctly handles&#xA;punctuation and hyphenated words.&#xA;&#xA;&lt;p>&#xA;Sentence boundary analysis allows selection with correct interpretation&#xA;of periods within numbers and abbreviations, and trailing punctuation&#xA;marks such as quotation marks and parentheses.&#xA;&#xA;&lt;p>&#xA;Word boundary analysis is used by search and replace functions, as&#xA;well as within text editing applications that allow the user to&#xA;select words with a double click. Word selection provides correct&#xA;interpretation of punctuation marks within and following&#xA;words. Characters that are not part of a word, such as symbols&#xA;or punctuation marks, have word-breaks on both sides.&#xA;&#xA;&lt;p>&#xA;Character boundary analysis allows users to interact with characters&#xA;as they expect to, for example, when moving the cursor through a text&#xA;string. Character boundary analysis provides correct navigation of&#xA;through character strings, regardless of how the character is stored.&#xA;For example, an accented character might be stored as a base character&#xA;and a diacritical mark. What users consider to be a character can&#xA;differ between languages.&#xA;&#xA;&lt;p>&#xA;&lt;code>BreakIterator&lt;/code> is intended for use with natural&#xA;languages only. Do not use this class to tokenize a programming language.&#xA;&#xA;&lt;P>&#xA;&lt;strong>Examples&lt;/strong>:&lt;P>&#xA;Creating and using text boundaries&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void main(String args[]) {&#xA;if (args.length == 1) {&#xA;String stringToExamine = args[0];&#xA;print each word in order&#xA;BreakIterator boundary = BreakIterator.getWordInstance();&#xA;boundary.setText(stringToExamine);&#xA;printEachForward(boundary, stringToExamine);&#xA;print each sentence in reverse order&#xA;boundary = BreakIterator.getSentenceInstance(Locale.US);&#xA;boundary.setText(stringToExamine);&#xA;printEachBackward(boundary, stringToExamine);&#xA;printFirst(boundary, stringToExamine);&#xA;printLast(boundary, stringToExamine);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Print each element in order&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void printEachForward(BreakIterator boundary, String source) {&#xA;int start = boundary.first();&#xA;for (int end = boundary.next();&#xA;end != BreakIterator.DONE;&#xA;start = end, end = boundary.next()) {&#xA;System.out.println(source.substring(start,end));&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Print each element in reverse order&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void printEachBackward(BreakIterator boundary, String source) {&#xA;int end = boundary.last();&#xA;for (int start = boundary.previous();&#xA;start != BreakIterator.DONE;&#xA;end = start, start = boundary.previous()) {&#xA;System.out.println(source.substring(start,end));&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Print first element&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void printFirst(BreakIterator boundary, String source) {&#xA;int start = boundary.first();&#xA;int end = boundary.next();&#xA;System.out.println(source.substring(start,end));&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Print last element&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void printLast(BreakIterator boundary, String source) {&#xA;int end = boundary.last();&#xA;int start = boundary.previous();&#xA;System.out.println(source.substring(start,end));&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Print the element at a specified position&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static void printAt(BreakIterator boundary, int pos, String source) {&#xA;int end = boundary.following(pos);&#xA;int start = boundary.previous();&#xA;System.out.println(source.substring(start,end));&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Find the next word&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static int nextWordStartAfter(int pos, String text) {&#xA;BreakIterator wb = BreakIterator.getWordInstance();&#xA;wb.setText(text);&#xA;int last = wb.following(pos);&#xA;int current = wb.next();&#xA;while (current != BreakIterator.DONE) {&#xA;for (int p = last; p &lt; current; p++) {&#xA;if (Character.isLetter(text.codePointAt(p))&#xA;return last;&#xA;}&#xA;last = current;&#xA;current = wb.next();&#xA;}&#xA;return BreakIterator.DONE;&#xA;}&#xA;&lt;/pre>&#xA;(The iterator returned by BreakIterator.getWordInstance() is unique in that&#xA;the break positions it returns don't represent both the start and end of the&#xA;thing being iterated over.  That is, a sentence-break iterator returns breaks&#xA;that each represent the end of one sentence and the beginning of the next.&#xA;With the word-break iterator, the characters between two boundaries might be a&#xA;word, or they might be the punctuation or whitespace between two words.  The&#xA;above code uses a simple heuristic to determine which boundary is the beginning&#xA;of a word: If the characters between this boundary and the next boundary&#xA;include at least one letter (this can be an alphabetical letter, a CJK ideograph,&#xA;a Hangul syllable, a Kana character, etc.), then the text between this boundary&#xA;and the next is a word; otherwise, it's the material between words.)&#xA;&lt;/blockquote>&#xA;&#xA;@see CharacterIterator&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546690_986989_8619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321919_352135_14271" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_986989_8619" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547768_864118_18917" name="BreakIteratorCache" visibility="private" isLeaf="true"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321929_564602_14275" name="Comparable&lt;CollationKey>">
            <templateBinding xmi:id="_10_5_622020d_1132928321929_412952_14276" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321929_544903_14277" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546690_557076_8633"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_525822_8629" name="ChoiceFormat">
            <ownedComment xmi:id="_10_5_622020d_1132928309611_341270_6226" body="A &lt;code>ChoiceFormat&lt;/code> allows you to attach a format to a range of numbers.&#xA;It is generally used in a &lt;code>MessageFormat&lt;/code> for handling plurals.&#xA;The choice is specified with an ascending list of doubles, where each item&#xA;specifies a half-open interval up to the next item:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;X matches j if and only if limit[j] &lt;= X &lt; limit[j+1]&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;If there is no match, then either the first or last index is used, depending&#xA;on whether the number (X) is too low or too high.  If the limit array is not&#xA;in ascending order, the results of formatting will be incorrect.  ChoiceFormat&#xA;also accepts &lt;code>&amp;#92;u221E&lt;/code> as equivalent to infinity(INF).&#xA;&#xA;&lt;p>&#xA;&lt;strong>Note:&lt;/strong>&#xA;&lt;code>ChoiceFormat&lt;/code> differs from the other &lt;code>Format&lt;/code>&#xA;classes in that you create a &lt;code>ChoiceFormat&lt;/code> object with a&#xA;constructor (not with a &lt;code>getInstance&lt;/code> style factory&#xA;method). The factory methods aren't necessary because &lt;code>ChoiceFormat&lt;/code>&#xA;doesn't require any complex setup for a given locale. In fact,&#xA;&lt;code>ChoiceFormat&lt;/code> doesn't implement any locale specific behavior.&#xA;&#xA;&lt;p>&#xA;When creating a &lt;code>ChoiceFormat&lt;/code>, you must specify an array of formats&#xA;and an array of limits. The length of these arrays must be the same.&#xA;For example,&#xA;&lt;ul>&#xA;&lt;li>&#xA;&lt;em>limits&lt;/em> = {1,2,3,4,5,6,7}&lt;br>&#xA;&lt;em>formats&lt;/em> = {&quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thur&quot;,&quot;Fri&quot;,&quot;Sat&quot;}&#xA;&lt;li>&#xA;&lt;em>limits&lt;/em> = {0, 1, ChoiceFormat.nextDouble(1)}&lt;br>&#xA;&lt;em>formats&lt;/em> = {&quot;no files&quot;, &quot;one file&quot;, &quot;many files&quot;}&lt;br>&#xA;(&lt;code>nextDouble&lt;/code> can be used to get the next higher double, to&#xA;make the half-open interval.)&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;Here is a simple example that shows formatting and parsing:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;double[] limits = {1,2,3,4,5,6,7};&#xA;String[] monthNames = {&quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thur&quot;,&quot;Fri&quot;,&quot;Sat&quot;};&#xA;ChoiceFormat form = new ChoiceFormat(limits, monthNames);&#xA;ParsePosition status = new ParsePosition(0);&#xA;for (double i = 0.0; i &lt;= 8.0; ++i) {&#xA;status.setIndex(0);&#xA;System.out.println(i + &quot; -> &quot; + form.format(i) + &quot; -> &quot;&#xA;+ form.parse(form.format(i),status));&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Here is a more complex example, with a pattern format:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;double[] filelimits = {0,1,2};&#xA;String[] filepart = {&quot;are no files&quot;,&quot;is one file&quot;,&quot;are {2} files&quot;};&#xA;ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);&#xA;Format[] testFormats = {fileform, null, NumberFormat.getInstance()};&#xA;MessageFormat pattform = new MessageFormat(&quot;There {0} on {1}&quot;);&#xA;pattform.setFormats(testFormats);&#xA;Object[] testArgs = {null, &quot;ADisk&quot;, null};&#xA;for (int i = 0; i &lt; 4; ++i) {&#xA;testArgs[0] = new Integer(i);&#xA;testArgs[2] = testArgs[0];&#xA;System.out.println(pattform.format(testArgs));&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;Specifying a pattern for ChoiceFormat objects is fairly straightforward.&#xA;For example:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;ChoiceFormat fmt = new ChoiceFormat(&#xA;&quot;-1#is negative| 0#is zero or fraction | 1#is one |1.0&lt;is 1+ |2#is two |2&lt;is more than 2.&quot;);&#xA;System.out.println(&quot;Formatter Pattern : &quot; + fmt.toPattern());&#xA;&#xA;System.out.println(&quot;Format with -INF : &quot; + fmt.format(Double.NEGATIVE_INFINITY));&#xA;System.out.println(&quot;Format with -1.0 : &quot; + fmt.format(-1.0));&#xA;System.out.println(&quot;Format with 0 : &quot; + fmt.format(0));&#xA;System.out.println(&quot;Format with 0.9 : &quot; + fmt.format(0.9));&#xA;System.out.println(&quot;Format with 1.0 : &quot; + fmt.format(1));&#xA;System.out.println(&quot;Format with 1.5 : &quot; + fmt.format(1.5));&#xA;System.out.println(&quot;Format with 2 : &quot; + fmt.format(2));&#xA;System.out.println(&quot;Format with 2.1 : &quot; + fmt.format(2.1));&#xA;System.out.println(&quot;Format with NaN : &quot; + fmt.format(Double.NaN));&#xA;System.out.println(&quot;Format with +INF : &quot; + fmt.format(Double.POSITIVE_INFINITY));&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;And the output result would be like the following:&#xA;&lt;pre>&#xA;&lt;blockquote>&#xA;Format with -INF : is negative&#xA;Format with -1.0 : is negative&#xA;Format with 0 : is zero or fraction&#xA;Format with 0.9 : is zero or fraction&#xA;Format with 1.0 : is one&#xA;Format with 1.5 : is 1+&#xA;Format with 2 : is two&#xA;Format with 2.1 : is more than 2.&#xA;Format with NaN : is negative&#xA;Format with +INF : is more than 2.&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Choice formats are not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;&#xA;@see          DecimalFormat&#xA;@see          MessageFormat&#xA;@version      1.22 09/21/98&#xA;@author       Mark Davis&#xA;" annotatedElement="_9_5_f720368_1110473546690_525822_8629"/>
            <generalization xmi:id="_10_5_622020d_1132928321929_463201_14274" isSubstitutable="true" general="_9_5_f720368_1110473546690_833550_8665"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_549555_8637" name="Collator" clientDependency="_10_5_622020d_1132928321929_418357_14282 _10_5_622020d_1132928321939_755298_14283" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309611_707163_6234" body="The &lt;code>Collator&lt;/code> class performs locale-sensitive&#xA;&lt;code>String&lt;/code> comparison. You use this class to build&#xA;searching and sorting routines for natural language text.&#xA;&#xA;&lt;p>&#xA;&lt;code>Collator&lt;/code> is an abstract base class. Subclasses&#xA;implement specific collation strategies. One subclass,&#xA;&lt;code>RuleBasedCollator&lt;/code>, is currently provided with&#xA;the Java 2 platform and is applicable to a wide set of languages. Other&#xA;subclasses may be created to handle more specialized needs.&#xA;&#xA;&lt;p>&#xA;Like other locale-sensitive classes, you can use the static&#xA;factory method, &lt;code>getInstance&lt;/code>, to obtain the appropriate&#xA;&lt;code>Collator&lt;/code> object for a given locale. You will only need&#xA;to look at the subclasses of &lt;code>Collator&lt;/code> if you need&#xA;to understand the details of a particular collation strategy or&#xA;if you need to modify that strategy.&#xA;&#xA;&lt;p>&#xA;The following example shows how to compare two strings using&#xA;the &lt;code>Collator&lt;/code> for the default locale.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Compare two strings in the default locale&#xA;Collator myCollator = Collator.getInstance();&#xA;if( myCollator.compare(&quot;abc&quot;, &quot;ABC&quot;) &lt; 0 )&#xA;System.out.println(&quot;abc is less than ABC&quot;);&#xA;else&#xA;System.out.println(&quot;abc is greater than or equal to ABC&quot;);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;You can set a &lt;code>Collator&lt;/code>'s &lt;em>strength&lt;/em> property&#xA;to determine the level of difference considered significant in&#xA;comparisons. Four strengths are provided: &lt;code>PRIMARY&lt;/code>,&#xA;&lt;code>SECONDARY&lt;/code>, &lt;code>TERTIARY&lt;/code>, and &lt;code>IDENTICAL&lt;/code>.&#xA;The exact assignment of strengths to language features is&#xA;locale dependant.  For example, in Czech, &quot;e&quot; and &quot;f&quot; are considered&#xA;primary differences, while &quot;e&quot; and &quot;\u00EA&quot; are secondary differences,&#xA;&quot;e&quot; and &quot;E&quot; are tertiary differences and &quot;e&quot; and &quot;e&quot; are identical.&#xA;The following shows how both case and accents could be ignored for&#xA;US English.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Get the Collator for US English and set its strength to PRIMARY&#xA;Collator usCollator = Collator.getInstance(Locale.US);&#xA;usCollator.setStrength(Collator.PRIMARY);&#xA;if( usCollator.compare(&quot;abc&quot;, &quot;ABC&quot;) == 0 ) {&#xA;System.out.println(&quot;Strings are equivalent&quot;);&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;For comparing &lt;code>String&lt;/code>s exactly once, the &lt;code>compare&lt;/code>&#xA;method provides the best performance. When sorting a list of&#xA;&lt;code>String&lt;/code>s however, it is generally necessary to compare each&#xA;&lt;code>String&lt;/code> multiple times. In this case, &lt;code>CollationKey&lt;/code>s&#xA;provide better performance. The &lt;code>CollationKey&lt;/code> class converts&#xA;a &lt;code>String&lt;/code> to a series of bits that can be compared bitwise&#xA;against other &lt;code>CollationKey&lt;/code>s. A &lt;code>CollationKey&lt;/code> is&#xA;created by a &lt;code>Collator&lt;/code> object for a given &lt;code>String&lt;/code>.&#xA;&lt;br>&#xA;&lt;strong>Note:&lt;/strong> &lt;code>CollationKey&lt;/code>s from different&#xA;&lt;code>Collator&lt;/code>s can not be compared. See the class description&#xA;for {@link CollationKey}&#xA;for an example using &lt;code>CollationKey&lt;/code>s.&#xA;&#xA;@see         RuleBasedCollator&#xA;@see         CollationKey&#xA;@see         CollationElementIterator&#xA;@see         Locale&#xA;@version     1.39, 05/05/04&#xA;@author      Helena Shih, Laura Werner, Richard Gillam&#xA;" annotatedElement="_9_5_f720368_1110473546690_549555_8637"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321929_418357_14282" name="" supplier="_10_5_622020d_1132928321929_11005_14279" client="_9_5_f720368_1110473546690_549555_8637" contract="_10_5_622020d_1132928321929_11005_14279"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321939_755298_14283" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_549555_8637" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_171784_8643" name="DecimalFormat">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_65879_6241" body="&lt;code>DecimalFormat&lt;/code> is a concrete subclass of&#xA;&lt;code>NumberFormat&lt;/code> that formats decimal numbers. It has a variety of&#xA;features designed to make it possible to parse and format numbers in any&#xA;locale, including support for Western, Arabic, and Indic digits.  It also&#xA;supports different kinds of numbers, including integers (123), fixed-point&#xA;numbers (123.4), scientific notation (1.23E4), percentages (12%), and&#xA;currency amounts ($123).  All of these can be localized.&#xA;&#xA;&lt;p>To obtain a &lt;code>NumberFormat&lt;/code> for a specific locale, including the&#xA;default locale, call one of &lt;code>NumberFormat&lt;/code>'s factory methods, such&#xA;as &lt;code>getInstance()&lt;/code>.  In general, do not call the&#xA;&lt;code>DecimalFormat&lt;/code> constructors directly, since the&#xA;&lt;code>NumberFormat&lt;/code> factory methods may return subclasses other than&#xA;&lt;code>DecimalFormat&lt;/code>. If you need to customize the format object, do&#xA;something like this:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;NumberFormat f = NumberFormat.getInstance(loc);&#xA;if (f instanceof DecimalFormat) {&#xA;((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>A &lt;code>DecimalFormat&lt;/code> comprises a &lt;em>pattern&lt;/em> and a set of&#xA;&lt;em>symbols&lt;/em>.  The pattern may be set directly using&#xA;&lt;code>applyPattern()&lt;/code>, or indirectly using the API methods.  The&#xA;symbols are stored in a &lt;code>DecimalFormatSymbols&lt;/code> object.  When using&#xA;the &lt;code>NumberFormat&lt;/code> factory methods, the pattern and symbols are&#xA;read from localized &lt;code>ResourceBundle&lt;/code>s.&#xA;&#xA;&lt;h4>Patterns&lt;/h4>&#xA;&#xA;&lt;code>DecimalFormat&lt;/code> patterns have the following syntax:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;i>Pattern:&lt;/i>&#xA;&lt;i>PositivePattern&lt;/i>&#xA;&lt;i>PositivePattern&lt;/i> ; &lt;i>NegativePattern&lt;/i>&#xA;&lt;i>PositivePattern:&lt;/i>&#xA;&lt;i>Prefix&lt;sub>opt&lt;/sub>&lt;/i> &lt;i>Number&lt;/i> &lt;i>Suffix&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>NegativePattern:&lt;/i>&#xA;&lt;i>Prefix&lt;sub>opt&lt;/sub>&lt;/i> &lt;i>Number&lt;/i> &lt;i>Suffix&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>Prefix:&lt;/i>&#xA;any Unicode characters except &amp;#92;uFFFE, &amp;#92;uFFFF, and special characters&#xA;&lt;i>Suffix:&lt;/i>&#xA;any Unicode characters except &amp;#92;uFFFE, &amp;#92;uFFFF, and special characters&#xA;&lt;i>Number:&lt;/i>&#xA;&lt;i>Integer&lt;/i> &lt;i>Exponent&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>Integer&lt;/i> . &lt;i>Fraction&lt;/i> &lt;i>Exponent&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>Integer:&lt;/i>&#xA;&lt;i>MinimumInteger&lt;/i>&#xA;#&#xA;# &lt;i>Integer&lt;/i>&#xA;# , &lt;i>Integer&lt;/i>&#xA;&lt;i>MinimumInteger:&lt;/i>&#xA;0&#xA;0 &lt;i>MinimumInteger&lt;/i>&#xA;0 , &lt;i>MinimumInteger&lt;/i>&#xA;&lt;i>Fraction:&lt;/i>&#xA;&lt;i>MinimumFraction&lt;sub>opt&lt;/sub>&lt;/i> &lt;i>OptionalFraction&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>MinimumFraction:&lt;/i>&#xA;0 &lt;i>MinimumFraction&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>OptionalFraction:&lt;/i>&#xA;# &lt;i>OptionalFraction&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>Exponent:&lt;/i>&#xA;E &lt;i>MinimumExponent&lt;/i>&#xA;&lt;i>MinimumExponent:&lt;/i>&#xA;0 &lt;i>MinimumExponent&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>A &lt;code>DecimalFormat&lt;/code> pattern contains a positive and negative&#xA;subpattern, for example, &lt;code>&quot;#,##0.00;(#,##0.00)&quot;&lt;/code>.  Each&#xA;subpattern has a prefix, numeric part, and suffix. The negative subpattern&#xA;is optional; if absent, then the positive subpattern prefixed with the&#xA;localized minus sign (&lt;code>'-'&lt;/code> in most locales) is used as the&#xA;negative subpattern. That is, &lt;code>&quot;0.00&quot;&lt;/code> alone is equivalent to&#xA;&lt;code>&quot;0.00;-0.00&quot;&lt;/code>.  If there is an explicit negative subpattern, it&#xA;serves only to specify the negative prefix and suffix; the number of digits,&#xA;minimal digits, and other characteristics are all the same as the positive&#xA;pattern. That means that &lt;code>&quot;#,##0.0#;(#)&quot;&lt;/code> produces precisely&#xA;the same behavior as &lt;code>&quot;#,##0.0#;(#,##0.0#)&quot;&lt;/code>.&#xA;&#xA;&lt;p>The prefixes, suffixes, and various symbols used for infinity, digits,&#xA;thousands separators, decimal separators, etc. may be set to arbitrary&#xA;values, and they will appear properly during formatting.  However, care must&#xA;be taken that the symbols and strings do not conflict, or parsing will be&#xA;unreliable.  For example, either the positive and negative prefixes or the&#xA;suffixes must be distinct for &lt;code>DecimalFormat.parse()&lt;/code> to be able&#xA;to distinguish positive from negative values.  (If they are identical, then&#xA;&lt;code>DecimalFormat&lt;/code> will behave as if no negative subpattern was&#xA;specified.)  Another example is that the decimal separator and thousands&#xA;separator should be distinct characters, or parsing will be impossible.&#xA;&#xA;&lt;p>The grouping separator is commonly used for thousands, but in some&#xA;countries it separates ten-thousands. The grouping size is a constant number&#xA;of digits between the grouping characters, such as 3 for 100,000,000 or 4 for&#xA;1,0000,0000.  If you supply a pattern with multiple grouping characters, the&#xA;interval between the last one and the end of the integer is the one that is&#xA;used. So &lt;code>&quot;#,##,###,####&quot;&lt;/code> == &lt;code>&quot;######,####&quot;&lt;/code> ==&#xA;&lt;code>&quot;##,####,####&quot;&lt;/code>.&#xA;&#xA;&lt;h4>Special Pattern Characters&lt;/h4>&#xA;&#xA;&lt;p>Many characters in a pattern are taken literally; they are matched during&#xA;parsing and output unchanged during formatting.  Special characters, on the&#xA;other hand, stand for other characters, strings, or classes of characters.&#xA;They must be quoted, unless noted otherwise, if they are to appear in the&#xA;prefix or suffix as literals.&#xA;&#xA;&lt;p>The characters listed here are used in non-localized patterns.  Localized&#xA;patterns use the corresponding characters taken from this formatter's&#xA;&lt;code>DecimalFormatSymbols&lt;/code> object instead, and these characters lose&#xA;their special status.  Two exceptions are the currency sign and quote, which&#xA;are not localized.&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=0 cellspacing=3 cellpadding=0 summary=&quot;Chart showing symbol,&#xA;location, localized, and meaning.&quot;>&#xA;&lt;tr bgcolor=&quot;#ccccff&quot;>&#xA;&lt;th align=left>Symbol&#xA;&lt;th align=left>Location&#xA;&lt;th align=left>Localized?&#xA;&lt;th align=left>Meaning&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>0&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Digit&#xA;&lt;tr valign=top bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>#&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Digit, zero shows as absent&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>.&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Decimal separator or monetary decimal separator&#xA;&lt;tr valign=top bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>-&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Minus sign&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>,&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Grouping separator&#xA;&lt;tr valign=top bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>E&lt;/code>&#xA;&lt;td>Number&#xA;&lt;td>Yes&#xA;&lt;td>Separates mantissa and exponent in scientific notation.&#xA;&lt;em>Need not be quoted in prefix or suffix.&lt;/em>&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>;&lt;/code>&#xA;&lt;td>Subpattern boundary&#xA;&lt;td>Yes&#xA;&lt;td>Separates positive and negative subpatterns&#xA;&lt;tr valign=top bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>%&lt;/code>&#xA;&lt;td>Prefix or suffix&#xA;&lt;td>Yes&#xA;&lt;td>Multiply by 100 and show as percentage&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>&amp;#92;u2030&lt;/code>&#xA;&lt;td>Prefix or suffix&#xA;&lt;td>Yes&#xA;&lt;td>Multiply by 1000 and show as per mille value&#xA;&lt;tr valign=top bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>&amp;#164;&lt;/code> (&lt;code>&amp;#92;u00A4&lt;/code>)&#xA;&lt;td>Prefix or suffix&#xA;&lt;td>No&#xA;&lt;td>Currency sign, replaced by currency symbol.  If&#xA;doubled, replaced by international currency symbol.&#xA;If present in a pattern, the monetary decimal separator&#xA;is used instead of the decimal separator.&#xA;&lt;tr valign=top>&#xA;&lt;td>&lt;code>'&lt;/code>&#xA;&lt;td>Prefix or suffix&#xA;&lt;td>No&#xA;&lt;td>Used to quote special characters in a prefix or suffix,&#xA;for example, &lt;code>&quot;'#'#&quot;&lt;/code> formats 123 to&#xA;&lt;code>&quot;#123&quot;&lt;/code>.  To create a single quote&#xA;itself, use two in a row: &lt;code>&quot;# o''clock&quot;&lt;/code>.&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4>Scientific Notation&lt;/h4>&#xA;&#xA;&lt;p>Numbers in scientific notation are expressed as the product of a mantissa&#xA;and a power of ten, for example, 1234 can be expressed as 1.234 x 10^3.  The&#xA;mantissa is often in the range 1.0 &lt;= x &lt; 10.0, but it need not be.&#xA;&lt;code>DecimalFormat&lt;/code> can be instructed to format and parse scientific&#xA;notation &lt;em>only via a pattern&lt;/em>; there is currently no factory method&#xA;that creates a scientific notation format.  In a pattern, the exponent&#xA;character immediately followed by one or more digit characters indicates&#xA;scientific notation.  Example: &lt;code>&quot;0.###E0&quot;&lt;/code> formats the number&#xA;1234 as &lt;code>&quot;1.234E3&quot;&lt;/code>.&#xA;&#xA;&lt;ul>&#xA;&lt;li>The number of digit characters after the exponent character gives the&#xA;minimum exponent digit count.  There is no maximum.  Negative exponents are&#xA;formatted using the localized minus sign, &lt;em>not&lt;/em> the prefix and suffix&#xA;from the pattern.  This allows patterns such as &lt;code>&quot;0.###E0 m/s&quot;&lt;/code>.&#xA;&#xA;&lt;li>The minimum and maximum number of integer digits are interpreted&#xA;together:&#xA;&#xA;&lt;ul>&#xA;&lt;li>If the maximum number of integer digits is greater than their minimum number&#xA;and greater than 1, it forces the exponent to be a multiple of the maximum&#xA;number of integer digits, and the minimum number of integer digits to be&#xA;interpreted as 1.  The most common use of this is to generate&#xA;&lt;em>engineering notation&lt;/em>, in which the exponent is a multiple of three,&#xA;e.g., &lt;code>&quot;##0.#####E0&quot;&lt;/code>. Using this pattern, the number 12345&#xA;formats to &lt;code>&quot;12.345E3&quot;&lt;/code>, and 123456 formats to&#xA;&lt;code>&quot;123.456E3&quot;&lt;/code>.&#xA;&#xA;&lt;li>Otherwise, the minimum number of integer digits is achieved by adjusting the&#xA;exponent.  Example: 0.00123 formatted with &lt;code>&quot;00.###E0&quot;&lt;/code> yields&#xA;&lt;code>&quot;12.3E-4&quot;&lt;/code>.&#xA;&lt;/ul>&#xA;&#xA;&lt;li>The number of significant digits in the mantissa is the sum of the&#xA;&lt;em>minimum integer&lt;/em> and &lt;em>maximum fraction&lt;/em> digits, and is&#xA;unaffected by the maximum integer digits.  For example, 12345 formatted with&#xA;&lt;code>&quot;##0.##E0&quot;&lt;/code> is &lt;code>&quot;12.3E3&quot;&lt;/code>. To show all digits, set&#xA;the significant digits count to zero.  The number of significant digits&#xA;does not affect parsing.&#xA;&#xA;&lt;li>Exponential patterns may not contain grouping separators.&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>Rounding&lt;/h4>&#xA;&#xA;&lt;code>DecimalFormat&lt;/code> uses half-even rounding (see&#xA;{@link java.math.BigDecimal#ROUND_HALF_EVEN ROUND_HALF_EVEN}) for&#xA;formatting.&#xA;&#xA;&lt;h4>Digits&lt;/h4>&#xA;&#xA;For formatting, &lt;code>DecimalFormat&lt;/code> uses the ten consecutive&#xA;characters starting with the localized zero digit defined in the&#xA;&lt;code>DecimalFormatSymbols&lt;/code> object as digits. For parsing, these&#xA;digits as well as all Unicode decimal digits, as defined by&#xA;{@link Character#digit Character.digit}, are recognized.&#xA;&#xA;&lt;h4>Special Values&lt;/h4>&#xA;&#xA;&lt;p>&lt;code>NaN&lt;/code> is formatted as a single character, typically&#xA;&lt;code>&amp;#92;uFFFD&lt;/code>.  This character is determined by the&#xA;&lt;code>DecimalFormatSymbols&lt;/code> object.  This is the only value for which&#xA;the prefixes and suffixes are not used.&#xA;&#xA;&lt;p>Infinity is formatted as a single character, typically&#xA;&lt;code>&amp;#92;u221E&lt;/code>, with the positive or negative prefixes and suffixes&#xA;applied.  The infinity character is determined by the&#xA;&lt;code>DecimalFormatSymbols&lt;/code> object.&#xA;&#xA;&lt;p>Negative zero (&lt;code>&quot;-0&quot;&lt;/code>) parses to&#xA;&lt;ul>&#xA;&lt;li>&lt;code>BigDecimal(0)&lt;/code> if &lt;code>isParseBigDecimal()&lt;/code> is&#xA;true,&#xA;&lt;li>&lt;code>Long(0)&lt;/code> if &lt;code>isParseBigDecimal()&lt;/code> is false&#xA;and &lt;code>isParseIntegerOnly()&lt;/code> is true,&#xA;&lt;li>&lt;code>Double(-0.0)&lt;/code> if both &lt;code>isParseBigDecimal()&lt;/code>&#xA;and &lt;code>isParseIntegerOnly()&lt;/code> are false.&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Decimal formats are generally not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;&lt;h4>Example&lt;/h4>&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;strong>// Print out a number using the localized number, integer, currency,&#xA;and percent format for each locale&lt;/strong>&#xA;Locale[] locales = NumberFormat.getAvailableLocales();&#xA;double myNumber = -1234.56;&#xA;NumberFormat form;&#xA;for (int j=0; j&lt;4; ++j) {&#xA;System.out.println(&quot;FORMAT&quot;);&#xA;for (int i = 0; i &lt; locales.length; ++i) {&#xA;if (locales[i].getCountry().length() == 0) {&#xA;continue; // Skip language-only locales&#xA;}&#xA;System.out.print(locales[i].getDisplayName());&#xA;switch (j) {&#xA;case 0:&#xA;form = NumberFormat.getInstance(locales[i]); break;&#xA;case 1:&#xA;form = NumberFormat.getIntegerInstance(locales[i]); break;&#xA;case 2:&#xA;form = NumberFormat.getCurrencyInstance(locales[i]); break;&#xA;default:&#xA;form = NumberFormat.getPercentInstance(locales[i]); break;&#xA;}&#xA;if (form instanceof DecimalFormat) {&#xA;System.out.print(&quot;: &quot; + ((DecimalFormat) form).toPattern());&#xA;}&#xA;System.out.print(&quot; -> &quot; + form.format(myNumber));&#xA;try {&#xA;System.out.println(&quot; -> &quot; + form.parse(form.format(myNumber)));&#xA;} catch (ParseException e) {}&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@see          &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html&quot;>Java Tutorial&lt;/a>&#xA;@see          NumberFormat&#xA;@see          DecimalFormatSymbols&#xA;@see          ParsePosition&#xA;@version      1.79 06/28/04&#xA;@author       Mark Davis&#xA;@author       Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546690_171784_8643"/>
            <generalization xmi:id="_10_5_622020d_1132928321939_296262_14288" isSubstitutable="true" general="_9_5_f720368_1110473546690_833550_8665"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_630287_8697" name="WordBreakTable" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_833550_8665" name="NumberFormat" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309761_2177_6266" body="&lt;code>NumberFormat&lt;/code> is the abstract base class for all number&#xA;formats. This class provides the interface for formatting and parsing&#xA;numbers. &lt;code>NumberFormat&lt;/code> also provides methods for determining&#xA;which locales have number formats, and what their names are.&#xA;&#xA;&lt;p>&#xA;&lt;code>NumberFormat&lt;/code> helps you to format and parse numbers for any locale.&#xA;Your code can be completely independent of the locale conventions for&#xA;decimal points, thousands-separators, or even the particular decimal&#xA;digits used, or whether the number format is even decimal.&#xA;&#xA;&lt;p>&#xA;To format a number for the current Locale, use one of the factory&#xA;class methods:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;myString = NumberFormat.getInstance().format(myNumber);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;If you are formatting multiple numbers, it is&#xA;more efficient to get the format and use it multiple times so that&#xA;the system doesn't have to fetch the information about the local&#xA;language and country conventions multiple times.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;NumberFormat nf = NumberFormat.getInstance();&#xA;for (int i = 0; i &lt; a.length; ++i) {&#xA;output.println(nf.format(myNumber[i]) + &quot;; &quot;);&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;To format a number for a different Locale, specify it in the&#xA;call to &lt;code>getInstance&lt;/code>.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;You can also use a &lt;code>NumberFormat&lt;/code> to parse numbers:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;myNumber = nf.parse(myString);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Use &lt;code>getInstance&lt;/code> or &lt;code>getNumberInstance&lt;/code> to get the&#xA;normal number format. Use &lt;code>getIntegerInstance&lt;/code> to get an&#xA;integer number format. Use &lt;code>getCurrencyInstance&lt;/code> to get the&#xA;currency number format. And use &lt;code>getPercentInstance&lt;/code> to get a&#xA;format for displaying percentages. With this format, a fraction like&#xA;0.53 is displayed as 53%.&#xA;&#xA;&lt;p>&#xA;You can also control the display of numbers with such methods as&#xA;&lt;code>setMinimumFractionDigits&lt;/code>.&#xA;If you want even more control over the format or parsing,&#xA;or want to give your users more control,&#xA;you can try casting the &lt;code>NumberFormat&lt;/code> you get from the factory methods&#xA;to a &lt;code>DecimalFormat&lt;/code>. This will work for the vast majority&#xA;of locales; just remember to put it in a &lt;code>try&lt;/code> block in case you&#xA;encounter an unusual one.&#xA;&#xA;&lt;p>&#xA;NumberFormat and DecimalFormat are designed such that some controls&#xA;work for formatting and others work for parsing.  The following is&#xA;the detailed description for each these control methods,&#xA;&lt;p>&#xA;setParseIntegerOnly : only affects parsing, e.g.&#xA;if true,  &quot;3456.78&quot; -> 3456 (and leaves the parse position just after index 6)&#xA;if false, &quot;3456.78&quot; -> 3456.78 (and leaves the parse position just after index 8)&#xA;This is independent of formatting.  If you want to not show a decimal point&#xA;where there might be no digits after the decimal point, use&#xA;setDecimalSeparatorAlwaysShown.&#xA;&lt;p>&#xA;setDecimalSeparatorAlwaysShown : only affects formatting, and only where&#xA;there might be no digits after the decimal point, such as with a pattern&#xA;like &quot;#,##0.##&quot;, e.g.,&#xA;if true,  3456.00 -> &quot;3,456.&quot;&#xA;if false, 3456.00 -> &quot;3456&quot;&#xA;This is independent of parsing.  If you want parsing to stop at the decimal&#xA;point, use setParseIntegerOnly.&#xA;&#xA;&lt;p>&#xA;You can also use forms of the &lt;code>parse&lt;/code> and &lt;code>format&lt;/code>&#xA;methods with &lt;code>ParsePosition&lt;/code> and &lt;code>FieldPosition&lt;/code> to&#xA;allow you to:&#xA;&lt;ul>&#xA;&lt;li> progressively parse through pieces of a string&#xA;&lt;li> align the decimal point and other areas&#xA;&lt;/ul>&#xA;For example, you can align numbers in two ways:&#xA;&lt;ol>&#xA;&lt;li> If you are using a monospaced font with spacing for alignment,&#xA;you can pass the &lt;code>FieldPosition&lt;/code> in your format call, with&#xA;&lt;code>field&lt;/code> = &lt;code>INTEGER_FIELD&lt;/code>. On output,&#xA;&lt;code>getEndIndex&lt;/code> will be set to the offset between the&#xA;last character of the integer and the decimal. Add&#xA;(desiredSpaceCount - getEndIndex) spaces at the front of the string.&#xA;&#xA;&lt;li> If you are using proportional fonts,&#xA;instead of padding with spaces, measure the width&#xA;of the string in pixels from the start to &lt;code>getEndIndex&lt;/code>.&#xA;Then move the pen by&#xA;(desiredPixelWidth - widthToAlignmentPoint) before drawing the text.&#xA;It also works where there is no decimal, but possibly additional&#xA;characters at the end, e.g., with parentheses in negative&#xA;numbers: &quot;(12)&quot; for -12.&#xA;&lt;/ol>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Number formats are generally not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;@see          DecimalFormat&#xA;@see          ChoiceFormat&#xA;@version      1.65, 05/10/04&#xA;@author       Mark Davis&#xA;@author       Helena Shih&#xA;" annotatedElement="_9_5_f720368_1110473546690_833550_8665"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_440622_14300" isSubstitutable="true" general="_9_5_f720368_1110473546690_941980_8657"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_792738_18959" name="Field">
              <ownedComment xmi:id="_10_5_622020d_1132928309761_444859_6264" body="Defines constants that are used as attribute keys in the&#xA;&lt;code>AttributedCharacterIterator&lt;/code> returned&#xA;from &lt;code>NumberFormat.formatToCharacterIterator&lt;/code> and as&#xA;field identifiers in &lt;code>FieldPosition&lt;/code>.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547784_792738_18959"/>
              <generalization xmi:id="_10_5_622020d_1132928321959_394941_14301" isSubstitutable="true" general="_9_5_f720368_1110473547784_45961_18947"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_210055_8691" name="TextBoundaryData" visibility="package" isAbstract="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_398392_8663" name="MessageFormat">
            <ownedComment xmi:id="_10_5_622020d_1132928309751_403945_6263" body="&lt;code>MessageFormat&lt;/code> provides a means to produce concatenated&#xA;messages in language-neutral way. Use this to construct messages&#xA;displayed for end users.&#xA;&#xA;&lt;p>&#xA;&lt;code>MessageFormat&lt;/code> takes a set of objects, formats them, then&#xA;inserts the formatted strings into the pattern at the appropriate places.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Note:&lt;/strong>&#xA;&lt;code>MessageFormat&lt;/code> differs from the other &lt;code>Format&lt;/code>&#xA;classes in that you create a &lt;code>MessageFormat&lt;/code> object with one&#xA;of its constructors (not with a &lt;code>getInstance&lt;/code> style factory&#xA;method). The factory methods aren't necessary because &lt;code>MessageFormat&lt;/code>&#xA;itself doesn't implement locale specific behavior. Any locale specific&#xA;behavior is defined by the pattern that you provide as well as the&#xA;subformats used for inserted arguments.&#xA;&#xA;&lt;h4>&lt;a name=&quot;patterns&quot;>Patterns and Their Interpretation&lt;/a>&lt;/h4>&#xA;&#xA;&lt;code>MessageFormat&lt;/code> uses patterns of the following form:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;i>MessageFormatPattern:&lt;/i>&#xA;&lt;i>String&lt;/i>&#xA;&lt;i>MessageFormatPattern&lt;/i> &lt;i>FormatElement&lt;/i> &lt;i>String&lt;/i>&#xA;&#xA;&lt;i>FormatElement:&lt;/i>&#xA;{ &lt;i>ArgumentIndex&lt;/i> }&#xA;{ &lt;i>ArgumentIndex&lt;/i> , &lt;i>FormatType&lt;/i> }&#xA;{ &lt;i>ArgumentIndex&lt;/i> , &lt;i>FormatType&lt;/i> , &lt;i>FormatStyle&lt;/i> }&#xA;&#xA;&lt;i>FormatType: one of &lt;/i>&#xA;number date time choice&#xA;&#xA;&lt;i>FormatStyle:&lt;/i>&#xA;short&#xA;medium&#xA;long&#xA;full&#xA;integer&#xA;currency&#xA;percent&#xA;&lt;i>SubformatPattern&lt;/i>&#xA;&#xA;&lt;i>String:&lt;/i>&#xA;&lt;i>StringPart&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>String&lt;/i> &lt;i>StringPart&lt;/i>&#xA;&#xA;&lt;i>StringPart:&lt;/i>&#xA;''&#xA;' &lt;i>QuotedString&lt;/i> '&#xA;&lt;i>UnquotedString&lt;/i>&#xA;&#xA;&lt;i>SubformatPattern:&lt;/i>&#xA;&lt;i>SubformatPatternPart&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;i>SubformatPattern&lt;/i> &lt;i>SubformatPatternPart&lt;/i>&#xA;&#xA;&lt;i>SubFormatPatternPart:&lt;/i>&#xA;' &lt;i>QuotedPattern&lt;/i> '&#xA;&lt;i>UnquotedPattern&lt;/i>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Within a &lt;i>String&lt;/i>, &lt;code>&quot;''&quot;&lt;/code> represents a single&#xA;quote. A &lt;i>QuotedString&lt;/i> can contain arbitrary characters&#xA;except single quotes; the surrounding single quotes are removed.&#xA;An &lt;i>UnquotedString&lt;/i> can contain arbitrary characters&#xA;except single quotes and left curly brackets. Thus, a string that&#xA;should result in the formatted message &quot;'{0}'&quot; can be written as&#xA;&lt;code>&quot;'''{'0}''&quot;&lt;/code> or &lt;code>&quot;'''{0}'''&quot;&lt;/code>.&#xA;&lt;p>&#xA;Within a &lt;i>SubformatPattern&lt;/i>, different rules apply.&#xA;A &lt;i>QuotedPattern&lt;/i> can contain arbitrary characters&#xA;except single quotes; but the surrounding single quotes are&#xA;&lt;strong>not&lt;/strong> removed, so they may be interpreted by the&#xA;subformat. For example, &lt;code>&quot;{1,number,$'#',##}&quot;&lt;/code> will&#xA;produce a number format with the pound-sign quoted, with a result&#xA;such as: &quot;$#31,45&quot;.&#xA;An &lt;i>UnquotedPattern&lt;/i> can contain arbitrary characters&#xA;except single quotes, but curly braces within it must be balanced.&#xA;For example, &lt;code>&quot;ab {0} de&quot;&lt;/code> and &lt;code>&quot;ab '}' de&quot;&lt;/code>&#xA;are valid subformat patterns, but &lt;code>&quot;ab {0'}' de&quot;&lt;/code> and&#xA;&lt;code>&quot;ab } de&quot;&lt;/code> are not.&#xA;&lt;p>&#xA;&lt;dl>&lt;dt>&lt;b>Warning:&lt;/b>&lt;dd>The rules for using quotes within message&#xA;format patterns unfortunately have shown to be somewhat confusing.&#xA;In particular, it isn't always obvious to localizers whether single&#xA;quotes need to be doubled or not. Make sure to inform localizers about&#xA;the rules, and tell them (for example, by using comments in resource&#xA;bundle source files) which strings will be processed by MessageFormat.&#xA;Note that localizers may need to use single quotes in translated&#xA;strings where the original version doesn't have them.&#xA;&lt;/dl>&#xA;&lt;p>&#xA;The &lt;i>ArgumentIndex&lt;/i> value is a non-negative integer written&#xA;using the digits '0' through '9', and represents an index into the&#xA;&lt;code>arguments&lt;/code> array passed to the &lt;code>format&lt;/code> methods&#xA;or the result array returned by the &lt;code>parse&lt;/code> methods.&#xA;&lt;p>&#xA;The &lt;i>FormatType&lt;/i> and &lt;i>FormatStyle&lt;/i> values are used to create&#xA;a &lt;code>Format&lt;/code> instance for the format element. The following&#xA;table shows how the values map to Format instances. Combinations not&#xA;shown in the table are illegal. A &lt;i>SubformatPattern&lt;/i> must&#xA;be a valid pattern string for the Format subclass used.&#xA;&lt;p>&#xA;&lt;table border=1 summary=&quot;Shows how FormatType and FormatStyle values map to Format instances&quot;>&#xA;&lt;tr>&#xA;&lt;th id=&quot;ft&quot;>Format Type&#xA;&lt;th id=&quot;fs&quot;>Format Style&#xA;&lt;th id=&quot;sc&quot;>Subformat Created&#xA;&lt;tr>&#xA;&lt;td headers=&quot;ft&quot;>&lt;i>(none)&lt;/i>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>(none)&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>null&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;ft&quot; rowspan=5>&lt;code>number&lt;/code>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>(none)&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>NumberFormat.getInstance(getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>integer&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>NumberFormat.getIntegerInstance(getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>currency&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>NumberFormat.getCurrencyInstance(getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>percent&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>NumberFormat.getPercentInstance(getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>SubformatPattern&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>new DecimalFormat(subformatPattern, new DecimalFormatSymbols(getLocale()))&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;ft&quot; rowspan=6>&lt;code>date&lt;/code>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>(none)&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>short&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getDateInstance(DateFormat.SHORT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>medium&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>long&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getDateInstance(DateFormat.LONG, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>full&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getDateInstance(DateFormat.FULL, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>SubformatPattern&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>new SimpleDateFormat(subformatPattern, getLocale())&#xA;&lt;tr>&#xA;&lt;td headers=&quot;ft&quot; rowspan=6>&lt;code>time&lt;/code>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>(none)&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>short&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>medium&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>long&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getTimeInstance(DateFormat.LONG, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;code>full&lt;/code>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>DateFormat.getTimeInstance(DateFormat.FULL, getLocale())&lt;/code>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>SubformatPattern&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>new SimpleDateFormat(subformatPattern, getLocale())&#xA;&lt;tr>&#xA;&lt;td headers=&quot;ft&quot;>&lt;code>choice&lt;/code>&#xA;&lt;td headers=&quot;fs&quot;>&lt;i>SubformatPattern&lt;/i>&#xA;&lt;td headers=&quot;sc&quot;>&lt;code>new ChoiceFormat(subformatPattern)&lt;/code>&#xA;&lt;/table>&#xA;&lt;p>&#xA;&#xA;&lt;h4>Usage Information&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Here are some examples of usage.&#xA;In real internationalized programs, the message format pattern and other&#xA;static strings will, of course, be obtained from resource bundles.&#xA;Other parameters will be dynamically determined at runtime.&#xA;&lt;p>&#xA;The first example uses the static method &lt;code>MessageFormat.format&lt;/code>,&#xA;which internally creates a &lt;code>MessageFormat&lt;/code> for one-time use:&#xA;&lt;blockquote>&lt;pre>&#xA;int planet = 7;&#xA;String event = &quot;a disturbance in the Force&quot;;&#xA;&#xA;String result = MessageFormat.format(&#xA;&quot;At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.&quot;,&#xA;planet, new Date(), event);&#xA;&lt;/pre>&lt;/blockquote>&#xA;The output is:&#xA;&lt;blockquote>&lt;pre>&#xA;At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The following example creates a &lt;code>MessageFormat&lt;/code> instance that&#xA;can be used repeatedly:&#xA;&lt;blockquote>&lt;pre>&#xA;int fileCount = 1273;&#xA;String diskName = &quot;MyDisk&quot;;&#xA;Object[] testArgs = {new Long(fileCount), diskName};&#xA;&#xA;MessageFormat form = new MessageFormat(&#xA;&quot;The disk \&quot;{1}\&quot; contains {0} file(s).&quot;);&#xA;&#xA;System.out.println(form.format(testArgs));&#xA;&lt;/pre>&lt;/blockquote>&#xA;The output with different values for &lt;code>fileCount&lt;/code>:&#xA;&lt;blockquote>&lt;pre>&#xA;The disk &quot;MyDisk&quot; contains 0 file(s).&#xA;The disk &quot;MyDisk&quot; contains 1 file(s).&#xA;The disk &quot;MyDisk&quot; contains 1,273 file(s).&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;For more sophisticated patterns, you can use a &lt;code>ChoiceFormat&lt;/code>&#xA;to produce correct forms for singular and plural:&#xA;&lt;blockquote>&lt;pre>&#xA;MessageFormat form = new MessageFormat(&quot;The disk \&quot;{1}\&quot; contains {0}.&quot;);&#xA;double[] filelimits = {0,1,2};&#xA;String[] filepart = {&quot;no files&quot;,&quot;one file&quot;,&quot;{0,number} files&quot;};&#xA;ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);&#xA;form.setFormatByArgumentIndex(0, fileform);&#xA;&#xA;int fileCount = 1273;&#xA;String diskName = &quot;MyDisk&quot;;&#xA;Object[] testArgs = {new Long(fileCount), diskName};&#xA;&#xA;System.out.println(form.format(testArgs));&#xA;&lt;/pre>&lt;/blockquote>&#xA;The output with different values for &lt;code>fileCount&lt;/code>:&#xA;&lt;blockquote>&lt;pre>&#xA;The disk &quot;MyDisk&quot; contains no files.&#xA;The disk &quot;MyDisk&quot; contains one file.&#xA;The disk &quot;MyDisk&quot; contains 1,273 files.&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;You can create the &lt;code>ChoiceFormat&lt;/code> programmatically, as in the&#xA;above example, or by using a pattern. See {@link ChoiceFormat}&#xA;for more information.&#xA;&lt;blockquote>&lt;pre>&#xA;form.applyPattern(&#xA;&quot;There {0,choice,0#are no files|1#is one file|1&lt;are {0,number,integer} files}.&quot;);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Note:&lt;/strong> As we see above, the string produced&#xA;by a &lt;code>ChoiceFormat&lt;/code> in &lt;code>MessageFormat&lt;/code> is treated specially;&#xA;occurences of '{' are used to indicated subformats, and cause recursion.&#xA;If you create both a &lt;code>MessageFormat&lt;/code> and &lt;code>ChoiceFormat&lt;/code>&#xA;programmatically (instead of using the string patterns), then be careful not to&#xA;produce a format that recurses on itself, which will cause an infinite loop.&#xA;&lt;p>&#xA;When a single argument is parsed more than once in the string, the last match&#xA;will be the final result of the parsing.  For example,&#xA;&lt;blockquote>&lt;pre>&#xA;MessageFormat mf = new MessageFormat(&quot;{0,number,#.##}, {0,number,#.#}&quot;);&#xA;Object[] objs = {new Double(3.1415)};&#xA;String result = mf.format( objs );&#xA;result now equals &quot;3.14, 3.1&quot;&#xA;objs = null;&#xA;objs = mf.parse(result, new ParsePosition(0));&#xA;objs now equals {new Double(3.1)}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Likewise, parsing with a MessageFormat object using patterns containing&#xA;multiple occurences of the same argument would return the last match.  For&#xA;example,&#xA;&lt;blockquote>&lt;pre>&#xA;MessageFormat mf = new MessageFormat(&quot;{0}, {0}, {0}&quot;);&#xA;String forParsing = &quot;x, y, z&quot;;&#xA;Object[] objs = mf.parse(forParsing, new ParsePosition(0));&#xA;result now equals {new String(&quot;z&quot;)}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Message formats are not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;@see          java.util.Locale&#xA;@see          Format&#xA;@see          NumberFormat&#xA;@see          DecimalFormat&#xA;@see          ChoiceFormat&#xA;@version      1.56, 12/19/03&#xA;@author       Mark Davis&#xA;" annotatedElement="_9_5_f720368_1110473546690_398392_8663"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_225426_14298" isSubstitutable="true" general="_9_5_f720368_1110473546690_941980_8657"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_171579_18955" name="Field">
              <ownedComment xmi:id="_10_5_622020d_1132928309711_473652_6261" body="Defines constants that are used as attribute keys in the&#xA;&lt;code>AttributedCharacterIterator&lt;/code> returned&#xA;from &lt;code>MessageFormat.formatToCharacterIterator&lt;/code>.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547784_171579_18955"/>
              <generalization xmi:id="_10_5_622020d_1132928321959_907222_14299" isSubstitutable="true" general="_9_5_f720368_1110473547784_45961_18947"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_483361_8671" name="PatternEntry" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928309761_773020_6272" body="Utility class for normalizing and merging patterns for collation.&#xA;This is to be used with MergeCollation for adding patterns to an&#xA;existing rule table.&#xA;@see        MergeCollation&#xA;@version    1.25 12/19/03&#xA;@author     Mark Davis, Helena Shih&#xA;" annotatedElement="_9_5_f720368_1110473546690_483361_8671"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_675509_18965" name="Parser" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321919_101432_14265" name="AbstractMap&lt;Attribute, Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928321919_982527_14266" signature="_10_5_622020d_1132928310793_662526_6950">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321919_70958_14267" formal="_10_5_622020d_1132928310793_848853_6951" actual="_9_5_f720368_1110473547315_824275_16567"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321919_960856_14268" formal="_10_5_622020d_1132928310793_121738_6953" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_305394_8621" name="CharacterBreakData" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_199190_8667" name="ParseException">
            <ownedComment xmi:id="_10_5_622020d_1132928309761_590656_6268" body="Signals that an error has been reached unexpectedly&#xA;while parsing.&#xA;@see java.lang.Exception&#xA;@see java.text.Format&#xA;@see java.text.FieldPosition&#xA;@version     1.16, 12/19/03&#xA;@author      Mark Davis&#xA;" annotatedElement="_9_5_f720368_1110473546690_199190_8667"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_718560_14302" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_459266_8611" name="AttributedString">
            <ownedComment xmi:id="_10_5_622020d_1132928309551_756741_6213" body="An AttributedString holds text and related attribute information. It&#xA;may be used as the actual data storage in some cases where a text&#xA;reader wants to access attributed text through the AttributedCharacterIterator&#xA;interface.&#xA;&#xA;@see AttributedCharacterIterator&#xA;@see Annotation&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_459266_8611"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547768_867196_18912" name="AttributedStringIterator" visibility="private" clientDependency="_10_5_622020d_1132928321919_137577_14264" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321919_137577_14264" name="" supplier="_9_5_f720368_1110473546690_363626_8609" client="_9_5_f720368_1110473547768_867196_18912" contract="_9_5_f720368_1110473546690_363626_8609"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547768_888363_18913" name="AttributeMap" visibility="private" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321919_419074_14269" isSubstitutable="true" general="_10_5_622020d_1132928321919_101432_14265"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_85929_8669" name="ParsePosition">
            <ownedComment xmi:id="_10_5_622020d_1132928309761_845561_6270" body="&lt;code>ParsePosition&lt;/code> is a simple class used by &lt;code>Format&lt;/code>&#xA;and its subclasses to keep track of the current position during parsing.&#xA;The &lt;code>parseObject&lt;/code> method in the various &lt;code>Format&lt;/code>&#xA;classes requires a &lt;code>ParsePosition&lt;/code> object as an argument.&#xA;&#xA;&lt;p>&#xA;By design, as you parse through a string with different formats,&#xA;you can use the same &lt;code>ParsePosition&lt;/code>, since the index parameter&#xA;records the current position.&#xA;&#xA;@version     1.19 12/19/03&#xA;@author      Mark Davis&#xA;@see         java.text.Format&#xA;" annotatedElement="_9_5_f720368_1110473546690_85929_8669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_324082_8639" name="DateFormat" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309621_596833_6237" body="DateFormat is an abstract class for date/time formatting subclasses which&#xA;formats and parses dates or time in a language-independent manner.&#xA;The date/time formatting subclass, such as SimpleDateFormat, allows for&#xA;formatting (i.e., date -> text), parsing (text -> date), and&#xA;normalization.  The date is represented as a &lt;code>Date&lt;/code> object or&#xA;as the milliseconds since January 1, 1970, 00:00:00 GMT.&#xA;&#xA;&lt;p>DateFormat provides many class methods for obtaining default date/time&#xA;formatters based on the default or a given locale and a number of formatting&#xA;styles. The formatting styles include FULL, LONG, MEDIUM, and SHORT. More&#xA;detail and examples of using these styles are provided in the method&#xA;descriptions.&#xA;&#xA;&lt;p>DateFormat helps you to format and parse dates for any locale.&#xA;Your code can be completely independent of the locale conventions for&#xA;months, days of the week, or even the calendar format: lunar vs. solar.&#xA;&#xA;&lt;p>To format a date for the current Locale, use one of the&#xA;static factory methods:&#xA;&lt;pre>&#xA;myString = DateFormat.getDateInstance().format(myDate);&#xA;&lt;/pre>&#xA;&lt;p>If you are formatting multiple dates, it is&#xA;more efficient to get the format and use it multiple times so that&#xA;the system doesn't have to fetch the information about the local&#xA;language and country conventions multiple times.&#xA;&lt;pre>&#xA;DateFormat df = DateFormat.getDateInstance();&#xA;for (int i = 0; i &lt; myDate.length; ++i) {&#xA;output.println(df.format(myDate[i]) + &quot;; &quot;);&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>To format a date for a different Locale, specify it in the&#xA;call to getDateInstance().&#xA;&lt;pre>&#xA;DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);&#xA;&lt;/pre>&#xA;&lt;p>You can use a DateFormat to parse also.&#xA;&lt;pre>&#xA;myDate = df.parse(myString);&#xA;&lt;/pre>&#xA;&lt;p>Use getDateInstance to get the normal date format for that country.&#xA;There are other static factory methods available.&#xA;Use getTimeInstance to get the time format for that country.&#xA;Use getDateTimeInstance to get a date and time format. You can pass in&#xA;different options to these factory methods to control the length of the&#xA;result; from SHORT to MEDIUM to LONG to FULL. The exact result depends&#xA;on the locale, but generally:&#xA;&lt;ul>&lt;li>SHORT is completely numeric, such as 12.13.52 or 3:30pm&#xA;&lt;li>MEDIUM is longer, such as Jan 12, 1952&#xA;&lt;li>LONG is longer, such as January 12, 1952 or 3:30:32pm&#xA;&lt;li>FULL is pretty completely specified, such as&#xA;Tuesday, April 12, 1952 AD or 3:30:42pm PST.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>You can also set the time zone on the format if you wish.&#xA;If you want even more control over the format or parsing,&#xA;(or want to give your users more control),&#xA;you can try casting the DateFormat you get from the factory methods&#xA;to a SimpleDateFormat. This will work for the majority&#xA;of countries; just remember to put it in a try block in case you&#xA;encounter an unusual one.&#xA;&#xA;&lt;p>You can also use forms of the parse and format methods with&#xA;ParsePosition and FieldPosition to&#xA;allow you to&#xA;&lt;ul>&lt;li>progressively parse through pieces of a string.&#xA;&lt;li>align any particular field, or find out where it is for selection&#xA;on the screen.&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Date formats are not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;@see          Format&#xA;@see          NumberFormat&#xA;@see          SimpleDateFormat&#xA;@see          java.util.Calendar&#xA;@see          java.util.GregorianCalendar&#xA;@see          java.util.TimeZone&#xA;@version      1.51 04/12/04&#xA;@author       Mark Davis, Chen-Lieh Huang, Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546690_324082_8639"/>
            <generalization xmi:id="_10_5_622020d_1132928321939_925478_14284" isSubstitutable="true" general="_9_5_f720368_1110473546690_941980_8657"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_830557_18931" name="Field">
              <ownedComment xmi:id="_10_5_622020d_1132928309611_93961_6235" body="Defines constants that are used as attribute keys in the&#xA;&lt;code>AttributedCharacterIterator&lt;/code> returned&#xA;from &lt;code>DateFormat.formatToCharacterIterator&lt;/code> and as&#xA;field identifiers in &lt;code>FieldPosition&lt;/code>.&#xA;&lt;p>&#xA;The class also provides two methods to map&#xA;between its constants and the corresponding Calendar constants.&#xA;&#xA;@since 1.4&#xA;@see java.util.Calendar&#xA;" annotatedElement="_9_5_f720368_1110473547784_830557_18931"/>
              <generalization xmi:id="_10_5_622020d_1132928321939_816500_14285" isSubstitutable="true" general="_9_5_f720368_1110473547784_45961_18947"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_897998_8677" name="RuleBasedBreakIterator" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928309811_48285_6278" body="&lt;p>A subclass of BreakIterator whose behavior is specified using a list of rules.&lt;/p>&#xA;&#xA;&lt;p>There are two kinds of rules, which are separated by semicolons: &lt;i>substitutions&lt;/i>&#xA;and &lt;i>regular expressions.&lt;/i>&lt;/p>&#xA;&#xA;&lt;p>A substitution rule defines a name that can be used in place of an expression. It&#xA;consists of a name, which is a string of characters contained in angle brackets, an equals&#xA;sign, and an expression. (There can be no whitespace on either side of the equals sign.)&#xA;To keep its syntactic meaning intact, the expression must be enclosed in parentheses or&#xA;square brackets. A substitution is visible after its definition, and is filled in using&#xA;simple textual substitution. Substitution definitions can contain other substitutions, as&#xA;long as those substitutions have been defined first. Substitutions are generally used to&#xA;make the regular expressions (which can get quite complex) shorted and easier to read.&#xA;They typically define either character categories or commonly-used subexpressions.&lt;/p>&#xA;&#xA;&lt;p>There is one special substitution.&amp;nbsp; If the description defines a substitution&#xA;called &quot;&lt;ignore>&quot;, the expression must be a [] expression, and the&#xA;expression defines a set of characters (the &quot;&lt;em>ignore characters&lt;/em>&quot;) that&#xA;will be transparent to the BreakIterator.&amp;nbsp; A sequence of characters will break the&#xA;same way it would if any ignore characters it contains are taken out.&amp;nbsp; Break&#xA;positions never occur befoer ignore characters.&lt;/p>&#xA;&#xA;&lt;p>A regular expression uses a subset of the normal Unix regular-expression syntax, and&#xA;defines a sequence of characters to be kept together. With one significant exception, the&#xA;iterator uses a longest-possible-match algorithm when matching text to regular&#xA;expressions. The iterator also treats descriptions containing multiple regular expressions&#xA;as if they were ORed together (i.e., as if they were separated by |).&lt;/p>&#xA;&#xA;&lt;p>The special characters recognized by the regular-expression parser are as follows:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=&quot;1&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>*&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Specifies that the expression preceding the asterisk may occur any number&#xA;of times (including not at all).&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>{}&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Encloses a sequence of characters that is optional.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>()&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Encloses a sequence of characters.&amp;nbsp; If followed by *, the sequence&#xA;repeats.&amp;nbsp; Otherwise, the parentheses are just a grouping device and a way to delimit&#xA;the ends of expressions containing |.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>|&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Separates two alternative sequences of characters.&amp;nbsp; Either one&#xA;sequence or the other, but not both, matches this expression.&amp;nbsp; The | character can&#xA;only occur inside ().&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>.&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Matches any character.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>*?&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Specifies a non-greedy asterisk.&amp;nbsp; *? works the same way as *, except&#xA;when there is overlap between the last group of characters in the expression preceding the&#xA;and the first group of characters following the *.&amp;nbsp; When there is this kind of&#xA;overlap, * will match the longest sequence of characters that match the expression before&#xA;the *, and *? will match the shortest sequence of characters matching the expression&#xA;before the *?.&amp;nbsp; For example, if you have &quot;xxyxyyyxyxyxxyxyxyy&quot; in the text,&#xA;&quot;x[xy]*x&quot; will match through to the last x (i.e., &quot;&lt;strong>xxyxyyyxyxyxxyxyx&lt;/strong>yy&quot;,&#xA;but &quot;x[xy]*?x&quot; will only match the first two xes (&quot;&lt;strong>xx&lt;/strong>yxyyyxyxyxxyxyxyy&quot;).&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>[]&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Specifies a group of alternative characters.&amp;nbsp; A [] expression will&#xA;match any single character that is specified in the [] expression.&amp;nbsp; For more on the&#xA;syntax of [] expressions, see below.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>/&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Specifies where the break position should go if text matches this&#xA;expression.&amp;nbsp; (e.g., &quot;[a-z]&amp;#42;/[:Zs:]*[1-0]&quot; will match if the iterator sees a run&#xA;of letters, followed by a run of whitespace, followed by a digit, but the break position&#xA;will actually go before the whitespace).&amp;nbsp; Expressions that don't contain / put the&#xA;break position at the end of the matching text.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>\&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Escape character.&amp;nbsp; The \ itself is ignored, but causes the next&#xA;character to be treated as literal character.&amp;nbsp; This has no effect for many&#xA;characters, but for the characters listed above, this deprives them of their special&#xA;meaning.&amp;nbsp; (There are no special escape sequences for Unicode characters, or tabs and&#xA;newlines; these are all handled by a higher-level protocol.&amp;nbsp; In a Java string,&#xA;&quot;\n&quot; will be converted to a literal newline character by the time the&#xA;regular-expression parser sees it.&amp;nbsp; Of course, this means that \ sequences that are&#xA;visible to the regexp parser must be written as \\ when inside a Java string.)&amp;nbsp; All&#xA;characters in the ASCII range except for letters, digits, and control characters are&#xA;reserved characters to the parser and must be preceded by \ even if they currently don't&#xA;mean anything.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>!&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>If ! appears at the beginning of a regular expression, it tells the regexp&#xA;parser that this expression specifies the backwards-iteration behavior of the iterator,&#xA;and not its normal iteration behavior.&amp;nbsp; This is generally only used in situations&#xA;where the automatically-generated backwards-iteration brhavior doesn't produce&#xA;satisfactory results and must be supplemented with extra client-specified rules.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>&lt;em>(all others)&lt;/em>&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>All other characters are treated as literal characters, which must match&#xA;the corresponding character(s) in the text exactly.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>Within a [] expression, a number of other special characters can be used to specify&#xA;groups of characters:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=&quot;1&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>-&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Specifies a range of matching characters.&amp;nbsp; For example&#xA;&quot;[a-p]&quot; matches all lowercase Latin letters from a to p (inclusive).&amp;nbsp; The -&#xA;sign specifies ranges of continuous Unicode numeric values, not ranges of characters in a&#xA;language's alphabetical order: &quot;[a-z]&quot; doesn't include capital letters, nor does&#xA;it include accented letters such as a-umlaut.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>::&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>A pair of colons containing a one- or two-letter code matches all&#xA;characters in the corresponding Unicode category.&amp;nbsp; The two-letter codes are the same&#xA;as the two-letter codes in the Unicode database (for example, &quot;[:Sc::Sm:]&quot;&#xA;matches all currency symbols and all math symbols).&amp;nbsp; Specifying a one-letter code is&#xA;the same as specifying all two-letter codes that begin with that letter (for example,&#xA;&quot;[:L:]&quot; matches all letters, and is equivalent to&#xA;&quot;[:Lu::Ll::Lo::Lm::Lt:]&quot;).&amp;nbsp; Anything other than a valid two-letter Unicode&#xA;category code or a single letter that begins a Unicode category code is illegal within&#xA;colons.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>[]&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>[] expressions can nest.&amp;nbsp; This has no effect, except when used in&#xA;conjunction with the ^ token.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>^&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>Excludes the character (or the characters in the [] expression) following&#xA;it from the group of characters.&amp;nbsp; For example, &quot;[a-z^p]&quot; matches all Latin&#xA;lowercase letters except p.&amp;nbsp; &quot;[:L:^[&amp;#92;u4e00-&amp;#92;u9fff]]&quot; matches all letters&#xA;except the Han ideographs.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td width=&quot;6%&quot;>&lt;em>(all others)&lt;/em>&lt;/td>&#xA;&lt;td width=&quot;94%&quot;>All other characters are treated as literal characters.&amp;nbsp; (For&#xA;example, &quot;[aeiou]&quot; specifies just the letters a, e, i, o, and u.)&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>For a more complete explanation, see &lt;a&#xA;href=&quot;http://www.ibm.com/java/education/boundaries/boundaries.html&quot;>http://www.ibm.com/java/education/boundaries/boundaries.html&lt;/a>.&#xA;&amp;nbsp; For examples, see the resource data (which is annotated).&lt;/p>&#xA;&#xA;@author Richard Gillam&#xA;@version $RCSFile$ $Revision: 1.1 $ $Date: 1998/11/05 19:32:04 $&#xA;" annotatedElement="_9_5_f720368_1110473546690_897998_8677"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_173107_14303" isSubstitutable="true" general="_9_5_f720368_1110473546690_986989_8619"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_23251_18973" name="SafeCharIterator" visibility="private" clientDependency="_10_5_622020d_1132928321959_770607_14304 _10_5_622020d_1132928321959_815154_14305" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321959_770607_14304" name="" supplier="_9_5_f720368_1110473546690_140017_8623" client="_9_5_f720368_1110473547784_23251_18973" contract="_9_5_f720368_1110473546690_140017_8623"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321959_815154_14305" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473547784_23251_18973" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_915400_8679" name="RuleBasedCollator">
            <ownedComment xmi:id="_10_5_622020d_1132928309862_255066_6280" body="The &lt;code>RuleBasedCollator&lt;/code> class is a concrete subclass of&#xA;&lt;code>Collator&lt;/code> that provides a simple, data-driven, table&#xA;collator.  With this class you can create a customized table-based&#xA;&lt;code>Collator&lt;/code>.  &lt;code>RuleBasedCollator&lt;/code> maps&#xA;characters to sort keys.&#xA;&#xA;&lt;p>&#xA;&lt;code>RuleBasedCollator&lt;/code> has the following restrictions&#xA;for efficiency (other subclasses may be used for more complex languages) :&#xA;&lt;ol>&#xA;&lt;li>If a special collation rule controlled by a &lt;modifier> is&#xA;specified it applies to the whole collator object.&#xA;&lt;li>All non-mentioned characters are at the end of the&#xA;collation order.&#xA;&lt;/ol>&#xA;&#xA;&lt;p>&#xA;The collation table is composed of a list of collation rules, where each&#xA;rule is of one of three forms:&#xA;&lt;pre>&#xA;&lt;modifier>&#xA;&lt;relation> &lt;text-argument>&#xA;&lt;reset> &lt;text-argument>&#xA;&lt;/pre>&#xA;The definitions of the rule elements is as follows:&#xA;&lt;UL Type=disc>&#xA;&lt;LI>&lt;strong>Text-Argument&lt;/strong>: A text-argument is any sequence of&#xA;characters, excluding special characters (that is, common&#xA;whitespace characters [0009-000D, 0020] and rule syntax characters&#xA;[0021-002F, 003A-0040, 005B-0060, 007B-007E]). If those&#xA;characters are desired, you can put them in single quotes&#xA;(e.g. ampersand => '&amp;'). Note that unquoted white space characters&#xA;are ignored; e.g. &lt;code>b c&lt;/code> is treated as &lt;code>bc&lt;/code>.&#xA;&lt;LI>&lt;strong>Modifier&lt;/strong>: There are currently two modifiers that&#xA;turn on special collation rules.&#xA;&lt;UL Type=square>&#xA;&lt;LI>'@' : Turns on backwards sorting of accents (secondary&#xA;differences), as in French.&#xA;&lt;LI>'!' : Turns on Thai/Lao vowel-consonant swapping.  If this&#xA;rule is in force when a Thai vowel of the range&#xA;&amp;#92;U0E40-&amp;#92;U0E44 precedes a Thai consonant of the range&#xA;&amp;#92;U0E01-&amp;#92;U0E2E OR a Lao vowel of the range &amp;#92;U0EC0-&amp;#92;U0EC4&#xA;precedes a Lao consonant of the range &amp;#92;U0E81-&amp;#92;U0EAE then&#xA;the vowel is placed after the consonant for collation&#xA;purposes.&#xA;&lt;/UL>&#xA;&lt;p>'@' : Indicates that accents are sorted backwards, as in French.&#xA;&lt;LI>&lt;strong>Relation&lt;/strong>: The relations are the following:&#xA;&lt;UL Type=square>&#xA;&lt;LI>'&lt;' : Greater, as a letter difference (primary)&#xA;&lt;LI>';' : Greater, as an accent difference (secondary)&#xA;&lt;LI>',' : Greater, as a case difference (tertiary)&#xA;&lt;LI>'=' : Equal&#xA;&lt;/UL>&#xA;&lt;LI>&lt;strong>Reset&lt;/strong>: There is a single reset&#xA;which is used primarily for contractions and expansions, but which&#xA;can also be used to add a modification at the end of a set of rules.&#xA;&lt;p>'&amp;' : Indicates that the next rule follows the position to where&#xA;the reset text-argument would be sorted.&#xA;&lt;/UL>&#xA;&#xA;&lt;p>&#xA;This sounds more complicated than it is in practice. For example, the&#xA;following are equivalent ways of expressing the same thing:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;a &lt; b &lt; c&#xA;a &lt; b &amp; b &lt; c&#xA;a &lt; c &amp; a &lt; b&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Notice that the order is important, as the subsequent item goes immediately&#xA;after the text-argument. The following are not equivalent:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;a &lt; b &amp; a &lt; c&#xA;a &lt; c &amp; a &lt; b&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Either the text-argument must already be present in the sequence, or some&#xA;initial substring of the text-argument must be present. (e.g. &quot;a &lt; b &amp; ae &lt;&#xA;e&quot; is valid since &quot;a&quot; is present in the sequence before &quot;ae&quot; is reset). In&#xA;this latter case, &quot;ae&quot; is not entered and treated as a single character;&#xA;instead, &quot;e&quot; is sorted as if it were expanded to two characters: &quot;a&quot;&#xA;followed by an &quot;e&quot;. This difference appears in natural languages: in&#xA;traditional Spanish &quot;ch&quot; is treated as though it contracts to a single&#xA;character (expressed as &quot;c &lt; ch &lt; d&quot;), while in traditional German&#xA;a-umlaut is treated as though it expanded to two characters&#xA;(expressed as &quot;a,A &lt; b,B ... &amp;ae;&amp;#92;u00e3&amp;AE;&amp;#92;u00c3&quot;).&#xA;[&amp;#92;u00e3 and &amp;#92;u00c3 are, of course, the escape sequences for a-umlaut.]&#xA;&lt;p>&#xA;&lt;strong>Ignorable Characters&lt;/strong>&#xA;&lt;p>&#xA;For ignorable characters, the first rule must start with a relation (the&#xA;examples we have used above are really fragments; &quot;a &lt; b&quot; really should be&#xA;&quot;&lt; a &lt; b&quot;). If, however, the first relation is not &quot;&lt;&quot;, then all the all&#xA;text-arguments up to the first &quot;&lt;&quot; are ignorable. For example, &quot;, - &lt; a &lt; b&quot;&#xA;makes &quot;-&quot; an ignorable character, as we saw earlier in the word&#xA;&quot;black-birds&quot;. In the samples for different languages, you see that most&#xA;accents are ignorable.&#xA;&#xA;&lt;p>&lt;strong>Normalization and Accents&lt;/strong>&#xA;&lt;p>&#xA;&lt;code>RuleBasedCollator&lt;/code> automatically processes its rule table to&#xA;include both pre-composed and combining-character versions of&#xA;accented characters.  Even if the provided rule string contains only&#xA;base characters and separate combining accent characters, the pre-composed&#xA;accented characters matching all canonical combinations of characters from&#xA;the rule string will be entered in the table.&#xA;&lt;p>&#xA;This allows you to use a RuleBasedCollator to compare accented strings&#xA;even when the collator is set to NO_DECOMPOSITION.  There are two caveats,&#xA;however.  First, if the strings to be collated contain combining&#xA;sequences that may not be in canonical order, you should set the collator to&#xA;CANONICAL_DECOMPOSITION or FULL_DECOMPOSITION to enable sorting of&#xA;combining sequences.  Second, if the strings contain characters with&#xA;compatibility decompositions (such as full-width and half-width forms),&#xA;you must use FULL_DECOMPOSITION, since the rule tables only include&#xA;canonical mappings.&#xA;&#xA;&lt;p>&lt;strong>Errors&lt;/strong>&#xA;&lt;p>&#xA;The following are errors:&#xA;&lt;UL Type=disc>&#xA;&lt;LI>A text-argument contains unquoted punctuation symbols&#xA;(e.g. &quot;a &lt; b-c &lt; d&quot;).&#xA;&lt;LI>A relation or reset character not followed by a text-argument&#xA;(e.g. &quot;a &lt; ,b&quot;).&#xA;&lt;LI>A reset where the text-argument (or an initial substring of the&#xA;text-argument) is not already in the sequence.&#xA;(e.g. &quot;a &lt; b &amp; e &lt; f&quot;)&#xA;&lt;/UL>&#xA;If you produce one of these errors, a &lt;code>RuleBasedCollator&lt;/code> throws&#xA;a &lt;code>ParseException&lt;/code>.&#xA;&#xA;&lt;p>&lt;strong>Examples&lt;/strong>&#xA;&lt;p>Simple:     &quot;&lt; a &lt; b &lt; c &lt; d&quot;&#xA;&lt;p>Norwegian:  &quot;&lt; a,A&lt; b,B&lt; c,C&lt; d,D&lt; e,E&lt; f,F&lt; g,G&lt; h,H&lt; i,I&lt; j,J&#xA;&lt; k,K&lt; l,L&lt; m,M&lt; n,N&lt; o,O&lt; p,P&lt; q,Q&lt; r,R&lt; s,S&lt; t,T&#xA;&lt; u,U&lt; v,V&lt; w,W&lt; x,X&lt; y,Y&lt; z,Z&#xA;&lt; &amp;#92;u00E5=a&amp;#92;u030A,&amp;#92;u00C5=A&amp;#92;u030A&#xA;;aa,AA&lt; &amp;#92;u00E6,&amp;#92;u00C6&lt; &amp;#92;u00F8,&amp;#92;u00D8&quot;&#xA;&#xA;&lt;p>&#xA;Normally, to create a rule-based Collator object, you will use&#xA;&lt;code>Collator&lt;/code>'s factory method &lt;code>getInstance&lt;/code>.&#xA;However, to create a rule-based Collator object with specialized&#xA;rules tailored to your needs, you construct the &lt;code>RuleBasedCollator&lt;/code>&#xA;with the rules contained in a &lt;code>String&lt;/code> object. For example:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;String Simple = &quot;&lt; a&lt; b&lt; c&lt; d&quot;;&#xA;RuleBasedCollator mySimple = new RuleBasedCollator(Simple);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Or:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;String Norwegian = &quot;&lt; a,A&lt; b,B&lt; c,C&lt; d,D&lt; e,E&lt; f,F&lt; g,G&lt; h,H&lt; i,I&lt; j,J&quot; +&#xA;&quot;&lt; k,K&lt; l,L&lt; m,M&lt; n,N&lt; o,O&lt; p,P&lt; q,Q&lt; r,R&lt; s,S&lt; t,T&quot; +&#xA;&quot;&lt; u,U&lt; v,V&lt; w,W&lt; x,X&lt; y,Y&lt; z,Z&quot; +&#xA;&quot;&lt; &amp;#92;u00E5=a&amp;#92;u030A,&amp;#92;u00C5=A&amp;#92;u030A&quot; +&#xA;&quot;;aa,AA&lt; &amp;#92;u00E6,&amp;#92;u00C6&lt; &amp;#92;u00F8,&amp;#92;u00D8&quot;;&#xA;RuleBasedCollator myNorwegian = new RuleBasedCollator(Norwegian);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Combining &lt;code>Collator&lt;/code>s is as simple as concatenating strings.&#xA;Here's an example that combines two &lt;code>Collator&lt;/code>s from two&#xA;different locales:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Create an en_US Collator object&#xA;RuleBasedCollator en_USCollator = (RuleBasedCollator)&#xA;Collator.getInstance(new Locale(&quot;en&quot;, &quot;US&quot;, &quot;&quot;));&#xA;Create a da_DK Collator object&#xA;RuleBasedCollator da_DKCollator = (RuleBasedCollator)&#xA;Collator.getInstance(new Locale(&quot;da&quot;, &quot;DK&quot;, &quot;&quot;));&#xA;Combine the two&#xA;First, get the collation rules from en_USCollator&#xA;String en_USRules = en_USCollator.getRules();&#xA;Second, get the collation rules from da_DKCollator&#xA;String da_DKRules = da_DKCollator.getRules();&#xA;RuleBasedCollator newCollator =&#xA;new RuleBasedCollator(en_USRules + da_DKRules);&#xA;newCollator has the combined rules&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Another more interesting example would be to make changes on an existing&#xA;table to create a new &lt;code>Collator&lt;/code> object.  For example, add&#xA;&quot;&amp;C&lt; ch, cH, Ch, CH&quot; to the &lt;code>en_USCollator&lt;/code> object to create&#xA;your own:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Create a new Collator object with additional rules&#xA;String addRules = &quot;&amp;C&lt; ch, cH, Ch, CH&quot;;&#xA;RuleBasedCollator myCollator =&#xA;new RuleBasedCollator(en_USCollator + addRules);&#xA;myCollator contains the new rules&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The following example demonstrates how to change the order of&#xA;non-spacing accents,&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;old rule&#xA;String oldRules = &quot;=&amp;#92;u0301;&amp;#92;u0300;&amp;#92;u0302;&amp;#92;u0308&quot;    // main accents&#xA;+ &quot;;&amp;#92;u0327;&amp;#92;u0303;&amp;#92;u0304;&amp;#92;u0305&quot;    // main accents&#xA;+ &quot;;&amp;#92;u0306;&amp;#92;u0307;&amp;#92;u0309;&amp;#92;u030A&quot;    // main accents&#xA;+ &quot;;&amp;#92;u030B;&amp;#92;u030C;&amp;#92;u030D;&amp;#92;u030E&quot;    // main accents&#xA;+ &quot;;&amp;#92;u030F;&amp;#92;u0310;&amp;#92;u0311;&amp;#92;u0312&quot;    // main accents&#xA;+ &quot;&lt; a , A ; ae, AE ; &amp;#92;u00e6 , &amp;#92;u00c6&quot;&#xA;+ &quot;&lt; b , B &lt; c, C &lt; e, E &amp; C &lt; d, D&quot;;&#xA;change the order of accent characters&#xA;String addOn = &quot;&amp; &amp;#92;u0300 ; &amp;#92;u0308 ; &amp;#92;u0302&quot;;&#xA;RuleBasedCollator myCollator = new RuleBasedCollator(oldRules + addOn);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The last example shows how to put new primary ordering in before the&#xA;default setting. For example, in Japanese &lt;code>Collator&lt;/code>, you&#xA;can either sort English characters before or after Japanese characters,&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;get en_US Collator rules&#xA;RuleBasedCollator en_USCollator = (RuleBasedCollator)Collator.getInstance(Locale.US);&#xA;add a few Japanese character to sort before English characters&#xA;suppose the last character before the first base letter 'a' in&#xA;the English collation rule is &amp;#92;u2212&#xA;String jaString = &quot;&amp; &amp;#92;u2212 &lt; &amp;#92;u3041, &amp;#92;u3042 &lt; &amp;#92;u3043, &amp;#92;u3044&quot;;&#xA;RuleBasedCollator myJapaneseCollator = new&#xA;RuleBasedCollator(en_USCollator.getRules() + jaString);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;@see        Collator&#xA;@see        CollationElementIterator&#xA;@version    1.25 07/24/98&#xA;@author     Helena Shih, Laura Werner, Richard Gillam&#xA;" annotatedElement="_9_5_f720368_1110473546690_915400_8679"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_514022_14306" isSubstitutable="true" general="_9_5_f720368_1110473546690_549555_8637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_557076_8633" name="CollationKey" clientDependency="_10_5_622020d_1132928321929_182047_14278" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309611_131244_6230" body="A &lt;code>CollationKey&lt;/code> represents a &lt;code>String&lt;/code> under the&#xA;rules of a specific &lt;code>Collator&lt;/code> object. Comparing two&#xA;&lt;code>CollationKey&lt;/code>s returns the relative order of the&#xA;&lt;code>String&lt;/code>s they represent. Using &lt;code>CollationKey&lt;/code>s&#xA;to compare &lt;code>String&lt;/code>s is generally faster than using&#xA;&lt;code>Collator.compare&lt;/code>. Thus, when the &lt;code>String&lt;/code>s&#xA;must be compared multiple times, for example when sorting a list&#xA;of &lt;code>String&lt;/code>s. It's more efficient to use &lt;code>CollationKey&lt;/code>s.&#xA;&#xA;&lt;p>&#xA;You can not create &lt;code>CollationKey&lt;/code>s directly. Rather,&#xA;generate them by calling &lt;code>Collator.getCollationKey&lt;/code>.&#xA;You can only compare &lt;code>CollationKey&lt;/code>s generated from&#xA;the same &lt;code>Collator&lt;/code> object.&#xA;&#xA;&lt;p>&#xA;Generating a &lt;code>CollationKey&lt;/code> for a &lt;code>String&lt;/code>&#xA;involves examining the entire &lt;code>String&lt;/code>&#xA;and converting it to series of bits that can be compared bitwise. This&#xA;allows fast comparisons once the keys are generated. The cost of generating&#xA;keys is recouped in faster comparisons when &lt;code>String&lt;/code>s need&#xA;to be compared many times. On the other hand, the result of a comparison&#xA;is often determined by the first couple of characters of each &lt;code>String&lt;/code>.&#xA;&lt;code>Collator.compare&lt;/code> examines only as many characters as it needs which&#xA;allows it to be faster when doing single comparisons.&#xA;&lt;p>&#xA;The following example shows how &lt;code>CollationKey&lt;/code>s might be used&#xA;to sort a list of &lt;code>String&lt;/code>s.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Create an array of CollationKeys for the Strings to be sorted.&#xA;Collator myCollator = Collator.getInstance();&#xA;CollationKey[] keys = new CollationKey[3];&#xA;keys[0] = myCollator.getCollationKey(&quot;Tom&quot;);&#xA;keys[1] = myCollator.getCollationKey(&quot;Dick&quot;);&#xA;keys[2] = myCollator.getCollationKey(&quot;Harry&quot;);&#xA;sort( keys );&#xA;&lt;br>&#xA;...&#xA;&lt;br>&#xA;Inside body of sort routine, compare keys this way&#xA;if( keys[i].compareTo( keys[j] ) > 0 )&#xA;swap keys[i] and keys[j]&#xA;&lt;br>&#xA;...&#xA;&lt;br>&#xA;Finally, when we've returned from sort.&#xA;System.out.println( keys[0].getSourceString() );&#xA;System.out.println( keys[1].getSourceString() );&#xA;System.out.println( keys[2].getSourceString() );&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;@see          Collator&#xA;@see          RuleBasedCollator&#xA;@version      1.18, 05/05/04&#xA;@author       Helena Shih&#xA;" annotatedElement="_9_5_f720368_1110473546690_557076_8633"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321929_182047_14278" name="" supplier="_10_5_622020d_1132928321929_564602_14275" client="_9_5_f720368_1110473546690_557076_8633" contract="_10_5_622020d_1132928321929_564602_14275"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_894059_8653" name="EntryPair" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_798447_6251" body="This is used for building contracting character tables.  entryName&#xA;is the contracting character name and value is its collation&#xA;order.&#xA;" annotatedElement="_9_5_f720368_1110473546690_894059_8653"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_941980_8657" name="Format" clientDependency="_10_5_622020d_1132928321959_738916_14295 _10_5_622020d_1132928321959_825813_14296" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309711_851178_6258" body="&lt;code>Format&lt;/code> is an abstract base class for formatting locale-sensitive&#xA;information such as dates, messages, and numbers.&#xA;&#xA;&lt;p>&#xA;&lt;code>Format&lt;/code> defines the programming interface for formatting&#xA;locale-sensitive objects into &lt;code>String&lt;/code>s (the&#xA;&lt;code>format&lt;/code> method) and for parsing &lt;code>String&lt;/code>s back&#xA;into objects (the &lt;code>parseObject&lt;/code> method).&#xA;&#xA;&lt;p>&#xA;Generally, a format's &lt;code>parseObject&lt;/code> method must be able to parse&#xA;any string formatted by its &lt;code>format&lt;/code> method. However, there may&#xA;be exceptional cases where this is not possible. For example, a&#xA;&lt;code>format&lt;/code> method might create two adjacent integer numbers with&#xA;no separator in between, and in this case the &lt;code>parseObject&lt;/code> could&#xA;not tell which digits belong to which number.&#xA;&#xA;&lt;h4>Subclassing&lt;/h4>&#xA;&#xA;&lt;p>&#xA;The Java 2 platform provides three specialized subclasses of &lt;code>Format&lt;/code>--&#xA;&lt;code>DateFormat&lt;/code>, &lt;code>MessageFormat&lt;/code>, and&#xA;&lt;code>NumberFormat&lt;/code>--for formatting dates, messages, and numbers,&#xA;respectively.&#xA;&lt;p>&#xA;Concrete subclasses must implement three methods:&#xA;&lt;ol>&#xA;&lt;li> &lt;code>format(Object obj, StringBuffer toAppendTo, FieldPosition pos)&lt;/code>&#xA;&lt;li> &lt;code>formatToCharacterIterator(Object obj)&lt;/code>&#xA;&lt;li> &lt;code>parseObject(String source, ParsePosition pos)&lt;/code>&#xA;&lt;/ol>&#xA;These general methods allow polymorphic parsing and formatting of objects&#xA;and are used, for example, by &lt;code>MessageFormat&lt;/code>.&#xA;Subclasses often also provide additional &lt;code>format&lt;/code> methods for&#xA;specific input types as well as &lt;code>parse&lt;/code> methods for specific&#xA;result types. Any &lt;code>parse&lt;/code> method that does not take a&#xA;&lt;code>ParsePosition&lt;/code> argument should throw &lt;code>ParseException&lt;/code>&#xA;when no text in the required format is at the beginning of the input text.&#xA;&#xA;&lt;p>&#xA;Most subclasses will also implement the following factory methods:&#xA;&lt;ol>&#xA;&lt;li>&#xA;&lt;code>getInstance&lt;/code> for getting a useful format object appropriate&#xA;for the current locale&#xA;&lt;li>&#xA;&lt;code>getInstance(Locale)&lt;/code> for getting a useful format&#xA;object appropriate for the specified locale&#xA;&lt;/ol>&#xA;In addition, some subclasses may also implement other&#xA;&lt;code>getXxxxInstance&lt;/code> methods for more specialized control. For&#xA;example, the &lt;code>NumberFormat&lt;/code> class provides&#xA;&lt;code>getPercentInstance&lt;/code> and &lt;code>getCurrencyInstance&lt;/code>&#xA;methods for getting specialized number formatters.&#xA;&#xA;&lt;p>&#xA;Subclasses of &lt;code>Format&lt;/code> that allow programmers to create objects&#xA;for locales (with &lt;code>getInstance(Locale)&lt;/code> for example)&#xA;must also implement the following class method:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public static Locale[] getAvailableLocales()&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;And finally subclasses may define a set of constants to identify the various&#xA;fields in the formatted output. These constants are used to create a FieldPosition&#xA;object which identifies what information is contained in the field and its&#xA;position in the formatted result. These constants should be named&#xA;&lt;code>&lt;em>item&lt;/em>_FIELD&lt;/code> where &lt;code>&lt;em>item&lt;/em>&lt;/code> identifies&#xA;the field. For examples of these constants, see &lt;code>ERA_FIELD&lt;/code> and its&#xA;friends in {@link DateFormat}.&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Formats are generally not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;@see          java.text.ParsePosition&#xA;@see          java.text.FieldPosition&#xA;@see          java.text.NumberFormat&#xA;@see          java.text.DateFormat&#xA;@see          java.text.MessageFormat&#xA;@version      1.34, 12/19/03&#xA;@author       Mark Davis&#xA;" annotatedElement="_9_5_f720368_1110473546690_941980_8657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321959_738916_14295" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_941980_8657" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321959_825813_14296" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_941980_8657" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_45961_18947" name="Field">
              <ownedComment xmi:id="_10_5_622020d_1132928309711_211912_6255" body="Defines constants that are used as attribute keys in the&#xA;&lt;code>AttributedCharacterIterator&lt;/code> returned&#xA;from &lt;code>Format.formatToCharacterIterator&lt;/code> and as&#xA;field identifiers in &lt;code>FieldPosition&lt;/code>.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547784_45961_18947"/>
              <generalization xmi:id="_10_5_622020d_1132928321959_278789_14297" isSubstitutable="true" general="_9_5_f720368_1110473547315_824275_16567"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547784_970079_18950" name="FieldDelegate" visibility="package" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309711_235177_6256" body="FieldDelegate is notified by the various &lt;code>Format&lt;/code>&#xA;implementations as they are formatting the Objects. This allows for&#xA;storage of the individual sections of the formatted String for&#xA;later use, such as in a &lt;code>FieldPosition&lt;/code> or for an&#xA;&lt;code>AttributedCharacterIterator&lt;/code>.&#xA;&lt;p>&#xA;Delegates should NOT assume that the &lt;code>Format&lt;/code> will notify&#xA;the delegate of fields in any particular order.&#xA;&#xA;@see FieldPosition.Delegate&#xA;@see CharacterIteratorFieldDelegate&#xA;" annotatedElement="_9_5_f720368_1110473547784_970079_18950"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_19230_8607" name="Annotation">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_717926_6208" body="An Annotation object is used as a wrapper for a text attribute value if&#xA;the attribute has annotation characteristics. These characteristics are:&#xA;&lt;ul>&#xA;&lt;li>The text range that the attribute is applied to is critical to the&#xA;semantics of the range. That means, the attribute cannot be applied to subranges&#xA;of the text range that it applies to, and, if two adjacent text ranges have&#xA;the same value for this attribute, the attribute still cannot be applied to&#xA;the combined range as a whole with this value.&#xA;&lt;li>The attribute or its value usually do no longer apply if the underlying text is&#xA;changed.&#xA;&lt;/ul>&#xA;&#xA;An example is grammatical information attached to a sentence:&#xA;For the previous sentence, you can say that &quot;an example&quot;&#xA;is the subject, but you cannot say the same about &quot;an&quot;, &quot;example&quot;, or &quot;exam&quot;.&#xA;When the text is changed, the grammatical information typically becomes invalid.&#xA;Another example is Japanese reading information (yomi).&#xA;&#xA;&lt;p>&#xA;Wrapping the attribute value into an Annotation object guarantees that&#xA;adjacent text runs don't get merged even if the attribute values are equal,&#xA;and indicates to text containers that the attribute should be discarded if&#xA;the underlying text is modified.&#xA;&#xA;@see AttributedCharacterIterator&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_19230_8607"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_427736_8631" name="CollationElementIterator" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309611_510832_6228" body="The &lt;code>CollationElementIterator&lt;/code> class is used as an iterator&#xA;to walk through each character of an international string. Use the iterator&#xA;to return the ordering priority of the positioned character. The ordering&#xA;priority of a character, which we refer to as a key, defines how a character&#xA;is collated in the given collation object.&#xA;&#xA;&lt;p>&#xA;For example, consider the following in Spanish:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;&quot;ca&quot; -> the first key is key('c') and second key is key('a').&#xA;&quot;cha&quot; -> the first key is key('ch') and second key is key('a').&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;And in German,&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;&quot;\u00e4b&quot;-> the first key is key('a'), the second key is key('e'), and&#xA;the third key is key('b').&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;The key of a character is an integer composed of primary order(short),&#xA;secondary order(byte), and tertiary order(byte). Java strictly defines&#xA;the size and signedness of its primitive data types. Therefore, the static&#xA;functions &lt;code>primaryOrder&lt;/code>, &lt;code>secondaryOrder&lt;/code>, and&#xA;&lt;code>tertiaryOrder&lt;/code> return &lt;code>int&lt;/code>, &lt;code>short&lt;/code>,&#xA;and &lt;code>short&lt;/code> respectively to ensure the correctness of the key&#xA;value.&#xA;&#xA;&lt;p>&#xA;Example of the iterator usage,&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;&#xA;String testString = &quot;This is a test&quot;;&#xA;RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)Collator.getInstance();&#xA;CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);&#xA;int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&lt;code>CollationElementIterator.next&lt;/code> returns the collation order&#xA;of the next character. A collation order consists of primary order,&#xA;secondary order and tertiary order. The data type of the collation&#xA;order is &lt;strong>int&lt;/strong>. The first 16 bits of a collation order&#xA;is its primary order; the next 8 bits is the secondary order and the&#xA;last 8 bits is the tertiary order.&#xA;&#xA;@see                Collator&#xA;@see                RuleBasedCollator&#xA;@version            1.24 07/27/98&#xA;@author             Helena Shih, Laura Werner, Richard Gillam&#xA;" annotatedElement="_9_5_f720368_1110473546690_427736_8631"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321929_11005_14279" name="Comparator&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928321929_167202_14280" signature="_10_5_622020d_1132928310923_924476_7163">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321929_457621_14281" formal="_10_5_622020d_1132928310923_956594_7164" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_140017_8623" name="CharacterIterator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309561_305986_6222" body="This interface defines a protocol for bidirectional iteration over text.&#xA;The iterator iterates over a bounded sequence of characters.  Characters&#xA;are indexed with values beginning with the value returned by getBeginIndex() and&#xA;continuing through the value returned by getEndIndex()-1.&#xA;&lt;p>&#xA;Iterators maintain a current character index, whose valid range is from&#xA;getBeginIndex() to getEndIndex(); the value getEndIndex() is included to allow&#xA;handling of zero-length text ranges and for historical reasons.&#xA;The current index can be retrieved by calling getIndex() and set directly&#xA;by calling setIndex(), first(), and last().&#xA;&lt;p>&#xA;The methods previous() and next() are used for iteration. They return DONE if&#xA;they would move outside the range from getBeginIndex() to getEndIndex() -1,&#xA;signaling that the iterator has reached the end of the sequence. DONE is&#xA;also returned by other methods to indicate that the current index is&#xA;outside this range.&#xA;&#xA;&lt;P>Examples:&lt;P>&#xA;&#xA;Traverse the text from start to finish&#xA;&lt;pre>&#xA;public void traverseForward(CharacterIterator iter) {&#xA;for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {&#xA;processChar(c);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;Traverse the text backwards, from end to start&#xA;&lt;pre>&#xA;public void traverseBackward(CharacterIterator iter) {&#xA;for(char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {&#xA;processChar(c);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;Traverse both forward and backward from a given position in the text.&#xA;Calls to notBoundary() in this example represents some&#xA;additional stopping criteria.&#xA;&lt;pre>&#xA;public void traverseOut(CharacterIterator iter, int pos) {&#xA;for (char c = iter.setIndex(pos);&#xA;c != CharacterIterator.DONE &amp;&amp; notBoundary(c);&#xA;c = iter.next()) {&#xA;}&#xA;int end = iter.getIndex();&#xA;for (char c = iter.setIndex(pos);&#xA;c != CharacterIterator.DONE &amp;&amp; notBoundary(c);&#xA;c = iter.previous()) {&#xA;}&#xA;int start = iter.getIndex();&#xA;processSection(start, end);&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@see StringCharacterIterator&#xA;@see AttributedCharacterIterator&#xA;" annotatedElement="_9_5_f720368_1110473546690_140017_8623"/>
            <generalization xmi:id="_10_5_622020d_1132928321929_171744_14272" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_285600_8683" name="SimpleDateFormat">
            <ownedComment xmi:id="_10_5_622020d_1132928309902_254938_6282" body="&lt;code>SimpleDateFormat&lt;/code> is a concrete class for formatting and&#xA;parsing dates in a locale-sensitive manner. It allows for formatting&#xA;(date -> text), parsing (text -> date), and normalization.&#xA;&#xA;&lt;p>&#xA;&lt;code>SimpleDateFormat&lt;/code> allows you to start by choosing&#xA;any user-defined patterns for date-time formatting. However, you&#xA;are encouraged to create a date-time formatter with either&#xA;&lt;code>getTimeInstance&lt;/code>, &lt;code>getDateInstance&lt;/code>, or&#xA;&lt;code>getDateTimeInstance&lt;/code> in &lt;code>DateFormat&lt;/code>. Each&#xA;of these class methods can return a date/time formatter initialized&#xA;with a default format pattern. You may modify the format pattern&#xA;using the &lt;code>applyPattern&lt;/code> methods as desired.&#xA;For more information on using these methods, see&#xA;{@link DateFormat}.&#xA;&#xA;&lt;h4>Date and Time Patterns&lt;/h4>&#xA;&lt;p>&#xA;Date and time formats are specified by &lt;em>date and time pattern&lt;/em>&#xA;strings.&#xA;Within date and time pattern strings, unquoted letters from&#xA;&lt;code>'A'&lt;/code> to &lt;code>'Z'&lt;/code> and from &lt;code>'a'&lt;/code> to&#xA;&lt;code>'z'&lt;/code> are interpreted as pattern letters representing the&#xA;components of a date or time string.&#xA;Text can be quoted using single quotes (&lt;code>'&lt;/code>) to avoid&#xA;interpretation.&#xA;&lt;code>&quot;''&quot;&lt;/code> represents a single quote.&#xA;All other characters are not interpreted; they're simply copied into the&#xA;output string during formatting or matched against the input string&#xA;during parsing.&#xA;&lt;p>&#xA;The following pattern letters are defined (all other characters from&#xA;&lt;code>'A'&lt;/code> to &lt;code>'Z'&lt;/code> and from &lt;code>'a'&lt;/code> to&#xA;&lt;code>'z'&lt;/code> are reserved):&#xA;&lt;blockquote>&#xA;&lt;table border=0 cellspacing=3 cellpadding=0 summary=&quot;Chart shows pattern letters, date/time component, presentation, and examples.&quot;>&#xA;&lt;tr bgcolor=&quot;#ccccff&quot;>&#xA;&lt;th align=left>Letter&#xA;&lt;th align=left>Date or Time Component&#xA;&lt;th align=left>Presentation&#xA;&lt;th align=left>Examples&#xA;&lt;tr>&#xA;&lt;td>&lt;code>G&lt;/code>&#xA;&lt;td>Era designator&#xA;&lt;td>&lt;a href=&quot;#text&quot;>Text&lt;/a>&#xA;&lt;td>&lt;code>AD&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>y&lt;/code>&#xA;&lt;td>Year&#xA;&lt;td>&lt;a href=&quot;#year&quot;>Year&lt;/a>&#xA;&lt;td>&lt;code>1996&lt;/code>; &lt;code>96&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>M&lt;/code>&#xA;&lt;td>Month in year&#xA;&lt;td>&lt;a href=&quot;#month&quot;>Month&lt;/a>&#xA;&lt;td>&lt;code>July&lt;/code>; &lt;code>Jul&lt;/code>; &lt;code>07&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>w&lt;/code>&#xA;&lt;td>Week in year&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>27&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>W&lt;/code>&#xA;&lt;td>Week in month&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>2&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>D&lt;/code>&#xA;&lt;td>Day in year&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>189&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>d&lt;/code>&#xA;&lt;td>Day in month&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>10&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>F&lt;/code>&#xA;&lt;td>Day of week in month&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>2&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>E&lt;/code>&#xA;&lt;td>Day in week&#xA;&lt;td>&lt;a href=&quot;#text&quot;>Text&lt;/a>&#xA;&lt;td>&lt;code>Tuesday&lt;/code>; &lt;code>Tue&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>a&lt;/code>&#xA;&lt;td>Am/pm marker&#xA;&lt;td>&lt;a href=&quot;#text&quot;>Text&lt;/a>&#xA;&lt;td>&lt;code>PM&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>H&lt;/code>&#xA;&lt;td>Hour in day (0-23)&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>0&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>k&lt;/code>&#xA;&lt;td>Hour in day (1-24)&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>24&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>K&lt;/code>&#xA;&lt;td>Hour in am/pm (0-11)&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>0&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>h&lt;/code>&#xA;&lt;td>Hour in am/pm (1-12)&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>12&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>m&lt;/code>&#xA;&lt;td>Minute in hour&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>30&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>s&lt;/code>&#xA;&lt;td>Second in minute&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>55&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>S&lt;/code>&#xA;&lt;td>Millisecond&#xA;&lt;td>&lt;a href=&quot;#number&quot;>Number&lt;/a>&#xA;&lt;td>&lt;code>978&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>z&lt;/code>&#xA;&lt;td>Time zone&#xA;&lt;td>&lt;a href=&quot;#timezone&quot;>General time zone&lt;/a>&#xA;&lt;td>&lt;code>Pacific Standard Time&lt;/code>; &lt;code>PST&lt;/code>; &lt;code>GMT-08:00&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>Z&lt;/code>&#xA;&lt;td>Time zone&#xA;&lt;td>&lt;a href=&quot;#rfc822timezone&quot;>RFC 822 time zone&lt;/a>&#xA;&lt;td>&lt;code>-0800&lt;/code>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;Pattern letters are usually repeated, as their number determines the&#xA;exact presentation:&#xA;&lt;ul>&#xA;&lt;li>&lt;strong>&lt;a name=&quot;text&quot;>Text:&lt;/a>&lt;/strong>&#xA;For formatting, if the number of pattern letters is 4 or more,&#xA;the full form is used; otherwise a short or abbreviated form&#xA;is used if available.&#xA;For parsing, both forms are accepted, independent of the number&#xA;of pattern letters.&#xA;&lt;li>&lt;strong>&lt;a name=&quot;number&quot;>Number:&lt;/a>&lt;/strong>&#xA;For formatting, the number of pattern letters is the minimum&#xA;number of digits, and shorter numbers are zero-padded to this amount.&#xA;For parsing, the number of pattern letters is ignored unless&#xA;it's needed to separate two adjacent fields.&#xA;&lt;li>&lt;strong>&lt;a name=&quot;year&quot;>Year:&lt;/a>&lt;/strong>&#xA;For formatting, if the number of pattern letters is 2, the year&#xA;is truncated to 2 digits; otherwise it is interpreted as a&#xA;&lt;a href=&quot;#number&quot;>number&lt;/a>.&#xA;&lt;p>For parsing, if the number of pattern letters is more than 2,&#xA;the year is interpreted literally, regardless of the number of&#xA;digits. So using the pattern &quot;MM/dd/yyyy&quot;, &quot;01/11/12&quot; parses to&#xA;Jan 11, 12 A.D.&#xA;&lt;p>For parsing with the abbreviated year pattern (&quot;y&quot; or &quot;yy&quot;),&#xA;&lt;code>SimpleDateFormat&lt;/code> must interpret the abbreviated year&#xA;relative to some century.  It does this by adjusting dates to be&#xA;within 80 years before and 20 years after the time the &lt;code>SimpleDateFormat&lt;/code>&#xA;instance is created. For example, using a pattern of &quot;MM/dd/yy&quot; and a&#xA;&lt;code>SimpleDateFormat&lt;/code> instance created on Jan 1, 1997,  the string&#xA;&quot;01/11/12&quot; would be interpreted as Jan 11, 2012 while the string &quot;05/04/64&quot;&#xA;would be interpreted as May 4, 1964.&#xA;During parsing, only strings consisting of exactly two digits, as defined by&#xA;{@link Character#isDigit(char)}, will be parsed into the default century.&#xA;Any other numeric string, such as a one digit string, a three or more digit&#xA;string, or a two digit string that isn't all digits (for example, &quot;-1&quot;), is&#xA;interpreted literally.  So &quot;01/02/3&quot; or &quot;01/02/003&quot; are parsed, using the&#xA;same pattern, as Jan 2, 3 AD.  Likewise, &quot;01/02/-3&quot; is parsed as Jan 2, 4 BC.&#xA;&lt;li>&lt;strong>&lt;a name=&quot;month&quot;>Month:&lt;/a>&lt;/strong>&#xA;If the number of pattern letters is 3 or more, the month is&#xA;interpreted as &lt;a href=&quot;#text&quot;>text&lt;/a>; otherwise,&#xA;it is interpreted as a &lt;a href=&quot;#number&quot;>number&lt;/a>.&#xA;&lt;li>&lt;strong>&lt;a name=&quot;timezone&quot;>General time zone:&lt;/a>&lt;/strong>&#xA;Time zones are interpreted as &lt;a href=&quot;#text&quot;>text&lt;/a> if they have&#xA;names. For time zones representing a GMT offset value, the&#xA;following syntax is used:&#xA;&lt;pre>&#xA;&lt;a name=&quot;GMTOffsetTimeZone&quot;>&lt;i>GMTOffsetTimeZone:&lt;/i>&lt;/a>&#xA;&lt;code>GMT&lt;/code> &lt;i>Sign&lt;/i> &lt;i>Hours&lt;/i> &lt;code>:&lt;/code> &lt;i>Minutes&lt;/i>&#xA;&lt;i>Sign:&lt;/i> one of&#xA;&lt;code>+ -&lt;/code>&#xA;&lt;i>Hours:&lt;/i>&#xA;&lt;i>Digit&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Minutes:&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Digit:&lt;/i> one of&#xA;&lt;code>0 1 2 3 4 5 6 7 8 9&lt;/code>&lt;/pre>&#xA;&lt;i>Hours&lt;/i> must be between 0 and 23, and &lt;i>Minutes&lt;/i> must be between&#xA;00 and 59. The format is locale independent and digits must be taken&#xA;from the Basic Latin block of the Unicode standard.&#xA;&lt;p>For parsing, &lt;a href=&quot;#rfc822timezone&quot;>RFC 822 time zones&lt;/a> are also&#xA;accepted.&#xA;&lt;li>&lt;strong>&lt;a name=&quot;rfc822timezone&quot;>RFC 822 time zone:&lt;/a>&lt;/strong>&#xA;For formatting, the RFC 822 4-digit time zone format is used:&#xA;&lt;pre>&#xA;&lt;i>RFC822TimeZone:&lt;/i>&#xA;&lt;i>Sign&lt;/i> &lt;i>TwoDigitHours&lt;/i> &lt;i>Minutes&lt;/i>&#xA;&lt;i>TwoDigitHours:&lt;/i>&#xA;&lt;i>Digit Digit&lt;/i>&lt;/pre>&#xA;&lt;i>TwoDigitHours&lt;/i> must be between 00 and 23. Other definitions&#xA;are as for &lt;a href=&quot;#timezone&quot;>general time zones&lt;/a>.&#xA;&lt;p>For parsing, &lt;a href=&quot;#timezone&quot;>general time zones&lt;/a> are also&#xA;accepted.&#xA;&lt;/ul>&#xA;&lt;code>SimpleDateFormat&lt;/code> also supports &lt;em>localized date and time&#xA;pattern&lt;/em> strings. In these strings, the pattern letters described above&#xA;may be replaced with other, locale dependent, pattern letters.&#xA;&lt;code>SimpleDateFormat&lt;/code> does not deal with the localization of text&#xA;other than the pattern letters; that's up to the client of the class.&#xA;&lt;p>&#xA;&#xA;&lt;h4>Examples&lt;/h4>&#xA;&#xA;The following examples show how date and time patterns are interpreted in&#xA;the U.S. locale. The given date and time are 2001-07-04 12:08:56 local time&#xA;in the U.S. Pacific Time time zone.&#xA;&lt;blockquote>&#xA;&lt;table border=0 cellspacing=3 cellpadding=0 summary=&quot;Examples of date and time patterns interpreted in the U.S. locale&quot;>&#xA;&lt;tr bgcolor=&quot;#ccccff&quot;>&#xA;&lt;th align=left>Date and Time Pattern&#xA;&lt;th align=left>Result&#xA;&lt;tr>&#xA;&lt;td>&lt;code>&quot;yyyy.MM.dd G 'at' HH:mm:ss z&quot;&lt;/code>&#xA;&lt;td>&lt;code>2001.07.04 AD at 12:08:56 PDT&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>&quot;EEE, MMM d, ''yy&quot;&lt;/code>&#xA;&lt;td>&lt;code>Wed, Jul 4, '01&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>&quot;h:mm a&quot;&lt;/code>&#xA;&lt;td>&lt;code>12:08 PM&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>&quot;hh 'o''clock' a, zzzz&quot;&lt;/code>&#xA;&lt;td>&lt;code>12 o'clock PM, Pacific Daylight Time&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>&quot;K:mm a, z&quot;&lt;/code>&#xA;&lt;td>&lt;code>0:08 PM, PDT&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>&quot;yyyyy.MMMMM.dd GGG hh:mm aaa&quot;&lt;/code>&#xA;&lt;td>&lt;code>02001.July.04 AD 12:08 PM&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>&quot;EEE, d MMM yyyy HH:mm:ss Z&quot;&lt;/code>&#xA;&lt;td>&lt;code>Wed, 4 Jul 2001 12:08:56 -0700&lt;/code>&#xA;&lt;tr bgcolor=&quot;#eeeeff&quot;>&#xA;&lt;td>&lt;code>&quot;yyMMddHHmmssZ&quot;&lt;/code>&#xA;&lt;td>&lt;code>010704120856-0700&lt;/code>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>&quot;yyyy-MM-dd'T'HH:mm:ss.SSSZ&quot;&lt;/code>&#xA;&lt;td>&lt;code>2001-07-04T12:08:56.235-0700&lt;/code>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4>&lt;a name=&quot;synchronization&quot;>Synchronization&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>&#xA;Date formats are not synchronized.&#xA;It is recommended to create separate format instances for each thread.&#xA;If multiple threads access a format concurrently, it must be synchronized&#xA;externally.&#xA;&#xA;@see          &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/i18n/format/simpleDateFormat.html&quot;>Java Tutorial&lt;/a>&#xA;@see          java.util.Calendar&#xA;@see          java.util.TimeZone&#xA;@see          DateFormat&#xA;@see          DateFormatSymbols&#xA;@version      1.77, 01/22/04&#xA;@author       Mark Davis, Chen-Lieh Huang, Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546690_285600_8683"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_512628_14307" isSubstitutable="true" general="_9_5_f720368_1110473546690_324082_8639"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_305765_8685" name="SimpleTextBoundary" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_435029_8659" name="LineBreakData" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_45774_8641" name="DateFormatSymbols" clientDependency="_10_5_622020d_1132928321939_441914_14286 _10_5_622020d_1132928321939_294390_14287">
            <ownedComment xmi:id="_10_5_622020d_1132928309621_408507_6239" body="&lt;code>DateFormatSymbols&lt;/code> is a public class for encapsulating&#xA;localizable date-time formatting data, such as the names of the&#xA;months, the names of the days of the week, and the time zone data.&#xA;&lt;code>DateFormat&lt;/code> and &lt;code>SimpleDateFormat&lt;/code> both use&#xA;&lt;code>DateFormatSymbols&lt;/code> to encapsulate this information.&#xA;&#xA;&lt;p>&#xA;Typically you shouldn't use &lt;code>DateFormatSymbols&lt;/code> directly.&#xA;Rather, you are encouraged to create a date-time formatter with the&#xA;&lt;code>DateFormat&lt;/code> class's factory methods: &lt;code>getTimeInstance&lt;/code>,&#xA;&lt;code>getDateInstance&lt;/code>, or &lt;code>getDateTimeInstance&lt;/code>.&#xA;These methods automatically create a &lt;code>DateFormatSymbols&lt;/code> for&#xA;the formatter so that you don't have to. After the&#xA;formatter is created, you may modify its format pattern using the&#xA;&lt;code>setPattern&lt;/code> method. For more information about&#xA;creating formatters using &lt;code>DateFormat&lt;/code>'s factory methods,&#xA;see {@link DateFormat}.&#xA;&#xA;&lt;p>&#xA;If you decide to create a date-time formatter with a specific&#xA;format pattern for a specific locale, you can do so with:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;new SimpleDateFormat(aPattern, new DateFormatSymbols(aLocale)).&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&lt;code>DateFormatSymbols&lt;/code> objects are cloneable. When you obtain&#xA;a &lt;code>DateFormatSymbols&lt;/code> object, feel free to modify the&#xA;date-time formatting data. For instance, you can replace the localized&#xA;date-time format pattern characters with the ones that you feel easy&#xA;to remember. Or you can change the representative cities&#xA;to your favorite ones.&#xA;&#xA;&lt;p>&#xA;New &lt;code>DateFormatSymbols&lt;/code> subclasses may be added to support&#xA;&lt;code>SimpleDateFormat&lt;/code> for date-time formatting for additional locales.&#xA;@see          DateFormat&#xA;@see          SimpleDateFormat&#xA;@see          java.util.SimpleTimeZone&#xA;@version      1.41 12/19/03&#xA;@author       Chen-Lieh Huang&#xA;" annotatedElement="_9_5_f720368_1110473546690_45774_8641"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321939_441914_14286" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_45774_8641" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321939_294390_14287" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_45774_8641" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_120882_8681" name="SentenceBreakData" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_812137_8689" name="StringCharacterIterator" clientDependency="_10_5_622020d_1132928321959_682893_14308" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309902_728040_6284" body="&lt;code>StringCharacterIterator&lt;/code> implements the&#xA;&lt;code>CharacterIterater&lt;/code> protocol for a &lt;code>String&lt;/code>.&#xA;The &lt;code>StringCharacterIterator&lt;/code> class iterates over the&#xA;entire &lt;code>String&lt;/code>.&#xA;&#xA;@see CharacterIterator&#xA;" annotatedElement="_9_5_f720368_1110473546690_812137_8689"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321959_682893_14308" name="" supplier="_9_5_f720368_1110473546690_140017_8623" client="_9_5_f720368_1110473546690_812137_8689" contract="_9_5_f720368_1110473546690_140017_8623"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_825103_8627" name="CharSet" visibility="package">
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547768_579130_18923" name="Enumeration"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_363626_8609" name="AttributedCharacterIterator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309551_654286_6211" body="An AttributedCharacterIterator allows iteration through both text and&#xA;related attribute information.&#xA;&#xA;&lt;p>&#xA;An attribute is a key/value pair, identified by the key.  No two&#xA;attributes on a given character can have the same key.&#xA;&#xA;&lt;p>The values for an attribute are immutable, or must not be mutated&#xA;by clients or storage.  They are always passed by reference, and not&#xA;cloned.&#xA;&#xA;&lt;p>A &lt;em>run with respect to an attribute&lt;/em> is a maximum text range for&#xA;which:&#xA;&lt;ul>&#xA;&lt;li>the attribute is undefined or null for the entire range, or&#xA;&lt;li>the attribute value is defined and has the same non-null value for the&#xA;entire range.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>A &lt;em>run with respect to a set of attributes&lt;/em> is a maximum text range for&#xA;which this condition is met for each member attribute.&#xA;&#xA;&lt;p>The returned indexes are limited to the range of the iterator.&#xA;&#xA;&lt;p>The returned attribute information is limited to runs that contain&#xA;the current character.&#xA;&#xA;&lt;p>&#xA;Attribute keys are instances of AttributedCharacterIterator.Attribute and its&#xA;subclasses, such as java.awt.font.TextAttribute.&#xA;&#xA;@see AttributedCharacterIterator.Attribute&#xA;@see java.awt.font.TextAttribute&#xA;@see AttributedString&#xA;@see Annotation&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_363626_8609"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_564357_14262" isSubstitutable="true" general="_9_5_f720368_1110473546690_140017_8623"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_824275_16567" name="Attribute" clientDependency="_10_5_622020d_1132928321919_37908_14263">
              <ownedComment xmi:id="_10_5_622020d_1132928309541_888340_6209" body="Defines attribute keys that are used to identify text attributes. These&#xA;keys are used in AttributedCharacterIterator and AttributedString.&#xA;@see AttributedCharacterIterator&#xA;@see AttributedString&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547315_824275_16567"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321919_37908_14263" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547315_824275_16567" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_466906_8695" name="WordBreakData" visibility="package" isLeaf="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_578366_8649" name="DigitList" visibility="package" clientDependency="_10_5_622020d_1132928321959_127802_14292" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_529757_6247" body="Digit List. Private to DecimalFormat.&#xA;Handles the transcoding&#xA;between numeric values and strings of characters.  Only handles&#xA;non-negative numbers.  The division of labor between DigitList and&#xA;DecimalFormat is that DigitList handles the radix 10 representation&#xA;issues; DecimalFormat handles the locale-specific issues such as&#xA;positive/negative, grouping, decimal point, currency, and so on.&#xA;&#xA;A DigitList is really a representation of a floating point value.&#xA;It may be an integer value; we assume that a double has sufficient&#xA;precision to represent all digits of a long.&#xA;&#xA;The DigitList representation consists of a string of characters,&#xA;which are the digits radix 10, from '0' to '9'.  It also has a radix&#xA;10 exponent associated with it.  The value represented by a DigitList&#xA;object can be computed by mulitplying the fraction f, where 0 &lt;= f &lt; 1,&#xA;derived by placing all the digits of the list to the right of the&#xA;decimal point, by 10^exponent.&#xA;&#xA;@see  Locale&#xA;@see  Format&#xA;@see  NumberFormat&#xA;@see  DecimalFormat&#xA;@see  ChoiceFormat&#xA;@see  MessageFormat&#xA;@version      1.30 12/19/03&#xA;@author       Mark Davis, Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546690_578366_8649"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321959_127802_14292" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_578366_8649" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_872948_8651" name="DontCareFieldPosition" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_737291_6249" body="DontCareFieldPosition defines no-op FieldDelegate. Its&#xA;singleton is used for the format methods that don't take a&#xA;FieldPosition.&#xA;" annotatedElement="_9_5_f720368_1110473546690_872948_8651"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_761225_14293" isSubstitutable="true" general="_9_5_f720368_1110473546690_589454_8655"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_981272_8647" name="DictionaryBasedBreakIterator" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_665852_6245" body="A subclass of RuleBasedBreakIterator that adds the ability to use a dictionary&#xA;to further subdivide ranges of text beyond what is possible using just the&#xA;state-table-based algorithm.  This is necessary, for example, to handle&#xA;word and line breaking in Thai, which doesn't use spaces between words.  The&#xA;state-table-based algorithm used by RuleBasedBreakIterator is used to divide&#xA;up text as far as possible, and then contiguous ranges of letters are&#xA;repeatedly compared against a list of known words (i.e., the dictionary)&#xA;to divide them up into words.&#xA;&#xA;DictionaryBasedBreakIterator uses the same rule language as RuleBasedBreakIterator,&#xA;but adds one more special substitution name: &lt;dictionary>.  This substitution&#xA;name is used to identify characters in words in the dictionary.  The idea is that&#xA;if the iterator passes over a chunk of text that includes two or more characters&#xA;in a row that are included in &lt;dictionary>, it goes back through that range and&#xA;derives additional break positions (if possible) using the dictionary.&#xA;&#xA;DictionaryBasedBreakIterator is also constructed with the filename of a dictionary&#xA;file.  It follows a prescribed search path to locate the dictionary (right now,&#xA;it looks for it in /com/ibm/text/resources in each directory in the classpath,&#xA;and won't find it in JAR files, but this location is likely to change).  The&#xA;dictionary file is in a serialized binary format.  We have a very primitive (and&#xA;slow) BuildDictionaryFile utility for creating dictionary files, but aren't&#xA;currently making it public.  Contact us for help.&#xA;" annotatedElement="_9_5_f720368_1110473546690_981272_8647"/>
            <generalization xmi:id="_10_5_622020d_1132928321959_871433_14291" isSubstitutable="true" general="_9_5_f720368_1110473546690_897998_8677"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_864771_8617" name="BreakDictionary" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928309551_721453_6218" body="This is the class that represents the list of known words used by&#xA;DictionaryBasedBreakIterator.  The conceptual data structure used&#xA;here is a trie: there is a node hanging off the root node for every&#xA;letter that can start a word.  Each of these nodes has a node hanging&#xA;off of it for every letter that can be the second letter of a word&#xA;if this node is the first letter, and so on.  The trie is represented&#xA;as a two-dimensional array that can be treated as a table of state&#xA;transitions.  Indexes are used to compress this array, taking&#xA;advantage of the fact that this array will always be very sparse.&#xA;" annotatedElement="_9_5_f720368_1110473546690_864771_8617"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_658987_8615" name="Bidi" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309551_537016_6216" body="This class implements the Unicode Bidirectional Algorithm.&#xA;&lt;p>&#xA;A Bidi object provides information on the bidirectional reordering of the text&#xA;used to create it.  This is required, for example, to properly display Arabic&#xA;or Hebrew text.  These languages are inherently mixed directional, as they order&#xA;numbers from left-to-right while ordering most other text from right-to-left.&#xA;&lt;p>&#xA;Once created, a Bidi object can be queried to see if the text it represents is&#xA;all left-to-right or all right-to-left.  Such objects are very lightweight and&#xA;this text is relatively easy to process.&#xA;&lt;p>&#xA;If there are multiple runs of text, information about the runs can be accessed&#xA;by indexing to get the start, limit, and level of a run.  The level represents&#xA;both the direction and the 'nesting level' of a directional run.  Odd levels&#xA;are right-to-left, while even levels are left-to-right.  So for example level&#xA;0 represents left-to-right text, while level 1 represents right-to-left text, and&#xA;level 2 represents left-to-right text embedded in a right-to-left run.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_658987_8615"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_794059_8613" name="AttributeEntry" visibility="package" clientDependency="_10_5_622020d_1132928321919_708449_14270">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321919_708449_14270" name="" supplier="_9_5_f720368_1110473547799_877742_18990" client="_9_5_f720368_1110473546690_794059_8613" contract="_9_5_f720368_1110473547799_877742_18990"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_134137_8645" name="DecimalFormatSymbols" clientDependency="_10_5_622020d_1132928321939_231396_14289 _10_5_622020d_1132928321939_716447_14290" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309701_883851_6243" body="This class represents the set of symbols (such as the decimal separator,&#xA;the grouping separator, and so on) needed by &lt;code>DecimalFormat&lt;/code>&#xA;to format numbers. &lt;code>DecimalFormat&lt;/code> creates for itself an instance of&#xA;&lt;code>DecimalFormatSymbols&lt;/code> from its locale data.  If you need to change any&#xA;of these symbols, you can get the &lt;code>DecimalFormatSymbols&lt;/code> object from&#xA;your &lt;code>DecimalFormat&lt;/code> and modify it.&#xA;&#xA;@see          java.util.Locale&#xA;@see          DecimalFormat&#xA;@version      1.41, 05/10/04&#xA;@author       Mark Davis&#xA;@author       Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546690_134137_8645"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321939_231396_14289" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_134137_8645" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321939_716447_14290" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_134137_8645" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_147333_8673" name="RBCollationTables" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309771_771798_6274" body="This class contains the static state of a RuleBasedCollator: The various&#xA;tables that are used by the collation routines.  Several RuleBasedCollators&#xA;can share a single RBCollationTables object, easing memory requirements and&#xA;improving performance.&#xA;" annotatedElement="_9_5_f720368_1110473546690_147333_8673"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547784_623510_18968" name="BuildAPI" visibility="package" isLeaf="true"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_583241_8625" name="CharacterIteratorFieldDelegate" visibility="package" clientDependency="_10_5_622020d_1132928321929_388396_14273">
            <ownedComment xmi:id="_10_5_622020d_1132928309561_278751_6224" body="CharacterIteratorFieldDelegate combines the notifications from a Format&#xA;into a resulting &lt;code>AttributedCharacterIterator&lt;/code>. The resulting&#xA;&lt;code>AttributedCharacterIterator&lt;/code> can be retrieved by way of&#xA;the &lt;code>getIterator&lt;/code> method.&#xA;&#xA;@version 1.4 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546690_583241_8625"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321929_388396_14273" name="" supplier="_9_5_f720368_1110473547784_970079_18950" client="_9_5_f720368_1110473546690_583241_8625" contract="_9_5_f720368_1110473547784_970079_18950"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_264939_8661" name="MergeCollation" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309711_147366_6260" body="Utility class for normalizing and merging patterns for collation.&#xA;Patterns are strings of the form &lt;entry>*, where &lt;entry> has the&#xA;form:&#xA;&lt;pattern> := &lt;entry>&#xA;&lt;entry> := &lt;separator>&lt;chars>{&quot;/&quot;&lt;extension>}&#xA;&lt;separator> := &quot;=&quot;, &quot;,&quot;, &quot;;&quot;, &quot;&lt;&quot;, &quot;&amp;&quot;&#xA;&lt;chars>, and &lt;extension> are both arbitrary strings.&#xA;unquoted whitespaces are ignored.&#xA;'xxx' can be used to quote characters&#xA;One difference from Collator is that &amp; is used to reset to a current&#xA;point. Or, in other words, it introduces a new sequence which is to&#xA;be added to the old.&#xA;That is: &quot;a &lt; b &lt; c &lt; d&quot; is the same as &quot;a &lt; b &amp; b &lt; c &amp; c &lt; d&quot; OR&#xA;&quot;a &lt; b &lt; d &amp; b &lt; c&quot;&#xA;XXX: make '' be a single quote.&#xA;@see PatternEntry&#xA;@version    1.17 12/19/03&#xA;@author             Mark Davis, Helena Shih&#xA;" annotatedElement="_9_5_f720368_1110473546690_264939_8661"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_246072_8687" name="SpecialMapping" visibility="package" isLeaf="true"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547643_160096_18150" name="nio">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_62290_8081" name="HeapByteBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_468825_5545" body="A read/write HeapByteBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_62290_8081"/>
            <generalization xmi:id="_10_5_622020d_1132928321799_164237_14000" isSubstitutable="true" general="_9_5_f720368_1110473546659_818813_7971"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_57994_7989" name="ByteBufferAsFloatBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_385033_13913" isSubstitutable="true" general="_9_5_f720368_1110473546659_742353_8079"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_163839_8105" name="HeapShortBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_44365_5569" body="A read/write HeapShortBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_163839_8105"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_49768_14012" isSubstitutable="true" general="_9_5_f720368_1110473546659_549192_8119"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_996007_8085" name="HeapCharBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_670530_5549" body="A read/write HeapCharBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_996007_8085"/>
            <generalization xmi:id="_10_5_622020d_1132928321799_360094_14002" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_83851_8031" name="DirectCharBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_493722_13945" isSubstitutable="true" general="_9_5_f720368_1110473546659_963236_8035"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_735935_8095" name="HeapFloatBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308890_430846_5559" body="A read-only HeapFloatBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_735935_8095"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_131870_14007" isSubstitutable="true" general="_9_5_f720368_1110473546659_288591_8093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_742353_8079" name="FloatBuffer" clientDependency="_10_5_622020d_1132928321799_956718_13998" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_34285_5543" body="A float buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;float buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(float) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single floats; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(float[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of floats from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(float[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of floats from a&#xA;float array or some other float&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a float buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Float buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(float[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;float array  into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a float buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;float buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A float buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a float buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_742353_8079"/>
            <generalization xmi:id="_10_5_622020d_1132928321799_514188_13999" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321799_956718_13998" name="" supplier="_10_5_622020d_1132928321799_404690_13995" client="_9_5_f720368_1110473546659_742353_8079" contract="_10_5_622020d_1132928321799_404690_13995"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_161672_8117" name="ReadOnlyBufferException">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_547384_5581" body="Unchecked exception thrown when a content-mutation method such as&#xA;&lt;tt>put&lt;/tt> or &lt;tt>compact&lt;/tt> is invoked upon a read-only buffer.&#xA;&#xA;@version 1.14, 01/05/02&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_161672_8117"/>
            <generalization xmi:id="_10_5_622020d_1132928321819_996211_14026" isSubstitutable="true" general="_9_5_f720368_1110473546612_331021_7719"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_936123_8065" name="DirectLongBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_840935_13979" isSubstitutable="true" general="_9_5_f720368_1110473546659_884690_8113"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_834072_8053" name="DirectIntBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_300947_13967" isSubstitutable="true" general="_9_5_f720368_1110473546659_137377_8057"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547643_957787_18151" name="channels">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_31917_7899" name="IllegalBlockingModeException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_657666_5411" body="Unchecked exception thrown when a blocking-mode-specific operation&#xA;is invoked upon a channel in the incorrect blocking mode.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_31917_7899"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_788657_13861" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_698593_7901" name="IllegalSelectorException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_621904_5413" body="Unchecked exception thrown when an attempt is made to register a channel&#xA;with a selector that was not created by the provider that created the&#xA;channel.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_698593_7901"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_363233_13862" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546659_465248_7937" name="WritableByteChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308710_423338_5451" body="A channel that can write bytes.&#xA;&#xA;&lt;p> Only one write operation upon a writable channel may be in progress at&#xA;any given time.  If one thread initiates a write operation upon a channel&#xA;then any other thread that attempts to initiate another write operation will&#xA;block until the first operation is complete.  Whether or not other kinds of&#xA;I/O operations may proceed concurrently with a write operation depends upon&#xA;the type of the channel. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.15, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_465248_7937"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_758850_13887" isSubstitutable="true" general="_9_5_f720368_1110473546643_379446_7877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_841379_7895" name="FileLockInterruptionException">
              <ownedComment xmi:id="_10_5_622020d_1132928308630_716506_5407" body="Checked exception received by a thread when another thread interrupts it&#xA;while it is waiting to acquire a file lock.  Before this exception is thrown&#xA;the interrupt status of the previously-blocked thread will have been set.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_841379_7895"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_31894_13859" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_237537_7873" name="ByteChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_81562_5384" body="A channel that can read and write bytes.  This interface simply unifies&#xA;{@link ReadableByteChannel} and {@link WritableByteChannel}; it does not&#xA;specify any new operations.&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.10, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_237537_7873"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_509469_13839" isSubstitutable="true" general="_9_5_f720368_1110473546659_763552_7919"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_450379_13840" isSubstitutable="true" general="_9_5_f720368_1110473546659_465248_7937"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_66645_7881" name="ClosedByInterruptException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_176364_5392" body="Checked exception received by a thread when another thread interrupts it&#xA;while it is blocked in an I/O operation upon a channel.  Before this&#xA;exception is thrown the channel will have been closed and the interrupt&#xA;status of the previously-blocked thread will have been set.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_66645_7881"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_941414_13847" isSubstitutable="true" general="_9_5_f720368_1110473546643_22057_7871"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_672938_7889" name="DatagramChannel" clientDependency="_10_5_622020d_1132928321739_505257_13851 _10_5_622020d_1132928321739_679262_13852 _10_5_622020d_1132928321739_795038_13853" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308610_239137_5400" body="A selectable channel for datagram-oriented sockets.&#xA;&#xA;&#xA;&lt;p> Datagram channels are not a complete abstraction of network datagram&#xA;sockets.  Binding and the manipulation of socket options must be done&#xA;through an associated {@link java.net.DatagramSocket} object obtained by&#xA;invoking the {@link #socket() socket} method.  It is not possible to create&#xA;a channel for an arbitrary, pre-existing datagram socket, nor is it possible&#xA;to specify the {@link java.net.DatagramSocketImpl} object to be used by a&#xA;datagram socket associated with a datagram channel.&#xA;&#xA;&lt;p> A datagram channel is created by invoking the {@link #open open} method&#xA;of this class.  A newly-created datagram channel is open but not connected.&#xA;A datagram channel need not be connected in order for the {@link #send send}&#xA;and {@link #receive receive} methods to be used.  A datagram channel may be&#xA;connected, by invoking its {@link #connect connect} method, in order to&#xA;avoid the overhead of the security checks are otherwise performed as part of&#xA;every send and receive operation.  A datagram channel must be connected in&#xA;order to use the {@link #read(java.nio.ByteBuffer) read} and {@link&#xA;#write(java.nio.ByteBuffer) write} methods, since those methods do not&#xA;accept or return socket addresses.&#xA;&#xA;&lt;p> Once connected, a datagram channel remains connected until it is&#xA;disconnected or closed.  Whether or not a datagram channel is connected may&#xA;be determined by invoking its {@link #isConnected isConnected} method.&#xA;&#xA;&lt;p> Datagram channels are safe for use by multiple concurrent threads.  They&#xA;support concurrent reading and writing, though at most one thread may be&#xA;reading and at most one thread may be writing at any given time.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.32, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_672938_7889"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_444739_13854" isSubstitutable="true" general="_9_5_f720368_1110473546643_94013_7861"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_505257_13851" name="" supplier="_9_5_f720368_1110473546643_237537_7873" client="_9_5_f720368_1110473546643_672938_7889" contract="_9_5_f720368_1110473546643_237537_7873"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_679262_13852" name="" supplier="_9_5_f720368_1110473546659_637739_7921" client="_9_5_f720368_1110473546643_672938_7889" contract="_9_5_f720368_1110473546659_637739_7921"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_795038_13853" name="" supplier="_9_5_f720368_1110473546643_932884_7897" client="_9_5_f720368_1110473546643_672938_7889" contract="_9_5_f720368_1110473546643_932884_7897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_699206_7883" name="ClosedChannelException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_383642_5394" body="Checked exception thrown when an attempt is made to invoke or complete an&#xA;I/O operation upon channel that is closed, or at least closed to that&#xA;operation.  That this exception is thrown does not necessarily imply that&#xA;the channel is completely closed.  A socket channel whose write half has&#xA;been shut down, for example, may still be open for reading.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_699206_7883"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_912954_13848" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_103954_7929" name="ServerSocketChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308690_144375_5443" body="A selectable channel for stream-oriented listening sockets.&#xA;&#xA;&lt;p> Server-socket channels are not a complete abstraction of listening&#xA;network sockets.  Binding and the manipulation of socket options must be&#xA;done through an associated {@link java.net.ServerSocket} object obtained by&#xA;invoking the {@link #socket() socket} method.  It is not possible to create&#xA;a channel for an arbitrary, pre-existing server socket, nor is it possible&#xA;to specify the {@link java.net.SocketImpl} object to be used by a server&#xA;socket associated with a server-socket channel.&#xA;&#xA;&lt;p> A server-socket channel is created by invoking the {@link #open() open}&#xA;method of this class.  A newly-created server-socket channel is open but not&#xA;yet bound.  An attempt to invoke the {@link #accept() accept} method of an&#xA;unbound server-socket channel will cause a {@link NotYetBoundException} to&#xA;be thrown.  A server-socket channel can be bound by invoking one of the&#xA;{@link java.net.ServerSocket#bind(java.net.SocketAddress,int) bind} methods&#xA;of an associated server socket.&#xA;&#xA;&lt;p> Server-socket channels are safe for use by multiple concurrent threads.&#xA;&lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.24, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_103954_7929"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_839576_13880" isSubstitutable="true" general="_9_5_f720368_1110473546643_94013_7861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546659_763552_7919" name="ReadableByteChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308650_809450_5433" body="A channel that can read bytes.&#xA;&#xA;&lt;p> Only one read operation upon a readable channel may be in progress at&#xA;any given time.  If one thread initiates a read operation upon a channel&#xA;then any other thread that attempts to initiate another read operation will&#xA;block until the first operation is complete.  Whether or not other kinds of&#xA;I/O operations may proceed concurrently with a read operation depends upon&#xA;the type of the channel. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.16, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_763552_7919"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_670222_13876" isSubstitutable="true" general="_9_5_f720368_1110473546643_379446_7877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_990324_7875" name="CancelledKeyException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_671959_5386" body="Unchecked exception thrown when an attempt is made to use&#xA;a selection key that is no longer valid.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_990324_7875"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_722823_13841" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_423022_7933" name="UnresolvedAddressException">
              <ownedComment xmi:id="_10_5_622020d_1132928308690_245604_5447" body="Unchecked exception thrown when an attempt is made to invoke a network&#xA;operation upon an unresolved socket address.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_423022_7933"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_212340_13885" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_270562_7893" name="FileLock" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308630_482254_5405" body="A token representing a lock on a region of a file.&#xA;&#xA;&lt;p> A file-lock object is created each time a lock is acquired on a file via&#xA;one of the {@link FileChannel#lock(long,long,boolean) lock} or {@link&#xA;FileChannel#tryLock(long,long,boolean) tryLock} methods of the {@link&#xA;FileChannel} class.&#xA;&#xA;&lt;p> A file-lock object is initially valid.  It remains valid until the lock&#xA;is released by invoking the {@link #release release} method, by closing the&#xA;channel that was used to acquire it, or by the termination of the Java&#xA;virtual machine, whichever comes first.  The validity of a lock may be&#xA;tested by invoking its {@link #isValid isValid} method.&#xA;&#xA;&lt;p> A file lock is either &lt;i>exclusive&lt;/i> or &lt;i>shared&lt;/i>.  A shared lock&#xA;prevents other concurrently-running programs from acquiring an overlapping&#xA;exclusive lock, but does allow them to acquire overlapping shared locks.  An&#xA;exclusive lock prevents other programs from acquiring an overlapping lock of&#xA;either type.  Once it is released, a lock has no further effect on the locks&#xA;that may be acquired by other programs.&#xA;&#xA;&lt;p> Whether a lock is exclusive or shared may be determined by invoking its&#xA;{@link #isShared isShared} method.  Some platforms do not support shared&#xA;locks, in which case a request for a shared lock is automatically converted&#xA;into a request for an exclusive lock.&#xA;&#xA;&lt;p> The locks held on a particular file by a single Java virtual machine do&#xA;not overlap.  The {@link #overlaps overlaps} method may be used to test&#xA;whether a candidate lock range overlaps an existing lock.&#xA;&#xA;&lt;p> A file-lock object records the file channel upon whose file the lock is&#xA;held, the type and validity of the lock, and the position and size of the&#xA;locked region.  Only the validity of a lock is subject to change over time;&#xA;all other aspects of a lock's state are immutable.&#xA;&#xA;&lt;p> File locks are held on behalf of the entire Java virtual machine.&#xA;They are not suitable for controlling access to a file by multiple&#xA;threads within the same virtual machine.&#xA;&#xA;&lt;p> File-lock objects are safe for use by multiple concurrent threads.&#xA;&#xA;&#xA;&lt;a name=&quot;pdep&quot;>&#xA;&lt;h4> Platform dependencies &lt;/h4>&#xA;&#xA;&lt;p> This file-locking API is intended to map directly to the native locking&#xA;facility of the underlying operating system.  Thus the locks held on a file&#xA;should be visible to all programs that have access to the file, regardless&#xA;of the language in which those programs are written.&#xA;&#xA;&lt;p> Whether or not a lock actually prevents another program from accessing&#xA;the content of the locked region is system-dependent and therefore&#xA;unspecified.  The native file-locking facilities of some systems are merely&#xA;&lt;i>advisory&lt;/i>, meaning that programs must cooperatively observe a known&#xA;locking protocol in order to guarantee data integrity.  On other systems&#xA;native file locks are &lt;i>mandatory&lt;/i>, meaning that if one program locks a&#xA;region of a file then other programs are actually prevented from accessing&#xA;that region in a way that would violate the lock.  On yet other systems,&#xA;whether native file locks are advisory or mandatory is configurable on a&#xA;per-file basis.  To ensure consistent and correct behavior across platforms,&#xA;it is strongly recommended that the locks provided by this API be used as if&#xA;they were advisory locks.&#xA;&#xA;&lt;p> On some systems, acquiring a mandatory lock on a region of a file&#xA;prevents that region from being {@link java.nio.channels.FileChannel#map&#xA;&lt;/code>mapped into memory&lt;code>}, and vice versa.  Programs that combine&#xA;locking and mapping should be prepared for this combination to fail.&#xA;&#xA;&lt;p> On some systems, closing a channel releases all locks held by the Java&#xA;virtual machine on the underlying file regardless of whether the locks were&#xA;acquired via that channel or via another channel open on the same file.  It&#xA;is strongly recommended that, within a program, a unique channel be used to&#xA;acquire all locks on any given file.&#xA;&#xA;&lt;p> Some network filesystems permit file locking to be used with&#xA;memory-mapped files only when the locked regions are page-aligned and a&#xA;whole multiple of the underlying hardware's page size.  Some network&#xA;filesystems do not implement file locks on regions that extend past a&#xA;certain position, often 2&lt;sup>30&lt;/sup> or 2&lt;sup>31&lt;/sup>.  In general, great&#xA;care should be taken when locking files that reside on network filesystems.&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.8, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_270562_7893"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_24399_7917" name="Pipe" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308650_441155_5431" body="A pair of channels that implements a unidirectional pipe.&#xA;&#xA;&lt;p> A pipe consists of a pair of channels: A writable {@link&#xA;Pipe.SinkChannel &lt;/code>sink&lt;code>} channel and a readable {@link&#xA;Pipe.SourceChannel &lt;/code>source&lt;code>} channel.  Once some bytes are&#xA;written to the sink channel they can be read from source channel in exactly&#xA;the order in which they were written.&#xA;&#xA;&lt;p> Whether or not a thread writing bytes to a pipe will block until another&#xA;thread reads those bytes, or some previously-written bytes, from the pipe is&#xA;system-dependent and therefore unspecified.  Many pipe implementations will&#xA;buffer up to a certain number of bytes between the sink and source channels,&#xA;but such buffering should not be assumed.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.20, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_24399_7917"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_407845_18198" name="SourceChannel" clientDependency="_10_5_622020d_1132928321749_886062_13870 _10_5_622020d_1132928321749_349726_13871" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308640_669093_5428" body="A channel representing the readable end of a {@link Pipe}.  &lt;/p>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547643_407845_18198"/>
                <generalization xmi:id="_10_5_622020d_1132928321749_795172_13872" isSubstitutable="true" general="_9_5_f720368_1110473546643_94013_7861"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321749_886062_13870" name="" supplier="_9_5_f720368_1110473546659_763552_7919" client="_9_5_f720368_1110473547643_407845_18198" contract="_9_5_f720368_1110473546659_763552_7919"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321749_349726_13871" name="" supplier="_9_5_f720368_1110473546659_637739_7921" client="_9_5_f720368_1110473547643_407845_18198" contract="_9_5_f720368_1110473546659_637739_7921"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_39278_18201" name="SinkChannel" clientDependency="_10_5_622020d_1132928321749_556528_13874 _10_5_622020d_1132928321749_912086_13873" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308650_530024_5429" body="A channel representing the writable end of a {@link Pipe}.  &lt;/p>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547643_39278_18201"/>
                <generalization xmi:id="_10_5_622020d_1132928321749_491302_13875" isSubstitutable="true" general="_9_5_f720368_1110473546643_94013_7861"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321749_912086_13873" name="" supplier="_9_5_f720368_1110473546659_465248_7937" client="_9_5_f720368_1110473547643_39278_18201" contract="_9_5_f720368_1110473546659_465248_7937"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321749_556528_13874" name="" supplier="_9_5_f720368_1110473546643_932884_7897" client="_9_5_f720368_1110473547643_39278_18201" contract="_9_5_f720368_1110473546643_932884_7897"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_634009_7913" name="NotYetConnectedException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_375235_5425" body="Unchecked exception thrown when an attempt is made to invoke an I/O&#xA;operation upon a socket channel that is not yet connected.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_634009_7913"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_587338_13868" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_881875_7923" name="SelectableChannel" clientDependency="_10_5_622020d_1132928321749_466299_13878" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308650_152207_5437" body="A channel that can be multiplexed via a {@link Selector}.&#xA;&#xA;&lt;p> In order to be used with a selector, an instance of this class must&#xA;first be &lt;i>registered&lt;/i> via the {@link #register(Selector,int,Object)&#xA;register} method.  This method returns a new {@link SelectionKey} object&#xA;that represents the channel's registration with the selector.&#xA;&#xA;&lt;p> Once registered with a selector, a channel remains registered until it&#xA;is &lt;i>deregistered&lt;/i>.  This involves deallocating whatever resources were&#xA;allocated to the channel by the selector.&#xA;&#xA;&lt;p> A channel cannot be deregistered directly; instead, the key representing&#xA;its registration must be &lt;i>cancelled&lt;/i>.  Cancelling a key requests that&#xA;the channel be deregistered during the selector's next selection operation.&#xA;A key may be cancelled explicitly by invoking its {@link&#xA;SelectionKey#cancel() cancel} method.  All of a channel's keys are cancelled&#xA;implicitly when the channel is closed, whether by invoking its {@link&#xA;Channel#close close} method or by interrupting a thread blocked in an I/O&#xA;operation upon the channel.&#xA;&#xA;&lt;p> If the selector itself is closed then the channel will be deregistered,&#xA;and the key representing its registration will be invalidated, without&#xA;further delay.&#xA;&#xA;&lt;p> A channel may be registered at most once with any particular selector.&#xA;&#xA;&lt;p> Whether or not a channel is registered with one or more selectors may be&#xA;determined by invoking the {@link #isRegistered isRegistered} method.&#xA;&#xA;&lt;p> Selectable channels are safe for use by multiple concurrent&#xA;threads. &lt;/p>&#xA;&#xA;&#xA;&lt;a name=&quot;bm&quot;>&#xA;&lt;h4>Blocking mode&lt;/h4>&#xA;&#xA;A selectable channel is either in &lt;i>blocking&lt;/i> mode or in&#xA;&lt;i>non-blocking&lt;/i> mode.  In blocking mode, every I/O operation invoked&#xA;upon the channel will block until it completes.  In non-blocking mode an I/O&#xA;operation will never block and may transfer fewer bytes than were requested&#xA;or possibly no bytes at all.  The blocking mode of a selectable channel may&#xA;be determined by invoking its {@link #isBlocking isBlocking} method.&#xA;&#xA;&lt;p> Newly-created selectable channels are always in blocking mode.&#xA;Non-blocking mode is most useful in conjunction with selector-based&#xA;multiplexing.  A channel must be placed into non-blocking mode before being&#xA;registered with a selector, and may not be returned to blocking mode until&#xA;it has been deregistered.&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.34, 03/12/19&#xA;@since 1.4&#xA;&#xA;@see SelectionKey&#xA;@see Selector&#xA;" annotatedElement="_9_5_f720368_1110473546659_881875_7923"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_848322_13879" isSubstitutable="true" general="_9_5_f720368_1110473546643_136634_7859"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321749_466299_13878" name="" supplier="_9_5_f720368_1110473546643_379446_7877" client="_9_5_f720368_1110473546659_881875_7923" contract="_9_5_f720368_1110473546643_379446_7877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_986850_7931" name="SocketChannel" clientDependency="_10_5_622020d_1132928321749_117937_13881 _10_5_622020d_1132928321749_385457_13882 _10_5_622020d_1132928321749_556106_13883" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308690_810540_5445" body="A selectable channel for stream-oriented connecting sockets.&#xA;&#xA;&lt;p> Socket channels are not a complete abstraction of connecting network&#xA;sockets.  Binding, shutdown, and the manipulation of socket options must be&#xA;done through an associated {@link java.net.Socket} object obtained by&#xA;invoking the {@link #socket() socket} method.  It is not possible to create&#xA;a channel for an arbitrary, pre-existing socket, nor is it possible to&#xA;specify the {@link java.net.SocketImpl} object to be used by a socket&#xA;associated with a socket channel.&#xA;&#xA;&lt;p> A socket channel is created by invoking one of the {@link #open open}&#xA;methods of this class.  A newly-created socket channel is open but not yet&#xA;connected.  An attempt to invoke an I/O operation upon an unconnected&#xA;channel will cause a {@link NotYetConnectedException} to be thrown.  A&#xA;socket channel can be connected by invoking its {@link #connect connect}&#xA;method; once connected, a socket channel remains connected until it is&#xA;closed.  Whether or not a socket channel is connected may be determined by&#xA;invoking its {@link #isConnected isConnected} method.&#xA;&#xA;&lt;p> Socket channels support &lt;i>non-blocking connection:&lt;/i>&amp;nbsp;A socket&#xA;channel may be created and the process of establishing the link to the&#xA;remote socket may be initiated via the {@link #connect connect} method for&#xA;later completion by the {@link #finishConnect finishConnect} method.&#xA;Whether or not a connection operation is in progress may be determined by&#xA;invoking the {@link #isConnectionPending isConnectionPending} method.&#xA;&#xA;&lt;p> The input and output sides of a socket channel may independently be&#xA;&lt;i>shut down&lt;/i> without actually closing the channel.  Shutting down the&#xA;input side of a channel by invoking the {@link java.net.Socket#shutdownInput&#xA;shutdownInput} method of an associated socket object will cause further&#xA;reads on the channel to return &lt;tt>-1&lt;/tt>, the end-of-stream indication.&#xA;Shutting down the output side of the channel by invoking the {@link&#xA;java.net.Socket#shutdownOutput shutdownOutput} method of an associated&#xA;socket object will cause further writes on the channel to throw a {@link&#xA;ClosedChannelException}.&#xA;&#xA;&lt;p> Socket channels support &lt;i>asynchronous shutdown,&lt;/i> which is similar&#xA;to the asynchronous close operation specified in the {@link Channel} class.&#xA;If the input side of a socket is shut down by one thread while another&#xA;thread is blocked in a read operation on the socket's channel, then the read&#xA;operation in the blocked thread will complete without reading any bytes and&#xA;will return &lt;tt>-1&lt;/tt>.  If the output side of a socket is shut down by one&#xA;thread while another thread is blocked in a write operation on the socket's&#xA;channel, then the blocked thread will receive an {@link&#xA;AsynchronousCloseException}.&#xA;&#xA;&lt;p> Socket channels are safe for use by multiple concurrent threads.  They&#xA;support concurrent reading and writing, though at most one thread may be&#xA;reading and at most one thread may be writing at any given time.  The {@link&#xA;#connect connect} and {@link #finishConnect finishConnect} methods are&#xA;mutually synchronized against each other, and an attempt to initiate a read&#xA;or write operation while an invocation of one of these methods is in&#xA;progress will block until that invocation is complete.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.33, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_986850_7931"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_582698_13884" isSubstitutable="true" general="_9_5_f720368_1110473546643_94013_7861"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321749_117937_13881" name="" supplier="_9_5_f720368_1110473546643_237537_7873" client="_9_5_f720368_1110473546659_986850_7931" contract="_9_5_f720368_1110473546643_237537_7873"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321749_385457_13882" name="" supplier="_9_5_f720368_1110473546659_637739_7921" client="_9_5_f720368_1110473546659_986850_7931" contract="_9_5_f720368_1110473546659_637739_7921"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321749_556106_13883" name="" supplier="_9_5_f720368_1110473546643_932884_7897" client="_9_5_f720368_1110473546659_986850_7931" contract="_9_5_f720368_1110473546643_932884_7897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_379446_7877" name="Channel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_931835_5388" body="A nexus for I/O operations.&#xA;&#xA;&lt;p> A channel represents an open connection to an entity such as a hardware&#xA;device, a file, a network socket, or a program component that is capable of&#xA;performing one or more distinct I/O operations, for example reading or&#xA;writing.&#xA;&#xA;&lt;p> A channel is either open or closed.  A channel is open upon creation,&#xA;and once closed it remains closed.  Once a channel is closed, any attempt to&#xA;invoke an I/O operation upon it will cause a {@link ClosedChannelException}&#xA;to be thrown.  Whether or not a channel is open may be tested by invoking&#xA;its {@link #isOpen isOpen} method.&#xA;&#xA;&lt;p> Channels are, in general, intended to be safe for multithreaded access&#xA;as described in the specifications of the interfaces and classes that extend&#xA;and implement this interface.&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.18, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_379446_7877"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_754435_13842" isSubstitutable="true" general="_10_5_622020d_1132928307007_867857_4552"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_524469_7903" name="InterruptibleChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_683796_5415" body="A channel that can be asynchronously closed and interrupted.&#xA;&#xA;&lt;p> A channel that implements this interface is &lt;i>asynchronously&#xA;closeable:&lt;/i> If a thread is blocked in an I/O operation on an&#xA;interruptible channel then another thread may invoke the channel's {@link&#xA;#close close} method.  This will cause the blocked thread to receive an&#xA;{@link AsynchronousCloseException}.&#xA;&#xA;&lt;p> A channel that implements this interface is also &lt;i>interruptible:&lt;/i>&#xA;If a thread is blocked in an I/O operation on an interruptible channel then&#xA;another thread may invoke the blocked thread's {@link Thread#interrupt()&#xA;interrupt} method.  This will cause the channel to be closed, the blocked&#xA;thread to receive a {@link ClosedByInterruptException}, and the blocked&#xA;thread's interrupt status to be set.&#xA;&#xA;&lt;p> If a thread's interrupt status is already set and it invokes a blocking&#xA;I/O operation upon a channel then the channel will be closed and the thread&#xA;will immediately receive a {@link ClosedByInterruptException}; its interrupt&#xA;status will remain set.&#xA;&#xA;&lt;p> A channel supports asynchronous closing and interruption if, and only&#xA;if, it implements this interface.  This can be tested at runtime, if&#xA;necessary, via the &lt;tt>instanceof&lt;/tt> operator.&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.5, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_524469_7903"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_318894_13863" isSubstitutable="true" general="_9_5_f720368_1110473546643_379446_7877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_456558_7905" name="NoConnectionPendingException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_767076_5417" body="Unchecked exception thrown when the {@link SocketChannel#finishConnect&#xA;finishConnect} method of a {@link SocketChannel} is invoked without first&#xA;successfully invoking its {@link SocketChannel#connect connect} method.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_456558_7905"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_908672_13864" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_839460_7885" name="ClosedSelectorException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_403804_5396" body="Unchecked exception thrown when an attempt is made to invoke an I/O&#xA;operation upon a closed selector.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_839460_7885"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_971006_13849" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_932884_7897" name="GatheringByteChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308630_185557_5409" body="A channel that can write bytes from a sequence of buffers.&#xA;&#xA;&lt;p> A &lt;i>gathering&lt;/i> write operation writes, in a single invocation, a&#xA;sequence of bytes from one or more of a given sequence of buffers.&#xA;Gathering writes are often useful when implementing network protocols or&#xA;file formats that, for example, group data into segments consisting of one&#xA;or more fixed-length headers followed by a variable-length body.  Similar&#xA;&lt;i>scattering&lt;/i> read operations are defined in the {@link&#xA;ScatteringByteChannel} interface.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.12, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_932884_7897"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_687701_13860" isSubstitutable="true" general="_9_5_f720368_1110473546659_465248_7937"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_359793_7925" name="SelectionKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308650_569469_5439" body="A token representing the registration of a {@link SelectableChannel} with a&#xA;{@link Selector}.&#xA;&#xA;&lt;p> A selection key is created each time a channel is registered with a&#xA;selector.  A key remains valid until it is &lt;i>cancelled&lt;/i> by invoking its&#xA;{@link #cancel cancel} method, by closing its channel, or by closing its&#xA;selector.  Cancelling a key does not immediately remove it from its&#xA;selector; it is instead added to the selector's &lt;a&#xA;href=&quot;Selector.html#ks&quot;>&lt;i>cancelled-key set&lt;/i>&lt;/a> for removal during the&#xA;next selection operation.  The validity of a key may be tested by invoking&#xA;its {@link #isValid isValid} method.&#xA;&#xA;&lt;a name=&quot;opsets&quot;>&#xA;&#xA;&lt;p> A selection key contains two &lt;i>operation sets&lt;/i> represented as&#xA;integer values.  Each bit of an operation set denotes a category of&#xA;selectable operations that are supported by the key's channel.&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> The &lt;i>interest set&lt;/i> determines which operation categories will&#xA;be tested for readiness the next time one of the selector's selection&#xA;methods is invoked.  The interest set is initialized with the value given&#xA;when the key is created; it may later be changed via the {@link&#xA;#interestOps(int)} method. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The &lt;i>ready set&lt;/i> identifies the operation categories for which&#xA;the key's channel has been detected to be ready by the key's selector.&#xA;The ready set is initialized to zero when the key is created; it may later&#xA;be updated by the selector during a selection operation, but it cannot be&#xA;updated directly. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> That a selection key's ready set indicates that its channel is ready for&#xA;some operation category is a hint, but not a guarantee, that an operation in&#xA;such a category may be performed by a thread without causing the thread to&#xA;block.  A ready set is most likely to be accurate immediately after the&#xA;completion of a selection operation.  It is likely to be made inaccurate by&#xA;external events and by I/O operations that are invoked upon the&#xA;corresponding channel.&#xA;&#xA;&lt;p> This class defines all known operation-set bits, but precisely which&#xA;bits are supported by a given channel depends upon the type of the channel.&#xA;Each subclass of {@link SelectableChannel} defines an {@link&#xA;SelectableChannel#validOps() validOps()} method which returns a set&#xA;identifying just those operations that are supported by the channel.  An&#xA;attempt to set or test an operation-set bit that is not supported by a key's&#xA;channel will result in an appropriate run-time exception.&#xA;&#xA;&lt;p> It is often necessary to associate some application-specific data with a&#xA;selection key, for example an object that represents the state of a&#xA;higher-level protocol and handles readiness notifications in order to&#xA;implement that protocol.  Selection keys therefore support the&#xA;&lt;i>attachment&lt;/i> of a single arbitrary object to a key.  An object can be&#xA;attached via the {@link #attach attach} method and then later retrieved via&#xA;the {@link #attachment attachment} method.&#xA;&#xA;&lt;p> Selection keys are safe for use by multiple concurrent threads.  The&#xA;operations of reading and writing the interest set will, in general, be&#xA;synchronized with certain operations of the selector.  Exactly how this&#xA;synchronization is performed is implementation-dependent: In a naive&#xA;implementation, reading or writing the interest set may block indefinitely&#xA;if a selection operation is already in progress; in a high-performance&#xA;implementation, reading or writing the interest set may block briefly, if at&#xA;all.  In any case, a selection operation will always use the interest-set&#xA;value that was current at the moment that the operation began.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.24, 03/12/19&#xA;@since 1.4&#xA;&#xA;@see SelectableChannel&#xA;@see Selector&#xA;" annotatedElement="_9_5_f720368_1110473546659_359793_7925"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_644239_7879" name="Channels" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_333880_5390" body="Utility methods for channels and streams.&#xA;&#xA;&lt;p> This class defines static methods that support the interoperation of the&#xA;stream classes of the &lt;tt>{@link java.io}&lt;/tt> package with the channel&#xA;classes of this package.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author Mike McCloskey&#xA;@author JSR-51 Expert Group&#xA;@version 1.23, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_644239_7879"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_175880_18172" name="ReadableByteChannelImpl" visibility="private" clientDependency="_10_5_622020d_1132928321739_514261_13843">
                <generalization xmi:id="_10_5_622020d_1132928321739_723707_13844" isSubstitutable="true" general="_9_5_f720368_1110473546643_136634_7859"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321739_514261_13843" name="" supplier="_9_5_f720368_1110473546659_763552_7919" client="_9_5_f720368_1110473547643_175880_18172" contract="_9_5_f720368_1110473546659_763552_7919"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_648562_18174" name="WritableByteChannelImpl" visibility="private" clientDependency="_10_5_622020d_1132928321739_541619_13845">
                <generalization xmi:id="_10_5_622020d_1132928321739_15159_13846" isSubstitutable="true" general="_9_5_f720368_1110473546643_136634_7859"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321739_541619_13845" name="" supplier="_9_5_f720368_1110473546659_465248_7937" client="_9_5_f720368_1110473547643_648562_18174" contract="_9_5_f720368_1110473546659_465248_7937"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_21717_7887" name="ConnectionPendingException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_946733_5398" body="Unchecked exception thrown when an attempt is made to connect a {@link&#xA;SocketChannel} for which a non-blocking connection operation is already in&#xA;progress.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_21717_7887"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_959973_13850" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_338677_7869" name="AlreadyConnectedException">
              <ownedComment xmi:id="_10_5_622020d_1132928308590_561100_5380" body="Unchecked exception thrown when an attempt is made to connect a {@link&#xA;SocketChannel} that is already connected.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_338677_7869"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_663835_13837" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546659_637739_7921" name="ScatteringByteChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308650_444244_5435" body="A channel that can read bytes into a sequence of buffers.&#xA;&#xA;&lt;p> A &lt;i>scattering&lt;/i> read operation reads, in a single invocation, a&#xA;sequence of bytes into one or more of a given sequence of buffers.&#xA;Scattering reads are often useful when implementing network protocols or&#xA;file formats that, for example, group data into segments consisting of one&#xA;or more fixed-length headers followed by a variable-length body.  Similar&#xA;&lt;i>gathering&lt;/i> write operations are defined in the {@link&#xA;GatheringByteChannel} interface.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.13, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_637739_7921"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_402424_13877" isSubstitutable="true" general="_9_5_f720368_1110473546659_763552_7919"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_671060_7927" name="Selector" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308660_306240_5441" body="A multiplexor of {@link SelectableChannel} objects.&#xA;&#xA;&lt;p> A selector may be created by invoking the {@link #open open} method of&#xA;this class, which will use the system's default {@link&#xA;java.nio.channels.spi.SelectorProvider &lt;/code>selector provider&lt;code>} to&#xA;create a new selector.  A selector may also be created by invoking the&#xA;{@link java.nio.channels.spi.SelectorProvider#openSelector openSelector}&#xA;method of a custom selector provider.  A selector remains open until it is&#xA;closed via its {@link #close close} method.&#xA;&#xA;&lt;a name=&quot;ks&quot;>&#xA;&#xA;&lt;p> A selectable channel's registration with a selector is represented by a&#xA;{@link SelectionKey} object.  A selector maintains three sets of selection&#xA;keys:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> The &lt;i>key set&lt;/i> contains the keys representing the current&#xA;channel registrations of this selector.  This set is returned by the&#xA;{@link #keys() keys} method. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The &lt;i>selected-key set&lt;/i> is the set of keys such that each&#xA;key's channel was detected to be ready for at least one of the operations&#xA;identified in the key's interest set during a prior selection operation.&#xA;This set is returned by the {@link #selectedKeys() selectedKeys} method.&#xA;The selected-key set is always a subset of the key set. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The &lt;i>cancelled-key&lt;/i> set is the set of keys that have been&#xA;cancelled but whose channels have not yet been deregistered.  This set is&#xA;not directly accessible.  The cancelled-key set is always a subset of the&#xA;key set. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> All three sets are empty in a newly-created selector.&#xA;&#xA;&lt;p> A key is added to a selector's key set as a side effect of registering a&#xA;channel via the channel's {@link SelectableChannel#register(Selector,int)&#xA;register} method.  Cancelled keys are removed from the key set during&#xA;selection operations.  The key set itself is not directly modifiable.&#xA;&#xA;&lt;p> A key is added to its selector's cancelled-key set when it is cancelled,&#xA;whether by closing its channel or by invoking its {@link SelectionKey#cancel&#xA;cancel} method.  Cancelling a key will cause its channel to be deregistered&#xA;during the next selection operation, at which time the key will removed from&#xA;all of the selector's key sets.&#xA;&#xA;&lt;a name=&quot;sks&quot;>&lt;p> Keys are added to the selected-key set by selection&#xA;operations.  A key may be removed directly from the selected-key set by&#xA;invoking the set's {@link java.util.Set#remove(java.lang.Object) remove}&#xA;method or by invoking the {@link java.util.Iterator#remove() remove} method&#xA;of an {@link java.util.Iterator &lt;/code>iterator&lt;code>} obtained from the&#xA;set.  Keys are never removed from the selected-key set in any other way;&#xA;they are not, in particular, removed as a side effect of selection&#xA;operations.  Keys may not be added directly to the selected-key set. &lt;/p>&#xA;&#xA;&#xA;&lt;a name=&quot;selop&quot;>&#xA;&lt;h4>Selection&lt;/h4>&#xA;&#xA;&lt;p> During each selection operation, keys may be added to and removed from a&#xA;selector's selected-key set and may be removed from its key and&#xA;cancelled-key sets.  Selection is performed by the {@link #select()}, {@link&#xA;#select(long)}, and {@link #selectNow()} methods, and involves three steps:&#xA;&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>&lt;p> Each key in the cancelled-key set is removed from each key set of&#xA;which it is a member, and its channel is deregistered.  This step leaves&#xA;the cancelled-key set empty. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The underlying operating system is queried for an update as to the&#xA;readiness of each remaining channel to perform any of the operations&#xA;identified by its key's interest set as of the moment that the selection&#xA;operation began.  For a channel that is ready for at least one such&#xA;operation, one of the following two actions is performed: &lt;/p>&#xA;&#xA;&lt;ol type=a>&#xA;&#xA;&lt;li>&lt;p> If the channel's key is not already in the selected-key set then&#xA;it is added to that set and its ready-operation set is modified to&#xA;identify exactly those operations for which the channel is now reported&#xA;to be ready.  Any readiness information previously recorded in the ready&#xA;set is discarded.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Otherwise the channel's key is already in the selected-key set,&#xA;so its ready-operation set is modified to identify any new operations&#xA;for which the channel is reported to be ready.  Any readiness&#xA;information previously recorded in the ready set is preserved; in other&#xA;words, the ready set returned by the underlying system is&#xA;bitwise-disjoined into the key's current ready set. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ol>&lt;/li>&#xA;&#xA;If all of the keys in the key set at the start of this step have empty&#xA;interest sets then neither the selected-key set nor any of the keys'&#xA;ready-operation sets will be updated.&#xA;&#xA;&lt;li>&lt;p> If any keys were added to the cancelled-key set while step (2) was&#xA;in progress then they are processed as in step (1). &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p> Whether or not a selection operation blocks to wait for one or more&#xA;channels to become ready, and if so for how long, is the only essential&#xA;difference between the three selection methods. &lt;/p>&#xA;&#xA;&#xA;&lt;h4>Concurrency&lt;/h4>&#xA;&#xA;&lt;p> Selectors are themselves safe for use by multiple concurrent threads;&#xA;their key sets, however, are not.&#xA;&#xA;&lt;p> The selection operations synchronize on the selector itself, on the key&#xA;set, and on the selected-key set, in that order.  They also synchronize on&#xA;the cancelled-key set during steps (1) and (3) above.&#xA;&#xA;&lt;p> Changes made to the interest sets of a selector's keys while a&#xA;selection operation is in progress have no effect upon that operation; they&#xA;will be seen by the next selection operation.&#xA;&#xA;&lt;p> Keys may be cancelled and channels may be closed at any time.  Hence the&#xA;presence of a key in one or more of a selector's key sets does not imply&#xA;that the key is valid or that its channel is open.  Application code should&#xA;be careful to synchronize and check these conditions as necessary if there&#xA;is any possibility that another thread will cancel a key or close a channel.&#xA;&#xA;&lt;p> A thread blocked in one of the {@link #select()} or {@link&#xA;#select(long)} methods may be interrupted by some other thread in one of&#xA;three ways:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> By invoking the selector's {@link #wakeup wakeup} method,&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> By invoking the selector's {@link #close close} method, or&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> By invoking the blocked thread's {@link&#xA;java.lang.Thread#interrupt() interrupt} method, in which case its&#xA;interrupt status will be set and the selector's {@link #wakeup wakeup}&#xA;method will be invoked. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> The {@link #close close} method synchronizes on the selector and all&#xA;three key sets in the same order as in a selection operation.&#xA;&#xA;&lt;a name=&quot;ksc&quot;>&#xA;&#xA;&lt;p> A selector's key and selected-key sets are not, in general, safe for use&#xA;by multiple concurrent threads.  If such a thread might modify one of these&#xA;sets directly then access should be controlled by synchronizing on the set&#xA;itself.  The iterators returned by these sets' {@link&#xA;java.util.Set#iterator() iterator} methods are &lt;i>fail-fast:&lt;/i> If the set&#xA;is modified after the iterator is created, in any way except by invoking the&#xA;iterator's own {@link java.util.Iterator#remove() remove} method, then a&#xA;{@link java.util.ConcurrentModificationException} will be thrown. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.37, 04/05/05&#xA;@since 1.4&#xA;&#xA;@see SelectableChannel&#xA;@see SelectionKey&#xA;" annotatedElement="_9_5_f720368_1110473546659_671060_7927"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_509569_7909" name="NonWritableChannelException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_734417_5421" body="Unchecked exception thrown when an attempt is made to write&#xA;to a channel that was not originally opened for writing.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_509569_7909"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_916068_13866" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_22057_7871" name="AsynchronousCloseException">
              <ownedComment xmi:id="_10_5_622020d_1132928308600_272588_5382" body="Checked exception received by a thread when another thread closes the&#xA;channel or the part of the channel upon which it is blocked in an I/O&#xA;operation.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_22057_7871"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_685630_13838" isSubstitutable="true" general="_9_5_f720368_1110473546643_699206_7883"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_62007_7935" name="UnsupportedAddressTypeException">
              <ownedComment xmi:id="_10_5_622020d_1132928308710_16579_5449" body="Unchecked exception thrown when an attempt is made to bind or connect&#xA;to a socket address of a type that is not supported.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_62007_7935"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_745081_13886" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_872235_7891" name="FileChannel" clientDependency="_10_5_622020d_1132928321739_92454_13855 _10_5_622020d_1132928321739_15501_13856 _10_5_622020d_1132928321739_378392_13857" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308630_221058_5403" body="A channel for reading, writing, mapping, and manipulating a file.&#xA;&#xA;&lt;p> A file channel has a current &lt;i>position&lt;/i> within its file which can&#xA;be both {@link #position() &lt;/code>queried&lt;code>} and {@link #position(long)&#xA;&lt;/code>modified&lt;code>}.  The file itself contains a variable-length sequence&#xA;of bytes that can be read and written and whose current {@link #size&#xA;&lt;/code>&lt;i>size&lt;/i>&lt;code>} can be queried.  The size of the file increases&#xA;when bytes are written beyond its current size; the size of the file&#xA;decreases when it is {@link #truncate &lt;/code>&lt;i>truncated&lt;/i>&lt;code>}.  The&#xA;file may also have some associated &lt;i>metadata&lt;/i> such as access&#xA;permissions, content type, and last-modification time; this class does not&#xA;define methods for metadata access.&#xA;&#xA;&lt;p> In addition to the familiar read, write, and close operations of byte&#xA;channels, this class defines the following file-specific operations: &lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Bytes may be {@link #read(ByteBuffer, long) &lt;/code>read&lt;code>} or&#xA;{@link #write(ByteBuffer, long) &lt;/code>written&lt;code>} at an absolute&#xA;position in a file in a way that does not affect the channel's current&#xA;position.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> A region of a file may be {@link #map &lt;/code>mapped&lt;code>}&#xA;directly into memory; for large files this is often much more efficient&#xA;than invoking the usual &lt;tt>read&lt;/tt> or &lt;tt>write&lt;/tt> methods.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Updates made to a file may be {@link #force &lt;/code>forced&#xA;out&lt;code>} to the underlying storage device, ensuring that data are not&#xA;lost in the event of a system crash.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Bytes can be transferred from a file {@link #transferTo &lt;/code>to&#xA;some other channel&lt;code>}, and {@link #transferFrom &lt;/code>vice&#xA;versa&lt;code>}, in a way that can be optimized by many operating systems&#xA;into a very fast transfer directly to or from the filesystem cache.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> A region of a file may be {@link FileLock &lt;/code>locked&lt;code>}&#xA;against access by other programs.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> File channels are safe for use by multiple concurrent threads.  The&#xA;{@link Channel#close close} method may be invoked at any time, as specified&#xA;by the {@link Channel} interface.  Only one operation that involves the&#xA;channel's position or can change its file's size may be in progress at any&#xA;given time; attempts to initiate a second such operation while the first is&#xA;still in progress will block until the first operation completes.  Other&#xA;operations, in particular those that take an explicit position, may proceed&#xA;concurrently; whether they in fact do so is dependent upon the underlying&#xA;implementation and is therefore unspecified.&#xA;&#xA;&lt;p> The view of a file provided by an instance of this class is guaranteed&#xA;to be consistent with other views of the same file provided by other&#xA;instances in the same program.  The view provided by an instance of this&#xA;class may or may not, however, be consistent with the views seen by other&#xA;concurrently-running programs due to caching performed by the underlying&#xA;operating system and delays induced by network-filesystem protocols.  This&#xA;is true regardless of the language in which these other programs are&#xA;written, and whether they are running on the same machine or on some other&#xA;machine.  The exact nature of any such inconsistencies are system-dependent&#xA;and are therefore unspecified.&#xA;&#xA;&lt;p> This class does not define methods for opening existing files or for&#xA;creating new ones; such methods may be added in a future release.  In this&#xA;release a file channel can be obtained from an existing {@link&#xA;java.io.FileInputStream#getChannel FileInputStream}, {@link&#xA;java.io.FileOutputStream#getChannel FileOutputStream}, or {@link&#xA;java.io.RandomAccessFile#getChannel RandomAccessFile} object by invoking&#xA;that object's &lt;tt>getChannel&lt;/tt> method, which returns a file channel that&#xA;is connected to the same underlying file.&#xA;&#xA;&lt;p> The state of a file channel is intimately connected to that of the&#xA;object whose &lt;tt>getChannel&lt;/tt> method returned the channel.  Changing the&#xA;channel's position, whether explicitly or by reading or writing bytes, will&#xA;change the file position of the originating object, and vice versa.&#xA;Changing the file's length via the file channel will change the length seen&#xA;via the originating object, and vice versa.  Changing the file's content by&#xA;writing bytes will change the content seen by the originating object, and&#xA;vice versa.&#xA;&#xA;&lt;a name=&quot;open-mode&quot;>&lt;p> At various points this class specifies that an&#xA;instance that is &quot;open for reading,&quot; &quot;open for writing,&quot; or &quot;open for&#xA;reading and writing&quot; is required.  A channel obtained via the {@link&#xA;java.io.FileInputStream#getChannel getChannel} method of a {@link&#xA;java.io.FileInputStream} instance will be open for reading.  A channel&#xA;obtained via the {@link java.io.FileOutputStream#getChannel getChannel}&#xA;method of a {@link java.io.FileOutputStream} instance will be open for&#xA;writing.  Finally, a channel obtained via the {@link&#xA;java.io.RandomAccessFile#getChannel getChannel} method of a {@link&#xA;java.io.RandomAccessFile} instance will be open for reading if the instance&#xA;was created with mode &lt;tt>&quot;r&quot;&lt;/tt> and will be open for reading and writing&#xA;if the instance was created with mode &lt;tt>&quot;rw&quot;&lt;/tt>.&#xA;&#xA;&lt;a name=&quot;append-mode&quot;>&lt;p> A file channel that is open for writing may be in&#xA;&lt;i>append mode&lt;/i>, for example if it was obtained from a file-output stream&#xA;that was created by invoking the {@link&#xA;java.io.FileOutputStream#FileOutputStream(java.io.File,boolean)&#xA;FileOutputStream(File,boolean)} constructor and passing &lt;tt>true&lt;/tt> for&#xA;the second parameter.  In this mode each invocation of a relative write&#xA;operation first advances the position to the end of the file and then writes&#xA;the requested data.  Whether the advancement of the position and the writing&#xA;of the data are done in a single atomic operation is system-dependent and&#xA;therefore unspecified.&#xA;&#xA;&#xA;@see java.io.FileInputStream#getChannel()&#xA;@see java.io.FileOutputStream#getChannel()&#xA;@see java.io.RandomAccessFile#getChannel()&#xA;&#xA;@author Mark Reinhold&#xA;@author Mike McCloskey&#xA;@author JSR-51 Expert Group&#xA;@version 1.40, 04/01/12&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_872235_7891"/>
              <generalization xmi:id="_10_5_622020d_1132928321739_91850_13858" isSubstitutable="true" general="_9_5_f720368_1110473546643_136634_7859"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_92454_13855" name="" supplier="_9_5_f720368_1110473546643_237537_7873" client="_9_5_f720368_1110473546643_872235_7891" contract="_9_5_f720368_1110473546643_237537_7873"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_15501_13856" name="" supplier="_9_5_f720368_1110473546643_932884_7897" client="_9_5_f720368_1110473546643_872235_7891" contract="_9_5_f720368_1110473546643_932884_7897"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321739_378392_13857" name="" supplier="_9_5_f720368_1110473546659_637739_7921" client="_9_5_f720368_1110473546643_872235_7891" contract="_9_5_f720368_1110473546659_637739_7921"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_107505_18182" name="MapMode">
                <ownedComment xmi:id="_10_5_622020d_1132928308610_682182_5401" body="A typesafe enumeration for file-mapping modes.&#xA;&#xA;@version 1.40, 04/01/12&#xA;@since 1.4&#xA;&#xA;@see java.nio.channels.FileChannel#map&#xA;" annotatedElement="_9_5_f720368_1110473547643_107505_18182"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_890979_7911" name="NotYetBoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_123856_5423" body="Unchecked exception thrown when an attempt is made to invoke an I/O&#xA;operation upon a server socket channel that is not yet bound.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_890979_7911"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_317651_13867" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547643_602806_18152" name="spi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_567602_7863" name="AbstractSelectionKey" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308590_11840_5374" body="Base implementation class for selection keys.&#xA;&#xA;&lt;p> This class tracks the validity of the key and implements cancellation.&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.11, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_567602_7863"/>
                <generalization xmi:id="_10_5_622020d_1132928321739_398053_13835" isSubstitutable="true" general="_9_5_f720368_1110473546659_359793_7925"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_136634_7859" name="AbstractInterruptibleChannel" clientDependency="_10_5_622020d_1132928321729_282130_13831 _10_5_622020d_1132928321729_762009_13832" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308590_176637_5370" body="Base implementation class for interruptible channels.&#xA;&#xA;&lt;p> This class encapsulates the low-level machinery required to implement&#xA;the asynchronous closing and interruption of channels.  A concrete channel&#xA;class must invoke the {@link #begin begin} and {@link #end end} methods&#xA;before and after, respectively, invoking an I/O operation that might block&#xA;indefinitely.  In order to ensure that the {@link #end end} method is always&#xA;invoked, these methods should be used within a&#xA;&lt;tt>try&lt;/tt>&amp;nbsp;...&amp;nbsp;&lt;tt>finally&lt;/tt> block: &lt;a name=&quot;be&quot;>&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;boolean completed = false;&#xA;try {&#xA;begin();&#xA;completed = ...;    // Perform blocking I/O operation&#xA;return ...;         // Return result&#xA;} finally {&#xA;end(completed);&#xA;}&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The &lt;tt>completed&lt;/tt> argument to the {@link #end end} method tells&#xA;whether or not the I/O operation actually completed, that is, whether it had&#xA;any effect that would be visible to the invoker.  In the case of an&#xA;operation that reads bytes, for example, this argument should be&#xA;&lt;tt>true&lt;/tt> if, and only if, some bytes were actually transferred into the&#xA;invoker's target buffer.&#xA;&#xA;&lt;p> A concrete channel class must also implement the {@link&#xA;#implCloseChannel implCloseChannel} method in such a way that if it is&#xA;invoked while another thread is blocked in a native I/O operation upon the&#xA;channel then that operation will immediately return, either by throwing an&#xA;exception or by returning normally.  If a thread is interrupted or the&#xA;channel upon which it is blocked is asynchronously closed then the channel's&#xA;{@link #end end} method will throw the appropriate exception.&#xA;&#xA;&lt;p> This class performs the synchronization required to implement the {@link&#xA;java.nio.channels.Channel} specification.  Implementations of the {@link&#xA;#implCloseChannel implCloseChannel} method need not synchronize against&#xA;other threads that might be attempting to close the channel.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.15, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_136634_7859"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321729_282130_13831" name="" supplier="_9_5_f720368_1110473546643_379446_7877" client="_9_5_f720368_1110473546643_136634_7859" contract="_9_5_f720368_1110473546643_379446_7877"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321729_762009_13832" name="" supplier="_9_5_f720368_1110473546643_524469_7903" client="_9_5_f720368_1110473546643_136634_7859" contract="_9_5_f720368_1110473546643_524469_7903"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547643_756721_18154" name="FooChannel" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928321729_705330_13833" isSubstitutable="true" general="_9_5_f720368_1110473546643_136634_7859"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_479847_7865" name="AbstractSelector" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308590_762070_5376" body="Base implementation class for selectors.&#xA;&#xA;&lt;p> This class encapsulates the low-level machinery required to implement&#xA;the interruption of selection operations.  A concrete selector class must&#xA;invoke the {@link #begin begin} and {@link #end end} methods before and&#xA;after, respectively, invoking an I/O operation that might block&#xA;indefinitely.  In order to ensure that the {@link #end end} method is always&#xA;invoked, these methods should be used within a&#xA;&lt;tt>try&lt;/tt>&amp;nbsp;...&amp;nbsp;&lt;tt>finally&lt;/tt> block: &lt;a name=&quot;be&quot;>&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;try {&#xA;begin();&#xA;Perform blocking I/O operation here&#xA;...&#xA;} finally {&#xA;end();&#xA;}&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> This class also defines methods for maintaining a selector's&#xA;cancelled-key set and for removing a key from its channel's key set, and&#xA;declares the abstract {@link #register register} method that is invoked by a&#xA;selectable channel's {@link AbstractSelectableChannel#register register}&#xA;method in order to perform the actual work of registering a channel.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.19, 04/05/05&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_479847_7865"/>
                <generalization xmi:id="_10_5_622020d_1132928321739_227354_13836" isSubstitutable="true" general="_9_5_f720368_1110473546659_671060_7927"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_277122_7867" name="SelectorProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308590_813967_5378" body="Service-provider class for selectors and selectable channels.&#xA;&#xA;&lt;p> A selector provider is a concrete subclass of this class that has a&#xA;zero-argument constructor and implements the abstract methods specified&#xA;below.  A given invocation of the Java virtual machine maintains a single&#xA;system-wide default provider instance, which is returned by the {@link&#xA;#provider provider} method.  The first invocation of that method will locate&#xA;the default provider as specified below.&#xA;&#xA;&lt;p> The system-wide default provider is used by the static &lt;tt>open&lt;/tt>&#xA;methods of the {@link java.nio.channels.DatagramChannel#open&#xA;DatagramChannel}, {@link java.nio.channels.Pipe#open Pipe}, {@link&#xA;java.nio.channels.Selector#open Selector}, {@link&#xA;java.nio.channels.ServerSocketChannel#open ServerSocketChannel}, and {@link&#xA;java.nio.channels.SocketChannel#open SocketChannel} classes.  It is also&#xA;used by the {@link java.lang.System#inheritedChannel System.inheritedChannel()}&#xA;method. A program may make use of a provider other than the default provider&#xA;by instantiating that provider and then directly invoking the &lt;tt>open&lt;/tt>&#xA;methods defined in this class.&#xA;&#xA;&lt;p> All of the methods in this class are safe for use by multiple concurrent&#xA;threads.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.26, 04/06/15&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_277122_7867"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_94013_7861" name="AbstractSelectableChannel" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308590_897460_5372" body="Base implementation class for selectable channels.&#xA;&#xA;&lt;p> This class defines methods that handle the mechanics of channel&#xA;registration, deregistration, and closing.  It maintains the current&#xA;blocking mode of this channel as well as its current set of selection keys.&#xA;It performs all of the synchronization required to implement the {@link&#xA;java.nio.channels.SelectableChannel} specification.  Implementations of the&#xA;abstract protected methods defined in this class need not synchronize&#xA;against other threads that might be engaged in the same operations.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author Mike McCloskey&#xA;@author JSR-51 Expert Group&#xA;@version 1.25, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_94013_7861"/>
                <generalization xmi:id="_10_5_622020d_1132928321739_585961_13834" isSubstitutable="true" general="_9_5_f720368_1110473546659_881875_7923"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_931361_7907" name="NonReadableChannelException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_323146_5419" body="Unchecked exception thrown when an attempt is made to read&#xA;from a channel that was not originally opened for reading.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_931361_7907"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_674820_13865" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_684038_7915" name="OverlappingFileLockException">
              <ownedComment xmi:id="_10_5_622020d_1132928308640_991683_5427" body="Unchecked exception thrown when an attempt is made to acquire a lock on a&#xA;region of a file that overlaps a region already locked by the same Java&#xA;virtual machine, or when another thread is already waiting to lock an&#xA;overlapping region of the same file.&#xA;&#xA;@version 1.9, 01/11/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_684038_7915"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_426398_13869" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_300652_8115" name="MappedByteBuffer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_951867_5579" body="A direct byte buffer whose content is a memory-mapped region of a file.&#xA;&#xA;&lt;p> Mapped byte buffers are created via the {@link&#xA;java.nio.channels.FileChannel#map FileChannel.map} method.  This class&#xA;extends the {@link ByteBuffer} class with operations that are specific to&#xA;memory-mapped file regions.&#xA;&#xA;&lt;p> A mapped byte buffer and the file mapping that it represents remain&#xA;valid until the buffer itself is garbage-collected.&#xA;&#xA;&lt;p> The content of a mapped byte buffer can change at any time, for example&#xA;if the content of the corresponding region of the mapped file is changed by&#xA;this program or another.  Whether or not such changes occur, and when they&#xA;occur, is operating-system dependent and therefore unspecified.&#xA;&#xA;&lt;a name=&quot;inaccess&quot;>&lt;p> All or part of a mapped byte buffer may become&#xA;inaccessible at any time, for example if the mapped file is truncated.  An&#xA;attempt to access an inaccessible region of a mapped byte buffer will not&#xA;change the buffer's content and will cause an unspecified exception to be&#xA;thrown either at the time of the access or at some later time.  It is&#xA;therefore strongly recommended that appropriate precautions be taken to&#xA;avoid the manipulation of a mapped file by this program, or by a&#xA;concurrently running program, except to read or write the file's content.&#xA;&#xA;&lt;p> Mapped byte buffers otherwise behave no differently than ordinary direct&#xA;byte buffers. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.23, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_300652_8115"/>
            <generalization xmi:id="_10_5_622020d_1132928321819_73053_14025" isSubstitutable="true" general="_9_5_f720368_1110473546659_818813_7971"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_963236_8035" name="DirectCharBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_888168_13949" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_70023_8007" name="ByteBufferAsLongBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_627681_13922" isSubstitutable="true" general="_9_5_f720368_1110473546659_884690_8113"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_870128_8045" name="DirectFloatBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_546420_13959" isSubstitutable="true" general="_9_5_f720368_1110473546659_929477_8049"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_656884_8051" name="DirectFloatBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_227991_13965" isSubstitutable="true" general="_9_5_f720368_1110473546659_742353_8079"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_888687_7985" name="ByteBufferAsDoubleBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_253606_13911" isSubstitutable="true" general="_9_5_f720368_1110473546659_116621_7981"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_805246_8091" name="HeapDoubleBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_495146_5555" body="A read-only HeapDoubleBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_805246_8091"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_123554_14005" isSubstitutable="true" general="_9_5_f720368_1110473546659_924757_8089"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_265783_8029" name="DirectCharBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_534169_13943" isSubstitutable="true" general="_9_5_f720368_1110473546659_685619_8033"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321769_979686_13929" name="Comparable&lt;CharBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321769_999020_13930" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321769_562772_13931" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_851261_8023"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_52515_8013" name="ByteBufferAsShortBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_208940_13925" isSubstitutable="true" general="_9_5_f720368_1110473546659_549192_8119"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_884690_8113" name="LongBuffer" clientDependency="_10_5_622020d_1132928321809_93344_14023" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_372768_5577" body="A long buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;long buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(long) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single longs; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(long[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of longs from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(long[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of longs from a&#xA;long array or some other long&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a long buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Long buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(long[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;long array  into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a long buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;long buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A long buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a long buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_884690_8113"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_547756_14024" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321809_93344_14023" name="" supplier="_10_5_622020d_1132928321809_550836_14020" client="_9_5_f720368_1110473546659_884690_8113" contract="_10_5_622020d_1132928321809_550836_14020"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_272472_8109" name="IntBuffer" clientDependency="_10_5_622020d_1132928321809_998370_14017" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_943606_5573" body="An int buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;int buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(int) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single ints; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(int[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of ints from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(int[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of ints from an&#xA;int array or some other int&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a int buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Int buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(int[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;int array  into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a int buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;int buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A int buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a int buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_272472_8109"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_696883_14018" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321809_998370_14017" name="" supplier="_10_5_622020d_1132928321809_669172_14014" client="_9_5_f720368_1110473546659_272472_8109" contract="_10_5_622020d_1132928321809_669172_14014"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_548008_8077" name="DoubleBuffer" clientDependency="_10_5_622020d_1132928321799_91879_13993" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308870_606859_5541" body="A double buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;double buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(double) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single doubles; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(double[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of doubles from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(double[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of doubles from a&#xA;double array or some other double&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a double buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Double buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(double[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;double array  into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a double buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;double buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A double buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a double buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_548008_8077"/>
            <generalization xmi:id="_10_5_622020d_1132928321799_684937_13994" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321799_91879_13993" name="" supplier="_10_5_622020d_1132928321799_191554_13990" client="_9_5_f720368_1110473546659_548008_8077" contract="_10_5_622020d_1132928321799_191554_13990"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_232831_8087" name="HeapCharBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_537528_5551" body="A read-only HeapCharBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_232831_8087"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_261189_14003" isSubstitutable="true" general="_9_5_f720368_1110473546659_996007_8085"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_910736_7995" name="ByteBufferAsFloatBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_839692_13916" isSubstitutable="true" general="_9_5_f720368_1110473546659_381770_7991"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_695129_8043" name="DirectDoubleBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_856092_13957" isSubstitutable="true" general="_9_5_f720368_1110473546659_548008_8077"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_839559_8021" name="ByteOrder" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308850_541013_5511" body="A typesafe enumeration for byte orders.&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.13, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_839559_8021"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_346035_7987" name="ByteBufferAsDoubleBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_953181_13912" isSubstitutable="true" general="_9_5_f720368_1110473546659_460770_7983"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_137377_8057" name="DirectIntBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_556385_13971" isSubstitutable="true" general="_9_5_f720368_1110473546659_272472_8109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_851261_8023" name="CharBuffer" clientDependency="_10_5_622020d_1132928321769_649416_13934 _10_5_622020d_1132928321769_813561_13935 _10_5_622020d_1132928321769_751053_13933 _10_5_622020d_1132928321769_310654_13932" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308850_253384_5513" body="A character buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;character buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(char) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single characters; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(char[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of characters from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(char[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of characters from a&#xA;character array,&amp;#32;a&amp;#32;string, or some other character&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a character buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Character buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(char[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;character array or&amp;#32;string into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a character buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;character buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A character buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a character buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&lt;p> This class implements the {@link CharSequence} interface so that&#xA;character buffers may be used wherever character sequences are accepted, for&#xA;example in the regular-expression package &lt;tt>{@link java.util.regex}&lt;/tt>.&#xA;&lt;/p>&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;The sequence of statements&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;cb.put(&quot;text/&quot;);&#xA;cb.put(subtype);&#xA;cb.put(&quot;; charset=&quot;);&#xA;cb.put(enc);&lt;/pre>&lt;/blockquote>&#xA;&#xA;can, for example, be replaced by the single statement&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;cb.put(&quot;text/&quot;).put(subtype).put(&quot;; charset=&quot;).put(enc);&lt;/pre>&lt;/blockquote>&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_851261_8023"/>
            <generalization xmi:id="_10_5_622020d_1132928321769_99337_13936" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321769_310654_13932" name="" supplier="_10_5_622020d_1132928321769_979686_13929" client="_9_5_f720368_1110473546659_851261_8023" contract="_10_5_622020d_1132928321769_979686_13929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321769_751053_13933" name="" supplier="_10_5_622020d_1132928307869_604362_4929" client="_9_5_f720368_1110473546659_851261_8023" contract="_10_5_622020d_1132928307869_604362_4929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321769_649416_13934" name="" supplier="_9_5_f720368_1110473546612_21020_7571" client="_9_5_f720368_1110473546659_851261_8023" contract="_9_5_f720368_1110473546612_21020_7571"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321769_813561_13935" name="" supplier="_10_5_622020d_1132928308059_262497_5125" client="_9_5_f720368_1110473546659_851261_8023" contract="_10_5_622020d_1132928308059_262497_5125"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_809478_8121" name="StringCharBuffer" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321819_492297_14032" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_526519_8009" name="ByteBufferAsLongBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_553635_13923" isSubstitutable="true" general="_9_5_f720368_1110473546659_147191_8005"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321799_404690_13995" name="Comparable&lt;FloatBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321799_412461_13996" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321799_228586_13997" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_742353_8079"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_81752_7993" name="ByteBufferAsFloatBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_20939_13915" isSubstitutable="true" general="_9_5_f720368_1110473546659_57994_7989"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_924757_8089" name="HeapDoubleBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_914418_5553" body="A read/write HeapDoubleBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_924757_8089"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_26985_14004" isSubstitutable="true" general="_9_5_f720368_1110473546659_548008_8077"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_157393_8111" name="InvalidMarkException">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_431475_5575" body="Unchecked exception thrown when an attempt is made to reset a buffer&#xA;when its mark is not defined.&#xA;&#xA;@version 1.14, 01/05/02&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_157393_8111"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_671830_14019" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_542143_8071" name="DirectShortBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321799_131_13985" isSubstitutable="true" general="_9_5_f720368_1110473546659_493147_8075"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_460770_7983" name="ByteBufferAsDoubleBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_330177_13910" isSubstitutable="true" general="_9_5_f720368_1110473546659_548008_8077"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_394023_7975" name="ByteBufferAsCharBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_873345_13906" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_433703_8003" name="ByteBufferAsIntBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_213482_13920" isSubstitutable="true" general="_9_5_f720368_1110473546659_175838_7999"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_288591_8093" name="HeapFloatBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_601839_5557" body="A read/write HeapFloatBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_288591_8093"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_747292_14006" isSubstitutable="true" general="_9_5_f720368_1110473546659_742353_8079"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321809_669172_14014" name="Comparable&lt;IntBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321809_308790_14015" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321809_948825_14016" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_272472_8109"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_789909_8055" name="DirectIntBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_39202_13969" isSubstitutable="true" general="_9_5_f720368_1110473546659_928632_8059"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_705437_7969" name="BufferUnderflowException">
            <ownedComment xmi:id="_10_5_622020d_1132928308780_193540_5483" body="Unchecked exception thrown when a relative &lt;i>get&lt;/i> operation reaches&#xA;the source buffer's limit.&#xA;&#xA;@version 1.14, 01/05/02&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_705437_7969"/>
            <generalization xmi:id="_10_5_622020d_1132928321759_226758_13899" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_685619_8033" name="DirectCharBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_4408_13947" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_928632_8059" name="DirectIntBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_352329_13973" isSubstitutable="true" general="_9_5_f720368_1110473546659_272472_8109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_537295_8001" name="ByteBufferAsIntBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_267247_13919" isSubstitutable="true" general="_9_5_f720368_1110473546659_330982_7997"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_688010_7965" name="Buffer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308780_63530_5479" body="A container for data of a specific primitive type.&#xA;&#xA;&lt;p> A buffer is a linear, finite sequence of elements of a specific&#xA;primitive type.  Aside from its content, the essential properties of a&#xA;buffer are its capacity, limit, and position: &lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&#xA;&lt;p> A buffer's &lt;i>capacity&lt;/i> is the number of elements it contains.  The&#xA;capacity of a buffer is never negative and never changes.  &lt;/p>&#xA;&#xA;&lt;p> A buffer's &lt;i>limit&lt;/i> is the index of the first element that should&#xA;not be read or written.  A buffer's limit is never negative and is never&#xA;greater than its capacity.  &lt;/p>&#xA;&#xA;&lt;p> A buffer's &lt;i>position&lt;/i> is the index of the next element to be&#xA;read or written.  A buffer's position is never negative and is never&#xA;greater than its limit.  &lt;/p>&#xA;&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> There is one subclass of this class for each non-boolean primitive type.&#xA;&#xA;&#xA;&lt;h4> Transferring data &lt;/h4>&#xA;&#xA;&lt;p> Each subclass of this class defines two categories of &lt;i>get&lt;/i> and&#xA;&lt;i>put&lt;/i> operations: &lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&#xA;&lt;p> &lt;i>Relative&lt;/i> operations read or write one or more elements starting&#xA;at the current position and then increment the position by the number of&#xA;elements transferred.  If the requested transfer exceeds the limit then a&#xA;relative &lt;i>get&lt;/i> operation throws a {@link BufferUnderflowException}&#xA;and a relative &lt;i>put&lt;/i> operation throws a {@link&#xA;BufferOverflowException}; in either case, no data is transferred.  &lt;/p>&#xA;&#xA;&lt;p> &lt;i>Absolute&lt;/i> operations take an explicit element index and do not&#xA;affect the position.  Absolute &lt;i>get&lt;/i> and &lt;i>put&lt;/i> operations throw&#xA;an {@link IndexOutOfBoundsException} if the index argument exceeds the&#xA;limit.  &lt;/p>&#xA;&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> Data may also, of course, be transferred in to or out of a buffer by the&#xA;I/O operations of an appropriate channel, which are always relative to the&#xA;current position.&#xA;&#xA;&#xA;&lt;h4> Marking and resetting &lt;/h4>&#xA;&#xA;&lt;p> A buffer's &lt;i>mark&lt;/i> is the index to which its position will be reset&#xA;when the {@link #reset reset} method is invoked.  The mark is not always&#xA;defined, but when it is defined it is never negative and is never greater&#xA;than the position.  If the mark is defined then it is discarded when the&#xA;position or the limit is adjusted to a value smaller than the mark.  If the&#xA;mark is not defined then invoking the {@link #reset reset} method causes an&#xA;{@link InvalidMarkException} to be thrown.&#xA;&#xA;&#xA;&lt;h4> Invariants &lt;/h4>&#xA;&#xA;&lt;p> The following invariant holds for the mark, position, limit, and&#xA;capacity values:&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>0&lt;/tt> &lt;tt>&lt;=&lt;/tt>&#xA;&lt;i>mark&lt;/i> &lt;tt>&lt;=&lt;/tt>&#xA;&lt;i>position&lt;/i> &lt;tt>&lt;=&lt;/tt>&#xA;&lt;i>limit&lt;/i> &lt;tt>&lt;=&lt;/tt>&#xA;&lt;i>capacity&lt;/i>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> A newly-created buffer always has a position of zero and a mark that is&#xA;undefined.  The initial limit may be zero, or it may be some other value&#xA;that depends upon the type of the buffer and the manner in which it is&#xA;constructed.  The initial content of a buffer is, in general,&#xA;undefined.&#xA;&#xA;&#xA;&lt;h4> Clearing, flipping, and rewinding &lt;/h4>&#xA;&#xA;&lt;p> In addition to methods for accessing the position, limit, and capacity&#xA;values and for marking and resetting, this class also defines the following&#xA;operations upon buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> {@link #clear} makes a buffer ready for a new sequence of&#xA;channel-read or relative &lt;i>put&lt;/i> operations: It sets the limit to the&#xA;capacity and the position to zero.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> {@link #flip} makes a buffer ready for a new sequence of&#xA;channel-write or relative &lt;i>get&lt;/i> operations: It sets the limit to the&#xA;current position and then sets the position to zero.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> {@link #rewind} makes a buffer ready for re-reading the data that&#xA;it already contains: It leaves the limit unchanged and sets the position&#xA;to zero.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&#xA;&lt;h4> Read-only buffers &lt;/h4>&#xA;&#xA;&lt;p> Every buffer is readable, but not every buffer is writable.  The&#xA;mutation methods of each buffer class are specified as &lt;i>optional&#xA;operations&lt;/i> that will throw a {@link ReadOnlyBufferException} when&#xA;invoked upon a read-only buffer.  A read-only buffer does not allow its&#xA;content to be changed, but its mark, position, and limit values are mutable.&#xA;Whether or not a buffer is read-only may be determined by invoking its&#xA;{@link #isReadOnly isReadOnly} method.&#xA;&#xA;&#xA;&lt;h4> Thread safety &lt;/h4>&#xA;&#xA;&lt;p> Buffers are not safe for use by multiple concurrent threads.  If a&#xA;buffer is to be used by more than one thread then access to the buffer&#xA;should be controlled by appropriate synchronization.&#xA;&#xA;&#xA;&lt;h4> Invocation chaining &lt;/h4>&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained; for example, the sequence of statements&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;b.flip();&#xA;b.position(23);&#xA;b.limit(42);&lt;/pre>&lt;/blockquote>&#xA;&#xA;can be replaced by the single, more compact statement&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;b.flip().position(23).limit(42);&lt;/pre>&lt;/blockquote>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.34, 04/06/14&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_688010_7965"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321809_550836_14020" name="Comparable&lt;LongBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321809_934540_14021" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321809_468000_14022" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_884690_8113"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_200502_8073" name="DirectShortBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321799_569445_13987" isSubstitutable="true" general="_9_5_f720368_1110473546659_549192_8119"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_81726_8097" name="HeapIntBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308890_988819_5561" body="A read/write HeapIntBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_81726_8097"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_637718_14008" isSubstitutable="true" general="_9_5_f720368_1110473546659_272472_8109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321799_191554_13990" name="Comparable&lt;DoubleBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321799_426001_13991" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321799_636125_13992" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_548008_8077"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_137024_8083" name="HeapByteBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308880_987514_5547" body="A read-only HeapByteBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_137024_8083"/>
            <generalization xmi:id="_10_5_622020d_1132928321799_656328_14001" isSubstitutable="true" general="_9_5_f720368_1110473546659_62290_8081"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_399944_8027" name="DirectByteBufferR" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_73385_13941" isSubstitutable="true" general="_9_5_f720368_1110473546659_815119_8025"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_29962_7977" name="ByteBufferAsCharBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_33796_13907" isSubstitutable="true" general="_9_5_f720368_1110473546659_675188_7973"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321819_6022_14027" name="Comparable&lt;ShortBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321819_733750_14028" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321819_705250_14029" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_549192_8119"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_815119_8025" name="DirectByteBuffer" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_220469_13938" isSubstitutable="true" general="_9_5_f720368_1110473546659_300652_8115"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547674_845974_18294" name="Deallocator" visibility="private" clientDependency="_10_5_622020d_1132928321779_508930_13939">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321779_508930_13939" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473547674_845974_18294" contract="_9_5_f720368_1110473546612_953158_7669"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_330982_7997" name="ByteBufferAsIntBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_465949_13917" isSubstitutable="true" general="_9_5_f720368_1110473546659_272472_8109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_414041_8019" name="ByteBufferAsShortBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_599883_13928" isSubstitutable="true" general="_9_5_f720368_1110473546659_369878_8015"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_31786_8103" name="HeapLongBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308890_569036_5567" body="A read-only HeapLongBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_31786_8103"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_830064_14011" isSubstitutable="true" general="_9_5_f720368_1110473546659_468101_8101"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_818813_7971" name="ByteBuffer" clientDependency="_10_5_622020d_1132928321759_849262_13903" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308830_869812_5485" body="A byte buffer.&#xA;&#xA;&lt;p> This class defines six categories of operations upon&#xA;byte buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(byte) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single bytes; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(byte[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of bytes from this buffer&#xA;into an array; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(byte[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of bytes from a&#xA;byte array or some other byte&#xA;buffer into this buffer; &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #getChar() &lt;/code>&lt;i>get&lt;/i>&lt;code>}&#xA;and {@link #putChar(char) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and&#xA;write values of other primitive types, translating them to and from&#xA;sequences of bytes in a particular byte order; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Methods for creating &lt;i>&lt;a href=&quot;#views&quot;>view buffers&lt;/a>&lt;/i>,&#xA;which allow a byte buffer to be viewed as a buffer containing values of&#xA;some other primitive type; and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a byte buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Byte buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, or by {@link #wrap(byte[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an&#xA;existing byte array  into a buffer.&#xA;&#xA;&#xA;&#xA;&lt;a name=&quot;direct&quot;>&#xA;&lt;h4> Direct &lt;i>vs.&lt;/i> non-direct buffers &lt;/h4>&#xA;&#xA;&lt;p> A byte buffer is either &lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>.  Given a&#xA;direct byte buffer, the Java virtual machine will make a best effort to&#xA;perform native I/O operations directly upon it.  That is, it will attempt to&#xA;avoid copying the buffer's content to (or from) an intermediate buffer&#xA;before (or after) each invocation of one of the underlying operating&#xA;system's native I/O operations.&#xA;&#xA;&lt;p> A direct byte buffer may be created by invoking the {@link&#xA;#allocateDirect(int) allocateDirect} factory method of this class.  The&#xA;buffers returned by this method typically have somewhat higher allocation&#xA;and deallocation costs than non-direct buffers.  The contents of direct&#xA;buffers may reside outside of the normal garbage-collected heap, and so&#xA;their impact upon the memory footprint of an application might not be&#xA;obvious.  It is therefore recommended that direct buffers be allocated&#xA;primarily for large, long-lived buffers that are subject to the underlying&#xA;system's native I/O operations.  In general it is best to allocate direct&#xA;buffers only when they yield a measureable gain in program performance.&#xA;&#xA;&lt;p> A direct byte buffer may also be created by {@link&#xA;java.nio.channels.FileChannel#map &lt;/code>mapping&lt;code>} a region of a file&#xA;directly into memory.  An implementation of the Java platform may optionally&#xA;support the creation of direct byte buffers from native code via JNI.  If an&#xA;instance of one of these kinds of buffers refers to an inaccessible region&#xA;of memory then an attempt to access that region will not change the buffer's&#xA;content and will cause an unspecified exception to be thrown either at the&#xA;time of the access or at some later time.&#xA;&#xA;&lt;p> Whether a byte buffer is direct or non-direct may be determined by&#xA;invoking its {@link #isDirect isDirect} method.  This method is provided so&#xA;that explicit buffer management can be done in performance-critical code.&#xA;&#xA;&#xA;&lt;a name=&quot;bin&quot;>&#xA;&lt;h4> Access to binary data &lt;/h4>&#xA;&#xA;&lt;p> This class defines methods for reading and writing values of all other&#xA;primitive types, except &lt;tt>boolean&lt;/tt>.  Primitive values are translated&#xA;to (or from) sequences of bytes according to the buffer's current byte&#xA;order, which may be retrieved and modified via the {@link #order order}&#xA;methods.  Specific byte orders are represented by instances of the {@link&#xA;ByteOrder} class.  The initial order of a byte buffer is always {@link&#xA;ByteOrder#BIG_ENDIAN BIG_ENDIAN}.&#xA;&#xA;&lt;p> For access to heterogeneous binary data, that is, sequences of values of&#xA;different types, this class defines a family of absolute and relative&#xA;&lt;i>get&lt;/i> and &lt;i>put&lt;/i> methods for each type.  For 32-bit floating-point&#xA;values, for example, this class defines:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;float  {@link #getFloat()}&#xA;float  {@link #getFloat(int) getFloat(int index)}&#xA;void  {@link #putFloat(float) putFloat(float f)}&#xA;void  {@link #putFloat(int,float) putFloat(int index, float f)}&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> Corresponding methods are defined for the types &lt;tt>char&lt;/tt>,&#xA;&lt;tt>short&lt;/tt>, &lt;tt>int&lt;/tt>, &lt;tt>long&lt;/tt>, and &lt;tt>double&lt;/tt>.  The index&#xA;parameters of the absolute &lt;i>get&lt;/i> and &lt;i>put&lt;/i> methods are in terms of&#xA;bytes rather than of the type being read or written.&#xA;&#xA;&lt;a name=&quot;views&quot;>&#xA;&#xA;&lt;p> For access to homogeneous binary data, that is, sequences of values of&#xA;the same type, this class defines methods that can create &lt;i>views&lt;/i> of a&#xA;given byte buffer.  A &lt;i>view buffer&lt;/i> is simply another buffer whose&#xA;content is backed by the byte buffer.  Changes to the byte buffer's content&#xA;will be visible in the view buffer, and vice versa; the two buffers'&#xA;position, limit, and mark values are independent.  The {@link&#xA;#asFloatBuffer() asFloatBuffer} method, for example, creates an instance of&#xA;the {@link FloatBuffer} class that is backed by the byte buffer upon which&#xA;the method is invoked.  Corresponding view-creation methods are defined for&#xA;the types &lt;tt>char&lt;/tt>, &lt;tt>short&lt;/tt>, &lt;tt>int&lt;/tt>, &lt;tt>long&lt;/tt>, and&#xA;&lt;tt>double&lt;/tt>.&#xA;&#xA;&lt;p> View buffers have three important advantages over the families of&#xA;type-specific &lt;i>get&lt;/i> and &lt;i>put&lt;/i> methods described above:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> A view buffer is indexed not in terms of bytes but rather in terms&#xA;of the type-specific size of its values;  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> A view buffer provides relative bulk &lt;i>get&lt;/i> and &lt;i>put&lt;/i>&#xA;methods that can transfer contiguous sequences of values between a buffer&#xA;and an array or some other buffer of the same type; and  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> A view buffer is potentially much more efficient because it will&#xA;be direct if, and only if, its backing byte buffer is direct.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> The byte order of a view buffer is fixed to be that of its byte buffer&#xA;at the time that the view is created.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h4> Invocation chaining &lt;/h4>&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;The sequence of statements&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;bb.putInt(0xCAFEBABE);&#xA;bb.putShort(3);&#xA;bb.putShort(45);&lt;/pre>&lt;/blockquote>&#xA;&#xA;can, for example, be replaced by the single statement&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;bb.putInt(0xCAFEBABE).putShort(3).putShort(45);&lt;/pre>&lt;/blockquote>&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_818813_7971"/>
            <generalization xmi:id="_10_5_622020d_1132928321759_109617_13904" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321759_849262_13903" name="" supplier="_10_5_622020d_1132928321759_28233_13900" client="_9_5_f720368_1110473546659_818813_7971" contract="_10_5_622020d_1132928321759_28233_13900"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_6745_8017" name="ByteBufferAsShortBufferRB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_173623_13927" isSubstitutable="true" general="_9_5_f720368_1110473546659_52515_8013"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_468101_8101" name="HeapLongBuffer" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308890_416551_5565" body="A read/write HeapLongBuffer.&#xA;" annotatedElement="_9_5_f720368_1110473546659_468101_8101"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_813488_14010" isSubstitutable="true" general="_9_5_f720368_1110473546659_884690_8113"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_116621_7981" name="ByteBufferAsDoubleBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_287778_13909" isSubstitutable="true" general="_9_5_f720368_1110473546659_548008_8077"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_312021_8041" name="DirectDoubleBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_971929_13955" isSubstitutable="true" general="_9_5_f720368_1110473546659_548008_8077"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547659_432841_18264" name="charset">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_687911_7943" name="Charset" clientDependency="_10_5_622020d_1132928321759_202603_13892" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308720_690839_5457" body="A named mapping between sequences of sixteen-bit Unicode &lt;a&#xA;href=&quot;../../lang/Character.java#unicode&quot;>code units&lt;/a> and sequences of&#xA;bytes.  This class defines methods for creating decoders and encoders and&#xA;for retrieving the various names associated with a charset.  Instances of&#xA;this class are immutable.&#xA;&#xA;&lt;p> This class also defines static methods for testing whether a particular&#xA;charset is supported, for locating charset instances by name, and for&#xA;constructing a map that contains every charset for which support is&#xA;available in the current Java virtual machine.  Support for new charsets can&#xA;be added via the service-provider interface defined in the {@link&#xA;java.nio.charset.spi.CharsetProvider} class.&#xA;&#xA;&lt;p> All of the methods defined in this class are safe for use by multiple&#xA;concurrent threads.&#xA;&#xA;&#xA;&lt;a name=&quot;names&quot;>&lt;a name=&quot;charenc&quot;>&#xA;&lt;h4>Charset names&lt;/h4>&#xA;&#xA;&lt;p> Charsets are named by strings composed of the following characters:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> The uppercase letters &lt;tt>'A'&lt;/tt> through &lt;tt>'Z'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0041'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'&amp;#92;u005a'&lt;/tt>),&#xA;&#xA;&lt;li> The lowercase letters &lt;tt>'a'&lt;/tt> through &lt;tt>'z'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0061'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'&amp;#92;u007a'&lt;/tt>),&#xA;&#xA;&lt;li> The digits &lt;tt>'0'&lt;/tt> through &lt;tt>'9'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0030'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'&amp;#92;u0039'&lt;/tt>),&#xA;&#xA;&lt;li> The dash character &lt;tt>'-'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u002d'&lt;/tt>,&amp;nbsp;&lt;small>HYPHEN-MINUS&lt;/small>),&#xA;&#xA;&lt;li> The period character &lt;tt>'.'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u002e'&lt;/tt>,&amp;nbsp;&lt;small>FULL STOP&lt;/small>),&#xA;&#xA;&lt;li> The colon character &lt;tt>':'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u003a'&lt;/tt>,&amp;nbsp;&lt;small>COLON&lt;/small>), and&#xA;&#xA;&lt;li> The underscore character &lt;tt>'_'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u005f'&lt;/tt>,&amp;nbsp;&lt;small>LOW&amp;nbsp;LINE&lt;/small>).&#xA;&#xA;&lt;/ul>&#xA;&#xA;A charset name must begin with either a letter or a digit.  The empty string&#xA;is not a legal charset name.  Charset names are not case-sensitive; that is,&#xA;case is always ignored when comparing charset names.  Charset names&#xA;generally follow the conventions documented in &lt;a&#xA;href=&quot;http://ietf.org/rfc/rfc2278.txt&quot;>&lt;i>RFC&amp;nbsp;2278:&amp;nbsp;IANA Charset&#xA;Registration Procedures&lt;/i>&lt;/a>.&#xA;&#xA;&lt;p> Every charset has a &lt;i>canonical name&lt;/i> and may also have one or more&#xA;&lt;i>aliases&lt;/i>.  The canonical name is returned by the {@link #name name} method&#xA;of this class.  Canonical names are, by convention, usually in upper case.&#xA;The aliases of a charset are returned by the {@link #aliases aliases}&#xA;method.&#xA;&#xA;&lt;a name=&quot;hn&quot;>&#xA;&#xA;&lt;p> Some charsets have an &lt;i>historical name&lt;/i> that is defined for&#xA;compatibility with previous versions of the Java platform.  A charset's&#xA;historical name is either its canonical name or one of its aliases.  The&#xA;historical name is returned by the &lt;tt>getEncoding()&lt;/tt> methods of the&#xA;{@link java.io.InputStreamReader#getEncoding InputStreamReader} and {@link&#xA;java.io.OutputStreamWriter#getEncoding OutputStreamWriter} classes.&#xA;&#xA;&lt;a name=&quot;iana&quot;>&#xA;&#xA;&lt;p> If a charset listed in the &lt;a&#xA;href=&quot;http://www.iana.org/assignments/character-sets&quot;>&lt;i>IANA Charset&#xA;Registry&lt;/i>&lt;/a> is supported by an implementation of the Java platform then&#xA;its canonical name must be the name listed in the registry.  Many charsets&#xA;are given more than one name in the registry, in which case the registry&#xA;identifies one of the names as &lt;i>MIME-preferred&lt;/i>.  If a charset has more&#xA;than one registry name then its canonical name must be the MIME-preferred&#xA;name and the other names in the registry must be valid aliases.  If a&#xA;supported charset is not listed in the IANA registry then its canonical name&#xA;must begin with one of the strings &lt;tt>&quot;X-&quot;&lt;/tt> or &lt;tt>&quot;x-&quot;&lt;/tt>.&#xA;&#xA;&lt;p> The IANA charset registry does change over time, and so the canonical&#xA;name and the aliases of a particular charset may also change over time.  To&#xA;ensure compatibility it is recommended that no alias ever be removed from a&#xA;charset, and that if the canonical name of a charset is changed then its&#xA;previous canonical name be made into an alias.&#xA;&#xA;&#xA;&lt;h4>Standard charsets&lt;/h4>&#xA;&#xA;&lt;p> Every implementation of the Java platform is required to support the&#xA;following standard charsets.  Consult the release documentation for your&#xA;implementation to see if any other charsets are supported.  The behavior&#xA;of such optional charsets may differ between implementations.&#xA;&#xA;&lt;blockquote>&lt;table width=&quot;80%&quot; summary=&quot;Description of standard charsets&quot;>&#xA;&lt;tr>&lt;th>&lt;p align=&quot;left&quot;>Charset&lt;/p>&lt;/th>&lt;th>&lt;p align=&quot;left&quot;>Description&lt;/p>&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>US-ASCII&lt;/tt>&lt;/td>&#xA;&lt;td>Seven-bit ASCII, a.k.a. &lt;tt>ISO646-US&lt;/tt>,&#xA;a.k.a. the Basic Latin block of the Unicode character set&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>ISO-8859-1&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;/td>&#xA;&lt;td>ISO Latin Alphabet No. 1, a.k.a. &lt;tt>ISO-LATIN-1&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>UTF-8&lt;/tt>&lt;/td>&#xA;&lt;td>Eight-bit UCS Transformation Format&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>UTF-16BE&lt;/tt>&lt;/td>&#xA;&lt;td>Sixteen-bit UCS Transformation Format,&#xA;big-endian byte&amp;nbsp;order&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>UTF-16LE&lt;/tt>&lt;/td>&#xA;&lt;td>Sixteen-bit UCS Transformation Format,&#xA;little-endian byte&amp;nbsp;order&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=top>&lt;tt>UTF-16&lt;/tt>&lt;/td>&#xA;&lt;td>Sixteen-bit UCS Transformation Format,&#xA;byte&amp;nbsp;order identified by an optional byte-order mark&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> The &lt;tt>UTF-8&lt;/tt> charset is specified by &lt;a&#xA;href=&quot;http://ietf.org/rfc/rfc2279.txt&quot;>&lt;i>RFC&amp;nbsp;2279&lt;/i>&lt;/a>; the&#xA;transformation format upon which it is based is specified in&#xA;Amendment&amp;nbsp;2 of ISO&amp;nbsp;10646-1 and is also described in the &lt;a&#xA;href=&quot;http://www.unicode.org/unicode/standard/standard.html&quot;>&lt;i>Unicode&#xA;Standard&lt;/i>&lt;/a>.&#xA;&#xA;&lt;p> The &lt;tt>UTF-16&lt;/tt> charsets are specified by &lt;a&#xA;href=&quot;http://ietf.org/rfc/rfc2781.txt&quot;>&lt;i>RFC&amp;nbsp;2781&lt;/i>&lt;/a>; the&#xA;transformation formats upon which they are based are specified in&#xA;Amendment&amp;nbsp;1 of ISO&amp;nbsp;10646-1 and are also described in the &lt;a&#xA;href=&quot;http://www.unicode.org/unicode/standard/standard.html&quot;>&lt;i>Unicode&#xA;Standard&lt;/i>&lt;/a>.&#xA;&#xA;&lt;p> The &lt;tt>UTF-16&lt;/tt> charsets use sixteen-bit quantities and are&#xA;therefore sensitive to byte order.  In these encodings the byte order of a&#xA;stream may be indicated by an initial &lt;i>byte-order mark&lt;/i> represented by&#xA;the Unicode character &lt;tt>'&amp;#92;uFEFF'&lt;/tt>.  Byte-order marks are handled&#xA;as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> When decoding, the &lt;tt>UTF-16BE&lt;/tt> and &lt;tt>UTF-16LE&lt;/tt>&#xA;charsets ignore byte-order marks; when encoding, they do not write&#xA;byte-order marks. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> When decoding, the &lt;tt>UTF-16&lt;/tt> charset interprets a byte-order&#xA;mark to indicate the byte order of the stream but defaults to big-endian&#xA;if there is no byte-order mark; when encoding, it uses big-endian byte&#xA;order and writes a big-endian byte-order mark. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;In any case, when a byte-order mark is read at the beginning of a decoding&#xA;operation it is omitted from the resulting sequence of characters.  Byte&#xA;order marks occuring after the first element of an input sequence are not&#xA;omitted since the same code is used to represent &lt;small>ZERO-WIDTH&#xA;NON-BREAKING SPACE&lt;/small>.&#xA;&#xA;&lt;p> Every instance of the Java virtual machine has a default charset, which&#xA;may or may not be one of the standard charsets.  The default charset is&#xA;determined during virtual-machine startup and typically depends upon the&#xA;locale and charset being used by the underlying operating system. &lt;/p>&#xA;&#xA;&#xA;&lt;h4>Terminology&lt;/h4>&#xA;&#xA;&lt;p> The name of this class is taken from the terms used in &lt;a&#xA;href=&quot;http://ietf.org/rfc/rfc2278.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2278&lt;/i>&lt;/a>.  In that&#xA;document a &lt;i>charset&lt;/i> is defined as the combination of a coded character&#xA;set and a character-encoding scheme.&#xA;&#xA;&lt;p> A &lt;i>coded character set&lt;/i> is a mapping between a set of abstract&#xA;characters and a set of integers.  US-ASCII, ISO&amp;nbsp;8859-1,&#xA;JIS&amp;nbsp;X&amp;nbsp;0201, and full Unicode, which is the same as&#xA;ISO&amp;nbsp;10646-1, are examples of coded character sets.&#xA;&#xA;&lt;p> A &lt;i>character-encoding scheme&lt;/i> is a mapping between a coded&#xA;character set and a set of octet (eight-bit byte) sequences.  UTF-8, UCS-2,&#xA;UTF-16, ISO&amp;nbsp;2022, and EUC are examples of character-encoding schemes.&#xA;Encoding schemes are often associated with a particular coded character set;&#xA;UTF-8, for example, is used only to encode Unicode.  Some schemes, however,&#xA;are associated with multiple character sets; EUC, for example, can be used&#xA;to encode characters in a variety of Asian character sets.&#xA;&#xA;&lt;p> When a coded character set is used exclusively with a single&#xA;character-encoding scheme then the corresponding charset is usually named&#xA;for the character set; otherwise a charset is usually named for the encoding&#xA;scheme and, possibly, the locale of the character sets that it supports.&#xA;Hence &lt;tt>US-ASCII&lt;/tt> is the name of the charset for US-ASCII while&#xA;&lt;tt>EUC-JP&lt;/tt> is the name of the charset that encodes the&#xA;JIS&amp;nbsp;X&amp;nbsp;0201, JIS&amp;nbsp;X&amp;nbsp;0208, and JIS&amp;nbsp;X&amp;nbsp;0212&#xA;character sets.&#xA;&#xA;&lt;p> The native character encoding of the Java programming language is&#xA;UTF-16.  A charset in the Java platform therefore defines a mapping between&#xA;sequences of sixteen-bit UTF-16 code units and sequences of bytes. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.46, 04/07/16&#xA;@since 1.4&#xA;&#xA;@see CharsetDecoder&#xA;@see CharsetEncoder&#xA;@see java.nio.charset.spi.CharsetProvider&#xA;@see java.lang.Character&#xA;" annotatedElement="_9_5_f720368_1110473546659_687911_7943"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321759_202603_13892" name="" supplier="_10_5_622020d_1132928321749_899826_13889" client="_9_5_f720368_1110473546659_687911_7943" contract="_10_5_622020d_1132928321749_899826_13889"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_172709_7953" name="CodingErrorAction">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_338813_5467" body="A typesafe enumeration for coding-error actions.&#xA;&#xA;&lt;p> Instances of this class are used to specify how malformed-input and&#xA;unmappable-character errors are to be handled by charset &lt;a&#xA;href=&quot;CharsetDecoder.html#cae&quot;>decoders&lt;/a> and &lt;a&#xA;href=&quot;CharsetEncoder.html#cae&quot;>encoders&lt;/a>.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.6, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_172709_7953"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_812226_7955" name="IllegalCharsetNameException">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_668094_5469" body="Unchecked exception thrown when a string that is not a&#xA;&lt;a href=Charset.html#names>legal charset name&lt;/a> is used as such.&#xA;&#xA;@version 1.2, 01/09/17&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_812226_7955"/>
              <generalization xmi:id="_10_5_622020d_1132928321759_488991_13894" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_138182_7941" name="CharacterCodingException">
              <ownedComment xmi:id="_10_5_622020d_1132928308710_200669_5455" body="Checked exception thrown when a character encoding&#xA;or decoding error occurs.&#xA;&#xA;@version 1.2, 01/09/17&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_138182_7941"/>
              <generalization xmi:id="_10_5_622020d_1132928321749_380937_13888" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_683240_7961" name="UnsupportedCharsetException">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_101508_5475" body="Unchecked exception thrown when no support is available&#xA;for a requested charset.&#xA;&#xA;@version 1.2, 01/09/17&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_683240_7961"/>
              <generalization xmi:id="_10_5_622020d_1132928321759_64854_13897" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547659_685274_18265" name="spi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_531242_7939" name="CharsetProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928308710_181660_5453" body="Charset service-provider class.&#xA;&#xA;&lt;p> A charset provider is a concrete subclass of this class that has a&#xA;zero-argument constructor and some number of associated charset&#xA;implementation classes.  Charset providers may be installed in an instance&#xA;of the Java platform as extensions, that is, jar files placed into any of&#xA;the usual extension directories.  Providers may also be made available by&#xA;adding them to the applet or application class path or by some other&#xA;platform-specific means.  Charset providers are looked up via the current&#xA;thread's {@link java.lang.Thread#getContextClassLoader() &lt;/code>context&#xA;class loader&lt;code>}.&#xA;&#xA;&lt;p> A charset provider identifies itself with a provider-configuration file&#xA;named &lt;tt>java.nio.charset.spi.CharsetProvider&lt;/tt> in the resource&#xA;directory &lt;tt>META-INF/services&lt;/tt>.  The file should contain a list of&#xA;fully-qualified concrete charset-provider class names, one per line.  A line&#xA;is terminated by any one of a line feed (&lt;tt>'\n'&lt;/tt>), a carriage return&#xA;(&lt;tt>'\r'&lt;/tt>), or a carriage return followed immediately by a line feed.&#xA;Space and tab characters surrounding each name, as well as blank lines, are&#xA;ignored.  The comment character is &lt;tt>'#'&lt;/tt> (&lt;tt>'&amp;#92;u0023'&lt;/tt>); on&#xA;each line all characters following the first comment character are ignored.&#xA;The file must be encoded in UTF-8.&#xA;&#xA;&lt;p> If a particular concrete charset provider class is named in more than&#xA;one configuration file, or is named in the same configuration file more than&#xA;once, then the duplicates will be ignored.  The configuration file naming a&#xA;particular provider need not be in the same jar file or other distribution&#xA;unit as the provider itself.  The provider must be accessible from the same&#xA;class loader that was initially queried to locate the configuration file;&#xA;this is not necessarily the class loader that loaded the file. &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.15, 04/05/05&#xA;@since 1.4&#xA;&#xA;@see java.nio.charset.Charset&#xA;" annotatedElement="_9_5_f720368_1110473546659_531242_7939"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_251626_7949" name="CoderMalfunctionError">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_772794_5463" body="Error thrown when the {@link CharsetDecoder#decodeLoop decodeLoop} method of&#xA;a {@link CharsetDecoder}, or the {@link CharsetEncoder#encodeLoop&#xA;encodeLoop} method of a {@link CharsetEncoder}, throws an unexpected&#xA;exception.&#xA;&#xA;@version 1.5, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_251626_7949"/>
              <generalization xmi:id="_10_5_622020d_1132928321759_866115_13893" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321749_899826_13889" name="Comparable&lt;Charset>">
              <templateBinding xmi:id="_10_5_622020d_1132928321759_45720_13890" signature="_10_5_622020d_1132928307939_612079_4996">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321759_864441_13891" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_687911_7943"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_314209_7957" name="MalformedInputException">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_695199_5471" body="Checked exception thrown when an input byte sequence is not legal for given&#xA;charset, or an input character sequence is not a legal sixteen-bit Unicode&#xA;sequence.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_314209_7957"/>
              <generalization xmi:id="_10_5_622020d_1132928321759_441337_13895" isSubstitutable="true" general="_9_5_f720368_1110473546659_138182_7941"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_187206_7959" name="UnmappableCharacterException">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_273523_5473" body="Checked exception thrown when an input character (or byte) sequence&#xA;is valid but cannot be mapped to an output byte (or character)&#xA;sequence.  &lt;/p>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_187206_7959"/>
              <generalization xmi:id="_10_5_622020d_1132928321759_858350_13896" isSubstitutable="true" general="_9_5_f720368_1110473546659_138182_7941"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_911691_7947" name="CharsetEncoder" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308760_19772_5461" body="An engine that can transform a sequence of sixteen-bit Unicode characters into a sequence of&#xA;bytes in a specific charset.&#xA;&#xA;&lt;a name=&quot;steps&quot;>&#xA;&#xA;&lt;p> The input character sequence is provided in a character buffer or a series&#xA;of such buffers.  The output byte sequence is written to a byte buffer&#xA;or a series of such buffers.  An encoder should always be used by making&#xA;the following sequence of method invocations, hereinafter referred to as an&#xA;&lt;i>encoding operation&lt;/i>:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>&lt;p> Reset the encoder via the {@link #reset reset} method, unless it&#xA;has not been used before; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #encode encode} method zero or more times, as&#xA;long as additional input may be available, passing &lt;tt>false&lt;/tt> for the&#xA;&lt;tt>endOfInput&lt;/tt> argument and filling the input buffer and flushing the&#xA;output buffer between invocations; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #encode encode} method one final time, passing&#xA;&lt;tt>true&lt;/tt> for the &lt;tt>endOfInput&lt;/tt> argument; and then &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #flush flush} method so that the encoder can&#xA;flush any internal state to the output buffer. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;Each invocation of the {@link #encode encode} method will encode as many&#xA;characters as possible from the input buffer, writing the resulting bytes&#xA;to the output buffer.  The {@link #encode encode} method returns when more&#xA;input is required, when there is not enough room in the output buffer, or&#xA;when an encoding error has occurred.  In each case a {@link CoderResult}&#xA;object is returned to describe the reason for termination.  An invoker can&#xA;examine this object and fill the input buffer, flush the output buffer, or&#xA;attempt to recover from an encoding error, as appropriate, and try again.&#xA;&#xA;&lt;a name=&quot;ce&quot;>&#xA;&#xA;&lt;p> There are two general types of encoding errors.  If the input character&#xA;sequence is not a legal sixteen-bit Unicode sequence then the input is considered &lt;i>malformed&lt;/i>.  If&#xA;the input character sequence is legal but cannot be mapped to a valid&#xA;byte sequence in the given charset then an &lt;i>unmappable character&lt;/i> has been encountered.&#xA;&#xA;&lt;a name=&quot;cae&quot;>&#xA;&#xA;&lt;p> How an encoding error is handled depends upon the action requested for&#xA;that type of error, which is described by an instance of the {@link&#xA;CodingErrorAction} class.  The possible error actions are to {@link&#xA;CodingErrorAction#IGNORE &lt;/code>ignore&lt;code>} the erroneous input, {@link&#xA;CodingErrorAction#REPORT &lt;/code>report&lt;code>} the error to the invoker via&#xA;the returned {@link CoderResult} object, or {@link CodingErrorAction#REPLACE&#xA;&lt;/code>replace&lt;code>} the erroneous input with the current value of the&#xA;replacement byte array.  The replacement&#xA;&#xA;is initially set to the encoder's default replacement, which often&#xA;(but not always) has the initial value&amp;nbsp;&lt;tt>{&lt;/tt>&amp;nbsp;&lt;tt>(byte)'?'&lt;/tt>&amp;nbsp;&lt;tt>}&lt;/tt>;&#xA;&#xA;its value may be changed via the {@link #replaceWith(byte[])&#xA;replaceWith} method.&#xA;&#xA;&lt;p> The default action for malformed-input and unmappable-character errors&#xA;is to {@link CodingErrorAction#REPORT &lt;/code>report&lt;code>} them.  The&#xA;malformed-input error action may be changed via the {@link&#xA;#onMalformedInput(CodingErrorAction) onMalformedInput} method; the&#xA;unmappable-character action may be changed via the {@link&#xA;#onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter} method.&#xA;&#xA;&lt;p> This class is designed to handle many of the details of the encoding&#xA;process, including the implementation of error actions.  An encoder for a&#xA;specific charset, which is a concrete subclass of this class, need only&#xA;implement the abstract {@link #encodeLoop encodeLoop} method, which&#xA;encapsulates the basic encoding loop.  A subclass that maintains internal&#xA;state should, additionally, override the {@link #flush flush} and {@link&#xA;#reset reset} methods.&#xA;&#xA;&lt;p> Instances of this class are not safe for use by multiple concurrent&#xA;threads.  &lt;/p>&#xA;&#xA;&#xA;@version 1.40, 04/06/19&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@since 1.4&#xA;&#xA;@see ByteBuffer&#xA;@see CharBuffer&#xA;@see Charset&#xA;@see CharsetDecoder&#xA;" annotatedElement="_9_5_f720368_1110473546659_911691_7947"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_66837_7951" name="CoderResult">
              <ownedComment xmi:id="_10_5_622020d_1132928308770_137711_5465" body="A description of the result state of a coder.&#xA;&#xA;&lt;p> A charset coder, that is, either a decoder or an encoder, consumes bytes&#xA;(or characters) from an input buffer, translates them, and writes the&#xA;resulting characters (or bytes) to an output buffer.  A coding process&#xA;terminates for one of four categories of reasons, which are described by&#xA;instances of this class:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> &lt;i>Underflow&lt;/i> is reported when there is no more input to be&#xA;processed, or there is insufficient input and additional input is&#xA;required.  This condition is represented by the unique result object&#xA;{@link #UNDERFLOW}, whose {@link #isUnderflow() isUnderflow} method&#xA;returns &lt;tt>true&lt;/tt>.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> &lt;i>Overflow&lt;/i> is reported when there is insufficient room&#xA;remaining in the output buffer.  This condition is represented by the&#xA;unique result object {@link #OVERFLOW}, whose {@link #isOverflow()&#xA;isOverflow} method returns &lt;tt>true&lt;/tt>.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> A &lt;i>malformed-input error&lt;/i> is reported when a sequence of&#xA;input units is not well-formed.  Such errors are described by instances of&#xA;this class whose {@link #isMalformed() isMalformed} method returns&#xA;&lt;tt>true&lt;/tt> and whose {@link #length() length} method returns the length&#xA;of the malformed sequence.  There is one unique instance of this class for&#xA;all malformed-input errors of a given length.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> An &lt;i>unmappable-character error&lt;/i> is reported when a sequence&#xA;of input units denotes a character that cannot be represented in the&#xA;output charset.  Such errors are described by instances of this class&#xA;whose {@link #isUnmappable() isUnmappable} method returns &lt;tt>true&lt;/tt> and&#xA;whose {@link #length() length} method returns the length of the input&#xA;sequence denoting the unmappable character.  There is one unique instance&#xA;of this class for all unmappable-character errors of a given length.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;For convenience, the {@link #isError() isError} method returns &lt;tt>true&lt;/tt>&#xA;for result objects that describe malformed-input and unmappable-character&#xA;errors but &lt;tt>false&lt;/tt> for those that describe underflow or overflow&#xA;conditions.  &lt;/p>&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.8, 03/12/19&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_66837_7951"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547674_78726_18273" name="Cache" visibility="private" isAbstract="true"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_157365_7945" name="CharsetDecoder" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308760_553490_5459" body="An engine that can transform a sequence of bytes in a specific charset into a sequence of&#xA;sixteen-bit Unicode characters.&#xA;&#xA;&lt;a name=&quot;steps&quot;>&#xA;&#xA;&lt;p> The input byte sequence is provided in a byte buffer or a series&#xA;of such buffers.  The output character sequence is written to a character buffer&#xA;or a series of such buffers.  A decoder should always be used by making&#xA;the following sequence of method invocations, hereinafter referred to as a&#xA;&lt;i>decoding operation&lt;/i>:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>&lt;p> Reset the decoder via the {@link #reset reset} method, unless it&#xA;has not been used before; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #decode decode} method zero or more times, as&#xA;long as additional input may be available, passing &lt;tt>false&lt;/tt> for the&#xA;&lt;tt>endOfInput&lt;/tt> argument and filling the input buffer and flushing the&#xA;output buffer between invocations; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #decode decode} method one final time, passing&#xA;&lt;tt>true&lt;/tt> for the &lt;tt>endOfInput&lt;/tt> argument; and then &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Invoke the {@link #flush flush} method so that the decoder can&#xA;flush any internal state to the output buffer. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;Each invocation of the {@link #decode decode} method will decode as many&#xA;bytes as possible from the input buffer, writing the resulting characters&#xA;to the output buffer.  The {@link #decode decode} method returns when more&#xA;input is required, when there is not enough room in the output buffer, or&#xA;when a decoding error has occurred.  In each case a {@link CoderResult}&#xA;object is returned to describe the reason for termination.  An invoker can&#xA;examine this object and fill the input buffer, flush the output buffer, or&#xA;attempt to recover from a decoding error, as appropriate, and try again.&#xA;&#xA;&lt;a name=&quot;ce&quot;>&#xA;&#xA;&lt;p> There are two general types of decoding errors.  If the input byte&#xA;sequence is not legal for this charset then the input is considered &lt;i>malformed&lt;/i>.  If&#xA;the input byte sequence is legal but cannot be mapped to a valid&#xA;Unicode character then an &lt;i>unmappable character&lt;/i> has been encountered.&#xA;&#xA;&lt;a name=&quot;cae&quot;>&#xA;&#xA;&lt;p> How a decoding error is handled depends upon the action requested for&#xA;that type of error, which is described by an instance of the {@link&#xA;CodingErrorAction} class.  The possible error actions are to {@link&#xA;CodingErrorAction#IGNORE &lt;/code>ignore&lt;code>} the erroneous input, {@link&#xA;CodingErrorAction#REPORT &lt;/code>report&lt;code>} the error to the invoker via&#xA;the returned {@link CoderResult} object, or {@link CodingErrorAction#REPLACE&#xA;&lt;/code>replace&lt;code>} the erroneous input with the current value of the&#xA;replacement string.  The replacement&#xA;&#xA;has the initial value &lt;tt>&quot;&amp;#92;uFFFD&quot;&lt;/tt>;&#xA;&#xA;its value may be changed via the {@link #replaceWith(java.lang.String)&#xA;replaceWith} method.&#xA;&#xA;&lt;p> The default action for malformed-input and unmappable-character errors&#xA;is to {@link CodingErrorAction#REPORT &lt;/code>report&lt;code>} them.  The&#xA;malformed-input error action may be changed via the {@link&#xA;#onMalformedInput(CodingErrorAction) onMalformedInput} method; the&#xA;unmappable-character action may be changed via the {@link&#xA;#onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter} method.&#xA;&#xA;&lt;p> This class is designed to handle many of the details of the decoding&#xA;process, including the implementation of error actions.  A decoder for a&#xA;specific charset, which is a concrete subclass of this class, need only&#xA;implement the abstract {@link #decodeLoop decodeLoop} method, which&#xA;encapsulates the basic decoding loop.  A subclass that maintains internal&#xA;state should, additionally, override the {@link #flush flush} and {@link&#xA;#reset reset} methods.&#xA;&#xA;&lt;p> Instances of this class are not safe for use by multiple concurrent&#xA;threads.  &lt;/p>&#xA;&#xA;&#xA;@version 1.40, 04/06/19&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@since 1.4&#xA;&#xA;@see ByteBuffer&#xA;@see CharBuffer&#xA;@see Charset&#xA;@see CharsetEncoder&#xA;" annotatedElement="_9_5_f720368_1110473546659_157365_7945"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_675188_7973" name="ByteBufferAsCharBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_572282_13905" isSubstitutable="true" general="_9_5_f720368_1110473546659_851261_8023"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_493147_8075" name="DirectShortBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321799_626901_13989" isSubstitutable="true" general="_9_5_f720368_1110473546659_549192_8119"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_862078_7967" name="BufferOverflowException">
            <ownedComment xmi:id="_10_5_622020d_1132928308780_828358_5481" body="Unchecked exception thrown when a relative &lt;i>put&lt;/i> operation reaches&#xA;the target buffer's limit.&#xA;&#xA;@version 1.14, 01/05/02&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_862078_7967"/>
            <generalization xmi:id="_10_5_622020d_1132928321759_577695_13898" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_675038_8037" name="DirectDoubleBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_953722_13951" isSubstitutable="true" general="_9_5_f720368_1110473546659_312021_8041"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321759_28233_13900" name="Comparable&lt;ByteBuffer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321759_494134_13901" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321759_712082_13902" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546659_818813_7971"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_929477_8049" name="DirectFloatBufferS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_468936_13963" isSubstitutable="true" general="_9_5_f720368_1110473546659_742353_8079"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_529349_8067" name="DirectLongBufferU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321799_739861_13981" isSubstitutable="true" general="_9_5_f720368_1110473546659_884690_8113"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_625502_8099" name="HeapIntBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308890_699507_5563" body="A read-only HeapIntBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_625502_8099"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_493279_14009" isSubstitutable="true" general="_9_5_f720368_1110473546659_81726_8097"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_346513_8039" name="DirectDoubleBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321779_727967_13953" isSubstitutable="true" general="_9_5_f720368_1110473546659_695129_8043"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_147191_8005" name="ByteBufferAsLongBufferB" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_36589_13921" isSubstitutable="true" general="_9_5_f720368_1110473546659_884690_8113"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_541419_7963" name="Bits" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308780_412650_5477" body="Access to bits, native and otherwise.&#xA;" annotatedElement="_9_5_f720368_1110473546659_541419_7963"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_147719_8061" name="DirectLongBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_956719_13975" isSubstitutable="true" general="_9_5_f720368_1110473546659_936123_8065"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_171541_8011" name="ByteBufferAsLongBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_43190_13924" isSubstitutable="true" general="_9_5_f720368_1110473546659_70023_8007"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_381770_7991" name="ByteBufferAsFloatBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_930173_13914" isSubstitutable="true" general="_9_5_f720368_1110473546659_742353_8079"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_795791_7979" name="ByteBufferAsCharBufferRL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321759_864253_13908" isSubstitutable="true" general="_9_5_f720368_1110473546659_394023_7975"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_201359_8069" name="DirectShortBufferRS" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321799_571748_13983" isSubstitutable="true" general="_9_5_f720368_1110473546659_200502_8073"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_369878_8015" name="ByteBufferAsShortBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_606639_13926" isSubstitutable="true" general="_9_5_f720368_1110473546659_549192_8119"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_549192_8119" name="ShortBuffer" clientDependency="_10_5_622020d_1132928321819_886536_14030" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308910_525306_5583" body="A short buffer.&#xA;&#xA;&lt;p> This class defines four categories of operations upon&#xA;short buffers:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Absolute and relative {@link #get() &lt;/code>&lt;i>get&lt;/i>&lt;code>} and&#xA;{@link #put(short) &lt;/code>&lt;i>put&lt;/i>&lt;code>} methods that read and write&#xA;single shorts; &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #get(short[]) &lt;/code>&lt;i>bulk get&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of shorts from this buffer&#xA;into an array; and&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Relative {@link #put(short[]) &lt;/code>&lt;i>bulk put&lt;/i>&lt;code>}&#xA;methods that transfer contiguous sequences of shorts from a&#xA;short array or some other short&#xA;buffer into this buffer;&amp;#32;and &lt;/p>&lt;/li>&#xA;&#xA;&#xA;&lt;li>&lt;p> Methods for {@link #compact &lt;/code>compacting&lt;code>}, {@link&#xA;#duplicate &lt;/code>duplicating&lt;code>}, and {@link #slice&#xA;&lt;/code>slicing&lt;code>} a short buffer.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Short buffers can be created either by {@link #allocate&#xA;&lt;/code>&lt;i>allocation&lt;/i>&lt;code>}, which allocates space for the buffer's&#xA;&#xA;&#xA;content, by {@link #wrap(short[]) &lt;/code>&lt;i>wrapping&lt;/i>&lt;code>} an existing&#xA;short array  into a buffer, or by creating a&#xA;&lt;a href=&quot;ByteBuffer.html#view&quot;>&lt;i>view&lt;/i>&lt;/a> of an existing byte buffer&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Like a byte buffer, a short buffer is either &lt;a&#xA;href=&quot;ByteBuffer.html#direct&quot;>&lt;i>direct&lt;/i> or &lt;i>non-direct&lt;/i>&lt;/a>.  A&#xA;short buffer created via the &lt;tt>wrap&lt;/tt> methods of this class will&#xA;be non-direct.  A short buffer created as a view of a byte buffer will&#xA;be direct if, and only if, the byte buffer itself is direct.  Whether or not&#xA;a short buffer is direct may be determined by invoking the {@link&#xA;#isDirect isDirect} method.  &lt;/p>&#xA;&#xA;&#xA;&#xA;&#xA;&lt;p> Methods in this class that do not otherwise have a value to return are&#xA;specified to return the buffer upon which they are invoked.  This allows&#xA;method invocations to be chained.&#xA;&#xA;&#xA;&#xA;@author Mark Reinhold&#xA;@author JSR-51 Expert Group&#xA;@version 1.56, 04/07/16&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546659_549192_8119"/>
            <generalization xmi:id="_10_5_622020d_1132928321819_942099_14031" isSubstitutable="true" general="_9_5_f720368_1110473546659_688010_7965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321819_886536_14030" name="" supplier="_10_5_622020d_1132928321819_6022_14027" client="_9_5_f720368_1110473546659_549192_8119" contract="_10_5_622020d_1132928321819_6022_14027"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_175838_7999" name="ByteBufferAsIntBufferL" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321769_945124_13918" isSubstitutable="true" general="_9_5_f720368_1110473546659_272472_8109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_44680_8047" name="DirectFloatBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_312847_13961" isSubstitutable="true" general="_9_5_f720368_1110473546659_656884_8051"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_62000_8107" name="HeapShortBufferR" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308900_967108_5571" body="A read-only HeapShortBuffer.  This class extends the corresponding&#xA;read/write class, overriding the mutation methods to throw a {@link&#xA;ReadOnlyBufferException} and overriding the view-buffer methods to return an&#xA;instance of this class rather than of the superclass.&#xA;" annotatedElement="_9_5_f720368_1110473546659_62000_8107"/>
            <generalization xmi:id="_10_5_622020d_1132928321809_461430_14013" isSubstitutable="true" general="_9_5_f720368_1110473546659_163839_8105"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546659_551757_8063" name="DirectLongBufferRU" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321789_345824_13977" isSubstitutable="true" general="_9_5_f720368_1110473546659_529349_8067"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547706_6534_18577" name="security">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547706_197903_18578" name="acl">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_556324_8267" name="Owner" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_754986_5769" body="Interface for managing owners of Access Control Lists (ACLs) or ACL&#xA;configurations. (Note that the Acl interface in the&#xA;&lt;code> java.security.acl &lt;/code> package extends this Owner&#xA;interface.) The initial owner Principal should be specified as an&#xA;argument to the constructor of the class implementing this interface.&#xA;&#xA;@see java.security.acl.Acl&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546674_556324_8267"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_203241_8269" name="Permission" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_6362_5771" body="This interface represents a permission, such as that used to grant&#xA;a particular type of access to a resource.&#xA;&#xA;@author Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_203241_8269"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_239521_8255" name="Acl" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_264375_5757" body="Interface representing an Access Control List (ACL).  An Access&#xA;Control List is a data structure used to guard access to&#xA;resources.&lt;p>&#xA;&#xA;An ACL can be thought of as a data structure with multiple ACL&#xA;entries.  Each ACL entry, of interface type AclEntry, contains a&#xA;set of permissions associated with a particular principal. (A&#xA;principal represents an entity such as an individual user or a&#xA;group). Additionally, each ACL entry is specified as being either&#xA;positive or negative. If positive, the permissions are to be&#xA;granted to the associated principal. If negative, the permissions&#xA;are to be denied.&lt;p>&#xA;&#xA;The ACL Entries in each ACL observe the following rules:&lt;p>&#xA;&#xA;&lt;ul> &lt;li>Each principal can have at most one positive ACL entry and&#xA;one negative entry; that is, multiple positive or negative ACL&#xA;entries are not allowed for any principal.  Each entry specifies&#xA;the set of permissions that are to be granted (if positive) or&#xA;denied (if negative). &lt;p>&#xA;&#xA;&lt;li>If there is no entry for a particular principal, then the&#xA;principal is considered to have a null (empty) permission set.&lt;p>&#xA;&#xA;&lt;li>If there is a positive entry that grants a principal a&#xA;particular permission, and a negative entry that denies the&#xA;principal the same permission, the result is as though the&#xA;permission was never granted or denied. &lt;p>&#xA;&#xA;&lt;li>Individual permissions always override permissions of the&#xA;group(s) to which the individual belongs. That is, individual&#xA;negative permissions (specific denial of permissions) override the&#xA;groups' positive permissions. And individual positive permissions&#xA;override the groups' negative permissions.&lt;p>&#xA;&#xA;&lt;/ul>&#xA;&#xA;The &lt;code> java.security.acl &lt;/code> package provides the&#xA;interfaces to the ACL and related data structures (ACL entries,&#xA;groups, permissions, etc.), and the &lt;code> sun.security.acl &lt;/code>&#xA;classes provide a default implementation of the interfaces. For&#xA;example, &lt;code> java.security.acl.Acl &lt;/code> provides the&#xA;interface to an ACL and the &lt;code> sun.security.acl.AclImpl &lt;/code>&#xA;class provides the default implementation of the interface.&lt;p>&#xA;&#xA;The &lt;code> java.security.acl.Acl &lt;/code> interface extends the&#xA;&lt;code> java.security.acl.Owner &lt;/code> interface. The Owner&#xA;interface is used to maintain a list of owners for each ACL.  Only&#xA;owners are allowed to modify an ACL. For example, only an owner can&#xA;call the ACL's &lt;code>addEntry&lt;/code> method to add a new ACL entry&#xA;to the ACL.&#xA;&#xA;@see java.security.acl.AclEntry&#xA;@see java.security.acl.Owner&#xA;@see java.security.acl.Acl#getPermissions&#xA;&#xA;@version 1.23, 04/05/05&#xA;@author Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_239521_8255"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_687304_14100" isSubstitutable="true" general="_9_5_f720368_1110473546674_556324_8267"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_775298_8265" name="NotOwnerException">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_984327_5767" body="This is an exception that is thrown whenever the modification of an object&#xA;(such as an Access Control List) is only allowed to be done by an owner of&#xA;the object, but the Principal attempting the modification is not an owner.&#xA;&#xA;@author &#x9;Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_775298_8265"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_843221_14105" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_225281_8257" name="AclEntry" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_746602_5759" body="This is the interface used for representing one entry in an Access&#xA;Control List (ACL).&lt;p>&#xA;&#xA;An ACL can be thought of as a data structure with multiple ACL entry&#xA;objects. Each ACL entry object contains a set of permissions associated&#xA;with a particular principal. (A principal represents an entity such as&#xA;an individual user or a group). Additionally, each ACL entry is specified&#xA;as being either positive or negative. If positive, the permissions are&#xA;to be granted to the associated principal. If negative, the permissions&#xA;are to be denied. Each principal can have at most one positive ACL entry&#xA;and one negative entry; that is, multiple positive or negative ACL&#xA;entries are not allowed for any principal.&#xA;&#xA;Note: ACL entries are by default positive. An entry becomes a&#xA;negative entry only if the&#xA;{@link #setNegativePermissions() setNegativePermissions}&#xA;method is called on it.&#xA;&#xA;@see java.security.acl.Acl&#xA;&#xA;@author &#x9;Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_225281_8257"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_926193_14101" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_285914_8259" name="AclNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_778977_5761" body="This is an exception that is thrown whenever a reference is made to a&#xA;non-existent ACL (Access Control List).&#xA;&#xA;@author &#x9;Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_285914_8259"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_155630_14102" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_498666_8261" name="Group" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_262467_5763" body="This interface is used to represent a group of principals. (A principal&#xA;represents an entity such as an individual user or a company). &lt;p>&#xA;&#xA;Note that Group extends Principal. Thus, either a Principal or a Group can&#xA;be passed as an argument to methods containing a Principal parameter. For&#xA;example, you can add either a Principal or a Group to a Group object by&#xA;calling the object's &lt;code>addMember&lt;/code> method, passing it the&#xA;Principal or Group.&#xA;&#xA;@author &#x9;Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_498666_8261"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_973793_14103" isSubstitutable="true" general="_9_5_f720368_1110473546690_967636_8503"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_834495_8263" name="LastOwnerException">
              <ownedComment xmi:id="_10_5_622020d_1132928309070_446826_5765" body="This is an exception that is thrown whenever an attempt is made to delete&#xA;the last owner of an Access Control List.&#xA;&#xA;@see java.security.acl.Owner#deleteOwner&#xA;&#xA;@author Satish Dharmaraj&#xA;" annotatedElement="_9_5_f720368_1110473546674_834495_8263"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_964876_14104" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_682450_8477" name="KeyStore">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_918135_6061" body="This class represents a storage facility for cryptographic&#xA;keys and certificates.&#xA;&#xA;&lt;p> A &lt;code>KeyStore&lt;/code> manages different types of entries.&#xA;Each type of entry implements the &lt;code>KeyStore.Entry&lt;/code> interface.&#xA;Three basic &lt;code>KeyStore.Entry&lt;/code> implementations are provided:&#xA;&#xA;&lt;ul>&#xA;&lt;li>&lt;b>KeyStore.PrivateKeyEntry&lt;/b>&#xA;&lt;p> This type of entry holds a cryptographic &lt;code>PrivateKey&lt;/code>,&#xA;which is optionally stored in a protected format to prevent&#xA;unauthorized access.  It is also accompanied by a certificate chain&#xA;for the corresponding public key.&#xA;&#xA;&lt;p> Private keys and certificate chains are used by a given entity for&#xA;self-authentication. Applications for this authentication include software&#xA;distribution organizations which sign JAR files as part of releasing&#xA;and/or licensing software.&#xA;&#xA;&lt;li>&lt;b>KeyStore.SecretKeyEntry&lt;/b>&#xA;&lt;p> This type of entry holds a cryptographic &lt;code>SecretKey&lt;/code>,&#xA;which is optionally stored in a protected format to prevent&#xA;unauthorized access.&#xA;&#xA;&lt;li>&lt;b>KeyStore.TrustedCertificateEntry&lt;/b>&#xA;&lt;p> This type of entry contains a single public key &lt;code>Certificate&lt;/code>&#xA;belonging to another party. It is called a &lt;i>trusted certificate&lt;/i>&#xA;because the keystore owner trusts that the public key in the certificate&#xA;indeed belongs to the identity identified by the &lt;i>subject&lt;/i> (owner)&#xA;of the certificate.&#xA;&#xA;&lt;p>This type of entry can be used to authenticate other parties.&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Each entry in a keystore is identified by an &quot;alias&quot; string. In the&#xA;case of private keys and their associated certificate chains, these strings&#xA;distinguish among the different ways in which the entity may authenticate&#xA;itself. For example, the entity may authenticate itself using different&#xA;certificate authorities, or using different public key algorithms.&#xA;&#xA;&lt;p> Whether keystores are persistent, and the mechanisms used by the&#xA;keystore if it is persistent, are not specified here. This allows&#xA;use of a variety of techniques for protecting sensitive (e.g., private or&#xA;secret) keys. Smart cards or other integrated cryptographic engines&#xA;(SafeKeyper) are one option, and simpler mechanisms such as files may also&#xA;be used (in a variety of formats).&#xA;&#xA;&lt;p> Typical ways to request a KeyStore object include&#xA;relying on the default type and providing a specific keystore type.&#xA;&#xA;&lt;ul>&#xA;&lt;li>To rely on the default type:&#xA;&lt;pre>&#xA;KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());&#xA;&lt;/pre>&#xA;The system will return a keystore implementation for the default type.&#xA;&lt;p>&#xA;&#xA;&lt;li>To provide a specific keystore type:&#xA;&lt;pre>&#xA;KeyStore ks = KeyStore.getInstance(&quot;JKS&quot;);&#xA;&lt;/pre>&#xA;The system will return the most preferred implementation of the&#xA;specified keystore type available in the environment. &lt;p>&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Before a keystore can be accessed, it must be&#xA;{@link #load(java.io.InputStream, char[]) loaded}.&#xA;&lt;pre>&#xA;KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());&#xA;&#xA;get user password and file input stream&#xA;char[] password = getPassword();&#xA;java.io.FileInputStream fis =&#xA;new java.io.FileInputStream(&quot;keyStoreName&quot;);&#xA;ks.load(fis, password);&#xA;fis.close();&#xA;&lt;/pre>&#xA;&#xA;To create an empty keystore using the above &lt;code>load&lt;/code> method,&#xA;pass &lt;code>null&lt;/code> as the &lt;code>InputStream&lt;/code> argument.&#xA;&#xA;&lt;p> Once the keystore has been loaded, it is possible&#xA;to read existing entries from the keystore, or to write new entries&#xA;into the keystore:&#xA;&lt;pre>&#xA;get my private key&#xA;KeyStore.PrivateKeyEntry pkEntry = (KeyStore.PrivateKeyEntry)&#xA;ks.getEntry(&quot;privateKeyAlias&quot;, password);&#xA;PrivateKey myPrivateKey = pkEntry.getPrivateKey();&#xA;&#xA;save my secret key&#xA;javax.crypto.SecretKey mySecretKey;&#xA;KeyStore.SecretKeyEntry skEntry =&#xA;new KeyStore.SecretKeyEntry(mySecretKey);&#xA;ks.setEntry(&quot;secretKeyAlias&quot;, skEntry, password);&#xA;&#xA;store away the keystore&#xA;java.io.FileOutputStream fos =&#xA;new java.io.FileOutputStream(&quot;newKeyStoreName&quot;);&#xA;ks.store(fos, password);&#xA;fos.close();&#xA;&lt;/pre>&#xA;&#xA;Note that although the same password may be used to&#xA;load the keystore, to protect the private key entry,&#xA;to protect the secret key entry, and to store the keystore&#xA;(as is shown in the sample code above),&#xA;different passwords or other protection parameters&#xA;may also be used.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.42, 06/28/04&#xA;&#xA;@see java.security.PrivateKey&#xA;@see javax.crypto.SecretKey&#xA;@see java.security.cert.Certificate&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_682450_8477"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309331_956445_6040" name="LoadStoreParameter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309331_572391_6041" body="A marker interface for &lt;code>KeyStore&lt;/code>&#xA;{@link #load(KeyStore.LoadStoreParameter) load}&#xA;and&#xA;{@link #store(KeyStore.LoadStoreParameter) store}&#xA;parameters.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_956445_6040"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309331_869672_6042" name="ProtectionParameter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309331_754026_6043" body="A marker interface for keystore protection parameters.&#xA;&#xA;&lt;p> The information stored in a &lt;code>ProtectionParameter&lt;/code>&#xA;object protects the contents of a keystore.&#xA;For example, protection parameters may be used to check&#xA;the integrity of keystore data, or to protect the&#xA;confidentiality of sensitive keystore data&#xA;(such as a &lt;code>PrivateKey&lt;/code>).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_869672_6042"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309331_973393_6044" name="PasswordProtection" clientDependency="_10_5_622020d_1132928321889_9029_14206 _10_5_622020d_1132928321889_95328_14207">
              <ownedComment xmi:id="_10_5_622020d_1132928309331_864785_6045" body="A password-based implementation of &lt;code>ProtectionParameter&lt;/code>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_973393_6044"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_9029_14206" name="" supplier="_10_5_622020d_1132928309331_869672_6042" client="_10_5_622020d_1132928309331_973393_6044" contract="_10_5_622020d_1132928309331_869672_6042"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_95328_14207" name="" supplier="_9_5_f720368_1110473546737_590916_9627" client="_10_5_622020d_1132928309331_973393_6044" contract="_9_5_f720368_1110473546737_590916_9627"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309331_542530_6046" name="CallbackHandlerProtection" clientDependency="_10_5_622020d_1132928321889_262057_14208">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_974933_6047" body="A ProtectionParameter encapsulating a CallbackHandler.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_542530_6046"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_262057_14208" name="" supplier="_10_5_622020d_1132928309331_869672_6042" client="_10_5_622020d_1132928309331_542530_6046" contract="_10_5_622020d_1132928309331_869672_6042"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309341_167754_6048" name="Entry" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_955498_6049" body="A marker interface for &lt;code>KeyStore&lt;/code> entry types.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309341_167754_6048"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_352170_6050" name="PrivateKeyEntry" clientDependency="_10_5_622020d_1132928321889_868_14209" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_546965_6051" body="A &lt;code>KeyStore&lt;/code> entry that holds a &lt;code>PrivateKey&lt;/code>&#xA;and corresponding certificate chain.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309341_352170_6050"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_868_14209" name="" supplier="_10_5_622020d_1132928309341_167754_6048" client="_10_5_622020d_1132928309341_352170_6050" contract="_10_5_622020d_1132928309341_167754_6048"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_45186_6052" name="SecretKeyEntry" clientDependency="_10_5_622020d_1132928321889_327531_14210" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_577963_6053" body="A &lt;code>KeyStore&lt;/code> entry that holds a &lt;code>SecretKey&lt;/code>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309341_45186_6052"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_327531_14210" name="" supplier="_10_5_622020d_1132928309341_167754_6048" client="_10_5_622020d_1132928309341_45186_6052" contract="_10_5_622020d_1132928309341_167754_6048"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_296783_6054" name="TrustedCertificateEntry" clientDependency="_10_5_622020d_1132928321889_999002_14211" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_176665_6055" body="A &lt;code>KeyStore&lt;/code> entry that holds a trusted&#xA;&lt;code>Certificate&lt;/code>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309341_296783_6054"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_999002_14211" name="" supplier="_10_5_622020d_1132928309341_167754_6048" client="_10_5_622020d_1132928309341_296783_6054" contract="_10_5_622020d_1132928309341_167754_6048"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_305480_6056" name="Builder" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309341_209673_6058" body="A description of a to-be-instantiated KeyStore object.&#xA;&#xA;&lt;p>An instance of this class encapsulates the information needed to&#xA;instantiate and initialize a KeyStore object. That process is&#xA;triggered when the {@linkplain #getKeyStore} method is called.&#xA;&#xA;&lt;p>This makes it possible to decouple configuration from KeyStore&#xA;object creation and e.g. delay a password prompt until it is&#xA;needed.&#xA;&#xA;@see KeyStore&#xA;@see javax.net.ssl.KeyStoreBuilderParameters&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309341_305480_6056"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_749313_6057" name="FileBuilder" visibility="private" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928321889_894373_14212" isSubstitutable="true" general="_10_5_622020d_1132928309341_305480_6056"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309341_159146_6059" name="SimpleLoadStoreParameter" visibility="package" clientDependency="_10_5_622020d_1132928321889_512201_14213">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321889_512201_14213" name="" supplier="_10_5_622020d_1132928309331_956445_6040" client="_10_5_622020d_1132928309341_159146_6059" contract="_10_5_622020d_1132928309331_956445_6040"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_737347_8463" name="KeyException">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_811507_6021" body="This is the basic key exception.&#xA;&#xA;@see Key&#xA;@see InvalidKeyException&#xA;@see KeyManagementException&#xA;&#xA;@version 1.19 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_737347_8463"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_185710_14200" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_676033_8431" name="BasicPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928321879_911159_14184" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_782428_5977" body="A BasicPermissionCollection stores a collection&#xA;of BasicPermission permissions. BasicPermission objects&#xA;must be stored in a manner that allows them to be inserted in any&#xA;order, but enable the implies function to evaluate the implies&#xA;method in an efficient (and consistent) manner.&#xA;&#xA;A BasicPermissionCollection handles comparing a permission like &quot;a.b.c.d.e&quot;&#xA;with a Permission such as &quot;a.b.*&quot;, or &quot;*&quot;.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionsImpl&#xA;&#xA;@version 1.40 12/19/03&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546674_676033_8431"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_927457_14185" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321879_911159_14184" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_676033_8431" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_619380_8497" name="PermissionsEnumerator" visibility="package" clientDependency="_10_5_622020d_1132928321899_123219_14227" isLeaf="true">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_123219_14227" name="" supplier="_10_5_622020d_1132928321899_186674_14224" client="_9_5_f720368_1110473546690_619380_8497" contract="_10_5_622020d_1132928321899_186674_14224"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_453853_8485" name="MessageDigestSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_689781_6069" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>MessageDigest&lt;/code> class, which provides the functionality&#xA;of a message digest algorithm, such as MD5 or SHA. Message digests are&#xA;secure one-way hash functions that take arbitrary-sized data and output a&#xA;fixed-length hash value.&#xA;&#xA;&lt;p> All the abstract methods in this class must be implemented by a&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a particular message digest algorithm.&#xA;&#xA;&lt;p> Implementations are free to implement the Cloneable interface.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.15, 12/19/03&#xA;&#xA;@see MessageDigest&#xA;" annotatedElement="_9_5_f720368_1110473546690_453853_8485"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_651261_8427" name="AllPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928321879_470276_14179" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309291_433055_5970" body="A AllPermissionCollection stores a collection&#xA;of AllPermission permissions. AllPermission objects&#xA;must be stored in a manner that allows them to be inserted in any&#xA;order, but enable the implies function to evaluate the implies&#xA;method in an efficient (and consistent) manner.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;&#xA;@version 1.20 12/19/03&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546674_651261_8427"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_235838_14180" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321879_470276_14179" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_651261_8427" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_564868_8467" name="KeyFactorySpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_658034_6025" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>KeyFactory&lt;/code> class.&#xA;All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a key factory for a particular algorithm.&#xA;&#xA;&lt;P> Key factories are used to convert &lt;I>keys&lt;/I> (opaque&#xA;cryptographic keys of type &lt;code>Key&lt;/code>) into &lt;I>key specifications&lt;/I>&#xA;(transparent representations of the underlying key material), and vice&#xA;versa.&#xA;&#xA;&lt;P> Key factories are bi-directional. That is, they allow you to build an&#xA;opaque key object from a given key specification (key material), or to&#xA;retrieve the underlying key material of a key object in a suitable format.&#xA;&#xA;&lt;P> Multiple compatible key specifications may exist for the same key.&#xA;For example, a DSA public key may be specified using&#xA;&lt;code>DSAPublicKeySpec&lt;/code> or&#xA;&lt;code>X509EncodedKeySpec&lt;/code>. A key factory can be used to translate&#xA;between compatible key specifications.&#xA;&#xA;&lt;P> A provider should document all the key specifications supported by its&#xA;key factory.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.12, 05/05/04&#xA;&#xA;@see KeyFactory&#xA;@see Key&#xA;@see PublicKey&#xA;@see PrivateKey&#xA;@see java.security.spec.KeySpec&#xA;@see java.security.spec.DSAPublicKeySpec&#xA;@see java.security.spec.X509EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_564868_8467"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_377887_8439" name="DigestInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_478130_5991" body="A transparent stream that updates the associated message digest using&#xA;the bits going through the stream.&#xA;&#xA;&lt;p>To complete the message digest computation, call one of the&#xA;&lt;code>digest&lt;/code> methods on the associated message&#xA;digest after your calls to one of this digest input stream's&#xA;{@link #read() read} methods.&#xA;&#xA;&lt;p>It is possible to turn this stream on or off (see&#xA;{@link #on(boolean) on}). When it is on, a call to one of the&#xA;&lt;code>read&lt;/code> methods&#xA;results in an update on the message digest.  But when it is off,&#xA;the message digest is not updated. The default is for the stream&#xA;to be on.&#xA;&#xA;&lt;p>Note that digest objects can compute only one digest (see&#xA;{@link MessageDigest}),&#xA;so that in order to compute intermediate digests, a caller should&#xA;retain a handle onto the digest object, and clone it for each&#xA;digest to be computed, leaving the orginal digest untouched.&#xA;&#xA;@see MessageDigest&#xA;&#xA;@see DigestOutputStream&#xA;&#xA;@version 1.37 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_377887_8439"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_851510_14189" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_459679_8501" name="Policy" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_955612_6084" body="This is an abstract class for representing the system security&#xA;policy for a Java application environment (specifying&#xA;which permissions are available for code from various sources).&#xA;That is, the security policy is represented by a Policy subclass&#xA;providing an implementation of the abstract methods&#xA;in this Policy class.&#xA;&#xA;&lt;p>There is only one Policy object in effect at any given time.&#xA;&#xA;&lt;p>The source location for the policy information utilized by the&#xA;Policy object is up to the Policy implementation.&#xA;The policy configuration may be stored, for example, as a&#xA;flat ASCII file, as a serialized binary file of&#xA;the Policy class, or as a database.&#xA;&#xA;&lt;p>The currently-installed Policy object can be obtained by&#xA;calling the &lt;code>getPolicy&lt;/code> method, and it can be&#xA;changed by a call to the &lt;code>setPolicy&lt;/code> method (by&#xA;code with permission to reset the Policy).&#xA;&#xA;&lt;p>The &lt;code>refresh&lt;/code> method causes the policy&#xA;object to refresh/reload its current configuration.&#xA;&#xA;&lt;p>This is implementation-dependent. For example, if the policy&#xA;object stores its policy in configuration files, calling&#xA;&lt;code>refresh&lt;/code> will cause it to re-read the configuration&#xA;policy files. The refreshed policy may not have an effect on classes&#xA;in a particular ProtectionDomain. This is dependent on the Policy&#xA;provider's implementation of the&#xA;{@link #implies(ProtectionDomain,Permission) implies}&#xA;method and the PermissionCollection caching strategy.&#xA;&#xA;&lt;p>The default Policy implementation can be changed by setting the&#xA;value of the &quot;policy.provider&quot; security property (in the Java&#xA;security properties file) to the fully qualified name of&#xA;the desired Policy implementation class.&#xA;The Java security properties file is located in the file named&#xA;&lt;JAVA_HOME>/lib/security/java.security, where &lt;JAVA_HOME>&#xA;refers to the directory where the JDK was installed.&#xA;&#xA;@author Roland Schemers&#xA;@author Gary Ellison&#xA;@version 1.94, 06/28/04&#xA;@see java.security.CodeSource&#xA;@see java.security.PermissionCollection&#xA;@see java.security.SecureClassLoader&#xA;" annotatedElement="_9_5_f720368_1110473546690_459679_8501"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_170500_8475" name="KeyPairGeneratorSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309331_769548_6033" body="&lt;p> This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>KeyPairGenerator&lt;/code> class, which is used to generate&#xA;pairs of public and private keys.&#xA;&#xA;&lt;p> All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a key pair generator for a particular algorithm.&#xA;&#xA;&lt;p> In case the client does not explicitly initialize the KeyPairGenerator&#xA;(via a call to an &lt;code>initialize&lt;/code> method), each provider must&#xA;supply (and document) a default initialization.&#xA;For example, the &lt;i>Sun&lt;/i> provider uses a default modulus size (keysize)&#xA;of 1024 bits.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.14, 12/19/03&#xA;&#xA;@see KeyPairGenerator&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;" annotatedElement="_9_5_f720368_1110473546690_170500_8475"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309331_387002_6034" name="KeyRep" clientDependency="_10_5_622020d_1132928321889_88772_14205">
            <ownedComment xmi:id="_10_5_622020d_1132928309331_96187_6039" body="Standardized representation for serialized Key objects.&#xA;&#xA;&lt;p>&#xA;&#xA;Note that a serialized Key may contain sensitive information&#xA;which should not be exposed in untrusted environments.  See the&#xA;&lt;a href=&quot;../../../guide/serialization/spec/security.html&quot;>&#xA;Security Appendix&lt;/a>&#xA;of the Serialization Specification for more information.&#xA;&#xA;@see Key&#xA;@see KeyFactory&#xA;@see javax.crypto.spec.SecretKeySpec&#xA;@see java.security.spec.X509EncodedKeySpec&#xA;@see java.security.spec.PKCS8EncodedKeySpec&#xA;&#xA;@version 1.7, 04/04/20&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_387002_6034"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321889_88772_14205" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309331_387002_6034" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309331_599207_6035" name="Type">
              <ownedComment xmi:id="_10_5_622020d_1132928309331_217536_6037" body="Key type.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309331_599207_6035"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_136691_8453" name="IdentityScope" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_271423_6011" body="&lt;p>This class represents a scope for identities. It is an Identity&#xA;itself, and therefore has a name and can have a scope. It can also&#xA;optionally have a public key and associated certificates.&#xA;&#xA;&lt;p>An IdentityScope can contain Identity objects of all kinds, including&#xA;Signers. All types of Identity objects can be retrieved, added, and&#xA;removed using the same methods. Note that it is possible, and in fact&#xA;expected, that different types of identity scopes will&#xA;apply different policies for their various operations on the&#xA;various types of Identities.&#xA;&#xA;&lt;p>There is a one-to-one mapping between keys and identities, and&#xA;there can only be one copy of one key per scope. For example, suppose&#xA;&lt;b>Acme Software, Inc&lt;/b> is a software publisher known to a user.&#xA;Suppose it is an Identity, that is, it has a public key, and a set of&#xA;associated certificates. It is named in the scope using the name&#xA;&quot;Acme Software&quot;. No other named Identity in the scope has the same&#xA;public  key. Of course, none has the same name as well.&#xA;&#xA;@see Identity&#xA;@see Signer&#xA;@see Principal&#xA;@see Key&#xA;&#xA;@version 1.54 04/05/18&#xA;@author Benjamin Renaud&#xA;&#xA;@deprecated This class is no longer used. Its functionality has been&#xA;replaced by &lt;code>java.security.KeyStore&lt;/code>, the&#xA;&lt;code>java.security.cert&lt;/code> package, and&#xA;&lt;code>java.security.Principal&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546674_136691_8453"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_228220_14195" isSubstitutable="true" general="_9_5_f720368_1110473546674_944917_8451"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_496404_8481" name="KeyStoreSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_991535_6065" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>KeyStore&lt;/code> class.&#xA;All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a keystore for a particular keystore type.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.18, 05/25/04&#xA;&#xA;@see KeyStore&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_496404_8481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_636308_8533" name="SignatureException">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_205088_6126" body="This is the generic Signature exception.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546690_636308_8533"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_318050_14242" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_456258_8505" name="PrivateKey" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_125228_6088" body="&lt;p>A private key. This interface contains no methods or constants.&#xA;It merely serves to group (and provide type safety for) all private key&#xA;interfaces.&#xA;&#xA;Note: The specialized private key interfaces extend this interface.&#xA;See, for example, the DSAPrivateKey interface in&#xA;&lt;code>java.security.interfaces&lt;/code>.&#xA;&#xA;@see Key&#xA;@see PublicKey&#xA;@see Certificate&#xA;@see Signature#initVerify&#xA;@see java.security.interfaces.DSAPrivateKey&#xA;@see java.security.interfaces.RSAPrivateKey&#xA;@see java.security.interfaces.RSAPrivateCrtKey&#xA;&#xA;@version 1.29 03/12/19&#xA;@author Benjamin Renaud&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546690_456258_8505"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_30639_14230" isSubstitutable="true" general="_9_5_f720368_1110473546674_814973_8461"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_424330_8499" name="PermissionsHash" visibility="package" clientDependency="_10_5_622020d_1132928321899_527741_14228" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_718087_6082" body="A PermissionsHash stores a homogeneous set of permissions in a hashtable.&#xA;&#xA;@see Permission&#xA;@see Permissions&#xA;&#xA;@version 1.58, 05/05/04&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546690_424330_8499"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_523267_14229" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_527741_14228" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_424330_8499" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_967636_8503" name="Principal" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_535_6086" body="This interface represents the abstract notion of a principal, which&#xA;can be used to represent any entity, such as an individual, a&#xA;corporation, and a login id.&#xA;&#xA;@see java.security.cert.X509Certificate&#xA;&#xA;@version 1.22, 03/12/19&#xA;@author Li Gong&#xA;" annotatedElement="_9_5_f720368_1110473546690_967636_8503"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309461_267876_6139" name="UnrecoverableEntryException">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_735853_6141" body="This exception is thrown if an entry in the keystore cannot be recovered.&#xA;&#xA;@version 1.2, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309461_267876_6139"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_76010_14246" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547706_265619_18593" name="cert">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_516168_8331" name="PKIXCertPathBuilderResult" clientDependency="_10_5_622020d_1132928321859_623691_14129">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_79549_5835" body="This class represents the successful result of the PKIX certification&#xA;path builder algorithm. All certification paths that are built and&#xA;returned using this algorithm are also validated according to the PKIX&#xA;certification path validation algorithm.&#xA;&#xA;&lt;p>Instances of &lt;code>PKIXCertPathBuilderResult&lt;/code> are returned by&#xA;the &lt;code>build&lt;/code> method of &lt;code>CertPathBuilder&lt;/code>&#xA;objects implementing the PKIX algorithm.&#xA;&#xA;&lt;p>All &lt;code>PKIXCertPathBuilderResult&lt;/code> objects contain the&#xA;certification path constructed by the build algorithm, the&#xA;valid policy tree and subject public key resulting from the build&#xA;algorithm, and a &lt;code>TrustAnchor&lt;/code> describing the certification&#xA;authority (CA) that served as a trust anchor for the certification path.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathBuilderResult&#xA;&#xA;@version&#x9;1.9 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Anne Anderson&#xA;" annotatedElement="_9_5_f720368_1110473546674_516168_8331"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_459880_14130" isSubstitutable="true" general="_9_5_f720368_1110473546674_290826_8335"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_623691_14129" name="" supplier="_9_5_f720368_1110473546674_720709_8293" client="_9_5_f720368_1110473546674_516168_8331" contract="_9_5_f720368_1110473546674_720709_8293"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_733914_8303" name="CertPathValidatorException">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_23398_5807" body="An exception indicating one of a variety of problems encountered when&#xA;validating a certification path.&#xA;&lt;p>&#xA;A &lt;code>CertPathValidatorException&lt;/code> provides support for wrapping&#xA;exceptions. The {@link #getCause getCause} method returns the throwable,&#xA;if any, that caused this exception to be thrown.&#xA;&lt;p>&#xA;A &lt;code>CertPathValidatorException&lt;/code> may also include the&#xA;certification path that was being validated when the exception was thrown&#xA;and the index of the certificate in the certification path that caused the&#xA;exception to be thrown. Use the {@link #getCertPath getCertPath} and&#xA;{@link #getIndex getIndex} methods to retrieve this information.&#xA;&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathValidator&#xA;&#xA;@version &#x9;1.10 12/19/03&#xA;@since&#x9;1.4&#xA;@author &#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_733914_8303"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_13499_14119" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_181549_8291" name="CertPathBuilderException">
              <ownedComment xmi:id="_10_5_622020d_1132928309100_438828_5795" body="An exception indicating one of a variety of problems encountered when&#xA;building a certification path with a &lt;code>CertPathBuilder&lt;/code>.&#xA;&lt;p>&#xA;A &lt;code>CertPathBuilderException&lt;/code> provides support for wrapping&#xA;exceptions. The {@link #getCause getCause} method returns the throwable,&#xA;if any, that caused this exception to be thrown.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathBuilder&#xA;&#xA;@version &#x9;1.7 12/19/03&#xA;@since&#x9;1.4&#xA;@author &#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_181549_8291"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_652380_14115" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_497310_8295" name="CertPathBuilderSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309100_366983_5799" body="The &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the {@link CertPathBuilder CertPathBuilder} class. All&#xA;&lt;code>CertPathBuilder&lt;/code> implementations must include a class (the&#xA;SPI class) that extends this class (&lt;code>CertPathBuilderSpi&lt;/code>) and&#xA;implements all of its methods. In general, instances of this class should&#xA;only be accessed through the &lt;code>CertPathBuilder&lt;/code> class. For&#xA;details, see the Java Cryptography Architecture.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Instances of this class need not be protected against concurrent&#xA;access from multiple threads. Threads that need to access a single&#xA;&lt;code>CertPathBuilderSpi&lt;/code> instance concurrently should synchronize&#xA;amongst themselves and provide the necessary locking before calling the&#xA;wrapping &lt;code>CertPathBuilder&lt;/code> object.&#xA;&lt;p>&#xA;However, implementations of &lt;code>CertPathBuilderSpi&lt;/code> may still&#xA;encounter concurrency issues, since multiple threads each&#xA;manipulating a different &lt;code>CertPathBuilderSpi&lt;/code> instance need not&#xA;synchronize.&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_497310_8295"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_330357_8311" name="CertStore">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_394122_5815" body="A class for retrieving &lt;code>Certificate&lt;/code>s and &lt;code>CRL&lt;/code>s&#xA;from a repository.&#xA;&lt;p>&#xA;This class uses a provider-based architecture, as described in the&#xA;Java Cryptography Architecture.&#xA;To create a &lt;code>CertStore&lt;/code>, call one of the static&#xA;&lt;code>getInstance&lt;/code> methods, passing in the type of&#xA;&lt;code>CertStore&lt;/code> desired, any applicable initialization parameters&#xA;and optionally the name of the provider desired.&#xA;&lt;p>&#xA;Once the &lt;code>CertStore&lt;/code> has been created, it can be used to&#xA;retrieve &lt;code>Certificate&lt;/code>s and &lt;code>CRL&lt;/code>s by calling its&#xA;{@link #getCertificates(CertSelector selector) getCertificates} and&#xA;{@link #getCRLs(CRLSelector selector) getCRLs} methods.&#xA;&lt;p>&#xA;Unlike a {@link java.security.KeyStore KeyStore}, which provides access&#xA;to a cache of private keys and trusted certificates, a&#xA;&lt;code>CertStore&lt;/code> is designed to provide access to a potentially&#xA;vast repository of untrusted certificates and CRLs. For example, an LDAP&#xA;implementation of &lt;code>CertStore&lt;/code> provides access to certificates&#xA;and CRLs stored in one or more directories using the LDAP protocol and the&#xA;schema as defined in the RFC service attribute. See Appendix A in the&#xA;&lt;a href= &quot;../../../../guide/security/certpath/CertPathProgGuide.html#AppA&quot;>&#xA;Java Certification Path API Programmer's Guide&lt;/a> for more information about&#xA;standard &lt;code>CertStore&lt;/code> types.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;All public methods of &lt;code>CertStore&lt;/code> objects must be thread-safe.&#xA;That is, multiple threads may concurrently invoke these methods on a&#xA;single &lt;code>CertStore&lt;/code> object (or more than one) with no&#xA;ill effects. This allows a &lt;code>CertPathBuilder&lt;/code> to search for a&#xA;CRL while simultaneously searching for further certificates, for instance.&#xA;&lt;p>&#xA;The static methods of this class are also guaranteed to be thread-safe.&#xA;Multiple threads may concurrently invoke the static methods defined in&#xA;this class with no ill effects.&#xA;&#xA;@version &#x9;1.13 06/28/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan, Steve Hanna&#xA;" annotatedElement="_9_5_f720368_1110473546674_330357_8311"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_264925_8323" name="CRLException">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_62802_5827" body="CRL (Certificate Revocation List) Exception.&#xA;&#xA;@author Hemma Prafullchandra&#xA;1.12&#xA;" annotatedElement="_9_5_f720368_1110473546674_264925_8323"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_142952_14125" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_465545_8277" name="CertificateExpiredException">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_289307_5780" body="Certificate Expired Exception. This is thrown whenever the current&#xA;&lt;code>Date&lt;/code> or the specified &lt;code>Date&lt;/code> is after the&#xA;&lt;code>notAfter&lt;/code> date/time specified in the validity period&#xA;of the certificate.&#xA;&#xA;@author Hemma Prafullchandra&#xA;1.10&#xA;" annotatedElement="_9_5_f720368_1110473546674_465545_8277"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_34117_14110" isSubstitutable="true" general="_9_5_f720368_1110473546674_550191_8275"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_725105_8337" name="PKIXParameters" clientDependency="_10_5_622020d_1132928321859_869781_14133">
              <ownedComment xmi:id="_10_5_622020d_1132928309140_242425_5841" body="Parameters used as input for the PKIX &lt;code>CertPathValidator&lt;/code>&#xA;algorithm.&#xA;&lt;p>&#xA;A PKIX &lt;code>CertPathValidator&lt;/code> uses these parameters to&#xA;validate a &lt;code>CertPath&lt;/code> according to the PKIX certification path&#xA;validation algorithm.&#xA;&#xA;&lt;p>To instantiate a &lt;code>PKIXParameters&lt;/code> object, an&#xA;application must specify one or more &lt;i>most-trusted CAs&lt;/i> as defined by&#xA;the PKIX certification path validation algorithm. The most-trusted CAs&#xA;can be specified using one of two constructors. An application&#xA;can call {@link #PKIXParameters(Set) PKIXParameters(Set)},&#xA;specifying a &lt;code>Set&lt;/code> of &lt;code>TrustAnchor&lt;/code> objects, each&#xA;of which identify a most-trusted CA. Alternatively, an application can call&#xA;{@link #PKIXParameters(KeyStore) PKIXParameters(KeyStore)}, specifying a&#xA;&lt;code>KeyStore&lt;/code> instance containing trusted certificate entries, each&#xA;of which will be considered as a most-trusted CA.&#xA;&lt;p>&#xA;Once a &lt;code>PKIXParameters&lt;/code> object has been created, other parameters&#xA;can be specified (by calling {@link #setInitialPolicies setInitialPolicies}&#xA;or {@link #setDate setDate}, for instance) and then the&#xA;&lt;code>PKIXParameters&lt;/code> is passed along with the &lt;code>CertPath&lt;/code>&#xA;to be validated to {@link CertPathValidator#validate&#xA;CertPathValidator.validate}.&#xA;&lt;p>&#xA;Any parameter that is not set (or is set to &lt;code>null&lt;/code>) will&#xA;be set to the default value for that parameter. The default value for the&#xA;&lt;code>date&lt;/code> parameter is &lt;code>null&lt;/code>, which indicates&#xA;the current time when the path is validated. The default for the&#xA;remaining parameters is the least constrained.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathValidator&#xA;&#xA;@version &#x9;1.17 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;@author&#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_725105_8337"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_869781_14133" name="" supplier="_9_5_f720368_1110473546674_210592_8299" client="_9_5_f720368_1110473546674_725105_8337" contract="_9_5_f720368_1110473546674_210592_8299"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_676607_8271" name="Certificate" clientDependency="_10_5_622020d_1132928321849_97436_14106" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_342091_5774" body="&lt;p>Abstract class for managing a variety of identity certificates.&#xA;An identity certificate is a binding of a principal to a public key which&#xA;is vouched for by another principal.  (A principal represents&#xA;an entity such as an individual user, a group, or a corporation.)&#xA;&lt;p>&#xA;This class is an abstraction for certificates that have different&#xA;formats but important common uses.  For example, different types of&#xA;certificates, such as X.509 and PGP, share general certificate&#xA;functionality (like encoding and verifying) and&#xA;some types of information (like a public key).&#xA;&lt;p>&#xA;X.509, PGP, and SDSI certificates can all be implemented by&#xA;subclassing the Certificate class, even though they contain different&#xA;sets of information, and they store and retrieve the information in&#xA;different ways.&#xA;&#xA;@see X509Certificate&#xA;@see CertificateFactory&#xA;&#xA;@author Hemma Prafullchandra&#xA;@version 1.24, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546674_676607_8271"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321849_97436_14106" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_676607_8271" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547706_887322_18595" name="CertificateRep" visibility="protected" clientDependency="_10_5_622020d_1132928321849_627735_14107">
                <ownedComment xmi:id="_10_5_622020d_1132928309080_698513_5772" body="Alternate Certificate class for serialization.&#xA;" annotatedElement="_9_5_f720368_1110473547706_887322_18595"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321849_627735_14107" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547706_887322_18595" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_954274_8305" name="CertPathValidatorResult" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_43477_5809" body="A specification of the result of a certification path validator algorithm.&#xA;&lt;p>&#xA;The purpose of this interface is to group (and provide type safety&#xA;for) all certification path validator results. All results returned&#xA;by the {@link CertPathValidator#validate CertPathValidator.validate}&#xA;method must implement this interface.&#xA;&#xA;@see CertPathValidator&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_954274_8305"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_64708_14120" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_459455_8353" name="X509CRLSelector" clientDependency="_10_5_622020d_1132928321859_188452_14140">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_6368_5857" body="A &lt;code>CRLSelector&lt;/code> that selects &lt;code>X509CRLs&lt;/code> that&#xA;match all specified criteria. This class is particularly useful when&#xA;selecting CRLs from a &lt;code>CertStore&lt;/code> to check revocation status&#xA;of a particular certificate.&#xA;&lt;p>&#xA;When first constructed, an &lt;code>X509CRLSelector&lt;/code> has no criteria&#xA;enabled and each of the &lt;code>get&lt;/code> methods return a default&#xA;value (&lt;code>null&lt;/code>). Therefore, the {@link #match match} method&#xA;would return &lt;code>true&lt;/code> for any &lt;code>X509CRL&lt;/code>. Typically,&#xA;several criteria are enabled (by calling {@link #setIssuers setIssuers}&#xA;or {@link #setDateAndTime setDateAndTime}, for instance) and then the&#xA;&lt;code>X509CRLSelector&lt;/code> is passed to&#xA;{@link CertStore#getCRLs CertStore.getCRLs} or some similar&#xA;method.&#xA;&lt;p>&#xA;Please refer to RFC 2459 for definitions of the X.509 CRL fields and&#xA;extensions mentioned below.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CRLSelector&#xA;@see X509CRL&#xA;&#xA;@version &#x9;1.16 07/16/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;" annotatedElement="_9_5_f720368_1110473546674_459455_8353"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_188452_14140" name="" supplier="_9_5_f720368_1110473546674_871061_8325" client="_9_5_f720368_1110473546674_459455_8353" contract="_9_5_f720368_1110473546674_871061_8325"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_874911_8307" name="CertPathValidatorSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_893213_5811" body="The &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the {@link CertPathValidator CertPathValidator} class. All&#xA;&lt;code>CertPathValidator&lt;/code> implementations must include a class (the&#xA;SPI class) that extends this class (&lt;code>CertPathValidatorSpi&lt;/code>)&#xA;and implements all of its methods. In general, instances of this class&#xA;should only be accessed through the &lt;code>CertPathValidator&lt;/code> class.&#xA;For details, see the Java Cryptography Architecture.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Instances of this class need not be protected against concurrent&#xA;access from multiple threads. Threads that need to access a single&#xA;&lt;code>CertPathValidatorSpi&lt;/code> instance concurrently should synchronize&#xA;amongst themselves and provide the necessary locking before calling the&#xA;wrapping &lt;code>CertPathValidator&lt;/code> object.&#xA;&lt;p>&#xA;However, implementations of &lt;code>CertPathValidatorSpi&lt;/code> may still&#xA;encounter concurrency issues, since multiple threads each&#xA;manipulating a different &lt;code>CertPathValidatorSpi&lt;/code> instance need not&#xA;synchronize.&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_874911_8307"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_130610_8355" name="X509Extension" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_374622_5859" body="Interface for an X.509 extension.&#xA;&#xA;&lt;p>The extensions defined for X.509 v3&#xA;{@link X509Certificate Certificates} and v2&#xA;{@link X509CRL CRLs} (Certificate Revocation&#xA;Lists) provide methods&#xA;for associating additional attributes with users or public keys,&#xA;for managing the certification hierarchy, and for managing CRL&#xA;distribution. The X.509 extensions format also allows communities&#xA;to define private extensions to carry information unique to those&#xA;communities.&#xA;&#xA;&lt;p>Each extension in a certificate/CRL may be designated as&#xA;critical or non-critical.  A certificate/CRL-using system (an application&#xA;validating a certificate/CRL) must reject the certificate/CRL if it&#xA;encounters a critical extension it does not recognize.  A non-critical&#xA;extension may be ignored if it is not recognized.&#xA;&lt;p>&#xA;The ASN.1 definition for this is:&#xA;&lt;pre>&#xA;Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension&#xA;&#xA;Extension  ::=  SEQUENCE  {&#xA;extnId        OBJECT IDENTIFIER,&#xA;critical      BOOLEAN DEFAULT FALSE,&#xA;extnValue     OCTET STRING&#xA;-- contains a DER encoding of a value&#xA;-- of the type registered for use with&#xA;-- the extnId object identifier value&#xA;}&#xA;&lt;/pre>&#xA;Since not all extensions are known, the &lt;code>getExtensionValue&lt;/code>&#xA;method returns the DER-encoded OCTET STRING of the&#xA;extension value (i.e., the &lt;code>extnValue&lt;/code>). This can then&#xA;be handled by a &lt;em>Class&lt;/em> that understands the extension.&#xA;&#xA;@author Hemma Prafullchandra&#xA;@version 1.22 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546674_130610_8355"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_519070_8309" name="CertSelector" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_401889_5813" body="A selector that defines a set of criteria for selecting&#xA;&lt;code>Certificate&lt;/code>s. Classes that implement this interface&#xA;are often used to specify which &lt;code>Certificate&lt;/code>s should&#xA;be retrieved from a &lt;code>CertStore&lt;/code>.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this interface are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see Certificate&#xA;@see CertStore&#xA;@see CertStore#getCertificates&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@author&#x9;Steve Hanna&#xA;@since&#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_519070_8309"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_212407_14121" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_790243_8351" name="X509CRLEntry" clientDependency="_10_5_622020d_1132928321859_262474_14139" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_688597_5855" body="&lt;p>Abstract class for a revoked certificate in a CRL (Certificate&#xA;Revocation List).&#xA;&#xA;The ASN.1 definition for &lt;em>revokedCertificates&lt;/em> is:&#xA;&lt;pre>&#xA;revokedCertificates    SEQUENCE OF SEQUENCE  {&#xA;userCertificate    CertificateSerialNumber,&#xA;revocationDate     ChoiceOfTime,&#xA;crlEntryExtensions Extensions OPTIONAL&#xA;-- if present, must be v2&#xA;}  OPTIONAL&#xA;&lt;p>&#xA;CertificateSerialNumber  ::=  INTEGER&#xA;&lt;p>&#xA;Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension&#xA;&lt;p>&#xA;Extension  ::=  SEQUENCE  {&#xA;extnId        OBJECT IDENTIFIER,&#xA;critical      BOOLEAN DEFAULT FALSE,&#xA;extnValue     OCTET STRING&#xA;-- contains a DER encoding of a value&#xA;-- of the type registered for use with&#xA;-- the extnId object identifier value&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@see X509CRL&#xA;@see X509Extension&#xA;&#xA;@author Hemma Prafullchandra&#xA;@version 1.16 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546674_790243_8351"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_262474_14139" name="" supplier="_9_5_f720368_1110473546674_130610_8355" client="_9_5_f720368_1110473546674_790243_8351" contract="_9_5_f720368_1110473546674_130610_8355"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_543670_8297" name="CertPathHelperImpl" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_574812_5801" body="Helper class that allows the Sun CertPath provider to access&#xA;implementation dependent APIs in CertPath framework.&#xA;&#xA;@author Andreas Sterbenz&#xA;@version 1.4, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546674_543670_8297"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_427803_8333" name="PKIXCertPathChecker" clientDependency="_10_5_622020d_1132928321859_621288_14131" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_36602_5837" body="An abstract class that performs one or more checks on an&#xA;&lt;code>X509Certificate&lt;/code>.&#xA;&#xA;&lt;p>A concrete implementation of the &lt;code>PKIXCertPathChecker&lt;/code> class&#xA;can be created to extend the PKIX certification path validation algorithm.&#xA;For example, an implementation may check for and process a critical private&#xA;extension of each certificate in a certification path.&#xA;&#xA;&lt;p>Instances of &lt;code>PKIXCertPathChecker&lt;/code> are passed as parameters&#xA;using the {@link PKIXParameters#setCertPathCheckers setCertPathCheckers}&#xA;or {@link PKIXParameters#addCertPathChecker addCertPathChecker} methods&#xA;of the &lt;code>PKIXParameters&lt;/code> and &lt;code>PKIXBuilderParameters&lt;/code>&#xA;class. Each of the &lt;code>PKIXCertPathChecker&lt;/code>s {@link #check check}&#xA;methods will be called, in turn, for each certificate processed by a PKIX&#xA;&lt;code>CertPathValidator&lt;/code> or &lt;code>CertPathBuilder&lt;/code>&#xA;implementation.&#xA;&#xA;&lt;p>A &lt;code>PKIXCertPathChecker&lt;/code> may be called multiple times on&#xA;successive certificates in a certification path. Concrete subclasses&#xA;are expected to maintain any internal state that may be necessary to&#xA;check successive certificates. The {@link #init init} method is used&#xA;to initialize the internal state of the checker so that the certificates&#xA;of a new certification path may be checked. A stateful implementation&#xA;&lt;b>must&lt;/b> override the {@link #clone clone} method if necessary in&#xA;order to allow a PKIX &lt;code>CertPathBuilder&lt;/code> to efficiently&#xA;backtrack and try other paths. In these situations, the&#xA;&lt;code>CertPathBuilder&lt;/code> is able to restore prior path validation&#xA;states by restoring the cloned &lt;code>PKIXCertPathChecker&lt;/code>s.&#xA;&#xA;&lt;p>The order in which the certificates are presented to the&#xA;&lt;code>PKIXCertPathChecker&lt;/code> may be either in the forward direction&#xA;(from target to most-trusted CA) or in the reverse direction (from&#xA;most-trusted CA to target). A &lt;code>PKIXCertPathChecker&lt;/code> implementation&#xA;&lt;b>must&lt;/b> support reverse checking (the ability to perform its checks when&#xA;it is presented with certificates in the reverse direction) and &lt;b>may&lt;/b>&#xA;support forward checking (the ability to perform its checks when it is&#xA;presented with certificates in the forward direction). The&#xA;{@link #isForwardCheckingSupported isForwardCheckingSupported} method&#xA;indicates whether forward checking is supported.&#xA;&lt;p>&#xA;Additional input parameters required for executing the check may be&#xA;specified through constructors of concrete implementations of this class.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see PKIXParameters&#xA;@see PKIXBuilderParameters&#xA;&#xA;@version &#x9;1.7 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Yassir Elley&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_427803_8333"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_621288_14131" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546674_427803_8333" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_16507_8347" name="X509CertSelector" clientDependency="_10_5_622020d_1132928321859_604837_14136">
              <ownedComment xmi:id="_10_5_622020d_1132928309171_19346_5851" body="A &lt;code>CertSelector&lt;/code> that selects &lt;code>X509Certificates&lt;/code> that&#xA;match all specified criteria. This class is particularly useful when&#xA;selecting certificates from a &lt;code>CertStore&lt;/code> to build a&#xA;PKIX-compliant certification path.&#xA;&lt;p>&#xA;When first constructed, an &lt;code>X509CertSelector&lt;/code> has no criteria&#xA;enabled and each of the &lt;code>get&lt;/code> methods return a default value&#xA;(&lt;code>null&lt;/code>, or &lt;code>-1&lt;/code> for the {@link #getBasicConstraints&#xA;getBasicConstraints} method). Therefore, the {@link #match match}&#xA;method would return &lt;code>true&lt;/code> for any &lt;code>X509Certificate&lt;/code>.&#xA;Typically, several criteria are enabled (by calling&#xA;{@link #setIssuer setIssuer} or&#xA;{@link #setKeyUsage setKeyUsage}, for instance) and then the&#xA;&lt;code>X509CertSelector&lt;/code> is passed to&#xA;{@link CertStore#getCertificates CertStore.getCertificates} or some similar&#xA;method.&#xA;&lt;p>&#xA;Several criteria can be enabled (by calling {@link #setIssuer setIssuer}&#xA;and {@link #setSerialNumber setSerialNumber},&#xA;for example) such that the &lt;code>match&lt;/code> method&#xA;usually uniquely matches a single &lt;code>X509Certificate&lt;/code>. We say&#xA;usually, since it is possible for two issuing CAs to have the same&#xA;distinguished name and each issue a certificate with the same serial&#xA;number. Other unique combinations include the issuer, subject,&#xA;subjectKeyIdentifier and/or the subjectPublicKey criteria.&#xA;&lt;p>&#xA;Please refer to RFC 2459 for definitions of the X.509 certificate&#xA;extensions mentioned below.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertSelector&#xA;@see X509Certificate&#xA;&#xA;@version &#x9;1.20, 06/08/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;" annotatedElement="_9_5_f720368_1110473546674_16507_8347"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_604837_14136" name="" supplier="_9_5_f720368_1110473546674_519070_8309" client="_9_5_f720368_1110473546674_16507_8347" contract="_9_5_f720368_1110473546674_519070_8309"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_292980_8283" name="CertificateNotYetValidException">
              <ownedComment xmi:id="_10_5_622020d_1132928309090_940361_5786" body="Certificate is not yet valid exception. This is thrown whenever&#xA;the current &lt;code>Date&lt;/code> or the specified &lt;code>Date&lt;/code>&#xA;is before the &lt;code>notBefore&lt;/code> date/time in the Certificate&#xA;validity period.&#xA;&#xA;@author Hemma Prafullchandra&#xA;1.10&#xA;" annotatedElement="_9_5_f720368_1110473546674_292980_8283"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_967215_14111" isSubstitutable="true" general="_9_5_f720368_1110473546674_550191_8275"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_290826_8335" name="PKIXCertPathValidatorResult" clientDependency="_10_5_622020d_1132928321859_317620_14132">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_19230_5839" body="This class represents the successful result of the PKIX certification&#xA;path validation algorithm.&#xA;&#xA;&lt;p>Instances of &lt;code>PKIXCertPathValidatorResult&lt;/code> are returned by the&#xA;{@link CertPathValidator#validate validate} method of&#xA;&lt;code>CertPathValidator&lt;/code> objects implementing the PKIX algorithm.&#xA;&#xA;&lt;p> All &lt;code>PKIXCertPathValidatorResult&lt;/code> objects contain the&#xA;valid policy tree and subject public key resulting from the&#xA;validation algorithm, as well as a &lt;code>TrustAnchor&lt;/code> describing&#xA;the certification authority (CA) that served as a trust anchor for the&#xA;certification path.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathValidatorResult&#xA;&#xA;@version &#x9;1.9 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Yassir Elley&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_290826_8335"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_317620_14132" name="" supplier="_9_5_f720368_1110473546674_954274_8305" client="_9_5_f720368_1110473546674_290826_8335" contract="_9_5_f720368_1110473546674_954274_8305"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_799739_8301" name="CertPathValidator">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_962187_5805" body="A class for validating certification paths (also known as certificate&#xA;chains).&#xA;&lt;p>&#xA;This class uses a provider-based architecture, as described in the Java&#xA;Cryptography Architecture. To create a &lt;code>CertPathValidator&lt;/code>,&#xA;call one of the static &lt;code>getInstance&lt;/code> methods, passing in the&#xA;algorithm name of the &lt;code>CertPathValidator&lt;/code> desired and&#xA;optionally the name of the provider desired.&#xA;&lt;p>&#xA;Once a &lt;code>CertPathValidator&lt;/code> object has been created, it can&#xA;be used to validate certification paths by calling the {@link #validate&#xA;validate} method and passing it the &lt;code>CertPath&lt;/code> to be validated&#xA;and an algorithm-specific set of parameters. If successful, the result is&#xA;returned in an object that implements the&#xA;&lt;code>CertPathValidatorResult&lt;/code> interface.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;The static methods of this class are guaranteed to be thread-safe.&#xA;Multiple threads may concurrently invoke the static methods defined in&#xA;this class with no ill effects.&#xA;&lt;p>&#xA;However, this is not true for the non-static methods defined by this class.&#xA;Unless otherwise documented by a specific provider, threads that need to&#xA;access a single &lt;code>CertPathValidator&lt;/code> instance concurrently should&#xA;synchronize amongst themselves and provide the necessary locking. Multiple&#xA;threads each manipulating a different &lt;code>CertPathValidator&lt;/code>&#xA;instance need not synchronize.&#xA;&#xA;@see CertPath&#xA;&#xA;@version &#x9;1.9 06/28/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_799739_8301"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_28760_8289" name="CertPathBuilder">
              <ownedComment xmi:id="_10_5_622020d_1132928309100_634218_5793" body="A class for building certification paths (also known as certificate chains).&#xA;&lt;p>&#xA;This class uses a provider-based architecture, as described in the Java&#xA;Cryptography Architecture. To create a &lt;code>CertPathBuilder&lt;/code>, call&#xA;one of the static &lt;code>getInstance&lt;/code> methods, passing in the&#xA;algorithm name of the &lt;code>CertPathBuilder&lt;/code> desired and optionally&#xA;the name of the provider desired.&#xA;&lt;p>&#xA;Once a &lt;code>CertPathBuilder&lt;/code> object has been created, certification&#xA;paths can be constructed by calling the {@link #build build} method and&#xA;passing it an algorithm-specific set of parameters. If successful, the&#xA;result (including the &lt;code>CertPath&lt;/code> that was built) is returned&#xA;in an object that implements the &lt;code>CertPathBuilderResult&lt;/code>&#xA;interface.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;The static methods of this class are guaranteed to be thread-safe.&#xA;Multiple threads may concurrently invoke the static methods defined in&#xA;this class with no ill effects.&#xA;&lt;p>&#xA;However, this is not true for the non-static methods defined by this class.&#xA;Unless otherwise documented by a specific provider, threads that need to&#xA;access a single &lt;code>CertPathBuilder&lt;/code> instance concurrently should&#xA;synchronize amongst themselves and provide the necessary locking. Multiple&#xA;threads each manipulating a different &lt;code>CertPathBuilder&lt;/code> instance&#xA;need not synchronize.&#xA;&#xA;@see CertPath&#xA;&#xA;@version &#x9;1.9 06/28/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;@author&#x9;Yassir Elley&#xA;" annotatedElement="_9_5_f720368_1110473546674_28760_8289"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_508810_8349" name="X509CRL" clientDependency="_10_5_622020d_1132928321859_134317_14137" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309171_612086_5853" body="&lt;p>&#xA;Abstract class for an X.509 Certificate Revocation List (CRL).&#xA;A CRL is a time-stamped list identifying revoked certificates.&#xA;It is signed by a Certificate Authority (CA) and made freely&#xA;available in a public repository.&#xA;&#xA;&lt;p>Each revoked certificate is&#xA;identified in a CRL by its certificate serial number. When a&#xA;certificate-using system uses a certificate (e.g., for verifying a&#xA;remote user's digital signature), that system not only checks the&#xA;certificate signature and validity but also acquires a suitably-&#xA;recent CRL and checks that the certificate serial number is not on&#xA;that CRL.  The meaning of &quot;suitably-recent&quot; may vary with local&#xA;policy, but it usually means the most recently-issued CRL.  A CA&#xA;issues a new CRL on a regular periodic basis (e.g., hourly, daily, or&#xA;weekly).  Entries are added to CRLs as revocations occur, and an&#xA;entry may be removed when the certificate expiration date is reached.&#xA;&lt;p>&#xA;The X.509 v2 CRL format is described below in ASN.1:&#xA;&lt;pre>&#xA;CertificateList  ::=  SEQUENCE  {&#xA;tbsCertList          TBSCertList,&#xA;signatureAlgorithm   AlgorithmIdentifier,&#xA;signature            BIT STRING  }&#xA;&lt;/pre>&#xA;&lt;p>&#xA;More information can be found in RFC 2459,&#xA;&quot;Internet X.509 Public Key Infrastructure Certificate and CRL&#xA;Profile&quot; at &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2459.txt&quot;>&#xA;http://www.ietf.org/rfc/rfc2459.txt &lt;/A>.&#xA;&lt;p>&#xA;The ASN.1 definition of &lt;code>tbsCertList&lt;/code> is:&#xA;&lt;pre>&#xA;TBSCertList  ::=  SEQUENCE  {&#xA;version                 Version OPTIONAL,&#xA;-- if present, must be v2&#xA;signature               AlgorithmIdentifier,&#xA;issuer                  Name,&#xA;thisUpdate              ChoiceOfTime,&#xA;nextUpdate              ChoiceOfTime OPTIONAL,&#xA;revokedCertificates     SEQUENCE OF SEQUENCE  {&#xA;userCertificate         CertificateSerialNumber,&#xA;revocationDate          ChoiceOfTime,&#xA;crlEntryExtensions      Extensions OPTIONAL&#xA;-- if present, must be v2&#xA;}  OPTIONAL,&#xA;crlExtensions           [0]  EXPLICIT Extensions OPTIONAL&#xA;-- if present, must be v2&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;CRLs are instantiated using a certificate factory. The following is an&#xA;example of how to instantiate an X.509 CRL:&#xA;&lt;pre>&lt;code>&#xA;InputStream inStream = new FileInputStream(&quot;fileName-of-crl&quot;);&#xA;CertificateFactory cf = CertificateFactory.getInstance(&quot;X.509&quot;);&#xA;X509CRL crl = (X509CRL)cf.generateCRL(inStream);&#xA;inStream.close();&#xA;&lt;/code>&lt;/pre>&#xA;&#xA;@author Hemma Prafullchandra&#xA;&#xA;@version 1.29, 12/19/03&#xA;&#xA;@see CRL&#xA;@see CertificateFactory&#xA;@see X509Extension&#xA;" annotatedElement="_9_5_f720368_1110473546674_508810_8349"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_374961_14138" isSubstitutable="true" general="_9_5_f720368_1110473546674_467826_8321"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_134317_14137" name="" supplier="_9_5_f720368_1110473546674_130610_8355" client="_9_5_f720368_1110473546674_508810_8349" contract="_9_5_f720368_1110473546674_130610_8355"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_550191_8275" name="CertificateException">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_50250_5778" body="This exception indicates one of a variety of certificate problems.&#xA;&#xA;@author Hemma Prafullchandra&#xA;@version 1.33&#xA;@see Certificate&#xA;" annotatedElement="_9_5_f720368_1110473546674_550191_8275"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_213010_14109" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_840999_8285" name="CertificateParsingException">
              <ownedComment xmi:id="_10_5_622020d_1132928309090_793074_5788" body="Certificate Parsing Exception. This is thrown whenever an&#xA;invalid DER-encoded certificate is parsed or unsupported DER features&#xA;are found in the Certificate.&#xA;&#xA;@author Hemma Prafullchandra&#xA;1.12&#xA;" annotatedElement="_9_5_f720368_1110473546674_840999_8285"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_878164_14112" isSubstitutable="true" general="_9_5_f720368_1110473546674_550191_8275"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_175469_8279" name="CertificateFactory">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_417156_5782" body="This class defines the functionality of a certificate factory, which is&#xA;used to generate certificate, certification path (&lt;code>CertPath&lt;/code>)&#xA;and certificate revocation list (CRL) objects from their encodings.&#xA;&#xA;&lt;p>For encodings consisting of multiple certificates, use&#xA;&lt;code>generateCertificates&lt;/code> when you want to&#xA;parse a collection of possibly unrelated certificates. Otherwise,&#xA;use &lt;code>generateCertPath&lt;/code> when you want to generate&#xA;a &lt;code>CertPath&lt;/code> (a certificate chain) and subsequently&#xA;validate it with a &lt;code>CertPathValidator&lt;/code>.&#xA;&#xA;&lt;p>A certificate factory for X.509 must return certificates that are an&#xA;instance of &lt;code>java.security.cert.X509Certificate&lt;/code>, and CRLs&#xA;that are an instance of &lt;code>java.security.cert.X509CRL&lt;/code>.&#xA;&#xA;&lt;p>The following example reads a file with Base64 encoded certificates,&#xA;which are each bounded at the beginning by -----BEGIN CERTIFICATE-----, and&#xA;bounded at the end by -----END CERTIFICATE-----. We convert the&#xA;&lt;code>FileInputStream&lt;/code> (which does not support &lt;code>mark&lt;/code>&#xA;and &lt;code>reset&lt;/code>) to a &lt;code>BufferedInputStream&lt;/code> (which&#xA;supports those methods), so that each call to&#xA;&lt;code>generateCertificate&lt;/code> consumes only one certificate, and the&#xA;read position of the input stream is positioned to the next certificate in&#xA;the file:&lt;p>&#xA;&#xA;&lt;pre>&#xA;FileInputStream fis = new FileInputStream(filename);&#xA;BufferedInputStream bis = new BufferedInputStream(fis);&#xA;&#xA;CertificateFactory cf = CertificateFactory.getInstance(&quot;X.509&quot;);&#xA;&#xA;while (bis.available() > 0) {&#xA;Certificate cert = cf.generateCertificate(bis);&#xA;System.out.println(cert.toString());&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The following example parses a PKCS#7-formatted certificate reply stored&#xA;in a file and extracts all the certificates from it:&lt;p>&#xA;&#xA;&lt;pre>&#xA;FileInputStream fis = new FileInputStream(filename);&#xA;CertificateFactory cf = CertificateFactory.getInstance(&quot;X.509&quot;);&#xA;Collection c = cf.generateCertificates(fis);&#xA;Iterator i = c.iterator();&#xA;while (i.hasNext()) {&#xA;Certificate cert = (Certificate)i.next();&#xA;System.out.println(cert);&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@author Hemma Prafullchandra&#xA;@author Jan Luehe&#xA;@author Sean Mullan&#xA;&#xA;@version 1.28, 05/05/04&#xA;&#xA;@see Certificate&#xA;@see X509Certificate&#xA;@see CertPath&#xA;@see CRL&#xA;@see X509CRL&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_175469_8279"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_78090_8327" name="LDAPCertStoreParameters" clientDependency="_10_5_622020d_1132928321859_666288_14127">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_898972_5831" body="Parameters used as input for the LDAP &lt;code>CertStore&lt;/code> algorithm.&#xA;&lt;p>&#xA;This class is used to provide necessary configuration parameters (server&#xA;name and port number) to implementations of the LDAP &lt;code>CertStore&lt;/code>&#xA;algorithm.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@version &#x9;1.8 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;@see         CertStore&#xA;" annotatedElement="_9_5_f720368_1110473546674_78090_8327"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_666288_14127" name="" supplier="_9_5_f720368_1110473546674_32690_8315" client="_9_5_f720368_1110473546674_78090_8327" contract="_9_5_f720368_1110473546674_32690_8315"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_467826_8321" name="CRL" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_150527_5825" body="This class is an abstraction of certificate revocation lists (CRLs) that&#xA;have different formats but important common uses. For example, all CRLs&#xA;share the functionality of listing revoked certificates, and can be queried&#xA;on whether or not they list a given certificate.&#xA;&lt;p>&#xA;Specialized CRL types can be defined by subclassing off of this abstract&#xA;class.&#xA;&#xA;@author Hemma Prafullchandra&#xA;&#xA;@version 1.12, 12/19/03&#xA;&#xA;@see X509CRL&#xA;@see CertificateFactory&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_467826_8321"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_871061_8325" name="CRLSelector" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_878343_5829" body="A selector that defines a set of criteria for selecting &lt;code>CRL&lt;/code>s.&#xA;Classes that implement this interface are often used to specify&#xA;which &lt;code>CRL&lt;/code>s should be retrieved from a &lt;code>CertStore&lt;/code>.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this interface are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CRL&#xA;@see CertStore&#xA;@see CertStore#getCRLs&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@author&#x9;Steve Hanna&#xA;@since&#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_871061_8325"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_473345_14126" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_847852_8329" name="PKIXBuilderParameters">
              <ownedComment xmi:id="_10_5_622020d_1132928309130_88169_5833" body="Parameters used as input for the PKIX &lt;code>CertPathBuilder&lt;/code>&#xA;algorithm.&#xA;&lt;p>&#xA;A PKIX &lt;code>CertPathBuilder&lt;/code> uses these parameters to {@link&#xA;CertPathBuilder#build build} a &lt;code>CertPath&lt;/code> which has been&#xA;validated according to the PKIX certification path validation algorithm.&#xA;&#xA;&lt;p>To instantiate a &lt;code>PKIXBuilderParameters&lt;/code> object, an&#xA;application must specify one or more &lt;i>most-trusted CAs&lt;/i> as defined by&#xA;the PKIX certification path validation algorithm. The most-trusted CA&#xA;can be specified using one of two constructors. An application&#xA;can call {@link #PKIXBuilderParameters(Set, CertSelector)&#xA;PKIXBuilderParameters(Set, CertSelector)}, specifying a&#xA;&lt;code>Set&lt;/code> of &lt;code>TrustAnchor&lt;/code> objects, each of which&#xA;identifies a most-trusted CA. Alternatively, an application can call&#xA;{@link #PKIXBuilderParameters(KeyStore, CertSelector)&#xA;PKIXBuilderParameters(KeyStore, CertSelector)}, specifying a&#xA;&lt;code>KeyStore&lt;/code> instance containing trusted certificate entries, each&#xA;of which will be considered as a most-trusted CA.&#xA;&#xA;&lt;p>In addition, an application must specify constraints on the target&#xA;certificate that the &lt;code>CertPathBuilder&lt;/code> will attempt&#xA;to build a path to. The constraints are specified as a&#xA;&lt;code>CertSelector&lt;/code> object. These constraints should provide the&#xA;&lt;code>CertPathBuilder&lt;/code> with enough search criteria to find the target&#xA;certificate. Minimal criteria for an &lt;code>X509Certificate&lt;/code> usually&#xA;include the subject name and/or one or more subject alternative names.&#xA;If enough criteria is not specified, the &lt;code>CertPathBuilder&lt;/code>&#xA;may throw a &lt;code>CertPathBuilderException&lt;/code>.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathBuilder&#xA;&#xA;@version &#x9;1.15 12/19/03&#xA;@since &#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_847852_8329"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_420227_14128" isSubstitutable="true" general="_9_5_f720368_1110473546674_725105_8337"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_488489_8319" name="CollectionCertStoreParameters" clientDependency="_10_5_622020d_1132928321859_874819_14124">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_149385_5823" body="Parameters used as input for the Collection &lt;code>CertStore&lt;/code>&#xA;algorithm.&#xA;&lt;p>&#xA;This class is used to provide necessary configuration parameters&#xA;to implementations of the Collection &lt;code>CertStore&lt;/code>&#xA;algorithm. The only parameter included in this class is the&#xA;&lt;code>Collection&lt;/code> from which the &lt;code>CertStore&lt;/code> will&#xA;retrieve certificates and CRLs.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@version &#x9;1.8 05/05/04&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;@see         java.util.Collection&#xA;@see         CertStore&#xA;" annotatedElement="_9_5_f720368_1110473546674_488489_8319"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_874819_14124" name="" supplier="_9_5_f720368_1110473546674_32690_8315" client="_9_5_f720368_1110473546674_488489_8319" contract="_9_5_f720368_1110473546674_32690_8315"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_35100_8313" name="CertStoreException">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_920687_5817" body="An exception indicating one of a variety of problems retrieving&#xA;certificates and CRLs from a &lt;code>CertStore&lt;/code>.&#xA;&lt;p>&#xA;A &lt;code>CertStoreException&lt;/code> provides support for wrapping&#xA;exceptions. The {@link #getCause getCause} method returns the throwable,&#xA;if any, that caused this exception to be thrown.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this class are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertStore&#xA;&#xA;@version &#x9;1.7 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_35100_8313"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_501311_14122" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_792670_8273" name="CertificateEncodingException">
              <ownedComment xmi:id="_10_5_622020d_1132928309080_147949_5776" body="Certificate Encoding Exception. This is thrown whenever an error&#xA;occurs while attempting to encode a certificate.&#xA;&#xA;@author Hemma Prafullchandra&#xA;1.12&#xA;" annotatedElement="_9_5_f720368_1110473546674_792670_8273"/>
              <generalization xmi:id="_10_5_622020d_1132928321849_896228_14108" isSubstitutable="true" general="_9_5_f720368_1110473546674_550191_8275"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_221998_8343" name="TrustAnchor">
              <ownedComment xmi:id="_10_5_622020d_1132928309171_89034_5847" body="A trust anchor or most-trusted Certification Authority (CA).&#xA;&lt;p>&#xA;This class represents a &quot;most-trusted CA&quot;, which is used as a trust anchor&#xA;for validating X.509 certification paths. A most-trusted CA includes the&#xA;public key of the CA, the CA's name, and any constraints upon the set of&#xA;paths which may be validated using this key. These parameters can be&#xA;specified in the form of a trusted &lt;code>X509Certificate&lt;/code> or as&#xA;individual parameters.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;&lt;p>All &lt;code>TrustAnchor&lt;/code> objects must be immutable and&#xA;thread-safe. That is, multiple threads may concurrently invoke the&#xA;methods defined in this class on a single &lt;code>TrustAnchor&lt;/code>&#xA;object (or more than one) with no ill effects. Requiring&#xA;&lt;code>TrustAnchor&lt;/code> objects to be immutable and thread-safe&#xA;allows them to be passed around to various pieces of code without&#xA;worrying about coordinating access. This stipulation applies to all&#xA;public fields and methods of this class and any added or overridden&#xA;by subclasses.&#xA;&#xA;@see PKIXParameters#PKIXParameters(Set)&#xA;@see PKIXBuilderParameters#PKIXBuilderParameters(Set, CertSelector)&#xA;&#xA;@version     1.10 12/19/03&#xA;@since       1.4&#xA;@author      Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_221998_8343"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_200312_8287" name="CertPath" clientDependency="_10_5_622020d_1132928321849_265866_14113" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309100_972228_5791" body="An immutable sequence of certificates (a certification path).&#xA;&lt;p>&#xA;This is an abstract class that defines the methods common to all&#xA;&lt;code>CertPath&lt;/code>s. Subclasses can handle different kinds of&#xA;certificates (X.509, PGP, etc.).&#xA;&lt;p>&#xA;All &lt;code>CertPath&lt;/code> objects have a type, a list of&#xA;&lt;code>Certificate&lt;/code>s, and one or more supported encodings. Because the&#xA;&lt;code>CertPath&lt;/code> class is immutable, a &lt;code>CertPath&lt;/code> cannot&#xA;change in any externally visible way after being constructed. This&#xA;stipulation applies to all public fields and methods of this class and any&#xA;added or overridden by subclasses.&#xA;&lt;p>&#xA;The type is a &lt;code>String&lt;/code> that identifies the type of&#xA;&lt;code>Certificate&lt;/code>s in the certification path. For each&#xA;certificate &lt;code>cert&lt;/code> in a certification path &lt;code>certPath&lt;/code>,&#xA;&lt;code>cert.getType().equals(certPath.getType())&lt;/code> must be&#xA;&lt;code>true&lt;/code>.&#xA;&lt;p>&#xA;The list of &lt;code>Certificate&lt;/code>s is an ordered &lt;code>List&lt;/code> of&#xA;zero or more &lt;code>Certificate&lt;/code>s. This &lt;code>List&lt;/code> and all&#xA;of the &lt;code>Certificate&lt;/code>s contained in it must be immutable.&#xA;&lt;p>&#xA;Each &lt;code>CertPath&lt;/code> object must support one or more encodings&#xA;so that the object can be translated into a byte array for storage or&#xA;transmission to other parties. Preferably, these encodings should be&#xA;well-documented standards (such as PKCS#7). One of the encodings supported&#xA;by a &lt;code>CertPath&lt;/code> is considered the default encoding. This&#xA;encoding is used if no encoding is explicitly requested (for the&#xA;{@link #getEncoded() getEncoded()} method, for instance).&#xA;&lt;p>&#xA;All &lt;code>CertPath&lt;/code> objects are also &lt;code>Serializable&lt;/code>.&#xA;&lt;code>CertPath&lt;/code> objects are resolved into an alternate&#xA;{@link CertPathRep CertPathRep} object during serialization. This allows&#xA;a &lt;code>CertPath&lt;/code> object to be serialized into an equivalent&#xA;representation regardless of its underlying implementation.&#xA;&lt;p>&#xA;&lt;code>CertPath&lt;/code> objects can be created with a&#xA;&lt;code>CertificateFactory&lt;/code> or they can be returned by other classes,&#xA;such as a &lt;code>CertPathBuilder&lt;/code>.&#xA;&lt;p>&#xA;By convention, X.509 &lt;code>CertPath&lt;/code>s (consisting of&#xA;&lt;code>X509Certificate&lt;/code>s), are ordered starting with the target&#xA;certificate and ending with a certificate issued by the trust anchor. That&#xA;is, the issuer of one certificate is the subject of the following one. The&#xA;certificate representing the {@link TrustAnchor TrustAnchor} should not be&#xA;included in the certification path. Unvalidated X.509 &lt;code>CertPath&lt;/code>s&#xA;may not follow these conventions. PKIX &lt;code>CertPathValidator&lt;/code>s will&#xA;detect any departure from these conventions that cause the certification&#xA;path to be invalid and throw a &lt;code>CertPathValidatorException&lt;/code>.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;All &lt;code>CertPath&lt;/code> objects must be thread-safe. That is, multiple&#xA;threads may concurrently invoke the methods defined in this class on a&#xA;single &lt;code>CertPath&lt;/code> object (or more than one) with no&#xA;ill effects. This is also true for the &lt;code>List&lt;/code> returned by&#xA;&lt;code>CertPath.getCertificates&lt;/code>.&#xA;&lt;p>&#xA;Requiring &lt;code>CertPath&lt;/code> objects to be immutable and thread-safe&#xA;allows them to be passed around to various pieces of code without worrying&#xA;about coordinating access.  Providing this thread-safety is&#xA;generally not difficult, since the &lt;code>CertPath&lt;/code> and&#xA;&lt;code>List&lt;/code> objects in question are immutable.&#xA;&#xA;@see CertificateFactory&#xA;@see CertPathBuilder&#xA;&#xA;@version 1.9 12/19/03&#xA;@author&#x9;Yassir Elley&#xA;@since&#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_200312_8287"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321849_265866_14113" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_200312_8287" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547706_985342_18606" name="CertPathRep" visibility="protected" clientDependency="_10_5_622020d_1132928321849_861220_14114">
                <ownedComment xmi:id="_10_5_622020d_1132928309090_598132_5789" body="Alternate &lt;code>CertPath&lt;/code> class for serialization.&#xA;" annotatedElement="_9_5_f720368_1110473547706_985342_18606"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321849_861220_14114" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547706_985342_18606" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_401751_8345" name="X509Certificate" clientDependency="_10_5_622020d_1132928321859_778667_14134" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309171_979787_5849" body="&lt;p>&#xA;Abstract class for X.509 certificates. This provides a standard&#xA;way to access all the attributes of an X.509 certificate.&#xA;&lt;p>&#xA;In June of 1996, the basic X.509 v3 format was completed by&#xA;ISO/IEC and ANSI X9, which is described below in ASN.1:&#xA;&lt;pre>&#xA;Certificate  ::=  SEQUENCE  {&#xA;tbsCertificate       TBSCertificate,&#xA;signatureAlgorithm   AlgorithmIdentifier,&#xA;signature            BIT STRING  }&#xA;&lt;/pre>&#xA;&lt;p>&#xA;These certificates are widely used to support authentication and&#xA;other functionality in Internet security systems. Common applications&#xA;include Privacy Enhanced Mail (PEM), Transport Layer Security (SSL),&#xA;code signing for trusted software distribution, and Secure Electronic&#xA;Transactions (SET).&#xA;&lt;p>&#xA;These certificates are managed and vouched for by &lt;em>Certificate&#xA;Authorities&lt;/em> (CAs). CAs are services which create certificates by&#xA;placing data in the X.509 standard format and then digitally signing&#xA;that data. CAs act as trusted third parties, making introductions&#xA;between principals who have no direct knowledge of each other.&#xA;CA certificates are either signed by themselves, or by some other&#xA;CA such as a &quot;root&quot; CA.&#xA;&lt;p>&#xA;More information can be found in RFC 2459,&#xA;&quot;Internet X.509 Public Key Infrastructure Certificate and CRL&#xA;Profile&quot; at &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2459.txt&quot;>&#xA;http://www.ietf.org/rfc/rfc2459.txt &lt;/A>.&#xA;&lt;p>&#xA;The ASN.1 definition of &lt;code>tbsCertificate&lt;/code> is:&#xA;&lt;pre>&#xA;TBSCertificate  ::=  SEQUENCE  {&#xA;version         [0]  EXPLICIT Version DEFAULT v1,&#xA;serialNumber         CertificateSerialNumber,&#xA;signature            AlgorithmIdentifier,&#xA;issuer               Name,&#xA;validity             Validity,&#xA;subject              Name,&#xA;subjectPublicKeyInfo SubjectPublicKeyInfo,&#xA;issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,&#xA;-- If present, version must be v2 or v3&#xA;subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,&#xA;-- If present, version must be v2 or v3&#xA;extensions      [3]  EXPLICIT Extensions OPTIONAL&#xA;-- If present, version must be v3&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Certificates are instantiated using a certificate factory. The following is&#xA;an example of how to instantiate an X.509 certificate:&#xA;&lt;pre>&#xA;InputStream inStream = new FileInputStream(&quot;fileName-of-cert&quot;);&#xA;CertificateFactory cf = CertificateFactory.getInstance(&quot;X.509&quot;);&#xA;X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);&#xA;inStream.close();&#xA;&lt;/pre>&#xA;&#xA;@author Hemma Prafullchandra&#xA;&#xA;@version 1.39&#xA;&#xA;@see Certificate&#xA;@see CertificateFactory&#xA;@see X509Extension&#xA;" annotatedElement="_9_5_f720368_1110473546674_401751_8345"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_37167_14135" isSubstitutable="true" general="_9_5_f720368_1110473546674_676607_8271"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321859_778667_14134" name="" supplier="_9_5_f720368_1110473546674_130610_8355" client="_9_5_f720368_1110473546674_401751_8345" contract="_9_5_f720368_1110473546674_130610_8355"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_720709_8293" name="CertPathBuilderResult" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309100_599097_5797" body="A specification of the result of a certification path builder algorithm.&#xA;All results returned by the {@link CertPathBuilder#build&#xA;CertPathBuilder.build} method must implement this interface.&#xA;&lt;p>&#xA;At a minimum, a &lt;code>CertPathBuilderResult&lt;/code> contains the&#xA;&lt;code>CertPath&lt;/code> built by the &lt;code>CertPathBuilder&lt;/code> instance.&#xA;Implementations of this interface may add methods to return implementation&#xA;or algorithm specific information, such as debugging information or&#xA;certification path validation results.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;Unless otherwise specified, the methods defined in this interface are not&#xA;thread-safe. Multiple threads that need to access a single&#xA;object concurrently should synchronize amongst themselves and&#xA;provide the necessary locking. Multiple threads each manipulating&#xA;separate objects need not synchronize.&#xA;&#xA;@see CertPathBuilder&#xA;&#xA;@version &#x9;1.6 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_720709_8293"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_855236_14116" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_328920_8317" name="CertStoreSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_452701_5821" body="The &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the {@link CertStore CertStore} class. All &lt;code>CertStore&lt;/code>&#xA;implementations must include a class (the SPI class) that extends&#xA;this class (&lt;code>CertStoreSpi&lt;/code>), provides a constructor with&#xA;a single argument of type &lt;code>CertStoreParameters&lt;/code>, and implements&#xA;all of its methods. In general, instances of this class should only be&#xA;accessed through the &lt;code>CertStore&lt;/code> class.&#xA;For details, see the Java Cryptography Architecture.&#xA;&lt;p>&#xA;&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>&#xA;The public methods of all &lt;code>CertStoreSpi&lt;/code> objects must be&#xA;thread-safe. That is, multiple threads may concurrently invoke these&#xA;methods on a single &lt;code>CertStoreSpi&lt;/code> object (or more than one)&#xA;with no ill effects. This allows a &lt;code>CertPathBuilder&lt;/code> to search&#xA;for a CRL while simultaneously searching for further certificates, for&#xA;instance.&#xA;&lt;p>&#xA;Simple &lt;code>CertStoreSpi&lt;/code> implementations will probably ensure&#xA;thread safety by adding a &lt;code>synchronized&lt;/code> keyword to their&#xA;&lt;code>engineGetCertificates&lt;/code> and &lt;code>engineGetCRLs&lt;/code> methods.&#xA;More sophisticated ones may allow truly concurrent access.&#xA;&#xA;@version &#x9;1.7 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;" annotatedElement="_9_5_f720368_1110473546674_328920_8317"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_32690_8315" name="CertStoreParameters" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309120_469168_5819" body="A specification of &lt;code>CertStore&lt;/code> parameters.&#xA;&lt;p>&#xA;The purpose of this interface is to group (and provide type safety for)&#xA;all &lt;code>CertStore&lt;/code> parameter specifications. All&#xA;&lt;code>CertStore&lt;/code> parameter specifications must implement this&#xA;interface.&#xA;&lt;p>&#xA;Typically, a &lt;code>CertStoreParameters&lt;/code> object is passed as a parameter&#xA;to one of the {@link CertStore#getInstance CertStore.getInstance} methods.&#xA;The &lt;code>getInstance&lt;/code> method returns a &lt;code>CertStore&lt;/code> that&#xA;is used for retrieving &lt;code>Certificate&lt;/code>s and &lt;code>CRL&lt;/code>s. The&#xA;&lt;code>CertStore&lt;/code> that is returned is initialized with the specified&#xA;parameters. The type of parameters needed may vary between different types&#xA;of &lt;code>CertStore&lt;/code>s.&#xA;&#xA;@see CertStore#getInstance&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@since&#x9;1.4&#xA;@author&#x9;Steve Hanna&#xA;" annotatedElement="_9_5_f720368_1110473546674_32690_8315"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_878967_14123" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_210592_8299" name="CertPathParameters" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309110_228174_5803" body="A specification of certification path algorithm parameters.&#xA;The purpose of this interface is to group (and provide type safety for)&#xA;all &lt;code>CertPath&lt;/code> parameter specifications. All&#xA;&lt;code>CertPath&lt;/code> parameter specifications must implement this&#xA;interface.&#xA;&#xA;@version &#x9;1.5 12/19/03&#xA;@author&#x9;Yassir Elley&#xA;@see &#x9;CertPathValidator#validate(CertPath, CertPathParameters)&#xA;@see &#x9;CertPathBuilder#build(CertPathParameters)&#xA;@since&#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_210592_8299"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_860169_14118" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_97179_8281" name="CertificateFactorySpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309090_249953_5784" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>CertificateFactory&lt;/code> class.&#xA;All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a certificate factory for a particular certificate type, e.g., X.509.&#xA;&#xA;&lt;p>Certificate factories are used to generate certificate, certification path&#xA;(&lt;code>CertPath&lt;/code>) and certificate revocation list (CRL) objects from&#xA;their encodings.&#xA;&#xA;&lt;p>A certificate factory for X.509 must return certificates that are an&#xA;instance of &lt;code>java.security.cert.X509Certificate&lt;/code>, and CRLs&#xA;that are an instance of &lt;code>java.security.cert.X509CRL&lt;/code>.&#xA;&#xA;@author Hemma Prafullchandra&#xA;@author Jan Luehe&#xA;@author Sean Mullan&#xA;&#xA;@version 1.19, 05/05/04&#xA;&#xA;@see CertificateFactory&#xA;@see Certificate&#xA;@see X509Certificate&#xA;@see CertPath&#xA;@see CRL&#xA;@see X509CRL&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_97179_8281"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_235296_8341" name="PolicyQualifierInfo">
              <ownedComment xmi:id="_10_5_622020d_1132928309140_641194_5845" body="An immutable policy qualifier represented by the ASN.1 PolicyQualifierInfo&#xA;structure.&#xA;&#xA;&lt;p>The ASN.1 definition is as follows:&#xA;&lt;p>&lt;pre>&#xA;PolicyQualifierInfo ::= SEQUENCE {&#xA;policyQualifierId       PolicyQualifierId,&#xA;qualifier               ANY DEFINED BY policyQualifierId }&#xA;&lt;/pre>&#xA;&lt;p>&#xA;A certificate policies extension, if present in an X.509 version 3&#xA;certificate, contains a sequence of one or more policy information terms,&#xA;each of which consists of an object identifier (OID) and optional&#xA;qualifiers. In an end-entity certificate, these policy information terms&#xA;indicate the policy under which the certificate has been issued and the&#xA;purposes for which the certificate may be used. In a CA certificate, these&#xA;policy information terms limit the set of policies for certification paths&#xA;which include this certificate.&#xA;&lt;p>&#xA;A &lt;code>Set&lt;/code> of &lt;code>PolicyQualifierInfo&lt;/code> objects are returned&#xA;by the {@link PolicyNode#getPolicyQualifiers PolicyNode.getPolicyQualifiers}&#xA;method. This allows applications with specific policy requirements to&#xA;process and validate each policy qualifier. Applications that need to&#xA;process policy qualifiers should explicitly set the&#xA;&lt;code>policyQualifiersRejected&lt;/code> flag to false (by calling the&#xA;{@link PKIXParameters#setPolicyQualifiersRejected&#xA;PKIXParameters.setPolicyQualifiersRejected} method) before validating&#xA;a certification path.&#xA;&#xA;&lt;p>Note that the PKIX certification path validation algorithm specifies&#xA;that any policy qualifier in a certificate policies extension that is&#xA;marked critical must be processed and validated. Otherwise the&#xA;certification path must be rejected. If the&#xA;&lt;code>policyQualifiersRejected&lt;/code> flag is set to false, it is up to&#xA;the application to validate all policy qualifiers in this manner in order&#xA;to be PKIX compliant.&#xA;&#xA;&lt;p>&lt;b>Concurrent Access&lt;/b>&#xA;&#xA;&lt;p>All &lt;code>PolicyQualifierInfo&lt;/code> objects must be immutable and&#xA;thread-safe. That is, multiple threads may concurrently invoke the&#xA;methods defined in this class on a single &lt;code>PolicyQualifierInfo&lt;/code>&#xA;object (or more than one) with no ill effects. Requiring&#xA;&lt;code>PolicyQualifierInfo&lt;/code> objects to be immutable and thread-safe&#xA;allows them to be passed around to various pieces of code without&#xA;worrying about coordinating access.&#xA;&#xA;@author &#x9;seth proctor&#xA;@author &#x9;Sean Mullan&#xA;@version &#x9;1.11 12/19/03&#xA;@since &#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_235296_8341"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_51728_8339" name="PolicyNode" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309140_526384_5843" body="An immutable valid policy tree node as defined by the PKIX certification&#xA;path validation algorithm.&#xA;&#xA;&lt;p>One of the outputs of the PKIX certification path validation&#xA;algorithm is a valid policy tree, which includes the policies that&#xA;were determined to be valid, how this determination was reached,&#xA;and any policy qualifiers encountered. This tree is of depth&#xA;&lt;i>n&lt;/i>, where &lt;i>n&lt;/i> is the length of the certification&#xA;path that has been validated.&#xA;&#xA;&lt;p>Most applications will not need to examine the valid policy tree.&#xA;They can achieve their policy processing goals by setting the&#xA;policy-related parameters in &lt;code>PKIXParameters&lt;/code>. However,&#xA;the valid policy tree is available for more sophisticated applications,&#xA;especially those that process policy qualifiers.&#xA;&#xA;&lt;p>{@link PKIXCertPathValidatorResult#getPolicyTree()&#xA;PKIXCertPathValidatorResult.getPolicyTree} returns the root node of the&#xA;valid policy tree. The tree can be traversed using the&#xA;{@link #getChildren getChildren} and {@link #getParent getParent} methods.&#xA;Data about a particular node can be retrieved using other methods of&#xA;&lt;code>PolicyNode&lt;/code>.&#xA;&#xA;&lt;p>&lt;b>Concurrent Access&lt;/b>&#xA;&lt;p>All &lt;code>PolicyNode&lt;/code> objects must be immutable and&#xA;thread-safe. Multiple threads may concurrently invoke the methods defined&#xA;in this class on a single &lt;code>PolicyNode&lt;/code> object (or more than one)&#xA;with no ill effects. This stipulation applies to all public fields and&#xA;methods of this class and any added or overridden by subclasses.&#xA;&#xA;@version     1.9 12/19/03&#xA;@since       1.4&#xA;@author      Sean Mullan&#xA;" annotatedElement="_9_5_f720368_1110473546674_51728_8339"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_79982_8423" name="AlgorithmParametersSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309281_818557_5966" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>AlgorithmParameters&lt;/code> class, which is used to manage&#xA;algorithm parameters.&#xA;&#xA;&lt;p> All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply parameter management&#xA;for a particular algorithm.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.12, 05/05/04&#xA;&#xA;@see AlgorithmParameters&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;@see java.security.spec.DSAParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_79982_8423"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321899_186674_14224" name="Enumeration&lt;Permission>">
            <templateBinding xmi:id="_10_5_622020d_1132928321899_344775_14225" signature="_10_5_622020d_1132928310953_589904_7187">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321899_541257_14226" formal="_10_5_622020d_1132928310953_916423_7188" actual="_9_5_f720368_1110473546690_144720_8491"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309301_376976_5983" name="CodeSigner" clientDependency="_10_5_622020d_1132928321879_526893_14186" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_495909_5985" body="This class encapsulates information about a code signer.&#xA;It is immutable.&#xA;&#xA;@since 1.5&#xA;@version 1.4, 04/26/04&#xA;@author Vincent Ryan&#xA;" annotatedElement="_10_5_622020d_1132928309301_376976_5983"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321879_526893_14186" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309301_376976_5983" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_702259_8527" name="Security" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309421_495848_6119" body="&lt;p>This class centralizes all security properties and common security&#xA;methods. One of its primary uses is to manage providers.&#xA;&#xA;@author Benjamin Renaud&#xA;@version 1.126, 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546690_702259_8527"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547753_859228_18795" name="ProviderProperty" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_95743_8545" name="UnresolvedPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928321909_508189_14250" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_427329_6147" body="A UnresolvedPermissionCollection stores a collection&#xA;of UnresolvedPermission permissions.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.UnresolvedPermission&#xA;&#xA;@version 1.14 03/12/19&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546690_95743_8545"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_832007_14251" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321909_508189_14250" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_95743_8545" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_168742_8489" name="NoSuchProviderException">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_513729_6073" body="This exception is thrown when a particular security provider is&#xA;requested but is not available in the environment.&#xA;&#xA;@version 1.20 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546690_168742_8489"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_449518_14218" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_884528_8421" name="AlgorithmParameters">
            <ownedComment xmi:id="_10_5_622020d_1132928309281_516871_5964" body="This class is used as an opaque representation of cryptographic parameters.&#xA;&#xA;&lt;p>An &lt;code>AlgorithmParameters&lt;/code> object for managing the parameters&#xA;for a particular algorithm can be obtained by&#xA;calling one of the &lt;code>getInstance&lt;/code> factory methods&#xA;(static methods that return instances of a given class).&#xA;&#xA;&lt;p>There are two ways to request such an implementation: by&#xA;specifying either just an algorithm name, or both an algorithm name&#xA;and a package provider.&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>If just an algorithm name is specified, the system will&#xA;determine if there is an AlgorithmParameters&#xA;implementation for the algorithm requested&#xA;available in the environment, and if there is more than one, if&#xA;there is a preferred one.&#xA;&#xA;&lt;li>If both an algorithm name and a package provider are specified,&#xA;the system will determine if there is an implementation&#xA;in the package requested, and throw an exception if there&#xA;is not.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>Once an &lt;code>AlgorithmParameters&lt;/code> object is returned, it must be&#xA;initialized via a call to &lt;code>init&lt;/code>, using an appropriate parameter&#xA;specification or parameter encoding.&#xA;&#xA;&lt;p>A transparent parameter specification is obtained from an&#xA;&lt;code>AlgorithmParameters&lt;/code> object via a call to&#xA;&lt;code>getParameterSpec&lt;/code>, and a byte encoding of the parameters is&#xA;obtained via a call to &lt;code>getEncoded&lt;/code>.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.24, 05/05/04&#xA;&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;@see java.security.spec.DSAParameterSpec&#xA;@see KeyPairGenerator&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_884528_8421"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_982585_8543" name="UnresolvedPermission" clientDependency="_10_5_622020d_1132928321909_573365_14248" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_823389_6145" body="The UnresolvedPermission class is used to hold Permissions that&#xA;were &quot;unresolved&quot; when the Policy was initialized.&#xA;An unresolved permission is one whose actual Permission class&#xA;does not yet exist at the time the Policy is initialized (see below).&#xA;&#xA;&lt;p>The policy for a Java runtime (specifying&#xA;which permissions are available for code from various principals)&#xA;is represented by a Policy object.&#xA;Whenever a Policy is initialized or refreshed, Permission objects of&#xA;appropriate classes are created for all permissions&#xA;allowed by the Policy.&#xA;&#xA;&lt;p>Many permission class types&#xA;referenced by the policy configuration are ones that exist&#xA;locally (i.e., ones that can be found on CLASSPATH).&#xA;Objects for such permissions can be instantiated during&#xA;Policy initialization. For example, it is always possible&#xA;to instantiate a java.io.FilePermission, since the&#xA;FilePermission class is found on the CLASSPATH.&#xA;&#xA;&lt;p>Other permission classes may not yet exist during Policy&#xA;initialization. For example, a referenced permission class may&#xA;be in a JAR file that will later be loaded.&#xA;For each such class, an UnresolvedPermission is instantiated.&#xA;Thus, an UnresolvedPermission is essentially a &quot;placeholder&quot;&#xA;containing information about the permission.&#xA;&#xA;&lt;p>Later, when code calls AccessController.checkPermission&#xA;on a permission of a type that was previously unresolved,&#xA;but whose class has since been loaded, previously-unresolved&#xA;permissions of that type are &quot;resolved&quot;. That is,&#xA;for each such UnresolvedPermission, a new object of&#xA;the appropriate class type is instantiated, based on the&#xA;information in the UnresolvedPermission.&#xA;&#xA;&lt;p> To instantiate the new class, UnresolvedPermission assumes&#xA;the class provides a zero, one, and/or two-argument constructor.&#xA;The zero-argument constructor would be used to instantiate&#xA;a permission without a name and without actions.&#xA;A one-arg constructor is assumed to take a &lt;code>String&lt;/code>&#xA;name as input, and a two-arg constructor is assumed to take a&#xA;&lt;code>String&lt;/code> name and &lt;code>String&lt;/code> actions&#xA;as input.  UnresolvedPermission may invoke a&#xA;constructor with a &lt;code>null&lt;/code> name and/or actions.&#xA;If an appropriate permission constructor is not available,&#xA;the UnresolvedPermission is ignored and the relevant permission&#xA;will not be granted to executing code.&#xA;&#xA;&lt;p> The newly created permission object replaces the&#xA;UnresolvedPermission, which is removed.&#xA;&#xA;&lt;p> Note that the &lt;code>getName&lt;/code> method for an&#xA;&lt;code>UnresolvedPermission&lt;/code> returns the&#xA;&lt;code>type&lt;/code> (class name) for the underlying permission&#xA;that has not been resolved.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.security.Policy&#xA;&#xA;@version 1.29 04/02/03&#xA;&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_982585_8543"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_925763_14249" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321909_573365_14248" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_982585_8543" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547721_912172_18679" name="interfaces">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_196658_8373" name="RSAPrivateKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_365476_5886" body="The interface to an RSA private key.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.11 03/12/19&#xA;&#xA;@see RSAPrivateCrtKey&#xA;" annotatedElement="_9_5_f720368_1110473546674_196658_8373"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_204396_14151" isSubstitutable="true" general="_9_5_f720368_1110473546690_456258_8505"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_549050_14152" isSubstitutable="true" general="_9_5_f720368_1110473546674_44312_8367"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309181_608358_5870" name="ECKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_574586_5872" body="The interface to an elliptic curve (EC) key.&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309181_608358_5870"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_238852_8361" name="DSAParams" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_694128_5865" body="Interface to a DSA-specific set of key parameters, which defines a&#xA;DSA &lt;em>key family&lt;/em>. DSA (Digital Signature Algorithm) is defined&#xA;in NIST's FIPS-186.&#xA;&#xA;@see DSAKey&#xA;@see java.security.Key&#xA;@see java.security.Signature&#xA;&#xA;@version 1.20 03/12/19&#xA;@author Benjamin Renaud&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546674_238852_8361"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_377294_8365" name="DSAPublicKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_866067_5869" body="The interface to a DSA public key. DSA (Digital Signature Algorithm)&#xA;is defined in NIST's FIPS-186.&#xA;&#xA;@see java.security.Key&#xA;@see java.security.Signature&#xA;@see DSAKey&#xA;@see DSAPrivateKey&#xA;&#xA;@version 1.21 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_377294_8365"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_315918_14143" isSubstitutable="true" general="_9_5_f720368_1110473546674_277637_8357"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_507600_14144" isSubstitutable="true" general="_9_5_f720368_1110473546690_232529_8519"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_645858_8375" name="RSAPublicKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_715617_5888" body="The interface to an RSA public key.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.10 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546674_645858_8375"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_954966_14153" isSubstitutable="true" general="_9_5_f720368_1110473546690_232529_8519"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_668788_14154" isSubstitutable="true" general="_9_5_f720368_1110473546674_44312_8367"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309191_567818_5873" name="ECPrivateKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_850219_5875" body="The interface to an elliptic curve (EC) private key.&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.3, 12/19/03&#xA;&#xA;@see PrivateKey&#xA;@see ECKey&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309191_567818_5873"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_131477_14145" isSubstitutable="true" general="_9_5_f720368_1110473546690_456258_8505"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_885972_14146" isSubstitutable="true" general="_10_5_622020d_1132928309181_608358_5870"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_655347_8359" name="DSAKeyPairGenerator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_565042_5863" body="An interface to an object capable of generating DSA key pairs.&#xA;&#xA;&lt;p>The &lt;code>initialize&lt;/code> methods may each be called any number&#xA;of times. If no &lt;code>initialize&lt;/code> method is called on a&#xA;DSAKeyPairGenerator, the default is to generate 1024-bit keys, using&#xA;precomputed p, q and g parameters and an instance of SecureRandom as&#xA;the random bit source.&#xA;&#xA;&lt;p>Users wishing to indicate DSA-specific parameters, and to generate a key&#xA;pair suitable for use with the DSA algorithm typically&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>Get a key pair generator for the DSA algorithm by calling the&#xA;KeyPairGenerator &lt;code>getInstance&lt;/code> method with &quot;DSA&quot;&#xA;as its argument.&lt;p>&#xA;&#xA;&lt;li>Initialize the generator by casting the result to a DSAKeyPairGenerator&#xA;and calling one of the&#xA;&lt;code>initialize&lt;/code> methods from this DSAKeyPairGenerator interface.&lt;p>&#xA;&#xA;&lt;li>Generate a key pair by calling the &lt;code>generateKeyPair&lt;/code>&#xA;method from the KeyPairGenerator class.&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p>Note: it is not always necessary to do do algorithm-specific&#xA;initialization for a DSA key pair generator. That is, it is not always&#xA;necessary to call an &lt;code>initialize&lt;/code> method in this interface.&#xA;Algorithm-independent initialization using the &lt;code>initialize&lt;/code> method&#xA;in the KeyPairGenerator&#xA;interface is all that is needed when you accept defaults for algorithm-specific&#xA;parameters.&#xA;&#xA;@see java.security.KeyPairGenerator&#xA;" annotatedElement="_9_5_f720368_1110473546674_655347_8359"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_225594_8371" name="RSAPrivateCrtKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_738009_5884" body="The interface to an RSA private key, as defined in the PKCS#1 standard,&#xA;using the &lt;i>Chinese Remainder Theorem&lt;/i> (CRT) information values.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.12 03/12/19&#xA;&#xA;@see RSAPrivateKey&#xA;" annotatedElement="_9_5_f720368_1110473546674_225594_8371"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_51835_14150" isSubstitutable="true" general="_9_5_f720368_1110473546674_196658_8373"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309191_670969_5876" name="ECPublicKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_826183_5878" body="The interface to an elliptic curve (EC) public key.&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.3, 12/19/03&#xA;&#xA;@see PublicKey&#xA;@see ECKey&#xA;@see java.security.spec.ECPoint&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309191_670969_5876"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_965957_14147" isSubstitutable="true" general="_9_5_f720368_1110473546690_232529_8519"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_825946_14148" isSubstitutable="true" general="_10_5_622020d_1132928309181_608358_5870"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_743878_8369" name="RSAMultiPrimePrivateCrtKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_239883_5882" body="The interface to an RSA multi-prime private key, as defined in the&#xA;PKCS#1 v2.1, using the &lt;i>Chinese Remainder Theorem&lt;/i>&#xA;(CRT) information values.&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.6 03/12/19&#xA;&#xA;@see java.security.spec.RSAPrivateKeySpec&#xA;@see java.security.spec.RSAMultiPrimePrivateCrtKeySpec&#xA;@see RSAPrivateKey&#xA;@see RSAPrivateCrtKey&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_743878_8369"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_136170_14149" isSubstitutable="true" general="_9_5_f720368_1110473546674_196658_8373"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_277637_8357" name="DSAKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_955648_5861" body="The interface to a DSA public or private key. DSA (Digital Signature&#xA;Algorithm) is defined in NIST's FIPS-186.&#xA;&#xA;@see DSAParams&#xA;@see java.security.Key&#xA;@see java.security.Signature&#xA;&#xA;@version 1.17 03/12/19&#xA;@author Benjamin Renaud&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546674_277637_8357"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_44312_8367" name="RSAKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309191_719850_5880" body="The interface to an RSA public or private key.&#xA;&#xA;@author Jan Luehe&#xA;@version 1.6 12/19/03&#xA;&#xA;@see RSAPublicKey&#xA;@see RSAPrivateKey&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546674_44312_8367"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_306891_8363" name="DSAPrivateKey" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309181_912086_5867" body="The standard interface to a DSA private key. DSA (Digital Signature&#xA;Algorithm) is defined in NIST's FIPS-186.&#xA;&#xA;@see java.security.Key&#xA;@see java.security.Signature&#xA;@see DSAKey&#xA;@see DSAPublicKey&#xA;&#xA;@version 1.19 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_306891_8363"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_193066_14141" isSubstitutable="true" general="_9_5_f720368_1110473546674_277637_8357"/>
              <generalization xmi:id="_10_5_622020d_1132928321859_817740_14142" isSubstitutable="true" general="_9_5_f720368_1110473546690_456258_8505"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_601856_8525" name="SecureRandomSpi" clientDependency="_10_5_622020d_1132928321899_517083_14237" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309421_523729_6117" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>SecureRandom&lt;/code> class.&#xA;All the abstract methods in this class must be implemented by each&#xA;service provider who wishes to supply the implementation&#xA;of a cryptographically strong pseudo-random number generator.&#xA;&#xA;@version 1.11, 12/19/03&#xA;&#xA;@see SecureRandom&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_601856_8525"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_517083_14237" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_601856_8525" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_814973_8461" name="Key" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_324972_6019" body="The Key interface is the top-level interface for all keys. It&#xA;defines the functionality shared by all key objects. All keys&#xA;have three characteristics:&#xA;&#xA;&lt;UL>&#xA;&#xA;&lt;LI>An Algorithm&#xA;&#xA;&lt;P>This is the key algorithm for that key. The key algorithm is usually&#xA;an encryption or asymmetric operation algorithm (such as DSA or&#xA;RSA), which will work with those algorithms and with related&#xA;algorithms (such as MD5 with RSA, SHA-1 with RSA, Raw DSA, etc.)&#xA;The name of the algorithm of a key is obtained using the&#xA;{@link #getAlgorithm() getAlgorithm} method.&lt;P>&#xA;&#xA;&lt;LI>An Encoded Form&#xA;&#xA;&lt;P>This is an external encoded form for the key used when a standard&#xA;representation of the key is needed outside the Java Virtual Machine,&#xA;as when transmitting the key to some other party. The key&#xA;is encoded according to a standard format (such as&#xA;X.509 &lt;code>SubjectPublicKeyInfo&lt;/code> or PKCS#8), and&#xA;is returned using the {@link #getEncoded() getEncoded} method.&#xA;Note: The syntax of the ASN.1 type &lt;code>SubjectPublicKeyInfo&lt;/code>&#xA;is defined as follows:&#xA;&#xA;&lt;pre>&#xA;SubjectPublicKeyInfo ::= SEQUENCE {&#xA;algorithm AlgorithmIdentifier,&#xA;subjectPublicKey BIT STRING }&#xA;&#xA;AlgorithmIdentifier ::= SEQUENCE {&#xA;algorithm OBJECT IDENTIFIER,&#xA;parameters ANY DEFINED BY algorithm OPTIONAL }&#xA;&lt;/pre>&#xA;&#xA;For more information, see&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2459.txt&quot;>RFC 2459:&#xA;Internet X.509 Public Key Infrastructure Certificate and CRL Profile&lt;/a>.&#xA;&lt;P>&#xA;&#xA;&lt;LI>A Format&#xA;&#xA;&lt;P>This is the name of the format of the encoded key. It is returned&#xA;by the {@link #getFormat() getFormat} method.&lt;P>&#xA;&#xA;&lt;/UL>&#xA;&#xA;Keys are generally obtained through key generators, certificates,&#xA;or various Identity classes used to manage keys.&#xA;Keys may also be obtained from key specifications (transparent&#xA;representations of the underlying key material) through the use of a key&#xA;factory (see {@link KeyFactory}).&#xA;&#xA;&lt;p> A Key should use KeyRep as its serialized representation.&#xA;Note that a serialized Key may contain sensitive information&#xA;which should not be exposed in untrusted environments.  See the&#xA;&lt;a href=&quot;../../../guide/serialization/spec/security.html&quot;>&#xA;Security Appendix&lt;/a>&#xA;of the Serialization Specification for more information.&#xA;&#xA;@see PublicKey&#xA;@see PrivateKey&#xA;@see KeyPair&#xA;@see KeyPairGenerator&#xA;@see KeyFactory&#xA;@see KeyRep&#xA;@see java.security.spec.KeySpec&#xA;@see Identity&#xA;@see Signer&#xA;&#xA;@version 1.54 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_814973_8461"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_447562_14199" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_428838_8425" name="AllPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309291_786020_5968" body="The AllPermission is a permission that implies all other permissions.&#xA;&lt;p>&#xA;&lt;b>Note:&lt;/b> Granting AllPermission should be done with extreme care,&#xA;as it implies all other permissions. Thus, it grants code the ability&#xA;to run with security&#xA;disabled.  Extreme caution should be taken before granting such&#xA;a permission to code.  This permission should be used only during testing,&#xA;or in extremely rare cases where an application or applet is&#xA;completely trusted and adding the necessary permissions to the policy&#xA;is prohibitively cumbersome.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.AccessController&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.20 03/12/19&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546674_428838_8425"/>
            <generalization xmi:id="_10_5_622020d_1132928321869_383312_14178" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547721_68899_18700" name="spec">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_615014_8401" name="RSAOtherPrimeInfo">
              <ownedComment xmi:id="_10_5_622020d_1132928309231_447680_5944" body="This class represents the triplet (prime, exponent, and coefficient)&#xA;inside RSA's OtherPrimeInfo structure, as defined in the PKCS#1 v2.1.&#xA;The ASN.1 syntax of RSA's OtherPrimeInfo is as follows:&#xA;&#xA;&lt;pre>&#xA;OtherPrimeInfo ::= SEQUENCE {&#xA;prime INTEGER,&#xA;exponent INTEGER,&#xA;coefficient INTEGER&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.6 03/12/19&#xA;&#xA;@see RSAPrivateCrtKeySpec&#xA;@see java.security.interfaces.RSAMultiPrimePrivateCrtKey&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_615014_8401"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_151240_8379" name="DSAParameterSpec" clientDependency="_10_5_622020d_1132928321869_145754_14155 _10_5_622020d_1132928321869_230970_14156">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_642812_5892" body="This class specifies the set of parameters used with the DSA algorithm.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.16, 12/19/03&#xA;&#xA;@see AlgorithmParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_151240_8379"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_145754_14155" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_9_5_f720368_1110473546674_151240_8379" contract="_9_5_f720368_1110473546674_693637_8377"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_230970_14156" name="" supplier="_9_5_f720368_1110473546674_238852_8361" client="_9_5_f720368_1110473546674_151240_8379" contract="_9_5_f720368_1110473546674_238852_8361"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_617351_8409" name="X509EncodedKeySpec">
              <ownedComment xmi:id="_10_5_622020d_1132928309231_602317_5952" body="This class represents the ASN.1 encoding of a public key,&#xA;encoded according to the ASN.1 type &lt;code>SubjectPublicKeyInfo&lt;/code>.&#xA;The &lt;code>SubjectPublicKeyInfo&lt;/code> syntax is defined in the X.509&#xA;standard as follows:&#xA;&#xA;&lt;pre>&#xA;SubjectPublicKeyInfo ::= SEQUENCE {&#xA;algorithm AlgorithmIdentifier,&#xA;subjectPublicKey BIT STRING }&#xA;&lt;/pre>&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.19, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see EncodedKeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_617351_8409"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_513902_14176" isSubstitutable="true" general="_9_5_f720368_1110473546674_694427_8385"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_526918_8387" name="InvalidKeySpecException">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_932080_5927" body="This is the exception for invalid key specifications.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.16, 12/19/03&#xA;&#xA;@see KeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_526918_8387"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_262139_14166" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309201_854821_5903" name="ECFieldFp" clientDependency="_10_5_622020d_1132928321869_481806_14160">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_751181_5905" body="This immutable class defines an elliptic curve (EC) prime&#xA;finite field.&#xA;&#xA;@see ECField&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309201_854821_5903"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_481806_14160" name="" supplier="_10_5_622020d_1132928309201_209941_5897" client="_10_5_622020d_1132928309201_854821_5903" contract="_10_5_622020d_1132928309201_209941_5897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309211_591725_5912" name="ECPoint">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_996372_5914" body="This immutable class represents a point on an elliptic curve (EC)&#xA;in affine coordinates. Other coordinate systems can&#xA;extend this class to represent this point in other&#xA;coordinates.&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309211_591725_5912"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_254639_8399" name="RSAMultiPrimePrivateCrtKeySpec">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_972362_5942" body="This class specifies an RSA multi-prime private key, as defined in the&#xA;PKCS#1 v2.1, using the Chinese Remainder Theorem (CRT) information&#xA;values for efficiency.&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.8 03/12/19&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;@see RSAPrivateKeySpec&#xA;@see RSAPublicKeySpec&#xA;@see RSAOtherPrimeInfo&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_254639_8399"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_617523_14172" isSubstitutable="true" general="_9_5_f720368_1110473546674_40282_8405"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_983486_8383" name="DSAPublicKeySpec" clientDependency="_10_5_622020d_1132928321869_954614_14158">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_385392_5896" body="This class specifies a DSA public key with its associated parameters.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.18, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see DSAPrivateKeySpec&#xA;@see X509EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_983486_8383"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_954614_14158" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_9_5_f720368_1110473546674_983486_8383" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309201_557862_5900" name="ECFieldF2m" clientDependency="_10_5_622020d_1132928321869_517965_14159">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_184287_5902" body="This immutable class defines an elliptic curve (EC)&#xA;characteristic 2 finite field.&#xA;&#xA;@see ECField&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309201_557862_5900"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_517965_14159" name="" supplier="_10_5_622020d_1132928309201_209941_5897" client="_10_5_622020d_1132928309201_557862_5900" contract="_10_5_622020d_1132928309201_209941_5897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_115526_8389" name="InvalidParameterSpecException">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_215776_5929" body="This is the exception for invalid parameter specifications.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.15, 12/19/03&#xA;&#xA;@see java.security.AlgorithmParameters&#xA;@see AlgorithmParameterSpec&#xA;@see DSAParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_115526_8389"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_458362_14167" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309211_19510_5909" name="ECParameterSpec" clientDependency="_10_5_622020d_1132928321869_923022_14162">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_519903_5911" body="This immutable class specifies the set of domain parameters&#xA;used with elliptic curve cryptography (ECC).&#xA;&#xA;@see AlgorithmParameterSpec&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309211_19510_5909"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_923022_14162" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_10_5_622020d_1132928309211_19510_5909" contract="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_694427_8385" name="EncodedKeySpec" clientDependency="_10_5_622020d_1132928321869_984895_14165" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_356230_5925" body="This class represents a public or private key in encoded format.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.20, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see X509EncodedKeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_694427_8385"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_984895_14165" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_9_5_f720368_1110473546674_694427_8385" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_40282_8405" name="RSAPrivateKeySpec" clientDependency="_10_5_622020d_1132928321869_477821_14174">
              <ownedComment xmi:id="_10_5_622020d_1132928309231_534626_5948" body="This class specifies an RSA private key.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.10 03/12/19&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;@see RSAPublicKeySpec&#xA;@see RSAPrivateCrtKeySpec&#xA;" annotatedElement="_9_5_f720368_1110473546674_40282_8405"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_477821_14174" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_9_5_f720368_1110473546674_40282_8405" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_131142_8395" name="PSSParameterSpec" clientDependency="_10_5_622020d_1132928321869_784177_14170">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_985690_5938" body="This class specifies a parameter spec for RSA-PSS signature scheme,&#xA;as defined in the&#xA;&lt;a href=&quot;http://www.rsa.com/rsalabs/pubs/PKCS/html/pkcs-1.html&quot;>&#xA;PKCS#1 v2.1&lt;/a> standard.&#xA;&#xA;&lt;p>Its ASN.1 definition in PKCS#1 standard is described below:&#xA;&lt;pre>&#xA;RSASSA-PSS-params ::= SEQUENCE {&#xA;hashAlgorithm      [0] OAEP-PSSDigestAlgorithms  DEFAULT sha1,&#xA;maskGenAlgorithm   [1] PKCS1MGFAlgorithms  DEFAULT mgf1SHA1,&#xA;saltLength         [2] INTEGER  DEFAULT 20,&#xA;trailerField       [3] INTEGER  DEFAULT 1&#xA;}&#xA;&lt;/pre>&#xA;where&#xA;&lt;pre>&#xA;OAEP-PSSDigestAlgorithms    ALGORITHM-IDENTIFIER ::= {&#xA;{ OID id-sha1 PARAMETERS NULL   }|&#xA;{ OID id-sha256 PARAMETERS NULL }|&#xA;{ OID id-sha384 PARAMETERS NULL }|&#xA;{ OID id-sha512 PARAMETERS NULL },&#xA;...  -- Allows for future expansion --&#xA;}&#xA;&#xA;PKCS1MGFAlgorithms    ALGORITHM-IDENTIFIER ::= {&#xA;{ OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },&#xA;...  -- Allows for future expansion --&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>Note: the PSSParameterSpec.DEFAULT uses the following:&#xA;message digest  -- &quot;SHA-1&quot;&#xA;mask generation function (mgf) -- &quot;MGF1&quot;&#xA;parameters for mgf -- MGF1ParameterSpec.SHA1&#xA;SaltLength   -- 20&#xA;TrailerField -- 1&#xA;&#xA;@see MGF1ParameterSpec&#xA;@see AlgorithmParameterSpec&#xA;@see java.security.Signature&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.6 04/01/27&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_131142_8395"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_784177_14170" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_9_5_f720368_1110473546674_131142_8395" contract="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_754620_8393" name="PKCS8EncodedKeySpec">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_264697_5936" body="This class represents the ASN.1 encoding of a private key,&#xA;encoded according to the ASN.1 type &lt;code>PrivateKeyInfo&lt;/code>.&#xA;The &lt;code>PrivateKeyInfo&lt;/code> syntax is defined in the PKCS#8 standard&#xA;as follows:&#xA;&#xA;&lt;pre>&#xA;PrivateKeyInfo ::= SEQUENCE {&#xA;version Version,&#xA;privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,&#xA;privateKey PrivateKey,&#xA;attributes [0] IMPLICIT Attributes OPTIONAL }&#xA;&#xA;Version ::= INTEGER&#xA;&#xA;PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier&#xA;&#xA;PrivateKey ::= OCTET STRING&#xA;&#xA;Attributes ::= SET OF Attribute&#xA;&lt;/pre>&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.19, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see EncodedKeySpec&#xA;@see X509EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_754620_8393"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_172694_14169" isSubstitutable="true" general="_9_5_f720368_1110473546674_694427_8385"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_832420_8403" name="RSAPrivateCrtKeySpec">
              <ownedComment xmi:id="_10_5_622020d_1132928309231_396863_5946" body="This class specifies an RSA private key, as defined in the PKCS#1&#xA;standard, using the Chinese Remainder Theorem (CRT) information values for&#xA;efficiency.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.12 03/12/19&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;@see RSAPrivateKeySpec&#xA;@see RSAPublicKeySpec&#xA;" annotatedElement="_9_5_f720368_1110473546674_832420_8403"/>
              <generalization xmi:id="_10_5_622020d_1132928321869_222272_14173" isSubstitutable="true" general="_9_5_f720368_1110473546674_40282_8405"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_27710_8381" name="DSAPrivateKeySpec" clientDependency="_10_5_622020d_1132928321869_182746_14157">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_421689_5894" body="This class specifies a DSA private key with its associated parameters.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.18, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see DSAPublicKeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_27710_8381"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_182746_14157" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_9_5_f720368_1110473546674_27710_8381" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309211_650557_5921" name="EllipticCurve">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_926701_5923" body="This immutable class holds the necessary values needed to represent&#xA;an elliptic curve.&#xA;&#xA;@see ECField&#xA;@see ECFieldFp&#xA;@see ECFieldF2m&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309211_650557_5921"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309211_11733_5918" name="ECPublicKeySpec" clientDependency="_10_5_622020d_1132928321869_816990_14164">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_707151_5920" body="This immutable class specifies an elliptic curve public key with&#xA;its associated parameters.&#xA;&#xA;@see KeySpec&#xA;@see ECPoint&#xA;@see ECParameterSpec&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309211_11733_5918"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_816990_14164" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_10_5_622020d_1132928309211_11733_5918" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_927289_8391" name="KeySpec" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_523646_5931" body="A (transparent) specification of the key material&#xA;that constitutes a cryptographic key.&#xA;&#xA;&lt;p>If the key is stored on a hardware device, its&#xA;specification may contain information that helps identify the key on the&#xA;device.&#xA;&#xA;&lt;P> A key may be specified in an algorithm-specific way, or in an&#xA;algorithm-independent encoding format (such as ASN.1).&#xA;For example, a DSA private key may be specified by its components&#xA;&lt;code>x&lt;/code>, &lt;code>p&lt;/code>, &lt;code>q&lt;/code>, and &lt;code>g&lt;/code>&#xA;(see {@link DSAPrivateKeySpec}), or it may be&#xA;specified using its DER encoding&#xA;(see {@link PKCS8EncodedKeySpec}).&#xA;&#xA;&lt;P> This interface contains no methods or constants. Its only purpose&#xA;is to group (and provide type safety for) all key specifications.&#xA;All key specifications must implement this interface.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.17, 12/19/03&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see EncodedKeySpec&#xA;@see X509EncodedKeySpec&#xA;@see PKCS8EncodedKeySpec&#xA;@see DSAPrivateKeySpec&#xA;@see DSAPublicKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309201_538673_5906" name="ECGenParameterSpec" clientDependency="_10_5_622020d_1132928321869_554780_14161">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_511408_5908" body="This immutable class specifies the set of parameters used for&#xA;generating elliptic curve (EC) domain parameters.&#xA;&#xA;@see AlgorithmParameterSpec&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309201_538673_5906"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_554780_14161" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_10_5_622020d_1132928309201_538673_5906" contract="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_693637_8377" name="AlgorithmParameterSpec" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_158648_5890" body="A (transparent) specification of cryptographic parameters.&#xA;&#xA;&lt;P> This interface contains no methods or constants. Its only purpose&#xA;is to group (and provide type safety for) all parameter specifications.&#xA;All parameter specifications must implement this interface.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.14, 12/19/03&#xA;&#xA;@see java.security.AlgorithmParameters&#xA;@see DSAParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309221_408515_5932" name="MGF1ParameterSpec" clientDependency="_10_5_622020d_1132928321869_599464_14168">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_333484_5934" body="This class specifies the set of parameters used with mask generation&#xA;function MGF1 in OAEP Padding and RSA-PSS signature scheme, as&#xA;defined in the&#xA;&lt;a href=&quot;http://www.rsa.com/rsalabs/pubs/PKCS/html/pkcs-1.html&quot;>&#xA;PKCS #1 v2.1&lt;/a> standard.&#xA;&#xA;&lt;p>Its ASN.1 definition in PKCS#1 standard is described below:&#xA;&lt;pre>&#xA;MGF1Parameters ::= OAEP-PSSDigestAlgorthms&#xA;&lt;/pre>&#xA;where&#xA;&lt;pre>&#xA;OAEP-PSSDigestAlgorithms    ALGORITHM-IDENTIFIER ::= {&#xA;{ OID id-sha1 PARAMETERS NULL   }|&#xA;{ OID id-sha256 PARAMETERS NULL }|&#xA;{ OID id-sha384 PARAMETERS NULL }|&#xA;{ OID id-sha512 PARAMETERS NULL },&#xA;...  -- Allows for future expansion --&#xA;}&#xA;&lt;/pre>&#xA;@see PSSParameterSpec&#xA;@see javax.crypto.spec.OAEPParameterSpec&#xA;&#xA;@author Valerie Peng&#xA;&#xA;@version 1.3, 01/27/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309221_408515_5932"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_599464_14168" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_10_5_622020d_1132928309221_408515_5932" contract="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309201_209941_5897" name="ECField" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309201_474634_5899" body="This interface represents an elliptic curve (EC) finite field.&#xA;All specialized EC fields must implements this interface.&#xA;&#xA;@see ECFieldFp&#xA;@see ECFieldF2m&#xA;&#xA;@author Valerie Peng&#xA;@version 1.4, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309201_209941_5897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309211_835737_5915" name="ECPrivateKeySpec" clientDependency="_10_5_622020d_1132928321869_75009_14163">
              <ownedComment xmi:id="_10_5_622020d_1132928309211_889758_5917" body="This immutable class specifies an elliptic curve private key with&#xA;its associated parameters.&#xA;&#xA;@see KeySpec&#xA;@see ECParameterSpec&#xA;&#xA;@author Valerie Peng&#xA;@version 1.3, 12/19/03&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309211_835737_5915"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_75009_14163" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_10_5_622020d_1132928309211_835737_5915" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_419927_8407" name="RSAPublicKeySpec" clientDependency="_10_5_622020d_1132928321869_311934_14175">
              <ownedComment xmi:id="_10_5_622020d_1132928309231_116591_5950" body="This class specifies an RSA public key.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.10 03/12/19&#xA;&#xA;@see java.security.Key&#xA;@see java.security.KeyFactory&#xA;@see KeySpec&#xA;@see X509EncodedKeySpec&#xA;@see RSAPrivateKeySpec&#xA;@see RSAPrivateCrtKeySpec&#xA;" annotatedElement="_9_5_f720368_1110473546674_419927_8407"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_311934_14175" name="" supplier="_9_5_f720368_1110473546674_927289_8391" client="_9_5_f720368_1110473546674_419927_8407" contract="_9_5_f720368_1110473546674_927289_8391"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_756194_8397" name="RSAKeyGenParameterSpec" clientDependency="_10_5_622020d_1132928321869_261678_14171">
              <ownedComment xmi:id="_10_5_622020d_1132928309221_131533_5940" body="This class specifies the set of parameters used to generate an RSA&#xA;key pair.&#xA;&#xA;@author Jan Luehe&#xA;@version 1.8 12/19/03&#xA;&#xA;@see java.security.KeyPairGenerator#initialize(java.security.spec.AlgorithmParameterSpec)&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546674_756194_8397"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321869_261678_14171" name="" supplier="_9_5_f720368_1110473546674_693637_8377" client="_9_5_f720368_1110473546674_756194_8397" contract="_9_5_f720368_1110473546674_693637_8377"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309461_529489_6136" name="Timestamp" clientDependency="_10_5_622020d_1132928321909_359629_14245" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_869830_6138" body="This class encapsulates information about a signed timestamp.&#xA;It is immutable.&#xA;It includes the timestamp's date and time as well as information about the&#xA;Timestamping Authority (TSA) which generated and signed the timestamp.&#xA;&#xA;@since 1.5&#xA;@version 1.2, 12/19/03&#xA;@author Vincent Ryan&#xA;" annotatedElement="_10_5_622020d_1132928309461_529489_6136"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321909_359629_14245" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309461_529489_6136" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_723361_8441" name="DigestOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_651104_5993" body="A transparent stream that updates the associated message digest using&#xA;the bits going through the stream.&#xA;&#xA;&lt;p>To complete the message digest computation, call one of the&#xA;&lt;code>digest&lt;/code> methods on the associated message&#xA;digest after your calls to one of this digest ouput stream's&#xA;{@link #write(int) write} methods.&#xA;&#xA;&lt;p>It is possible to turn this stream on or off (see&#xA;{@link #on(boolean) on}). When it is on, a call to one of the&#xA;&lt;code>write&lt;/code> methods results in&#xA;an update on the message digest.  But when it is off, the message&#xA;digest is not updated. The default is for the stream to be on.&#xA;&#xA;@see MessageDigest&#xA;@see DigestInputStream&#xA;&#xA;@version 1.31 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_723361_8441"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_329634_14190" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_289801_8473" name="KeyPairGenerator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309331_983827_6031" body="The KeyPairGenerator class is used to generate pairs of&#xA;public and private keys. Key pair generators are constructed using the&#xA;&lt;code>getInstance&lt;/code> factory methods (static methods that&#xA;return instances of a given class).&#xA;&#xA;&lt;p>A Key pair generator for a particular algorithm creates a public/private&#xA;key pair that can be used with this algorithm. It also associates&#xA;algorithm-specific parameters with each of the generated keys.&#xA;&#xA;&lt;p>There are two ways to generate a key pair: in an algorithm-independent&#xA;manner, and in an algorithm-specific manner.&#xA;The only difference between the two is the initialization of the object:&#xA;&#xA;&lt;ul>&#xA;&lt;li>&lt;b>Algorithm-Independent Initialization&lt;/b>&#xA;&lt;p>All key pair generators share the concepts of a keysize and a&#xA;source of randomness. The keysize is interpreted differently for different&#xA;algorithms (e.g., in the case of the &lt;i>DSA&lt;/i> algorithm, the keysize&#xA;corresponds to the length of the modulus).&#xA;There is an&#xA;{@link #initialize(int, java.security.SecureRandom) initialize}&#xA;method in this KeyPairGenerator class that takes these two universally&#xA;shared types of arguments. There is also one that takes just a&#xA;&lt;code>keysize&lt;/code> argument, and uses the &lt;code>SecureRandom&lt;/code>&#xA;implementation of the highest-priority installed provider as the source&#xA;of randomness. (If none of the installed providers supply an implementation&#xA;of &lt;code>SecureRandom&lt;/code>, a system-provided source of randomness is&#xA;used.)&#xA;&#xA;&lt;p>Since no other parameters are specified when you call the above&#xA;algorithm-independent &lt;code>initialize&lt;/code> methods, it is up to the&#xA;provider what to do about the algorithm-specific parameters (if any) to be&#xA;associated with each of the keys.&#xA;&#xA;&lt;p>If the algorithm is the &lt;i>DSA&lt;/i> algorithm, and the keysize (modulus&#xA;size) is 512, 768, or 1024, then the &lt;i>Sun&lt;/i> provider uses a set of&#xA;precomputed values for the &lt;code>p&lt;/code>, &lt;code>q&lt;/code>, and&#xA;&lt;code>g&lt;/code> parameters. If the modulus size is not one of the above&#xA;values, the &lt;i>Sun&lt;/i> provider creates a new set of parameters. Other&#xA;providers might have precomputed parameter sets for more than just the&#xA;three modulus sizes mentioned above. Still others might not have a list of&#xA;precomputed parameters at all and instead always create new parameter sets.&#xA;&lt;p>&#xA;&#xA;&lt;li>&lt;b>Algorithm-Specific Initialization&lt;/b>&#xA;&lt;p>For situations where a set of algorithm-specific parameters already&#xA;exists (e.g., so-called &lt;i>community parameters&lt;/i> in DSA), there are two&#xA;{@link #initialize(java.security.spec.AlgorithmParameterSpec)&#xA;initialize} methods that have an &lt;code>AlgorithmParameterSpec&lt;/code>&#xA;argument. One also has a &lt;code>SecureRandom&lt;/code> argument, while the&#xA;the other uses the &lt;code>SecureRandom&lt;/code>&#xA;implementation of the highest-priority installed provider as the source&#xA;of randomness. (If none of the installed providers supply an implementation&#xA;of &lt;code>SecureRandom&lt;/code>, a system-provided source of randomness is&#xA;used.)&#xA;&lt;/ul>&#xA;&#xA;&lt;p>In case the client does not explicitly initialize the KeyPairGenerator&#xA;(via a call to an &lt;code>initialize&lt;/code> method), each provider must&#xA;supply (and document) a default initialization.&#xA;For example, the &lt;i>Sun&lt;/i> provider uses a default modulus size (keysize)&#xA;of 1024 bits.&#xA;&#xA;&lt;p>Note that this class is abstract and extends from&#xA;&lt;code>KeyPairGeneratorSpi&lt;/code> for historical reasons.&#xA;Application developers should only take notice of the methods defined in&#xA;this &lt;code>KeyPairGenerator&lt;/code> class; all the methods in&#xA;the superclass are intended for cryptographic service providers who wish to&#xA;supply their own implementations of key pair generators.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.56, 01/28/04&#xA;&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;" annotatedElement="_9_5_f720368_1110473546690_289801_8473"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_158009_14203" isSubstitutable="true" general="_9_5_f720368_1110473546690_170500_8475"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547737_849001_18765" name="Delegate" visibility="private" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321889_818692_14204" isSubstitutable="true" general="_9_5_f720368_1110473546690_289801_8473"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309291_66214_5971" name="AuthProvider" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309291_404452_5973" body="This class defines login and logout methods for a provider.&#xA;&#xA;&lt;p> While callers may invoke &lt;code>login&lt;/code> directly,&#xA;the provider may also invoke &lt;code>login&lt;/code> on behalf of callers&#xA;if it determines that a login must be performed&#xA;prior to certain operations.&#xA;&#xA;@version 1.3, 02/03/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309291_66214_5971"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_553527_14181" isSubstitutable="true" general="_9_5_f720368_1110473546690_633220_8515"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_358259_8531" name="Signature" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_525275_6124" body="This Signature class is used to provide applications the functionality&#xA;of a digital signature algorithm. Digital signatures are used for&#xA;authentication and integrity assurance of digital data.&#xA;&#xA;&lt;p> The signature algorithm can be, among others, the NIST standard&#xA;DSA, using DSA and SHA-1. The DSA algorithm using the&#xA;SHA-1 message digest algorithm can be specified as &lt;tt>SHA1withDSA&lt;/tt>.&#xA;In the case of RSA, there are multiple choices for the message digest&#xA;algorithm, so the signing algorithm could be specified as, for example,&#xA;&lt;tt>MD2withRSA&lt;/tt>, &lt;tt>MD5withRSA&lt;/tt>, or &lt;tt>SHA1withRSA&lt;/tt>.&#xA;The algorithm name must be specified, as there is no default.&#xA;&#xA;&lt;p>Like other algorithm-based classes in Java Security, Signature&#xA;provides implementation-independent algorithms, whereby a caller&#xA;(application code) requests a particular signature algorithm&#xA;and is handed back a properly initialized Signature object. It is&#xA;also possible, if desired, to request a particular algorithm from a&#xA;particular provider. See the &lt;code>getInstance &lt;/code> methods.&#xA;&#xA;&lt;p>Thus, there are two ways to request a Signature algorithm object: by&#xA;specifying either just an algorithm name, or both an algorithm name&#xA;and a package provider. &lt;ul>&#xA;&#xA;&lt;li>If just an algorithm name is specified, the system will&#xA;determine if there is an implementation of the algorithm requested&#xA;available in the environment, and if there is more than one, if&#xA;there is a preferred one.&lt;p>&#xA;&#xA;&lt;li>If both an algorithm name and a package provider are specified,&#xA;the system will determine if there is an implementation of the&#xA;algorithm in the package requested, and throw an exception if there&#xA;is not.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>A Signature object can be used to generate and verify digital&#xA;signatures.&#xA;&#xA;&lt;p>There are three phases to the use of a Signature object for&#xA;either signing data or verifying a signature:&lt;ol>&#xA;&#xA;&lt;li>Initialization, with either&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>a public key, which initializes the signature for&#xA;verification (see {@link #initVerify(PublicKey) initVerify}), or&#xA;&#xA;&lt;li>a private key (and optionally a Secure Random Number Generator),&#xA;which initializes the signature for signing&#xA;(see {@link #initSign(PrivateKey)}&#xA;and {@link #initSign(PrivateKey, SecureRandom)}).&#xA;&#xA;&lt;/ul>&lt;p>&#xA;&#xA;&lt;li>Updating&lt;p>&#xA;&#xA;&lt;p>Depending on the type of initialization, this will update the&#xA;bytes to be signed or verified. See the&#xA;{@link #update(byte) update} methods.&lt;p>&#xA;&#xA;&lt;li>Signing or Verifying a signature on all updated bytes. See the&#xA;{@link #sign() sign} methods and the {@link #verify(byte[]) verify}&#xA;method.&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p>Note that this class is abstract and extends from&#xA;&lt;code>SignatureSpi&lt;/code> for historical reasons.&#xA;Application developers should only take notice of the methods defined in&#xA;this &lt;code>Signature&lt;/code> class; all the methods in&#xA;the superclass are intended for cryptographic service providers who wish to&#xA;supply their own implementations of digital signature algorithms.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.99, 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546690_358259_8531"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_356370_14239" isSubstitutable="true" general="_9_5_f720368_1110473546690_783711_8535"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547753_210161_18799" name="Delegate" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321909_413993_14240" isSubstitutable="true" general="_9_5_f720368_1110473546690_358259_8531"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309451_926777_6122" name="CipherAdapter" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321909_422804_14241" isSubstitutable="true" general="_9_5_f720368_1110473546690_783711_8535"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_454301_8449" name="GuardedObject" clientDependency="_10_5_622020d_1132928321889_946059_14192">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_967535_6001" body="A GuardedObject is an object that is used to protect access to&#xA;another object.&#xA;&#xA;&lt;p>A GuardedObject encapsulates a target object and a Guard object,&#xA;such that access to the target object is possible&#xA;only if the Guard object allows it.&#xA;Once an object is encapsulated by a GuardedObject,&#xA;access to that object is controlled by the &lt;code>getObject&lt;/code>&#xA;method, which invokes the&#xA;&lt;code>checkGuard&lt;/code> method on the Guard object that is&#xA;guarding access. If access is not allowed,&#xA;an exception is thrown.&#xA;&#xA;@see Guard&#xA;@see Permission&#xA;&#xA;@version 1.15 03/12/19&#xA;@author Roland Schemers&#xA;@author Li Gong&#xA;" annotatedElement="_9_5_f720368_1110473546674_454301_8449"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321889_946059_14192" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_454301_8449" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_4106_8539" name="Signer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_8010_6135" body="This class is used to represent an Identity that can also digitally&#xA;sign data.&#xA;&#xA;&lt;p>The management of a signer's private keys is an important and&#xA;sensitive issue that should be handled by subclasses as appropriate&#xA;to their intended use.&#xA;&#xA;@see Identity&#xA;&#xA;@version 1.42 04/05/18&#xA;@author Benjamin Renaud&#xA;&#xA;@deprecated This class is no longer used. Its functionality has been&#xA;replaced by &lt;code>java.security.KeyStore&lt;/code>, the&#xA;&lt;code>java.security.cert&lt;/code> package, and&#xA;&lt;code>java.security.Principal&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546690_4106_8539"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_299677_14244" isSubstitutable="true" general="_9_5_f720368_1110473546674_944917_8451"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_598634_8447" name="Guard" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_227922_5999" body="&lt;p> This interface represents a guard, which is an object that is used&#xA;to protect access to another object.&#xA;&#xA;&lt;p>This interface contains a single method, &lt;code>checkGuard&lt;/code>,&#xA;with a single &lt;code>object&lt;/code> argument. &lt;code>checkGuard&lt;/code> is&#xA;invoked (by the GuardedObject &lt;code>getObject&lt;/code> method)&#xA;to determine whether or not to allow access to the object.&#xA;&#xA;@see GuardedObject&#xA;&#xA;@version 1.12 03/12/19&#xA;@author Roland Schemers&#xA;@author Li Gong&#xA;" annotatedElement="_9_5_f720368_1110473546674_598634_8447"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_83621_8417" name="AlgorithmParameterGenerator">
            <ownedComment xmi:id="_10_5_622020d_1132928309281_852493_5960" body="The &lt;code>AlgorithmParameterGenerator&lt;/code> class is used to generate a&#xA;set of&#xA;parameters to be used with a certain algorithm. Parameter generators&#xA;are constructed using the &lt;code>getInstance&lt;/code> factory methods&#xA;(static methods that return instances of a given class).&#xA;&#xA;&lt;P>The object that will generate the parameters can be initialized&#xA;in two different ways: in an algorithm-independent manner, or in an&#xA;algorithm-specific manner:&#xA;&#xA;&lt;ul>&#xA;&lt;li>The algorithm-independent approach uses the fact that all parameter&#xA;generators share the concept of a &quot;size&quot; and a&#xA;source of randomness. The measure of size is universally shared&#xA;by all algorithm parameters, though it is interpreted differently&#xA;for different algorithms. For example, in the case of parameters for&#xA;the &lt;i>DSA&lt;/i> algorithm, &quot;size&quot; corresponds to the size&#xA;of the prime modulus (in bits).&#xA;When using this approach, algorithm-specific parameter generation&#xA;values - if any - default to some standard values, unless they can be&#xA;derived from the specified size.&lt;P>&#xA;&#xA;&lt;li>The other approach initializes a parameter generator object&#xA;using algorithm-specific semantics, which are represented by a set of&#xA;algorithm-specific parameter generation values. To generate&#xA;Diffie-Hellman system parameters, for example, the parameter generation&#xA;values usually&#xA;consist of the size of the prime modulus and the size of the&#xA;random exponent, both specified in number of bits.&#xA;&lt;/ul>&#xA;&#xA;&lt;P>In case the client does not explicitly initialize the&#xA;AlgorithmParameterGenerator&#xA;(via a call to an &lt;code>init&lt;/code> method), each provider must supply (and&#xA;document) a default initialization. For example, the Sun provider uses a&#xA;default modulus prime size of 1024 bits for the generation of DSA&#xA;parameters.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.40, 12/19/03&#xA;&#xA;@see AlgorithmParameters&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_83621_8417"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_943505_8415" name="AccessController" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309281_356822_5958" body="&lt;p> The AccessController class is used for access control operations&#xA;and decisions.&#xA;&#xA;&lt;p> More specifically, the AccessController class is used for&#xA;three purposes:&#xA;&#xA;&lt;ul>&#xA;&lt;li> to decide whether an access to a critical system&#xA;resource is to be allowed or denied, based on the security policy&#xA;currently in effect,&lt;p>&#xA;&lt;li>to mark code as being &quot;privileged&quot;, thus affecting subsequent&#xA;access determinations, and&lt;p>&#xA;&lt;li>to obtain a &quot;snapshot&quot; of the current calling context so&#xA;access-control decisions from a different context can be made with&#xA;respect to the saved context. &lt;/ul>&#xA;&#xA;&lt;p> The {@link #checkPermission(Permission) checkPermission} method&#xA;determines whether the access request indicated by a specified&#xA;permission should be granted or denied. A sample call appears&#xA;below. In this example, &lt;code>checkPermission&lt;/code> will determine&#xA;whether or not to grant &quot;read&quot; access to the file named &quot;testFile&quot; in&#xA;the &quot;/temp&quot; directory.&#xA;&#xA;&lt;pre>&#xA;&#xA;FilePermission perm = new FilePermission(&quot;/temp/testFile&quot;, &quot;read&quot;);&#xA;AccessController.checkPermission(perm);&#xA;&#xA;&lt;/pre>&#xA;&#xA;&lt;p> If a requested access is allowed,&#xA;&lt;code>checkPermission&lt;/code> returns quietly. If denied, an&#xA;AccessControlException is&#xA;thrown. AccessControlException can also be thrown if the requested&#xA;permission is of an incorrect type or contains an invalid value.&#xA;Such information is given whenever possible.&#xA;&#xA;Suppose the current thread traversed m callers, in the order of caller 1&#xA;to caller 2 to caller m. Then caller m invoked the&#xA;&lt;code>checkPermission&lt;/code> method.&#xA;The &lt;code>checkPermission &lt;/code>method determines whether access&#xA;is granted or denied based on the following algorithm:&#xA;&#xA;&lt;pre>&#xA;i = m;&#xA;&#xA;while (i > 0) {&#xA;&#xA;if (caller i's domain does not have the permission)&#xA;throw AccessControlException&#xA;&#xA;else if (caller i is marked as privileged) {&#xA;if (a context was specified in the call to doPrivileged)&#xA;context.checkPermission(permission)&#xA;return;&#xA;}&#xA;i = i - 1;&#xA;};&#xA;&#xA;Next, check the context inherited when&#xA;the thread was created. Whenever a new thread is created, the&#xA;AccessControlContext at that time is&#xA;stored and associated with the new thread, as the &quot;inherited&quot;&#xA;context.&#xA;&#xA;inheritedContext.checkPermission(permission);&#xA;&lt;/pre>&#xA;&#xA;&lt;p> A caller can be marked as being &quot;privileged&quot;&#xA;(see {@link #doPrivileged(PrivilegedAction) doPrivileged} and below).&#xA;When making access control decisions, the &lt;code>checkPermission&lt;/code>&#xA;method stops checking if it reaches a caller that&#xA;was marked as &quot;privileged&quot; via a &lt;code>doPrivileged&lt;/code>&#xA;call without a context argument (see below for information about a&#xA;context argument). If that caller's domain has the&#xA;specified permission, no further checking is done and&#xA;&lt;code>checkPermission&lt;/code>&#xA;returns quietly, indicating that the requested access is allowed.&#xA;If that domain does not have the specified permission, an exception&#xA;is thrown, as usual.&#xA;&#xA;&lt;p> The normal use of the &quot;privileged&quot; feature is as follows. If you&#xA;don't need to return a value from within the &quot;privileged&quot; block, do&#xA;the following:&#xA;&#xA;&lt;pre>&#xA;somemethod() {&#xA;...normal code here...&#xA;AccessController.doPrivileged(new PrivilegedAction() {&#xA;public Object run() {&#xA;privileged code goes here, for example:&#xA;System.loadLibrary(&quot;awt&quot;);&#xA;return null; // nothing to return&#xA;}&#xA;});&#xA;...normal code here...&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;PrivilegedAction is an interface with a single method, named&#xA;&lt;code>run&lt;/code>, that returns an Object.&#xA;The above example shows creation of an implementation&#xA;of that interface; a concrete implementation of the&#xA;&lt;code>run&lt;/code> method is supplied.&#xA;When the call to &lt;code>doPrivileged&lt;/code> is made, an&#xA;instance of the PrivilegedAction implementation is passed&#xA;to it. The &lt;code>doPrivileged&lt;/code> method calls the&#xA;&lt;code>run&lt;/code> method from the PrivilegedAction&#xA;implementation after enabling privileges, and returns the&#xA;&lt;code>run&lt;/code> method's return value as the&#xA;&lt;code>doPrivileged&lt;/code> return value (which is&#xA;ignored in this example).&#xA;&#xA;&lt;p> If you need to return a value, you can do something like the following:&#xA;&#xA;&lt;pre>&#xA;somemethod() {&#xA;...normal code here...&#xA;String user = (String) AccessController.doPrivileged(&#xA;new PrivilegedAction() {&#xA;public Object run() {&#xA;return System.getProperty(&quot;user.name&quot;);&#xA;}&#xA;}&#xA;);&#xA;...normal code here...&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>If the action performed in your &lt;code>run&lt;/code> method could&#xA;throw a &quot;checked&quot; exception (those listed in the &lt;code>throws&lt;/code> clause&#xA;of a method), then you need to use the&#xA;&lt;code>PrivilegedExceptionAction&lt;/code> interface instead of the&#xA;&lt;code>PrivilegedAction&lt;/code> interface:&#xA;&#xA;&lt;pre>&#xA;somemethod() throws FileNotFoundException {&#xA;...normal code here...&#xA;try {&#xA;FileInputStream fis = (FileInputStream) AccessController.doPrivileged(&#xA;new PrivilegedExceptionAction() {&#xA;public Object run() throws FileNotFoundException {&#xA;return new FileInputStream(&quot;someFile&quot;);&#xA;}&#xA;}&#xA;);&#xA;} catch (PrivilegedActionException e) {&#xA;e.getException() should be an instance of FileNotFoundException,&#xA;as only &quot;checked&quot; exceptions will be &quot;wrapped&quot; in a&#xA;&lt;code>PrivilegedActionException&lt;/code>.&#xA;throw (FileNotFoundException) e.getException();&#xA;}&#xA;...normal code here...&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> Be *very* careful in your use of the &quot;privileged&quot; construct, and&#xA;always remember to make the privileged code section as small as possible.&#xA;&#xA;&lt;p> Note that &lt;code>checkPermission&lt;/code> always performs security checks&#xA;within the context of the currently executing thread.&#xA;Sometimes a security check that should be made within a given context&#xA;will actually need to be done from within a&#xA;&lt;i>different&lt;/i> context (for example, from within a worker thread).&#xA;The {@link #getContext() getContext} method and&#xA;AccessControlContext class are provided&#xA;for this situation. The &lt;code>getContext&lt;/code> method takes a &quot;snapshot&quot;&#xA;of the current calling context, and places&#xA;it in an AccessControlContext object, which it returns. A sample call is&#xA;the following:&#xA;&#xA;&lt;pre>&#xA;&#xA;AccessControlContext acc = AccessController.getContext()&#xA;&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;AccessControlContext itself has a &lt;code>checkPermission&lt;/code> method&#xA;that makes access decisions based on the context &lt;i>it&lt;/i> encapsulates,&#xA;rather than that of the current execution thread.&#xA;Code within a different context can thus call that method on the&#xA;previously-saved AccessControlContext object. A sample call is the&#xA;following:&#xA;&#xA;&lt;pre>&#xA;&#xA;acc.checkPermission(permission)&#xA;&#xA;&lt;/pre>&#xA;&#xA;&lt;p> There are also times where you don't know a priori which permissions&#xA;to check the context against. In these cases you can use the&#xA;doPrivileged method that takes a context:&#xA;&#xA;&lt;pre>&#xA;somemethod() {&#xA;AccessController.doPrivileged(new PrivilegedAction() {&#xA;public Object run() {&#xA;Code goes here. Any permission checks within this&#xA;run method will require that the intersection of the&#xA;callers protection domain and the snapshot's&#xA;context have the desired permission.&#xA;}&#xA;}, acc);&#xA;...normal code here...&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@see AccessControlContext&#xA;&#xA;@version 1.55 04/05/05&#xA;@author Li Gong&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546674_943505_8415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_49708_8457" name="InvalidKeyException">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_817260_6015" body="This is the exception for invalid Keys (invalid encoding, wrong&#xA;length, uninitialized, etc).&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_49708_8457"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_163629_14197" isSubstitutable="true" general="_9_5_f720368_1110473546674_737347_8463"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_60525_8437" name="DigestException">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_478050_5989" body="This is the generic Message Digest exception.&#xA;&#xA;@version 1.17, 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546674_60525_8437"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_72056_14188" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_120188_8445" name="GeneralSecurityException">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_960559_5997" body="The &lt;code>GeneralSecurityException&lt;/code> class is a generic&#xA;security exception class that provides type safety for all the&#xA;security-related exception classes that extend from it.&#xA;&#xA;@version 1.16, 03/12/19&#xA;@author Jan Luehe&#xA;" annotatedElement="_9_5_f720368_1110473546674_120188_8445"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_775108_14191" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_89550_8413" name="AccessControlException">
            <ownedComment xmi:id="_10_5_622020d_1132928309231_820421_5956" body="&lt;p> This exception is thrown by the AccessController to indicate&#xA;that a requested access (to a critical system resource such as the&#xA;file system or the network) is denied.&#xA;&#xA;&lt;p> The reason to deny access can vary.  For example, the requested&#xA;permission might be of an incorrect type,  contain an invalid&#xA;value, or request access that is not allowed according to the&#xA;security policy.  Such information should be given whenever&#xA;possible at the time the exception is thrown.&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@author Li Gong&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546674_89550_8413"/>
            <generalization xmi:id="_10_5_622020d_1132928321869_864235_14177" isSubstitutable="true" general="_9_5_f720368_1110473546612_219598_7677"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_479921_8433" name="Certificate" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_962800_5982" body="&lt;p>This is an interface of abstract methods for managing a&#xA;variety of identity certificates.&#xA;An identity certificate is a guarantee by a principal that&#xA;a public key is that of another principal.  (A principal represents&#xA;an entity such as an individual user, a group, or a corporation.)&#xA;&#xA;&lt;p>In particular, this interface is intended to be a common&#xA;abstraction for constructs that have different formats but&#xA;important common uses.  For example, different types of&#xA;certificates, such as X.509 certificates and PGP certificates,&#xA;share general certificate functionality (the need to encode and&#xA;decode certificates) and some types of information, such as a&#xA;public key, the principal whose key it is, and the guarantor&#xA;guaranteeing that the public key is that of the specified&#xA;principal. So an implementation of X.509 certificates and an&#xA;implementation of PGP certificates can both utilize the Certificate&#xA;interface, even though their formats and additional types and&#xA;amounts of information stored are different.&#xA;&#xA;&lt;p>&lt;b>Important&lt;/b>: This interface is useful for cataloging and&#xA;grouping objects sharing certain common uses. It does not have any&#xA;semantics of its own. In particular, a Certificate object does not&#xA;make any statement as to the &lt;i>validity&lt;/i> of the binding. It is&#xA;the duty of the application implementing this interface to verify&#xA;the certificate and satisfy itself of its validity.&#xA;&#xA;@version &#x9;1.37, 05/18/04&#xA;@author Benjamin Renaud&#xA;@deprecated A new certificate handling package is created in the Java 2 platform.&#xA;This Certificate interface is entirely deprecated and&#xA;is here to allow for a smooth transition to the new&#xA;package.&#xA;@see java.security.cert.Certificate&#xA;" annotatedElement="_9_5_f720368_1110473546674_479921_8433"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_170154_8487" name="NoSuchAlgorithmException">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_243562_6071" body="This exception is thrown when a particular cryptographic algorithm is&#xA;requested but is not available in the environment.&#xA;&#xA;@version 1.25, 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546690_170154_8487"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_747806_14217" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_60988_8435" name="CodeSource" clientDependency="_10_5_622020d_1132928321879_518582_14187">
            <ownedComment xmi:id="_10_5_622020d_1132928309301_52756_5987" body="&lt;p>This class extends the concept of a codebase to&#xA;encapsulate not only the location (URL) but also the certificate chains&#xA;that were used to verify signed code originating from that location.&#xA;&#xA;@version &#x9;1.38, 12/19/03&#xA;@author Li Gong&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546674_60988_8435"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321879_518582_14187" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_60988_8435" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_30641_8429" name="BasicPermission" clientDependency="_10_5_622020d_1132928321879_479976_14182" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309291_440518_5975" body="The BasicPermission class extends the Permission class, and&#xA;can be used as the base class for permissions that want to&#xA;follow the same naming convention as BasicPermission.&#xA;&lt;P>&#xA;The name for a BasicPermission is the name of the given permission&#xA;(for example, &quot;exit&quot;,&#xA;&quot;setFactory&quot;, &quot;print.queueJob&quot;, etc). The naming&#xA;convention follows the  hierarchical property naming convention.&#xA;An asterisk may appear by itself, or if immediately preceded by a &quot;.&quot;&#xA;may appear at the end of the name, to signify a wildcard match.&#xA;For example, &quot;*&quot; and &quot;java.*&quot; are valid, while &quot;*java&quot;, &quot;a*b&quot;,&#xA;and &quot;java*&quot; are not valid.&#xA;&lt;P>&#xA;The action string (inherited from Permission) is unused.&#xA;Thus, BasicPermission is commonly used as the base class for&#xA;&quot;named&quot; permissions&#xA;(ones that contain a name but no actions list; you either have the&#xA;named permission or you don't.)&#xA;Subclasses may implement actions on top of BasicPermission,&#xA;if desired.&#xA;&lt;p>&#xA;&lt;P>&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.RuntimePermission&#xA;@see java.security.SecurityPermission&#xA;@see java.util.PropertyPermission&#xA;@see java.awt.AWTPermission&#xA;@see java.net.NetPermission&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.40 03/12/19&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546674_30641_8429"/>
            <generalization xmi:id="_10_5_622020d_1132928321879_577120_14183" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321879_479976_14182" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_30641_8429" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_972724_8495" name="Permissions" clientDependency="_10_5_622020d_1132928321899_846372_14222" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_879533_6079" body="This class represents a heterogeneous collection of Permissions. That is,&#xA;it contains different types of Permission objects, organized into&#xA;PermissionCollections. For example, if any&#xA;&lt;code>java.io.FilePermission&lt;/code> objects are added to an instance of&#xA;this class, they are all stored in a single&#xA;PermissionCollection. It is the PermissionCollection returned by a call to&#xA;the &lt;code>newPermissionCollection&lt;/code> method in the FilePermission class.&#xA;Similarly, any &lt;code>java.lang.RuntimePermission&lt;/code> objects are&#xA;stored in the PermissionCollection returned by a call to the&#xA;&lt;code>newPermissionCollection&lt;/code> method in the&#xA;RuntimePermission class. Thus, this class represents a collection of&#xA;PermissionCollections.&#xA;&#xA;&lt;p>When the &lt;code>add&lt;/code> method is called to add a Permission, the&#xA;Permission is stored in the appropriate PermissionCollection. If no such&#xA;collection exists yet, the Permission object's class is determined and the&#xA;&lt;code>newPermissionCollection&lt;/code> method is called on that class to create&#xA;the PermissionCollection and add it to the Permissions object. If&#xA;&lt;code>newPermissionCollection&lt;/code> returns null, then a default&#xA;PermissionCollection that uses a hashtable will be created and used. Each&#xA;hashtable entry stores a Permission object as both the key and the value.&#xA;&#xA;&lt;p> Enumerations returned via the &lt;code>elements&lt;/code> method are&#xA;not &lt;em>fail-fast&lt;/em>.  Modifications to a collection should not be&#xA;performed while enumerating over that collection.&#xA;&#xA;@see Permission&#xA;@see PermissionCollection&#xA;@see AllPermission&#xA;&#xA;@version 1.58, 04/05/05&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546690_972724_8495"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_616436_14223" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_846372_14222" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_972724_8495" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_607561_8537" name="SignedObject" clientDependency="_10_5_622020d_1132928321909_346283_14243" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_951964_6130" body="&lt;p> SignedObject is a class for the purpose of creating authentic&#xA;runtime objects whose integrity cannot be compromised without being&#xA;detected.&#xA;&#xA;&lt;p> More specifically, a SignedObject contains another Serializable&#xA;object, the (to-be-)signed object and its signature.&#xA;&#xA;&lt;p> The signed object is a &quot;deep copy&quot; (in serialized form) of an&#xA;original object.  Once the copy is made, further manipulation of&#xA;the original object has no side effect on the copy.&#xA;&#xA;&lt;p> The underlying signing algorithm is designated by the Signature&#xA;object passed to the constructor and the &lt;code>verify&lt;/code> method.&#xA;A typical usage for signing is the following:&#xA;&#xA;&lt;p> &lt;code> &lt;pre>&#xA;Signature signingEngine = Signature.getInstance(algorithm,&#xA;provider);&#xA;SignedObject so = new SignedObject(myobject, signingKey,&#xA;signingEngine);&#xA;&lt;/pre> &lt;/code>&#xA;&#xA;&lt;p> A typical usage for verification is the following (having&#xA;received SignedObject &lt;code>so&lt;/code>):&#xA;&#xA;&lt;p> &lt;code> &lt;pre>&#xA;Signature verificationEngine =&#xA;Signature.getInstance(algorithm, provider);&#xA;if (so.verify(publickey, verificationEngine))&#xA;try {&#xA;Object myobj = so.getObject();&#xA;} catch (java.lang.ClassNotFoundException e) {};&#xA;&lt;/pre> &lt;/code>&#xA;&#xA;&lt;p> Several points are worth noting.  First, there is no need to&#xA;initialize the signing or verification engine, as it will be&#xA;re-initialized inside the constructor and the &lt;code>verify&lt;/code>&#xA;method. Secondly, for verification to succeed, the specified&#xA;public key must be the public key corresponding to the private key&#xA;used to generate the SignedObject.&#xA;&#xA;&lt;p> More importantly, for flexibility reasons, the&#xA;constructor and &lt;code>verify&lt;/code> method allow for&#xA;customized signature engines, which can implement signature&#xA;algorithms that are not installed formally as part of a crypto&#xA;provider.  However, it is crucial that the programmer writing the&#xA;verifier code be aware what &lt;code>Signature&lt;/code> engine is being&#xA;used, as its own implementation of the &lt;code>verify&lt;/code> method&#xA;is invoked to verify a signature.  In other words, a malicious&#xA;&lt;code>Signature&lt;/code> may choose to always return true on&#xA;verification in an attempt to bypass a security check.&#xA;&#xA;&lt;p> The signature algorithm can be, among others, the NIST standard&#xA;DSA, using DSA and SHA-1.  The algorithm is specified using the&#xA;same convention as that for signatures. The DSA algorithm using the&#xA;SHA-1 message digest algorithm can be specified, for example, as&#xA;&quot;SHA/DSA&quot; or &quot;SHA-1/DSA&quot; (they are equivalent).  In the case of&#xA;RSA, there are multiple choices for the message digest algorithm,&#xA;so the signing algorithm could be specified as, for example,&#xA;&quot;MD2/RSA&quot;, &quot;MD5/RSA&quot; or &quot;SHA-1/RSA&quot;.  The algorithm name must be&#xA;specified, as there is no default.&#xA;&#xA;&lt;p> The name of the Cryptography Package Provider is designated&#xA;also by the Signature parameter to the constructor and the&#xA;&lt;code>verify&lt;/code> method.  If the provider is not&#xA;specified, the default provider is used.  Each installation can&#xA;be configured to use a particular provider as default.&#xA;&#xA;&lt;p> Potential applications of SignedObject include:&#xA;&lt;ul>&#xA;&lt;li> It can be used&#xA;internally to any Java runtime as an unforgeable authorization&#xA;token -- one that can be passed around without the fear that the&#xA;token can be maliciously modified without being detected.&#xA;&lt;li> It&#xA;can be used to sign and serialize data/object for storage outside&#xA;the Java runtime (e.g., storing critical access control data on&#xA;disk).&#xA;&lt;li> Nested SignedObjects can be used to construct a logical&#xA;sequence of signatures, resembling a chain of authorization and&#xA;delegation.&#xA;&lt;/ul>&#xA;&#xA;@see Signature&#xA;&#xA;@version &#x9;1.43, 12/19/03&#xA;@author Li Gong&#xA;" annotatedElement="_9_5_f720368_1110473546690_607561_8537"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321909_346283_14243" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_607561_8537" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_838290_8465" name="KeyFactory">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_906272_6023" body="Key factories are used to convert &lt;I>keys&lt;/I> (opaque&#xA;cryptographic keys of type &lt;code>Key&lt;/code>) into &lt;I>key specifications&lt;/I>&#xA;(transparent representations of the underlying key material), and vice&#xA;versa.&#xA;&#xA;&lt;P> Key factories are bi-directional. That is, they allow you to build an&#xA;opaque key object from a given key specification (key material), or to&#xA;retrieve the underlying key material of a key object in a suitable format.&#xA;&#xA;&lt;P> Multiple compatible key specifications may exist for the same key.&#xA;For example, a DSA public key may be specified using&#xA;&lt;code>DSAPublicKeySpec&lt;/code> or&#xA;&lt;code>X509EncodedKeySpec&lt;/code>. A key factory can be used to translate&#xA;between compatible key specifications.&#xA;&#xA;&lt;P> The following is an example of how to use a key factory in order to&#xA;instantiate a DSA public key from its encoding.&#xA;Assume Alice has received a digital signature from Bob.&#xA;Bob also sent her his public key (in encoded format) to verify&#xA;his signature. Alice then performs the following actions:&#xA;&#xA;&lt;pre>&#xA;X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(bobEncodedPubKey);&#xA;KeyFactory keyFactory = KeyFactory.getInstance(&quot;DSA&quot;);&#xA;PublicKey bobPubKey = keyFactory.generatePublic(bobPubKeySpec);&#xA;Signature sig = Signature.getInstance(&quot;DSA&quot;);&#xA;sig.initVerify(bobPubKey);&#xA;sig.update(data);&#xA;sig.verify(signature);&#xA;&lt;/pre>&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.32, 05/05/04&#xA;&#xA;@see Key&#xA;@see PublicKey&#xA;@see PrivateKey&#xA;@see java.security.spec.KeySpec&#xA;@see java.security.spec.DSAPublicKeySpec&#xA;@see java.security.spec.X509EncodedKeySpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_838290_8465"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_514225_8483" name="MessageDigest" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_215357_6067" body="This MessageDigest class provides applications the functionality of a&#xA;message digest algorithm, such as MD5 or SHA.&#xA;Message digests are secure one-way hash functions that take arbitrary-sized&#xA;data and output a fixed-length hash value.&#xA;&#xA;&lt;p>A MessageDigest object starts out initialized. The data is&#xA;processed through it using the {@link #update(byte) update}&#xA;methods. At any point {@link #reset() reset} can be called&#xA;to reset the digest. Once all the data to be updated has been&#xA;updated, one of the {@link #digest() digest} methods should&#xA;be called to complete the hash computation.&#xA;&#xA;&lt;p>The &lt;code>digest&lt;/code> method can be called once for a given number&#xA;of updates. After &lt;code>digest&lt;/code> has been called, the MessageDigest&#xA;object is reset to its initialized state.&#xA;&#xA;&lt;p>Implementations are free to implement the Cloneable interface.&#xA;Client applications can test cloneability by attempting cloning&#xA;and catching the CloneNotSupportedException: &lt;p>&#xA;&#xA;&lt;pre>&#xA;MessageDigest md = MessageDigest.getInstance(&quot;SHA&quot;);&#xA;&#xA;try {&#xA;md.update(toChapter1);&#xA;MessageDigest tc1 = md.clone();&#xA;byte[] toChapter1Digest = tc1.digest();&#xA;md.update(toChapter2);&#xA;...etc.&#xA;} catch (CloneNotSupportedException cnse) {&#xA;throw new DigestException(&quot;couldn't make digest of partial content&quot;);&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Note that if a given implementation is not cloneable, it is&#xA;still possible to compute intermediate digests by instantiating&#xA;several instances, if the number of digests is known in advance.&#xA;&#xA;&lt;p>Note that this class is abstract and extends from&#xA;&lt;code>MessageDigestSpi&lt;/code> for historical reasons.&#xA;Application developers should only take notice of the methods defined in&#xA;this &lt;code>MessageDigest&lt;/code> class; all the methods in&#xA;the superclass are intended for cryptographic service providers who wish to&#xA;supply their own implementations of message digest algorithms.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.77, 12/19/03&#xA;&#xA;@see DigestInputStream&#xA;@see DigestOutputStream&#xA;" annotatedElement="_9_5_f720368_1110473546690_514225_8483"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_62027_14215" isSubstitutable="true" general="_9_5_f720368_1110473546690_453853_8485"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547737_963445_18772" name="Delegate" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928321899_643634_14216" isSubstitutable="true" general="_9_5_f720368_1110473546690_514225_8483"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_905512_8455" name="InvalidAlgorithmParameterException">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_180515_6013" body="This is the exception for invalid or inappropriate algorithm parameters.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.14, 12/19/03&#xA;&#xA;@see AlgorithmParameters&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_905512_8455"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_612825_14196" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_56745_8511" name="PrivilegedExceptionAction" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_349726_6100" body="A computation to be performed with privileges enabled, that throws one or&#xA;more checked exceptions.  The computation is performed by invoking&#xA;&lt;code>AccessController.doPrivileged&lt;/code> on the&#xA;&lt;code>PrivilegedExceptionAction&lt;/code> object.  This interface is&#xA;used only for computations that throw checked exceptions;&#xA;computations that do not throw&#xA;checked exceptions should use &lt;code>PrivilegedAction&lt;/code> instead.&#xA;&#xA;@see AccessController&#xA;@see AccessController#doPrivileged(PrivilegedExceptionAction)&#xA;@see AccessController#doPrivileged(PrivilegedExceptionAction,&#xA;AccessControlContext)&#xA;@see PrivilegedAction&#xA;" annotatedElement="_9_5_f720368_1110473546690_56745_8511"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309411_841694_6096" name="" parameter="_10_5_622020d_1132928309411_927358_6097">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309411_927358_6097" parameteredElement="_10_5_622020d_1132928309411_589417_6098">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309411_589417_6098" name="T" templateParameter="_10_5_622020d_1132928309411_927358_6097"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_226697_8411" name="AccessControlContext" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309231_639791_5954" body="An AccessControlContext is used to make system resource access decisions&#xA;based on the context it encapsulates.&#xA;&#xA;&lt;p>More specifically, it encapsulates a context and&#xA;has a single method, &lt;code>checkPermission&lt;/code>,&#xA;that is equivalent to the &lt;code>checkPermission&lt;/code> method&#xA;in the AccessController class, with one difference: The AccessControlContext&#xA;&lt;code>checkPermission&lt;/code> method makes access decisions based on the&#xA;context it encapsulates,&#xA;rather than that of the current execution thread.&#xA;&#xA;&lt;p>Thus, the purpose of AccessControlContext is for those situations where&#xA;a security check that should be made within a given context&#xA;actually needs to be done from within a&#xA;&lt;i>different&lt;/i> context (for example, from within a worker thread).&#xA;&#xA;&lt;p> An AccessControlContext is created by calling the&#xA;&lt;code>AccessController.getContext&lt;/code> method.&#xA;The &lt;code>getContext&lt;/code> method takes a &quot;snapshot&quot;&#xA;of the current calling context, and places&#xA;it in an AccessControlContext object, which it returns. A sample call is&#xA;the following:&#xA;&#xA;&lt;pre>&#xA;&#xA;AccessControlContext acc = AccessController.getContext()&#xA;&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Code within a different context can subsequently call the&#xA;&lt;code>checkPermission&lt;/code> method on the&#xA;previously-saved AccessControlContext object. A sample call is the&#xA;following:&#xA;&#xA;&lt;pre>&#xA;&#xA;acc.checkPermission(permission)&#xA;&#xA;&lt;/pre>&#xA;&#xA;@see AccessController&#xA;&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546674_226697_8411"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_675181_8517" name="ProviderException">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_784519_6109" body="A runtime exception for Provider exceptions (such as&#xA;misconfiguration errors or unrecoverable internal errors),&#xA;which may be subclassed by Providers to&#xA;throw specialized, provider-specific runtime errors.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546690_675181_8517"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_697163_14233" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_359551_8521" name="SecureClassLoader">
            <ownedComment xmi:id="_10_5_622020d_1132928309421_957595_6113" body="This class extends ClassLoader with additional support for defining&#xA;classes with an associated code source and permissions which are&#xA;retrieved by the system policy by default.&#xA;&#xA;@version 1.85, 05/05/04&#xA;@author  Li Gong&#xA;@author  Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_359551_8521"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_596709_14235" isSubstitutable="true" general="_9_5_f720368_1110473546612_433369_7581"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_107246_8523" name="SecureRandom">
            <ownedComment xmi:id="_10_5_622020d_1132928309421_571244_6115" body="&lt;p>This class provides a cryptographically strong random number&#xA;generator (RNG).  Many implementations are in the form of a pseudo-random&#xA;number generator (PRNG), which means they use a deterministic algorithm&#xA;to produce a pseudo-random sequence from a true random seed.&#xA;Other implementations may produce true random numbers&#xA;and yet others may use a combination of both techniques.&#xA;&#xA;&lt;p>A cryptographically strong random number&#xA;minimally complies with the statistical random number generator tests&#xA;specified in &lt;a href=&quot;http://csrc.nist.gov/cryptval/140-2.htm&quot;>&#xA;&lt;i>FIPS 140-2, Security Requirements for Cryptographic Modules&lt;/i>&lt;/a>,&#xA;section 4.9.1.&#xA;Additionally, SecureRandom must produce non-deterministic&#xA;output and therefore it is required that the seed material be unpredictable&#xA;and that output of SecureRandom be cryptographically strong sequences as&#xA;described in &lt;a href=&quot;http://www.ietf.org/rfc/rfc1750.txt&quot;>&#xA;&lt;i>RFC 1750: Randomness Recommendations for Security&lt;/i>&lt;/a>.&#xA;&#xA;&lt;p>Like other algorithm-based classes in Java Security, SecureRandom&#xA;provides implementation-independent algorithms, whereby a caller&#xA;(application code) requests a particular RNG algorithm&#xA;and is handed back a SecureRandom object for that algorithm. It is&#xA;also possible, if desired, to request a particular algorithm from a&#xA;particular provider. See the &lt;code>getInstance&lt;/code> methods.&#xA;&#xA;&lt;p>Thus, there are two ways to request a SecureRandom object: by&#xA;specifying either just an algorithm name, or both an algorithm name&#xA;and a package provider.&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>If just an algorithm name is specified, as in:&#xA;&lt;pre>&#xA;SecureRandom random = SecureRandom.getInstance(&quot;SHA1PRNG&quot;);&#xA;&lt;/pre>&#xA;the system will determine if there is an implementation of the algorithm&#xA;requested available in the environment, and if there is more than one, if&#xA;there is a preferred one.&lt;p>&#xA;&#xA;&lt;li>If both an algorithm name and a package provider are specified, as in:&#xA;&lt;pre>&#xA;SecureRandom random = SecureRandom.getInstance(&quot;SHA1PRNG&quot;, &quot;SUN&quot;);&#xA;&lt;/pre>&#xA;the system will determine if there is an implementation of the&#xA;algorithm in the package requested, and throw an exception if there&#xA;is not.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>The SecureRandom implementation attempts to completely&#xA;randomize the internal state of the generator itself unless&#xA;the caller follows the call to a &lt;code>getInstance&lt;/code> method&#xA;with a call to the &lt;code>setSeed&lt;/code> method:&#xA;&lt;pre>&#xA;SecureRandom random = SecureRandom.getInstance(&quot;SHA1PRNG&quot;);&#xA;random.setSeed(seed);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>After the caller obtains the SecureRandom object from the&#xA;&lt;code>getInstance&lt;/code> call, it can call &lt;code>nextBytes&lt;/code>&#xA;to generate random bytes:&#xA;&lt;pre>&#xA;byte bytes[] = new byte[20];&#xA;random.nextBytes(bytes);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The caller may also invoke the &lt;code>generateSeed&lt;/code> method&#xA;to generate a given number of seed bytes (to seed other random number&#xA;generators, for example):&#xA;&lt;pre>&#xA;byte seed[] = random.generateSeed(20);&#xA;&lt;/pre>&#xA;&#xA;@see java.security.SecureRandomSpi&#xA;@see java.util.Random&#xA;&#xA;@version 1.47, 12/19/03&#xA;@author Benjamin Renaud&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546690_107246_8523"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_461333_14236" isSubstitutable="true" general="_9_5_f720368_1110473546706_483016_8911"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_292956_8459" name="InvalidParameterException">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_779130_6017" body="This exception, designed for use by the JCA/JCE engine classes,&#xA;is thrown when an invalid parameter is passed&#xA;to a method.&#xA;&#xA;@author Benjamin Renaud&#xA;@version 1.20, 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546674_292956_8459"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_626256_14198" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_503308_8529" name="SecurityPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309451_528707_6121" body="This class is for security permissions.&#xA;A SecurityPermission contains a name (also referred to as a &quot;target name&quot;)&#xA;but no actions list; you either have the named permission&#xA;or you don't.&#xA;&lt;P>&#xA;The target name is the name of a security configuration parameter (see below).&#xA;Currently the SecurityPermission object is used to guard access&#xA;to the Policy, Security, Provider, Signer, and Identity&#xA;objects.&#xA;&lt;P>&#xA;The following table lists all the possible SecurityPermission target names,&#xA;and for each provides a description of what the permission allows&#xA;and a discussion of the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;target name,what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>createAccessControlContext&lt;/td>&#xA;&lt;td>Creation of an AccessControlContext&lt;/td>&#xA;&lt;td>This allows someone to instantiate an AccessControlContext&#xA;with a &lt;code>DomainCombiner&lt;/code>.  Since DomainCombiners are given&#xA;a reference to the ProtectionDomains currently on the stack,&#xA;this could potentially lead to a privacy leak if the DomainCombiner&#xA;is malicious.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getDomainCombiner&lt;/td>&#xA;&lt;td>Retrieval of an AccessControlContext's DomainCombiner&lt;/td>&#xA;&lt;td>This allows someone to retrieve an AccessControlContext's&#xA;&lt;code>DomainCombiner&lt;/code>.  Since DomainCombiners may contain&#xA;sensitive information, this could potentially lead to a privacy leak.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getPolicy&lt;/td>&#xA;&lt;td>Retrieval of the system-wide security policy (specifically, of the&#xA;currently-installed Policy object)&lt;/td>&#xA;&lt;td>This allows someone to query the policy via the&#xA;&lt;code>getPermissions&lt;/code> call,&#xA;which discloses which permissions would be granted to a given CodeSource.&#xA;While revealing the policy does not compromise the security of&#xA;the system, it does provide malicious code with additional information&#xA;which it may use to better aim an attack. It is wise&#xA;not to divulge more information than necessary.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setPolicy&lt;/td>&#xA;&lt;td>Setting of the system-wide security policy (specifically,&#xA;the Policy object)&lt;/td>&#xA;&lt;td>Granting this permission is extremely dangerous, as malicious&#xA;code may grant itself all the necessary permissions it needs&#xA;to successfully mount an attack on the system.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getProperty.{key}&lt;/td>&#xA;&lt;td>Retrieval of the security property with the specified key&lt;/td>&#xA;&lt;td>Depending on the particular key for which access has&#xA;been granted, the code may have access to the list of security&#xA;providers, as well as the location of the system-wide and user&#xA;security policies.  while revealing this information does not&#xA;compromise the security of the system, it does provide malicious&#xA;code with additional information which it may use to better aim&#xA;an attack.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setProperty.{key}&lt;/td>&#xA;&lt;td>Setting of the security property with the specified key&lt;/td>&#xA;&lt;td>This could include setting a security provider or defining&#xA;the location of the the system-wide security policy.  Malicious&#xA;code that has permission to set a new security provider may&#xA;set a rogue provider that steals confidential information such&#xA;as cryptographic private keys. In addition, malicious code with&#xA;permission to set the location of the system-wide security policy&#xA;may point it to a security policy that grants the attacker&#xA;all the necessary permissions it requires to successfully mount&#xA;an attack on the system.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>insertProvider.{provider name}&lt;/td>&#xA;&lt;td>Addition of a new provider, with the specified name&lt;/td>&#xA;&lt;td>This would allow somebody to introduce a possibly&#xA;malicious provider (e.g., one that discloses the private keys passed&#xA;to it) as the highest-priority provider. This would be possible&#xA;because the Security object (which manages the installed providers)&#xA;currently does not check the integrity or authenticity of a provider&#xA;before attaching it.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>removeProvider.{provider name}&lt;/td>&#xA;&lt;td>Removal of the specified provider&lt;/td>&#xA;&lt;td>This may change the behavior or disable execution of other&#xA;parts of the program. If a provider subsequently requested by the&#xA;program has been removed, execution may fail. Also, if the removed&#xA;provider is not explicitly requested by the rest of the program, but&#xA;it would normally be the provider chosen when a cryptography service&#xA;is requested (due to its previous order in the list of providers),&#xA;a different provider will be chosen instead, or no suitable provider&#xA;will be found, thereby resulting in program failure.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setSystemScope&lt;/td>&#xA;&lt;td>Setting of the system identity scope&lt;/td>&#xA;&lt;td>This would allow an attacker to configure the system identity scope with&#xA;certificates that should not be trusted, thereby granting applet or&#xA;application code signed with those certificates privileges that&#xA;would have been denied by the system's original identity scope&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setIdentityPublicKey&lt;/td>&#xA;&lt;td>Setting of the public key for an Identity&lt;/td>&#xA;&lt;td>If the identity is marked as &quot;trusted&quot;, this allows an attacker to&#xA;introduce a different public key (e.g., its own) that is not trusted&#xA;by the system's identity scope, thereby granting applet or&#xA;application code signed with that public key privileges that&#xA;would have been denied otherwise.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setIdentityInfo&lt;/td>&#xA;&lt;td>Setting of a general information string for an Identity&lt;/td>&#xA;&lt;td>This allows attackers to set the general description for&#xA;an identity.  This may trick applications into using a different&#xA;identity than intended or may prevent applications from finding a&#xA;particular identity.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>addIdentityCertificate&lt;/td>&#xA;&lt;td>Addition of a certificate for an Identity&lt;/td>&#xA;&lt;td>This allows attackers to set a certificate for&#xA;an identity's public key.  This is dangerous because it affects&#xA;the trust relationship across the system. This public key suddenly&#xA;becomes trusted to a wider audience than it otherwise would be.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>removeIdentityCertificate&lt;/td>&#xA;&lt;td>Removal of a certificate for an Identity&lt;/td>&#xA;&lt;td>This allows attackers to remove a certificate for&#xA;an identity's public key. This is dangerous because it affects&#xA;the trust relationship across the system. This public key suddenly&#xA;becomes considered less trustworthy than it otherwise would be.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>printIdentity&lt;/td>&#xA;&lt;td>Viewing the name of a principal&#xA;and optionally the scope in which it is used, and whether&#xA;or not it is considered &quot;trusted&quot; in that scope&lt;/td>&#xA;&lt;td>The scope that is printed out may be a filename, in which case&#xA;it may convey local system information. For example, here's a sample&#xA;printout of an identity named &quot;carol&quot;, who is&#xA;marked not trusted in the user's identity database:&lt;br>&#xA;carol[/home/luehe/identitydb.obj][not trusted]&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>clearProviderProperties.{provider name}&lt;/td>&#xA;&lt;td>&quot;Clearing&quot; of a Provider so that it no longer contains the properties&#xA;used to look up services implemented by the provider&lt;/td>&#xA;&lt;td>This disables the lookup of services implemented by the provider.&#xA;This may thus change the behavior or disable execution of other&#xA;parts of the program that would normally utilize the Provider, as&#xA;described under the &quot;removeProvider.{provider name}&quot; permission.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>putProviderProperty.{provider name}&lt;/td>&#xA;&lt;td>Setting of properties for the specified Provider&lt;/td>&#xA;&lt;td>The provider properties each specify the name and location&#xA;of a particular service implemented by the provider. By granting&#xA;this permission, you let code replace the service specification&#xA;with another one, thereby specifying a different implementation.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>removeProviderProperty.{provider name}&lt;/td>&#xA;&lt;td>Removal of properties from the specified Provider&lt;/td>&#xA;&lt;td>This disables the lookup of services implemented by the&#xA;provider. They are no longer accessible due to removal of the properties&#xA;specifying their names and locations. This&#xA;may change the behavior or disable execution of other&#xA;parts of the program that would normally utilize the Provider, as&#xA;described under the &quot;removeProvider.{provider name}&quot; permission.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getSignerPrivateKey&lt;/td>&#xA;&lt;td>Retrieval of a Signer's private key&lt;/td>&#xA;&lt;td>It is very dangerous to allow access to a private key; private&#xA;keys are supposed to be kept secret. Otherwise, code can use the&#xA;private key to sign various files and claim the signature came from&#xA;the Signer.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setSignerKeyPair&lt;/td>&#xA;&lt;td>Setting of the key pair (public key and private key) for a Signer&lt;/td>&#xA;&lt;td>This would allow an attacker to replace somebody else's (the &quot;target's&quot;)&#xA;keypair with a possibly weaker keypair (e.g., a keypair of a smaller&#xA;keysize).  This also would allow the attacker to listen in on encrypted&#xA;communication between the target and its peers. The target's peers&#xA;might wrap an encryption session key under the target's &quot;new&quot; public&#xA;key, which would allow the attacker (who possesses the corresponding&#xA;private key) to unwrap the session key and decipher the communication&#xA;data encrypted under that session key.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.27 03/12/19&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_503308_8529"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_844515_14238" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_578208_8541" name="UnrecoverableKeyException">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_481305_6143" body="This exception is thrown if a key in the keystore cannot be recovered.&#xA;&#xA;@version 1.10, 12/19/03&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_578208_8541"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_57890_14247" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_3186_8507" name="PrivilegedAction" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_494416_6093" body="A computation to be performed with privileges enabled.  The computation is&#xA;performed by invoking &lt;code>AccessController.doPrivileged&lt;/code> on the&#xA;&lt;code>PrivilegedAction&lt;/code> object.  This interface is used only for&#xA;computations that do not throw checked exceptions; computations that&#xA;throw checked exceptions must use &lt;code>PrivilegedExceptionAction&lt;/code>&#xA;instead.&#xA;&#xA;@see AccessController&#xA;@see AccessController#doPrivileged(PrivilegedAction)&#xA;@see PrivilegedExceptionAction&#xA;" annotatedElement="_9_5_f720368_1110473546690_3186_8507"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309401_240570_6089" name="" parameter="_10_5_622020d_1132928309401_75935_6090">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309401_75935_6090" parameteredElement="_10_5_622020d_1132928309401_477958_6091">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309401_477958_6091" name="T" templateParameter="_10_5_622020d_1132928309401_75935_6090"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_633220_8515" name="Provider" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_462757_6107" body="This class represents a &quot;provider&quot; for the&#xA;Java Security API, where a provider implements some or all parts of&#xA;Java Security. Services that a provider may implement include:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>Algorithms (such as DSA, RSA, MD5 or SHA-1).&#xA;&#xA;&lt;li>Key generation, conversion, and management facilities (such as for&#xA;algorithm-specific keys).&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>Each provider has a name and a version number, and is configured&#xA;in each runtime it is installed in.&#xA;&#xA;&lt;p>See &lt;a href =&#xA;&quot;../../../guide/security/CryptoSpec.html#Provider&quot;>The Provider Class&lt;/a>&#xA;in the &quot;Java Cryptography Architecture API Specification &amp; Reference&quot;&#xA;for information about how a particular type of provider, the&#xA;cryptographic service provider, works and is installed. However,&#xA;please note that a provider can be used to implement any security&#xA;service in Java that uses a pluggable architecture with a choice&#xA;of implementations that fit underneath.&#xA;&#xA;&lt;p>Some provider implementations may encounter unrecoverable internal&#xA;errors during their operation, for example a failure to communicate with a&#xA;security token. A {@link ProviderException} should be used to indicate&#xA;such errors.&#xA;&#xA;&lt;p>The service type &lt;code>Provider&lt;/code> is reserved for use by the&#xA;security framework. Services of this type cannot be added, removed,&#xA;or modified by applications.&#xA;The following attributes are automatically placed in each Provider object:&#xA;&lt;table cellspacing=4>&#xA;&lt;tr>&lt;th>Name&lt;/th>&lt;th>Value&lt;/th>&#xA;&lt;tr>&lt;td>&lt;code>Provider.id name&lt;/code>&lt;/td>&#xA;&lt;td>&lt;code>String.valueOf(provider.getName())&lt;/code>&lt;/td>&#xA;&lt;tr>&lt;td>&lt;code>Provider.id version&lt;/code>&lt;/td>&#xA;&lt;td>&lt;code>String.valueOf(provider.getVersion())&lt;/code>&lt;/td>&#xA;&lt;tr>&lt;td>&lt;code>Provider.id info&lt;/code>&lt;/td>&#xA;&lt;td>&lt;code>String.valueOf(provider.getInfo())&lt;/code>&lt;/td>&#xA;&lt;tr>&lt;td>&lt;code>Provider.id className&lt;/code>&lt;/td>&#xA;&lt;td>&lt;code>provider.getClass().getName()&lt;/code>&lt;/td>&#xA;&lt;/table>&#xA;&#xA;@version 1.61, 05/05/04&#xA;@author Benjamin Renaud&#xA;@author Andreas Sterbenz&#xA;" annotatedElement="_9_5_f720368_1110473546690_633220_8515"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_375735_14232" isSubstitutable="true" general="_9_5_f720368_1110473546706_441504_8903"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309411_94095_6103" name="ServiceKey" visibility="private"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309411_557320_6104" name="Service">
              <ownedComment xmi:id="_10_5_622020d_1132928309411_840151_6105" body="The description of a security service. It encapsulates the properties&#xA;of a service and contains a factory method to obtain new implementation&#xA;instances of this service.&#xA;&#xA;&lt;p>Each service has a provider that offers the service, a type,&#xA;an algorithm name, and the name of the class that implements the&#xA;service. Optionally, it also includes a list of alternate algorithm&#xA;names for this service (aliases) and attributes, which are a map of&#xA;(name, value) String pairs.&#xA;&#xA;&lt;p>This class defines the methods {@link #supportsParameter&#xA;supportsParameter()} and {@link #newInstance newInstance()}&#xA;which are used by the Java security framework when it searches for&#xA;suitable services and instantes them. The valid arguments to those&#xA;methods depend on the type of service. For the service types defined&#xA;within J2SE, see the&#xA;&lt;a href=&quot;../../../guide/security/CryptoSpec.html&quot;>&#xA;Java Cryptography Architecture API Specification &amp; Reference &lt;/a>&#xA;for the valid values.&#xA;Note that components outside of J2SE can define additional types of&#xA;services and their behavior.&#xA;&#xA;&lt;p>Instances of this class are immutable.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928309411_557320_6104"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_232529_8519" name="PublicKey" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309421_144005_6111" body="&lt;p>A public key. This interface contains no methods or constants.&#xA;It merely serves to group (and provide type safety for) all public key&#xA;interfaces.&#xA;&#xA;Note: The specialized public key interfaces extend this interface.&#xA;See, for example, the DSAPublicKey interface in&#xA;&lt;code>java.security.interfaces&lt;/code>.&#xA;&#xA;@see Key&#xA;@see PrivateKey&#xA;@see Certificate&#xA;@see Signature#initVerify&#xA;@see java.security.interfaces.DSAPublicKey&#xA;@see java.security.interfaces.RSAPublicKey&#xA;&#xA;@version 1.32 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546690_232529_8519"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_23148_14234" isSubstitutable="true" general="_9_5_f720368_1110473546674_814973_8461"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_944917_8451" name="Identity" clientDependency="_10_5_622020d_1132928321889_554917_14193 _10_5_622020d_1132928321889_219479_14194" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_88950_6006" body="&lt;p>This class represents identities: real-world objects such as people,&#xA;companies or organizations whose identities can be authenticated using&#xA;their public keys. Identities may also be more abstract (or concrete)&#xA;constructs, such as daemon threads or smart cards.&#xA;&#xA;&lt;p>All Identity objects have a name and a public key. Names are&#xA;immutable. Identities may also be scoped. That is, if an Identity is&#xA;specified to have a particular scope, then the name and public&#xA;key of the Identity are unique within that scope.&#xA;&#xA;&lt;p>An Identity also has a set of certificates (all certifying its own&#xA;public key). The Principal names specified in these certificates need&#xA;not be the same, only the key.&#xA;&#xA;&lt;p>An Identity can be subclassed, to include postal and email addresses,&#xA;telephone numbers, images of faces and logos, and so on.&#xA;&#xA;@see IdentityScope&#xA;@see Signer&#xA;@see Principal&#xA;&#xA;@version 1.61&#xA;@author Benjamin Renaud&#xA;@deprecated This class is no longer used. Its functionality has been&#xA;replaced by &lt;code>java.security.KeyStore&lt;/code>, the&#xA;&lt;code>java.security.cert&lt;/code> package, and&#xA;&lt;code>java.security.Principal&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546674_944917_8451"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321889_554917_14193" name="" supplier="_9_5_f720368_1110473546690_967636_8503" client="_9_5_f720368_1110473546674_944917_8451" contract="_9_5_f720368_1110473546690_967636_8503"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321889_219479_14194" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_944917_8451" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_641165_8509" name="PrivilegedActionException">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_610066_6095" body="This exception is thrown by&#xA;&lt;code>doPrivileged(PrivilegedExceptionAction)&lt;/code> and&#xA;&lt;code>doPrivileged(PrivilegedExceptionAction,&#xA;AccessControlContext context)&lt;/code> to indicate&#xA;that the action being performed threw a checked exception.  The exception&#xA;thrown by the action can be obtained by calling the&#xA;&lt;code>getException&lt;/code> method.  In effect, an&#xA;&lt;code>PrivilegedActionException&lt;/code> is a &quot;wrapper&quot;&#xA;for an exception thrown by a privileged action.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;exception thrown&#xA;by the privileged computation&quot; that is provided at construction time and&#xA;accessed via the {@link #getException()} method is now known as the&#xA;&lt;i>cause&lt;/i>, and may be accessed via the {@link Throwable#getCause()}&#xA;method, as well as the aforementioned &quot;legacy method.&quot;&#xA;&#xA;@see PrivilegedExceptionAction&#xA;@see AccessController#doPrivileged(PrivilegedExceptionAction)&#xA;@see AccessController#doPrivileged(PrivilegedExceptionAction,AccessControlContext)&#xA;" annotatedElement="_9_5_f720368_1110473546690_641165_8509"/>
            <generalization xmi:id="_10_5_622020d_1132928321899_737570_14231" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_911762_8493" name="PermissionCollection" clientDependency="_10_5_622020d_1132928321899_889828_14221" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309401_978359_6077" body="Abstract class representing a collection of Permission objects.&#xA;&#xA;&lt;p>With a PermissionCollection, you can:&#xA;&lt;UL>&#xA;&lt;LI> add a permission to the collection using the &lt;code>add&lt;/code> method.&#xA;&lt;LI> check to see if a particular permission is implied in the&#xA;collection, using the &lt;code>implies&lt;/code> method.&#xA;&lt;LI> enumerate all the permissions, using the &lt;code>elements&lt;/code> method.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&#xA;&lt;p>When it is desirable to group together a number of Permission objects&#xA;of the same type, the &lt;code>newPermissionCollection&lt;/code> method on that&#xA;particular type of Permission object should first be called. The default&#xA;behavior (from the Permission class) is to simply return null.&#xA;Subclasses of class Permission override the method if they need to store&#xA;their permissions in a particular PermissionCollection object in order&#xA;to provide the correct semantics when the&#xA;&lt;code>PermissionCollection.implies&lt;/code> method is called.&#xA;If a non-null value is returned, that PermissionCollection must be used.&#xA;If null is returned, then the caller of &lt;code>newPermissionCollection&lt;/code>&#xA;is free to store permissions of the&#xA;given type in any PermissionCollection they choose&#xA;(one that uses a Hashtable, one that uses a Vector, etc).&#xA;&#xA;&lt;p>The PermissionCollection returned by the&#xA;&lt;code>Permission.newPermissionCollection&lt;/code>&#xA;method is a homogeneous collection, which stores only Permission objects&#xA;for a given Permission type.  A PermissionCollection may also be&#xA;heterogeneous.  For example, Permissions is a PermissionCollection&#xA;subclass that represents a collection of PermissionCollections.&#xA;That is, its members are each a homogeneous PermissionCollection.&#xA;For example, a Permissions object might have a FilePermissionCollection&#xA;for all the FilePermission objects, a SocketPermissionCollection for all the&#xA;SocketPermission objects, and so on. Its &lt;code>add&lt;/code> method adds a&#xA;permission to the appropriate collection.&#xA;&#xA;&lt;p>Whenever a permission is added to a heterogeneous PermissionCollection&#xA;such as Permissions, and the PermissionCollection doesn't yet contain a&#xA;PermissionCollection of the specified permission's type, the&#xA;PermissionCollection should call&#xA;the &lt;code>newPermissionCollection&lt;/code> method on the permission's class&#xA;to see if it requires a special PermissionCollection. If&#xA;&lt;code>newPermissionCollection&lt;/code>&#xA;returns null, the PermissionCollection&#xA;is free to store the permission in any type of PermissionCollection it&#xA;desires (one using a Hashtable, one using a Vector, etc.). For example,&#xA;the Permissions object uses a default PermissionCollection implementation&#xA;that stores the permission objects in a Hashtable.&#xA;&#xA;&lt;p> Subclass implementations of PermissionCollection should assume&#xA;that they may be called simultaneously from multiple threads,&#xA;and therefore should be synchronized properly.  Furthermore,&#xA;Enumerations returned via the &lt;code>elements&lt;/code> method are&#xA;not &lt;em>fail-fast&lt;/em>.  Modifications to a collection should not be&#xA;performed while enumerating over that collection.&#xA;&#xA;@see Permission&#xA;@see Permissions&#xA;&#xA;@version 1.35 04/05/05&#xA;&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_889828_14221" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_911762_8493" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_440101_8443" name="DomainCombiner" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309311_556989_5995" body="A &lt;code>DomainCombiner&lt;/code> provides a means to dynamically&#xA;update the ProtectionDomains associated with the current&#xA;&lt;code>AccessControlContext&lt;/code>.&#xA;&#xA;&lt;p> A &lt;code>DomainCombiner&lt;/code> is passed as a parameter to the&#xA;appropriate constructor for &lt;code>AccessControlContext&lt;/code>.&#xA;The newly constructed context is then passed to the&#xA;&lt;code>AccessController.doPrivileged(..., context)&lt;/code> method&#xA;to bind the provided context (and associated &lt;code>DomainCombiner&lt;/code>)&#xA;with the current execution Thread.  Subsequent calls to&#xA;&lt;code>AccessController.getContext&lt;/code> or&#xA;&lt;code>AccessController.checkPermission&lt;/code>&#xA;cause the &lt;code>DomainCombiner.combine&lt;/code> to get invoked.&#xA;&#xA;&lt;p> The combine method takes two arguments.  The first argument represents&#xA;an array of ProtectionDomains from the current execution Thread,&#xA;since the most recent call to &lt;code>AccessController.doPrivileged&lt;/code>.&#xA;If no call to doPrivileged was made, then the first argument will contain&#xA;all the ProtectionDomains from the current execution Thread.&#xA;The second argument represents an array of inherited ProtectionDomains,&#xA;which may be &lt;code>null&lt;/code>.  ProtectionDomains may be inherited&#xA;from a parent Thread, or from a privileged context.  If no call to&#xA;doPrivileged was made, then the second argument will contain the&#xA;ProtectionDomains inherited from the parent Thread.  If one or more calls&#xA;to doPrivileged were made, and the most recent call was to&#xA;doPrivileged(action, context), then the second argument will contain the&#xA;ProtectionDomains from the privileged context.  If the most recent call&#xA;was to doPrivileged(action), then there is no privileged context,&#xA;and the second argument will be &lt;code>null&lt;/code>.&#xA;&#xA;&lt;p> The &lt;code>combine&lt;/code> method investigates the two input arrays&#xA;of ProtectionDomains and returns a single array containing the updated&#xA;ProtectionDomains.  In the simplest case, the &lt;code>combine&lt;/code>&#xA;method merges the two stacks into one.  In more complex cases,&#xA;the &lt;code>combine&lt;/code> method returns a modified&#xA;stack of ProtectionDomains.  The modification may have added new&#xA;ProtectionDomains, removed certain ProtectionDomains, or simply&#xA;updated existing ProtectionDomains.  Re-ordering and other optimizations&#xA;to the ProtectionDomains are also permitted.  Typically the&#xA;&lt;code>combine&lt;/code> method bases its updates on the information&#xA;encapsulated in the &lt;code>DomainCombiner&lt;/code>.&#xA;&#xA;&lt;p> After the &lt;code>AccessController.getContext&lt;/code> method&#xA;receives the combined stack of ProtectionDomains back from&#xA;the &lt;code>DomainCombiner&lt;/code>, it returns a new&#xA;AccessControlContext that has both the combined ProtectionDomains&#xA;as well as the &lt;code>DomainCombiner&lt;/code>.&#xA;&#xA;@see AccessController&#xA;@see AccessControlContext&#xA;@version 1.7, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546674_440101_8443"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_61512_8469" name="KeyManagementException">
            <ownedComment xmi:id="_10_5_622020d_1132928309321_85402_6027" body="This is the general key management exception for all operations&#xA;dealing with key management. Examples of subclasses of&#xA;KeyManagementException that developers might create for&#xA;giving more detailed information could include:&#xA;&#xA;&lt;ul>&#xA;&lt;li>KeyIDConflictException&#xA;&lt;li>KeyAuthorizationFailureException&#xA;&lt;li>ExpiredKeyException&#xA;&lt;/ul>&#xA;&#xA;@version 1.18 03/12/19&#xA;@author Benjamin Renaud&#xA;&#xA;@see Key&#xA;@see KeyException&#xA;" annotatedElement="_9_5_f720368_1110473546690_61512_8469"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_275269_14201" isSubstitutable="true" general="_9_5_f720368_1110473546674_737347_8463"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_783711_8535" name="SignatureSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309461_819916_6128" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>Signature&lt;/code> class, which is used to provide the&#xA;functionality of a digital signature algorithm. Digital signatures are used&#xA;for authentication and integrity assurance of digital data.&#xA;.&#xA;&lt;p> All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a particular signature algorithm.&#xA;&#xA;@author Benjamin Renaud&#xA;&#xA;@version 1.24, 05/18/04&#xA;&#xA;@see Signature&#xA;" annotatedElement="_9_5_f720368_1110473546690_783711_8535"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_692833_8419" name="AlgorithmParameterGeneratorSpi" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309281_913773_5962" body="This class defines the &lt;i>Service Provider Interface&lt;/i> (&lt;b>SPI&lt;/b>)&#xA;for the &lt;code>AlgorithmParameterGenerator&lt;/code> class, which&#xA;is used to generate a set of parameters to be used with a certain algorithm.&#xA;&#xA;&lt;p> All the abstract methods in this class must be implemented by each&#xA;cryptographic service provider who wishes to supply the implementation&#xA;of a parameter generator for a particular algorithm.&#xA;&#xA;&lt;p> In case the client does not explicitly initialize the&#xA;AlgorithmParameterGenerator (via a call to an &lt;code>engineInit&lt;/code>&#xA;method), each provider must supply (and document) a default initialization.&#xA;For example, the Sun provider uses a default modulus prime size of 1024&#xA;bits for the generation of DSA parameters.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.14, 12/19/03&#xA;&#xA;@see AlgorithmParameterGenerator&#xA;@see AlgorithmParameters&#xA;@see java.security.spec.AlgorithmParameterSpec&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_692833_8419"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_958833_8513" name="ProtectionDomain">
            <ownedComment xmi:id="_10_5_622020d_1132928309411_377516_6102" body="&lt;p>&#xA;This ProtectionDomain class encapsulates the characteristics of a domain,&#xA;which encloses a set of classes whose instances are granted a set&#xA;of permissions when being executed on behalf of a given set of Principals.&#xA;&lt;p>&#xA;A static set of permissions can be bound to a ProtectionDomain when it is&#xA;constructed; such permissions are granted to the domain regardless of the&#xA;Policy in force. However, to support dynamic security policies, a&#xA;ProtectionDomain can also be constructed such that it is dynamically&#xA;mapped to a set of permissions by the current Policy whenever a permission&#xA;is checked.&#xA;&lt;p>&#xA;&#xA;@version &#x9;1.45, 12/19/03&#xA;@author Li Gong&#xA;@author Roland Schemers&#xA;@author Gary Ellison&#xA;" annotatedElement="_9_5_f720368_1110473546690_958833_8513"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_612273_8471" name="KeyPair" clientDependency="_10_5_622020d_1132928321889_501890_14202" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309331_228807_6029" body="This class is a simple holder for a key pair (a public key and a&#xA;private key). It does not enforce any security, and, when initialized,&#xA;should be treated like a PrivateKey.&#xA;&#xA;@see PublicKey&#xA;@see PrivateKey&#xA;&#xA;@version 1.15 03/12/19&#xA;@author Benjamin Renaud&#xA;" annotatedElement="_9_5_f720368_1110473546690_612273_8471"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321889_501890_14202" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_612273_8471" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_235910_8479" name="KeyStoreException">
            <ownedComment xmi:id="_10_5_622020d_1132928309351_937112_6063" body="This is the generic KeyStore exception.&#xA;&#xA;@author Jan Luehe&#xA;&#xA;@version 1.12, 12/19/03&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_235910_8479"/>
            <generalization xmi:id="_10_5_622020d_1132928321889_651380_14214" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_144720_8491" name="Permission" clientDependency="_10_5_622020d_1132928321899_977028_14220 _10_5_622020d_1132928321899_760110_14219" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309391_857745_6075" body="Abstract class for representing access to a system resource.&#xA;All permissions have a name (whose interpretation depends on the subclass),&#xA;as well as abstract functions for defining the semantics of the&#xA;particular Permission subclass.&#xA;&#xA;&lt;p>Most Permission objects also include an &quot;actions&quot; list that tells the actions&#xA;that are permitted for the object.  For example,&#xA;for a &lt;code>java.io.FilePermission&lt;/code> object, the permission name is&#xA;the pathname of a file (or directory), and the actions list&#xA;(such as &quot;read, write&quot;) specifies which actions are granted for the&#xA;specified file (or for files in the specified directory).&#xA;The actions list is optional for Permission objects, such as&#xA;&lt;code>java.lang.RuntimePermission&lt;/code>,&#xA;that don't need such a list; you either have the named permission (such&#xA;as &quot;system.exit&quot;) or you don't.&#xA;&#xA;&lt;p>An important method that must be implemented by each subclass is&#xA;the &lt;code>implies&lt;/code> method to compare Permissions. Basically,&#xA;&quot;permission p1 implies permission p2&quot; means that&#xA;if one is granted permission p1, one is naturally granted permission p2.&#xA;Thus, this is not an equality test, but rather more of a&#xA;subset test.&#xA;&#xA;&lt;P> Permission objects are similar to String objects in that they&#xA;are immutable once they have been created. Subclasses should not&#xA;provide methods that can change the state of a permission&#xA;once it has been created.&#xA;&#xA;@see Permissions&#xA;@see PermissionCollection&#xA;&#xA;@version 1.39 03/12/19&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_144720_8491"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_760110_14219" name="" supplier="_9_5_f720368_1110473546674_598634_8447" client="_9_5_f720368_1110473546690_144720_8491" contract="_9_5_f720368_1110473546674_598634_8447"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321899_977028_14220" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_144720_8491" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547753_914338_18866" name="sql">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_7575_8569" name="DriverInfo" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_674828_8587" name="SQLException">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_224786_6188" body="&lt;P>An exception that provides information on a database access&#xA;error or other errors.&#xA;&#xA;&lt;P>Each &lt;code>SQLException&lt;/code> provides several kinds of information:&#xA;&lt;UL>&#xA;&lt;LI> a string describing the error.  This is used as the Java Exception&#xA;message, available via the method &lt;code>getMesage&lt;/code>.&#xA;&lt;LI> a &quot;SQLstate&quot; string, which follows either the XOPEN SQLstate conventions&#xA;or the SQL 99 conventions.&#xA;The values of the SQLState string are described in the appropriate spec.&#xA;The &lt;code>DatabaseMetaData&lt;/code> method &lt;code>getSQLStateType&lt;/code>&#xA;can be used to discover whether the driver returns the XOPEN type or&#xA;the SQL 99 type.&#xA;&lt;LI> an integer error code that is specific to each vendor.  Normally this will&#xA;be the actual error code returned by the underlying database.&#xA;&lt;LI> a chain to a next Exception.  This can be used to provide additional&#xA;error information.&#xA;&lt;/UL>&#xA;" annotatedElement="_9_5_f720368_1110473546690_674828_8587"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_224592_14257" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_664158_8585" name="SQLData" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_804763_6186" body="The interface used for the custom mapping of an SQL user-defined type (UDT) to&#xA;a class in the Java programming language. The class object for a class&#xA;implementing the &lt;code>SQLData&lt;/code> interface will be entered in the&#xA;appropriate &lt;code>Connection&lt;/code> object's type map along with the SQL&#xA;name of the UDT for which it is a custom mapping.&#xA;&lt;P>&#xA;Typically, a &lt;code>SQLData&lt;/code> implementation&#xA;will define a field for each attribute of an SQL structured type or a&#xA;single field for an SQL &lt;code>DISTINCT&lt;/code> type. When the UDT is&#xA;retrieved from a data source with the &lt;code>ResultSet.getObject&lt;/code>&#xA;method, it will be mapped as an instance of this class.  A programmer&#xA;can operate on this class instance just as on any other object in the&#xA;Java programming language and then store any changes made to it by&#xA;calling the &lt;code>PreparedStatement.setObject&lt;/code> method,&#xA;which will map it back to the SQL type.&#xA;&lt;p>&#xA;It is expected that the implementation of the class for a custom&#xA;mapping will be done by a tool.  In a typical implementation, the&#xA;programmer would simply supply the name of the SQL UDT, the name of&#xA;the class to which it is being mapped, and the names of the fields to&#xA;which each of the attributes of the UDT is to be mapped.  The tool will use&#xA;this information to implement the &lt;code>SQLData.readSQL&lt;/code> and&#xA;&lt;code>SQLData.writeSQL&lt;/code> methods.  The &lt;code>readSQL&lt;/code> method&#xA;calls the appropriate &lt;code>SQLInput&lt;/code> methods to read&#xA;each attribute from an &lt;code>SQLInput&lt;/code> object, and the&#xA;&lt;code>writeSQL&lt;/code> method calls &lt;code>SQLOutput&lt;/code> methods&#xA;to write each attribute back to the data source via an&#xA;&lt;code>SQLOutput&lt;/code> object.&#xA;&lt;P>&#xA;An application programmer will not normally call &lt;code>SQLData&lt;/code> methods&#xA;directly, and the &lt;code>SQLInput&lt;/code> and &lt;code>SQLOutput&lt;/code> methods&#xA;are called internally by &lt;code>SQLData&lt;/code> methods, not by application code.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_664158_8585"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_911776_8551" name="Blob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_186624_6153" body="The representation (mapping) in&#xA;the Java&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> programming&#xA;language of an SQL&#xA;&lt;code>BLOB&lt;/code> value.  An SQL &lt;code>BLOB&lt;/code> is a built-in type&#xA;that stores a Binary Large Object as a column value in a row of&#xA;a database table. By default drivers implement &lt;code>Blob&lt;/code> using&#xA;an SQL &lt;code>locator(BLOB)&lt;/code>, which means that a&#xA;&lt;code>Blob&lt;/code> object contains a logical pointer to the&#xA;SQL &lt;code>BLOB&lt;/code> data rather than the data itself.&#xA;A &lt;code>Blob&lt;/code> object is valid for the duration of the&#xA;transaction in which is was created.&#xA;&#xA;&lt;P>Methods in the interfaces {@link ResultSet},&#xA;{@link CallableStatement}, and {@link PreparedStatement}, such as&#xA;&lt;code>getBlob&lt;/code> and &lt;code>setBlob&lt;/code> allow a programmer to&#xA;access an SQL &lt;code>BLOB&lt;/code> value.&#xA;The &lt;code>Blob&lt;/code> interface provides methods for getting the&#xA;length of an SQL &lt;code>BLOB&lt;/code> (Binary Large Object) value,&#xA;for materializing a &lt;code>BLOB&lt;/code> value on the client, and for&#xA;determining the position of a pattern of bytes within a&#xA;&lt;code>BLOB&lt;/code> value. In addition, this interface has methods for updating&#xA;a &lt;code>BLOB&lt;/code> value.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_911776_8551"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_186067_8563" name="Date">
            <ownedComment xmi:id="_10_5_622020d_1132928309491_860876_6165" body="&lt;P>A thin wrapper around a millisecond value that allows&#xA;JDBC to identify this as an SQL &lt;code>DATE&lt;/code> value.  A&#xA;milliseconds value represents the number of milliseconds that&#xA;have passed since January 1, 1970 00:00:00.000 GMT.&#xA;&lt;p>&#xA;To conform with the definition of SQL &lt;code>DATE&lt;/code>, the&#xA;millisecond values wrapped by a &lt;code>java.sql.Date&lt;/code> instance&#xA;must be 'normalized' by setting the&#xA;hours, minutes, seconds, and milliseconds to zero in the particular&#xA;time zone with which the instance is associated.&#xA;" annotatedElement="_9_5_f720368_1110473546690_186067_8563"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_497919_14255" isSubstitutable="true" general="_9_5_f720368_1110473546706_999299_8853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_682982_8601" name="Time">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_824958_6202" body="&lt;P>A thin wrapper around the &lt;code>java.util.Date&lt;/code> class that allows the JDBC&#xA;API to identify this as an SQL &lt;code>TIME&lt;/code> value. The &lt;code>Time&lt;/code>&#xA;class adds formatting and&#xA;parsing operations to support the JDBC escape syntax for time&#xA;values.&#xA;&lt;p>The date components should be set to the &quot;zero epoch&quot;&#xA;value of January 1, 1970 and should not be accessed.&#xA;" annotatedElement="_9_5_f720368_1110473546690_682982_8601"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_428976_14260" isSubstitutable="true" general="_9_5_f720368_1110473546706_999299_8853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_726631_8553" name="CallableStatement" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_608656_6155" body="The interface used to execute SQL stored procedures.  The JDBC API&#xA;provides a stored procedure SQL escape syntax that allows stored procedures&#xA;to be called in a standard way for all RDBMSs. This escape syntax has one&#xA;form that includes a result parameter and one that does not. If used, the result&#xA;parameter must be registered as an OUT parameter. The other parameters&#xA;can be used for input, output or both. Parameters are referred to&#xA;sequentially, by number, with the first parameter being 1.&#xA;&lt;PRE>&#xA;{?= call &lt;procedure-name>[&lt;arg1>,&lt;arg2>, ...]}&#xA;{call &lt;procedure-name>[&lt;arg1>,&lt;arg2>, ...]}&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;IN parameter values are set using the &lt;code>set&lt;/code> methods inherited from&#xA;{@link PreparedStatement}.  The type of all OUT parameters must be&#xA;registered prior to executing the stored procedure; their values&#xA;are retrieved after execution via the &lt;code>get&lt;/code> methods provided here.&#xA;&lt;P>&#xA;A &lt;code>CallableStatement&lt;/code> can return one {@link ResultSet} object or&#xA;multiple &lt;code>ResultSet&lt;/code> objects.  Multiple&#xA;&lt;code>ResultSet&lt;/code> objects are handled using operations&#xA;inherited from {@link Statement}.&#xA;&lt;P>&#xA;For maximum portability, a call's &lt;code>ResultSet&lt;/code> objects and&#xA;update counts should be processed prior to getting the values of output&#xA;parameters.&#xA;&lt;P>&#xA;&#xA;@see Connection#prepareCall&#xA;@see ResultSet&#xA;" annotatedElement="_9_5_f720368_1110473546690_726631_8553"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_318896_14253" isSubstitutable="true" general="_9_5_f720368_1110473546690_710577_8575"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_766960_8589" name="SQLInput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_986166_6190" body="An input stream that contains a stream of values representing an&#xA;instance of an SQL structured type or an SQL distinct type.&#xA;This interface, used only for custom mapping, is used by the driver&#xA;behind the scenes, and a programmer never directly invokes&#xA;&lt;code>SQLInput&lt;/code> methods. The &lt;i>reader&lt;/i> methods&#xA;(&lt;code>readLong&lt;/code>, &lt;code>readBytes&lt;/code>, and so on)&#xA;provide a way to read the values in an &lt;code>SQLInput&lt;/code> object.&#xA;The method &lt;code>wasNull&lt;/code> is used to determine whether the&#xA;the last value read was SQL &lt;code>NULL&lt;/code>.&#xA;&lt;P>When the method &lt;code>getObject&lt;/code> is called with an&#xA;object of a class implementing the interface &lt;code>SQLData&lt;/code>,&#xA;the JDBC driver calls the method &lt;code>SQLData.getSQLType&lt;/code>&#xA;to determine the SQL type of the user-defined type (UDT)&#xA;being custom mapped. The driver&#xA;creates an instance of &lt;code>SQLInput&lt;/code>, populating it with the&#xA;attributes of the UDT.  The driver then passes the input&#xA;stream to the method &lt;code>SQLData.readSQL&lt;/code>, which in turn&#xA;calls the &lt;code>SQLInput&lt;/code> reader methods&#xA;in its implementation for reading the&#xA;attributes from the input stream.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_766960_8589"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_962665_8559" name="DatabaseMetaData" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_243274_6161" body="Comprehensive information about the database as a whole.&#xA;&lt;P>&#xA;This interface is implemented by driver vendors to let users know the capabilities&#xA;of a Database Management System (DBMS) in combination with&#xA;the driver based on JDBC&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> technology&#xA;(&quot;JDBC driver&quot;) that is used with it.  Different relational DBMSs often support&#xA;different features, implement features in different ways, and use different&#xA;data types.  In addition, a driver may implement a feature on top of what the&#xA;DBMS offers.  Information returned by methods in this interface applies&#xA;to the capabilities of a particular driver and a particular DBMS working&#xA;together. Note that as used in this documentation, the term &quot;database&quot; is&#xA;used generically to refer to both the driver and DBMS.&#xA;&lt;P>&#xA;A user for this interface is commonly a tool that needs to discover how to&#xA;deal with the underlying DBMS.  This is especially true for applications&#xA;that are intended to be used with more than one DBMS. For example, a tool might use the method&#xA;&lt;code>getTypeInfo&lt;/code> to find out what data types can be used in a&#xA;&lt;code>CREATE TABLE&lt;/code> statement.  Or a user might call the method&#xA;&lt;code>supportsCorrelatedSubqueries&lt;/code> to see if it is possible to use&#xA;a correlated subquery or &lt;code>supportsBatchUpdates&lt;/code> to see if it is&#xA;possible to use batch updates.&#xA;&lt;P>&#xA;Some &lt;code>DatabaseMetaData&lt;/code> methods return lists of information&#xA;in the form of &lt;code>ResultSet&lt;/code> objects.&#xA;Regular &lt;code>ResultSet&lt;/code> methods, such as&#xA;&lt;code>getString&lt;/code> and &lt;code>getInt&lt;/code>, can be used&#xA;to retrieve the data from these &lt;code>ResultSet&lt;/code> objects.  If&#xA;a given form of metadata is not available, the &lt;code>ResultSet&lt;/code>&#xA;getter methods throw an &lt;code>SQLException&lt;/code>.&#xA;&lt;P>&#xA;Some &lt;code>DatabaseMetaData&lt;/code> methods take arguments that are&#xA;String patterns.  These arguments all have names such as fooPattern.&#xA;Within a pattern String, &quot;%&quot; means match any substring of 0 or more&#xA;characters, and &quot;_&quot; means match any one character. Only metadata&#xA;entries matching the search pattern are returned. If a search pattern&#xA;argument is set to &lt;code>null&lt;/code>, that argument's criterion will&#xA;be dropped from the search.&#xA;&lt;P>&#xA;A method that gets information about a feature that the driver does not&#xA;support will throw an &lt;code>SQLException&lt;/code>.&#xA;In the case of methods that return a &lt;code>ResultSet&lt;/code>&#xA;object, either a &lt;code>ResultSet&lt;/code> object (which may be empty) is&#xA;returned or an &lt;code>SQLException&lt;/code> is thrown.&#xA;" annotatedElement="_9_5_f720368_1110473546690_962665_8559"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_540240_8605" name="Types">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_782845_6206" body="&lt;P>The class that defines the constants that are used to identify generic&#xA;SQL types, called JDBC types.&#xA;The actual type constant values are equivalent to those in XOPEN.&#xA;&lt;p>&#xA;This class is never instantiated.&#xA;" annotatedElement="_9_5_f720368_1110473546690_540240_8605"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_872686_8547" name="Array" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_361276_6149" body="The mapping in the Java programming language for the SQL type&#xA;&lt;code>ARRAY&lt;/code>.&#xA;By default, an &lt;code>Array&lt;/code> value is a transaction-duration&#xA;reference to an SQL &lt;code>ARRAY&lt;/code> value.  By default, an &lt;code>Array&lt;/code>&#xA;object is implemented using an SQL LOCATOR(array) internally, which&#xA;means that an &lt;code>Array&lt;/code> object contains a logical pointer&#xA;to the data in the SQL &lt;code>ARRAY&lt;/code> value rather&#xA;than containing the &lt;code>ARRAY&lt;/code> value's data.&#xA;&lt;p>&#xA;The &lt;code>Array&lt;/code> interface provides methods for bringing an SQL&#xA;&lt;code>ARRAY&lt;/code> value's data to the client as either an array or a&#xA;&lt;code>ResultSet&lt;/code> object.&#xA;If the elements of the SQL &lt;code>ARRAY&lt;/code>&#xA;are a UDT, they may be custom mapped.  To create a custom mapping,&#xA;a programmer must do two things:&#xA;&lt;ul>&#xA;&lt;li>create a class that implements the {@link SQLData}&#xA;interface for the UDT to be custom mapped.&#xA;&lt;li>make an entry in a type map that contains&#xA;&lt;ul>&#xA;&lt;li>the fully-qualified SQL type name of the UDT&#xA;&lt;li>the &lt;code>Class&lt;/code> object for the class implementing&#xA;&lt;code>SQLData&lt;/code>&#xA;&lt;/ul>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;When a type map with an entry for&#xA;the base type is supplied to the methods &lt;code>getArray&lt;/code>&#xA;and &lt;code>getResultSet&lt;/code>, the mapping&#xA;it contains will be used to map the elements of the &lt;code>ARRAY&lt;/code> value.&#xA;If no type map is supplied, which would typically be the case,&#xA;the connection's type map is used by default.&#xA;If the connection's type map or a type map supplied to a method has no entry&#xA;for the base type, the elements are mapped according to the standard mapping.&#xA;&lt;p>&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_872686_8547"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_841834_8599" name="Struct" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_200687_6200" body="&lt;p>The standard mapping in the Java programming language for an SQL&#xA;structured type. A &lt;code>Struct&lt;/code> object contains a&#xA;value for each attribute of the SQL structured type that&#xA;it represents.&#xA;By default, an instance of&lt;code>Struct&lt;/code> is valid as long as the&#xA;application has a reference to it.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_841834_8599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_539611_8595" name="SQLWarning">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_981995_6196" body="&lt;P>An exception that provides information on  database access&#xA;warnings. Warnings are silently chained to the object whose method&#xA;caused it to be reported.&#xA;&lt;P>&#xA;Warnings may be retrieved from &lt;code>Connection&lt;/code>, &lt;code>Statement&lt;/code>,&#xA;and &lt;code>ResultSet&lt;/code> objects.  Trying to retrieve a warning on a&#xA;connection after it has been closed will cause an exception to be thrown.&#xA;Similarly, trying to retrieve a warning on a statement after it has been&#xA;closed or on a result set after it has been closed will cause&#xA;an exception to be thrown. Note that closing a statement also&#xA;closes a result set that it might have produced.&#xA;&#xA;@see Connection#getWarnings&#xA;@see Statement#getWarnings&#xA;@see ResultSet#getWarnings&#xA;" annotatedElement="_9_5_f720368_1110473546690_539611_8595"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_630467_14259" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_588872_8581" name="ResultSetMetaData" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_209803_6182" body="An object that can be used to get information about the types&#xA;and properties of the columns in a &lt;code>ResultSet&lt;/code> object.&#xA;The following code fragment creates the &lt;code>ResultSet&lt;/code> object rs,&#xA;creates the &lt;code>ResultSetMetaData&lt;/code> object rsmd, and uses rsmd&#xA;to find out how many columns rs has and whether the first column in rs&#xA;can be used in a &lt;code>WHERE&lt;/code> clause.&#xA;&lt;PRE>&#xA;&#xA;ResultSet rs = stmt.executeQuery(&quot;SELECT a, b, c FROM TABLE2&quot;);&#xA;ResultSetMetaData rsmd = rs.getMetaData();&#xA;int numberOfColumns = rsmd.getColumnCount();&#xA;boolean b = rsmd.isSearchable(1);&#xA;&#xA;&lt;/PRE>&#xA;" annotatedElement="_9_5_f720368_1110473546690_588872_8581"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_539553_8597" name="Statement" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_314171_6198" body="&lt;P>The object used for executing a static SQL statement&#xA;and returning the results it produces.&#xA;&lt;P>&#xA;By default, only one &lt;code>ResultSet&lt;/code> object per &lt;code>Statement&lt;/code>&#xA;object can be open at the same time. Therefore, if the reading of one&#xA;&lt;code>ResultSet&lt;/code> object is interleaved&#xA;with the reading of another, each must have been generated by&#xA;different &lt;code>Statement&lt;/code> objects. All execution methods in the&#xA;&lt;code>Statement&lt;/code> interface implicitly close a statment's current&#xA;&lt;code>ResultSet&lt;/code> object if an open one exists.&#xA;&#xA;@see Connection#createStatement&#xA;@see ResultSet&#xA;" annotatedElement="_9_5_f720368_1110473546690_539553_8597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_184416_8557" name="Connection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_648048_6159" body="&lt;P>A connection (session) with a specific&#xA;database. SQL statements are executed and results are returned&#xA;within the context of a connection.&#xA;&lt;P>&#xA;A &lt;code>Connection&lt;/code> object's database is able to provide information&#xA;describing its tables, its supported SQL grammar, its stored&#xA;procedures, the capabilities of this connection, and so on. This&#xA;information is obtained with the &lt;code>getMetaData&lt;/code> method.&#xA;&#xA;&lt;P>&lt;B>Note:&lt;/B> By default a &lt;code>Connection&lt;/code> object is in&#xA;auto-commit mode, which means that it automatically commits changes&#xA;after executing each statement. If auto-commit mode has been&#xA;disabled, the method &lt;code>commit&lt;/code> must be called explicitly in&#xA;order to commit changes; otherwise, database changes will not be saved.&#xA;&lt;P>&#xA;A new &lt;code>Connection&lt;/code> object created using the JDBC 2.1 core API&#xA;has an initially empty type map associated with it. A user may enter a&#xA;custom mapping for a UDT in this type map.&#xA;When a UDT is retrieved from a data source with the&#xA;method &lt;code>ResultSet.getObject&lt;/code>, the &lt;code>getObject&lt;/code> method&#xA;will check the connection's type map to see if there is an entry for that&#xA;UDT.  If so, the &lt;code>getObject&lt;/code> method will map the UDT to the&#xA;class indicated.  If there is no entry, the UDT will be mapped using the&#xA;standard mapping.&#xA;&lt;p>&#xA;A user may create a new type map, which is a &lt;code>java.util.Map&lt;/code>&#xA;object, make an entry in it, and pass it to the &lt;code>java.sql&lt;/code>&#xA;methods that can perform custom mapping.  In this case, the method&#xA;will use the given type map instead of the one associated with&#xA;the connection.&#xA;&lt;p>&#xA;For example, the following code fragment specifies that the SQL&#xA;type &lt;code>ATHLETES&lt;/code> will be mapped to the class&#xA;&lt;code>Athletes&lt;/code> in the Java programming language.&#xA;The code fragment retrieves the type map for the &lt;code>Connection&#xA;&lt;/code> object &lt;code>con&lt;/code>, inserts the entry into it, and then sets&#xA;the type map with the new entry as the connection's type map.&#xA;&lt;pre>&#xA;java.util.Map map = con.getTypeMap();&#xA;map.put(&quot;mySchemaName.ATHLETES&quot;, Class.forName(&quot;Athletes&quot;));&#xA;con.setTypeMap(map);&#xA;&lt;/pre>&#xA;&#xA;@see DriverManager#getConnection&#xA;@see Statement&#xA;@see ResultSet&#xA;@see DatabaseMetaData&#xA;" annotatedElement="_9_5_f720368_1110473546690_184416_8557"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_605709_8583" name="Savepoint" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_647543_6184" body="The representation of a savepoint, which is a point within&#xA;the current transaction that can be referenced from the&#xA;&lt;code>Connection.rollback&lt;/code> method. When a transaction&#xA;is rolled back to a savepoint all changes made after that&#xA;savepoint are undone.&#xA;&lt;p>&#xA;Savepoints can be either named or unnamed. Unnamed savepoints&#xA;are identified by an ID generated by the underlying data source.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_605709_8583"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_710577_8575" name="PreparedStatement" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309501_331884_6176" body="An object that represents a precompiled SQL statement.&#xA;&lt;P>A SQL statement is precompiled and stored in a&#xA;&lt;code>PreparedStatement&lt;/code> object. This object can then be used to&#xA;efficiently execute this statement multiple times.&#xA;&#xA;&lt;P>&lt;B>Note:&lt;/B> The setter methods (&lt;code>setShort&lt;/code>, &lt;code>setString&lt;/code>,&#xA;and so on) for setting IN parameter values&#xA;must specify types that are compatible with the defined SQL type of&#xA;the input parameter. For instance, if the IN parameter has SQL type&#xA;&lt;code>INTEGER&lt;/code>, then the method &lt;code>setInt&lt;/code> should be used.&#xA;&#xA;&lt;p>If arbitrary parameter type conversions are required, the method&#xA;&lt;code>setObject&lt;/code> should be used with a target SQL type.&#xA;&lt;P>&#xA;In the following example of setting a parameter, &lt;code>con&lt;/code> represents&#xA;an active connection:&#xA;&lt;PRE>&#xA;PreparedStatement pstmt = con.prepareStatement(&quot;UPDATE EMPLOYEES&#xA;SET SALARY = ? WHERE ID = ?&quot;);&#xA;pstmt.setBigDecimal(1, 153833.00)&#xA;pstmt.setInt(2, 110592)&#xA;&lt;/PRE>&#xA;&#xA;@see Connection#prepareStatement&#xA;@see ResultSet&#xA;" annotatedElement="_9_5_f720368_1110473546690_710577_8575"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_464610_14256" isSubstitutable="true" general="_9_5_f720368_1110473546690_539553_8597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_362831_8577" name="Ref" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309501_201086_6178" body="The mapping in the Java programming language of an SQL &lt;code>REF&lt;/code>&#xA;value, which is a reference to an SQL structured type value in the database.&#xA;&lt;P>&#xA;SQL &lt;code>REF&lt;/code> values are stored in a table that contains&#xA;instances of a referenceable SQL structured type, and each &lt;code>REF&lt;/code>&#xA;value is a unique identifier for one instance in that table.&#xA;An SQL &lt;code>REF&lt;/code> value may be used in place of the&#xA;SQL structured type it references, either as a column value in a&#xA;table or an attribute value in a structured type.&#xA;&lt;P>&#xA;Because an SQL &lt;code>REF&lt;/code> value is a logical pointer to an&#xA;SQL structured type, a &lt;code>Ref&lt;/code> object is by default also a logical&#xA;pointer. Thus, retrieving an SQL &lt;code>REF&lt;/code> value as&#xA;a &lt;code>Ref&lt;/code> object does not materialize&#xA;the attributes of the structured type on the client.&#xA;&lt;P>&#xA;A &lt;code>Ref&lt;/code> object can be stored in the database using the&#xA;&lt;code>PreparedStatement.setRef&lt;/code> method.&#xA;&#xA;@see Struct&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_362831_8577"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_457539_8573" name="ParameterMetaData" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309491_191111_6174" body="An object that can be used to get information about the types&#xA;and properties of the parameters in a &lt;code>PreparedStatement&lt;/code> object.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_457539_8573"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_728645_8579" name="ResultSet" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_476102_6180" body="A table of data representing a database result set, which&#xA;is usually generated by executing a statement that queries the database.&#xA;&#xA;&lt;P>A &lt;code>ResultSet&lt;/code> object  maintains a cursor pointing&#xA;to its current row of data.  Initially the cursor is positioned&#xA;before the first row. The &lt;code>next&lt;/code> method moves the&#xA;cursor to the next row, and because it returns &lt;code>false&lt;/code>&#xA;when there are no more rows in the &lt;code>ResultSet&lt;/code> object,&#xA;it can be used in a &lt;code>while&lt;/code> loop to iterate through&#xA;the result set.&#xA;&lt;P>&#xA;A default &lt;code>ResultSet&lt;/code> object is not updatable and&#xA;has a cursor that moves forward only.  Thus, you can&#xA;iterate through it only once and only from the first row to the&#xA;last row. It is possible to&#xA;produce &lt;code>ResultSet&lt;/code> objects that are scrollable and/or&#xA;updatable.  The following code fragment, in which &lt;code>con&lt;/code>&#xA;is a valid &lt;code>Connection&lt;/code> object, illustrates how to make&#xA;a result set that is scrollable and insensitive to updates by others, and&#xA;that is updatable. See &lt;code>ResultSet&lt;/code> fields for other&#xA;options.&#xA;&lt;PRE>&#xA;&#xA;Statement stmt = con.createStatement(&#xA;ResultSet.TYPE_SCROLL_INSENSITIVE,&#xA;ResultSet.CONCUR_UPDATABLE);&#xA;ResultSet rs = stmt.executeQuery(&quot;SELECT a, b FROM TABLE2&quot;);&#xA;rs will be scrollable, will not show changes made by others,&#xA;and will be updatable&#xA;&#xA;&lt;/PRE>&#xA;The &lt;code>ResultSet&lt;/code> interface provides&#xA;&lt;i>getter&lt;/i> methods (&lt;code>getBoolean&lt;/code>, &lt;code>getLong&lt;/code>, and so on)&#xA;for retrieving column values from the current row.&#xA;Values can be retrieved using either the index number of the&#xA;column or the name of the column.  In general, using the&#xA;column index will be more efficient.  Columns are numbered from 1.&#xA;For maximum portability, result set columns within each row should be&#xA;read in left-to-right order, and each column should be read only once.&#xA;&#xA;&lt;P>For the getter methods, a JDBC driver attempts&#xA;to convert the underlying data to the Java type specified in the&#xA;getter method and returns a suitable Java value.  The JDBC specification&#xA;has a table showing the allowable mappings from SQL types to Java types&#xA;that can be used by the &lt;code>ResultSet&lt;/code> getter methods.&#xA;&lt;P>&#xA;&lt;P>Column names used as input to getter methods are case&#xA;insensitive.  When a getter method is called  with&#xA;a column name and several columns have the same name,&#xA;the value of the first matching column will be returned.&#xA;The column name option is&#xA;designed to be used when column names are used in the SQL&#xA;query that generated the result set.&#xA;For columns that are NOT explicitly named in the query, it&#xA;is best to use column numbers. If column names are used, there is&#xA;no way for the programmer to guarantee that they actually refer to&#xA;the intended columns.&#xA;&lt;P>&#xA;A set of updater methods were added to this interface&#xA;in the JDBC 2.0 API (JDK 1.2).&#xA;The comments regarding parameters&#xA;to the getter methods also apply to parameters to the&#xA;updater methods.&#xA;&lt;P>&#xA;The updater methods may be used in two ways:&#xA;&lt;ol>&#xA;&lt;LI>to update a column value in the current row.  In a scrollable&#xA;&lt;code>ResultSet&lt;/code> object, the cursor can be moved backwards&#xA;and forwards, to an absolute position, or to a position&#xA;relative to the current row.&#xA;The following code fragment updates the &lt;code>NAME&lt;/code> column&#xA;in the fifth row of the &lt;code>ResultSet&lt;/code> object&#xA;&lt;code>rs&lt;/code> and then uses the method &lt;code>updateRow&lt;/code>&#xA;to update the data source table from which &lt;code>rs&lt;/code> was derived.&#xA;&lt;PRE>&#xA;&#xA;rs.absolute(5); // moves the cursor to the fifth row of rs&#xA;rs.updateString(&quot;NAME&quot;, &quot;AINSWORTH&quot;); // updates the&#xA;&lt;code>NAME&lt;/code> column of row 5 to be &lt;code>AINSWORTH&lt;/code>&#xA;rs.updateRow(); // updates the row in the data source&#xA;&#xA;&lt;/PRE>&#xA;&lt;LI>to insert column values into the insert row.  An updatable&#xA;&lt;code>ResultSet&lt;/code> object has a special row associated with&#xA;it that serves as a staging area for building a row to be inserted.&#xA;The following code fragment moves the cursor to the insert row, builds&#xA;a three-column row, and inserts it into &lt;code>rs&lt;/code> and into&#xA;the data source table using the method &lt;code>insertRow&lt;/code>.&#xA;&lt;PRE>&#xA;&#xA;rs.moveToInsertRow(); // moves cursor to the insert row&#xA;rs.updateString(1, &quot;AINSWORTH&quot;); // updates the&#xA;first column of the insert row to be &lt;code>AINSWORTH&lt;/code>&#xA;rs.updateInt(2,35); // updates the second column to be &lt;code>35&lt;/code>&#xA;rs.updateBoolean(3, true); // updates the third column to &lt;code>true&lt;/code>&#xA;rs.insertRow();&#xA;rs.moveToCurrentRow();&#xA;&#xA;&lt;/PRE>&#xA;&lt;/ol>&#xA;&lt;P>A &lt;code>ResultSet&lt;/code> object is automatically closed when the&#xA;&lt;code>Statement&lt;/code> object that&#xA;generated it is closed, re-executed, or used&#xA;to retrieve the next result from a sequence of multiple results.&#xA;&#xA;&lt;P>The number, types and properties of a &lt;code>ResultSet&lt;/code>&#xA;object's columns are provided by the &lt;code>ResulSetMetaData&lt;/code>&#xA;object returned by the &lt;code>ResultSet.getMetaData&lt;/code> method.&#xA;&#xA;@see Statement#executeQuery&#xA;@see Statement#getResultSet&#xA;@see ResultSetMetaData&#xA;" annotatedElement="_9_5_f720368_1110473546690_728645_8579"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_732174_8593" name="SQLPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_736510_6194" body="The permission for which the &lt;code>SecurityManager&lt;/code> will check&#xA;when code that is running in an applet calls the&#xA;&lt;code>DriverManager.setLogWriter&lt;/code> method or the&#xA;&lt;code>DriverManager.setLogStream&lt;/code> (deprecated) method.&#xA;If there is no &lt;code>SQLPermission&lt;/code> object, these methods&#xA;throw a &lt;code>java.lang.SecurityException&lt;/code> as a runtime exception.&#xA;&lt;P>&#xA;A &lt;code>SQLPermission&lt;/code> object contains&#xA;a name (also referred to as a &quot;target name&quot;) but no actions&#xA;list; there is either a named permission or there is not.&#xA;The target name is the name of the permission (see below). The&#xA;naming convention follows the  hierarchical property naming convention.&#xA;In addition, an asterisk&#xA;may appear at the end of the name, following a &quot;.&quot;, or by itself, to&#xA;signify a wildcard match. For example: &lt;code>loadLibrary.*&lt;/code>&#xA;or &lt;code>*&lt;/code> is valid,&#xA;but &lt;code>*loadLibrary&lt;/code> or &lt;code>a*b&lt;/code> is not valid.&#xA;&lt;P>&#xA;The following table lists all the possible &lt;code>SQLPermission&lt;/code> target names.&#xA;Currently, the only name allowed is &lt;code>setLog&lt;/code>.&#xA;The table gives a description of what the permission allows&#xA;and a discussion of the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;permission target name, what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setLog&lt;/td>&#xA;&lt;td>Setting of the logging stream&lt;/td>&#xA;&lt;td>This is a dangerous permission to grant.&#xA;The contents of the log may contain usernames and passwords,&#xA;SQL statements, and SQL data.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;The person running an applet decides what permissions to allow&#xA;and will run the &lt;code>Policy Tool&lt;/code> to create an&#xA;&lt;code>SQLPermission&lt;/code> in a policy file.  A programmer does&#xA;not use a constructor directly to create an instance of &lt;code>SQLPermission&lt;/code>&#xA;but rather uses a tool.&#xA;@since 1.3&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546690_732174_8593"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_616134_14258" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_888580_8567" name="DriverManager">
            <ownedComment xmi:id="_10_5_622020d_1132928309491_45098_6169" body="&lt;P>The basic service for managing a set of JDBC drivers.&lt;br>&#xA;&lt;B>NOTE:&lt;/B> The {@link &lt;code>DataSource&lt;/code>} interface, new in the&#xA;JDBC 2.0 API, provides another way to connect to a data source.&#xA;The use of a &lt;code>DataSource&lt;/code> object is the preferred means of&#xA;connecting to a data source.&#xA;&#xA;&lt;P>As part of its initialization, the &lt;code>DriverManager&lt;/code> class will&#xA;attempt to load the driver classes referenced in the &quot;jdbc.drivers&quot;&#xA;system property. This allows a user to customize the JDBC Drivers&#xA;used by their applications. For example in your&#xA;~/.hotjava/properties file you might specify:&#xA;&lt;pre>&#xA;&lt;CODE>jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver&lt;/CODE>&#xA;&lt;/pre>&#xA;&#xA;A program can also explicitly load JDBC drivers at any time. For&#xA;example, the my.sql.Driver is loaded with the following statement:&#xA;&lt;pre>&#xA;&lt;CODE>Class.forName(&quot;my.sql.Driver&quot;);&lt;/CODE>&#xA;&lt;/pre>&#xA;&#xA;&lt;P>When the method &lt;code>getConnection&lt;/code> is called,&#xA;the &lt;code>DriverManager&lt;/code> will attempt to&#xA;locate a suitable driver from amongst those loaded at&#xA;initialization and those loaded explicitly using the same classloader&#xA;as the current applet or application.&#xA;&lt;P>&#xA;Starting with the Java 2 SDK, Standard Edition, version 1.3, a&#xA;logging stream can be set only if the proper&#xA;permission has been granted.  Normally this will be done with&#xA;the tool PolicyTool, which can be used to grant &lt;code>permission&#xA;java.sql.SQLPermission &quot;setLog&quot;&lt;/code>.&#xA;@see Driver&#xA;@see Connection&#xA;" annotatedElement="_9_5_f720368_1110473546690_888580_8567"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_687938_8591" name="SQLOutput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309531_824312_6192" body="The output stream for writing the attributes of a user-defined&#xA;type back to the database.  This interface, used&#xA;only for custom mapping, is used by the driver, and its&#xA;methods are never directly invoked by a programmer.&#xA;&lt;p>When an object of a class implementing the interface&#xA;&lt;code>SQLData&lt;/code> is passed as an argument to an SQL statement, the&#xA;JDBC driver calls the method &lt;code>SQLData.getSQLType&lt;/code> to&#xA;determine the  kind of SQL&#xA;datum being passed to the database.&#xA;The driver then creates an instance of &lt;code>SQLOutput&lt;/code> and&#xA;passes it to the method &lt;code>SQLData.writeSQL&lt;/code>.&#xA;The method &lt;code>writeSQL&lt;/code> in turn calls the&#xA;appropriate &lt;code>SQLOutput&lt;/code> &lt;i>writer&lt;/i> methods&#xA;&lt;code>writeBoolean&lt;/code>, &lt;code>writeCharacterStream&lt;/code>, and so on)&#xA;to write data from the &lt;code>SQLData&lt;/code> object to&#xA;the &lt;code>SQLOutput&lt;/code> output stream as the&#xA;representation of an SQL user-defined type.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_687938_8591"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_374708_8549" name="BatchUpdateException">
            <ownedComment xmi:id="_10_5_622020d_1132928309471_816112_6151" body="An exception thrown when an error&#xA;occurs during a batch update operation.  In addition to the&#xA;information provided by {@link SQLException}, a&#xA;&lt;code>BatchUpdateException&lt;/code> provides the update&#xA;counts for all commands that were executed successfully during the&#xA;batch update, that is, all commands that were executed before the error&#xA;occurred.  The order of elements in an array of update counts&#xA;corresponds to the order in which commands were added to the batch.&#xA;&lt;P>&#xA;After a command in a batch update fails to execute properly&#xA;and a &lt;code>BatchUpdateException&lt;/code> is thrown, the driver&#xA;may or may not continue to process the remaining commands in&#xA;the batch.  If the driver continues processing after a failure,&#xA;the array returned by the method&#xA;&lt;code>BatchUpdateException.getUpdateCounts&lt;/code> will have&#xA;an element for every command in the batch rather than only&#xA;elements for the commands that executed successfully before&#xA;the error.  In the case where the driver continues processing&#xA;commands, the array element for any command&#xA;that failed is &lt;code>Statement.EXECUTE_FAILED&lt;/code>.&#xA;&lt;P>&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_374708_8549"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_883661_14252" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_492339_8561" name="DataTruncation">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_604732_6163" body="An exception that reports a&#xA;DataTruncation warning (on reads) or throws a DataTruncation exception&#xA;(on writes) when JDBC unexpectedly truncates a data value.&#xA;&#xA;&lt;P>The SQLstate for a &lt;code>DataTruncation&lt;/code> is &lt;code>01004&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546690_492339_8561"/>
            <generalization xmi:id="_10_5_622020d_1132928321909_586296_14254" isSubstitutable="true" general="_9_5_f720368_1110473546690_539611_8595"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_540068_8565" name="Driver" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309491_934555_6167" body="The interface that every driver class must implement.&#xA;&lt;P>The Java SQL framework allows for multiple database drivers.&#xA;&#xA;&lt;P>Each driver should supply a class that implements&#xA;the Driver interface.&#xA;&#xA;&lt;P>The DriverManager will try to load as many drivers as it can&#xA;find and then for any given connection request, it will ask each&#xA;driver in turn to try to connect to the target URL.&#xA;&#xA;&lt;P>It is strongly recommended that each Driver class should be&#xA;small and standalone so that the Driver class can be loaded and&#xA;queried without bringing in vast quantities of supporting code.&#xA;&#xA;&lt;P>When a Driver class is loaded, it should create an instance of&#xA;itself and register it with the DriverManager. This means that a&#xA;user can load and register a driver by calling&#xA;&lt;pre>&#xA;&lt;code>Class.forName(&quot;foo.bah.Driver&quot;)&lt;/code>&#xA;&lt;/pre>&#xA;&#xA;@see DriverManager&#xA;@see Connection&#xA;" annotatedElement="_9_5_f720368_1110473546690_540068_8565"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_574195_8603" name="Timestamp">
            <ownedComment xmi:id="_10_5_622020d_1132928309541_711336_6204" body="&lt;P>A thin wrapper around &lt;code>java.util.Date&lt;/code> that allows&#xA;the JDBC API to identify this as an SQL &lt;code>TIMESTAMP&lt;/code> value.&#xA;It adds the ability&#xA;to hold the SQL &lt;code>TIMESTAMP&lt;/code> nanos value and provides formatting and&#xA;parsing operations to support the JDBC escape syntax for timestamp values.&#xA;&#xA;&lt;P>&lt;B>Note:&lt;/B> This type is a composite of a &lt;code>java.util.Date&lt;/code> and a&#xA;separate nanoseconds value. Only integral seconds are stored in the&#xA;&lt;code>java.util.Date&lt;/code> component. The fractional seconds - the nanos - are&#xA;separate.  The &lt;code>Timestamp.equals(Object)&lt;/code> method never returns&#xA;&lt;code>true&lt;/code> when passed a value of type &lt;code>java.util.Date&lt;/code>&#xA;because the nanos component of a date is unknown.&#xA;As a result, the &lt;code>Timestamp.equals(Object)&lt;/code>&#xA;method is not symmetric with respect to the&#xA;&lt;code>java.util.Date.equals(Object)&lt;/code>&#xA;method.  Also, the &lt;code>hashcode&lt;/code> method uses the underlying&#xA;&lt;code>java.util.Date&lt;/code>&#xA;implementation and therefore does not include nanos in its computation.&#xA;&lt;P>&#xA;Due to the differences between the &lt;code>Timestamp&lt;/code> class&#xA;and the &lt;code>java.util.Date&lt;/code>&#xA;class mentioned above, it is recommended that code not view&#xA;&lt;code>Timestamp&lt;/code> values generically as an instance of&#xA;&lt;code>java.util.Date&lt;/code>.  The&#xA;inheritance relationship between &lt;code>Timestamp&lt;/code>&#xA;and &lt;code>java.util.Date&lt;/code> really&#xA;denotes implementation inheritance, and not type inheritance.&#xA;" annotatedElement="_9_5_f720368_1110473546690_574195_8603"/>
            <generalization xmi:id="_10_5_622020d_1132928321919_94766_14261" isSubstitutable="true" general="_9_5_f720368_1110473546706_999299_8853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_244276_8571" name="DriverPropertyInfo">
            <ownedComment xmi:id="_10_5_622020d_1132928309491_552964_6172" body="&lt;p>Driver properties for making a connection. The&#xA;&lt;code>DriverPropertyInfo&lt;/code> class is of interest only to advanced programmers&#xA;who need to interact with a Driver via the method&#xA;&lt;code>getDriverProperties&lt;/code> to discover&#xA;and supply properties for connections.&#xA;" annotatedElement="_9_5_f720368_1110473546690_244276_8571"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_292838_8555" name="Clob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309481_210128_6157" body="The mapping in the Java&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> programming language&#xA;for the SQL &lt;code>CLOB&lt;/code> type.&#xA;An SQL &lt;code>CLOB&lt;/code> is a built-in type&#xA;that stores a Character Large Object as a column value in a row of&#xA;a database table.&#xA;By default drivers implement a &lt;code>Clob&lt;/code> object using an SQL&#xA;&lt;code>locator(CLOB)&lt;/code>, which means that a &lt;code>Clob&lt;/code> object&#xA;contains a logical pointer to the SQL &lt;code>CLOB&lt;/code> data rather than&#xA;the data itself. A &lt;code>Clob&lt;/code> object is valid for the duration&#xA;of the transaction in which it was created.&#xA;&lt;P>The &lt;code>Clob&lt;/code> interface provides methods for getting the&#xA;length of an SQL &lt;code>CLOB&lt;/code> (Character Large Object) value,&#xA;for materializing a &lt;code>CLOB&lt;/code> value on the client, and for&#xA;searching for a substring or &lt;code>CLOB&lt;/code> object within a&#xA;&lt;code>CLOB&lt;/code> value.&#xA;Methods in the interfaces {@link ResultSet},&#xA;{@link CallableStatement}, and {@link PreparedStatement}, such as&#xA;&lt;code>getClob&lt;/code> and &lt;code>setClob&lt;/code> allow a programmer to&#xA;access an SQL &lt;code>CLOB&lt;/code> value.  In addition, this interface&#xA;has methods for updating a &lt;code>CLOB&lt;/code> value.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_292838_8555"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547503_52464_17780" name="lang">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_126551_7703" name="Thread" clientDependency="_10_5_622020d_1132928321699_696737_13759">
            <ownedComment xmi:id="_10_5_622020d_1132928308179_486580_5179" body="A &lt;i>thread&lt;/i> is a thread of execution in a program. The Java&#xA;Virtual Machine allows an application to have multiple threads of&#xA;execution running concurrently.&#xA;&lt;p>&#xA;Every thread has a priority. Threads with higher priority are&#xA;executed in preference to threads with lower priority. Each thread&#xA;may or may not also be marked as a daemon. When code running in&#xA;some thread creates a new &lt;code>Thread&lt;/code> object, the new&#xA;thread has its priority initially set equal to the priority of the&#xA;creating thread, and is a daemon thread if and only if the&#xA;creating thread is a daemon.&#xA;&lt;p>&#xA;When a Java Virtual Machine starts up, there is usually a single&#xA;non-daemon thread (which typically calls the method named&#xA;&lt;code>main&lt;/code> of some designated class). The Java Virtual&#xA;Machine continues to execute threads until either of the following&#xA;occurs:&#xA;&lt;ul>&#xA;&lt;li>The &lt;code>exit&lt;/code> method of class &lt;code>Runtime&lt;/code> has been&#xA;called and the security manager has permitted the exit operation&#xA;to take place.&#xA;&lt;li>All threads that are not daemon threads have died, either by&#xA;returning from the call to the &lt;code>run&lt;/code> method or by&#xA;throwing an exception that propagates beyond the &lt;code>run&lt;/code>&#xA;method.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;There are two ways to create a new thread of execution. One is to&#xA;declare a class to be a subclass of &lt;code>Thread&lt;/code>. This&#xA;subclass should override the &lt;code>run&lt;/code> method of class&#xA;&lt;code>Thread&lt;/code>. An instance of the subclass can then be&#xA;allocated and started. For example, a thread that computes primes&#xA;larger than a stated value could be written as follows:&#xA;&lt;p>&lt;hr>&lt;blockquote>&lt;pre>&#xA;class PrimeThread extends Thread {&#xA;long minPrime;&#xA;PrimeThread(long minPrime) {&#xA;this.minPrime = minPrime;&#xA;}&#xA;&#xA;public void run() {&#xA;compute primes larger than minPrime&#xA;&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;The following code would then create a thread and start it running:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;PrimeThread p = new PrimeThread(143);&#xA;p.start();&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;The other way to create a thread is to declare a class that&#xA;implements the &lt;code>Runnable&lt;/code> interface. That class then&#xA;implements the &lt;code>run&lt;/code> method. An instance of the class can&#xA;then be allocated, passed as an argument when creating&#xA;&lt;code>Thread&lt;/code>, and started. The same example in this other&#xA;style looks like the following:&#xA;&lt;p>&lt;hr>&lt;blockquote>&lt;pre>&#xA;class PrimeRun implements Runnable {&#xA;long minPrime;&#xA;PrimeRun(long minPrime) {&#xA;this.minPrime = minPrime;&#xA;}&#xA;&#xA;public void run() {&#xA;compute primes larger than minPrime&#xA;&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;The following code would then create a thread and start it running:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;PrimeRun p = new PrimeRun(143);&#xA;new Thread(p).start();&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;Every thread has a name for identification purposes. More than&#xA;one thread may have the same name. If a name is not specified when&#xA;a thread is created, a new name is generated for it.&#xA;&#xA;@author  unascribed&#xA;@version 1.155, 06/26/04&#xA;@see     java.lang.Runnable&#xA;@see     java.lang.Runtime#exit(int)&#xA;@see     java.lang.Thread#run()&#xA;@see     java.lang.Thread#stop()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_126551_7703"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321699_696737_13759" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473546612_126551_7703" contract="_9_5_f720368_1110473546612_953158_7669"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308169_578222_5173" name="State">
              <ownedComment xmi:id="_10_5_622020d_1132928308179_990278_5175" body="A thread state.  A thread can be in one of the following states:&#xA;&lt;ul>&#xA;&lt;li>{@link #NEW}&lt;br>&#xA;A thread that has not yet started is in this state.&#xA;&lt;/li>&#xA;&lt;li>{@link #RUNNABLE}&lt;br>&#xA;A thread executing in the Java virtual machine is in this state.&#xA;&lt;/li>&#xA;&lt;li>{@link #BLOCKED}&lt;br>&#xA;A thread that is blocked waiting for a monitor lock&#xA;is in this state.&#xA;&lt;/li>&#xA;&lt;li>{@link #WAITING}&lt;br>&#xA;A thread that is waiting indefinitely for another thread to&#xA;perform a particular action is in this state.&#xA;&lt;/li>&#xA;&lt;li>{@link #TIMED_WAITING}&lt;br>&#xA;A thread that is waiting for another thread to perform an action&#xA;for up to a specified waiting time is in this state.&#xA;&lt;/li>&#xA;&lt;li>{@link #TERMINATED}&lt;br>&#xA;A thread that has exited is in this state.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;A thread can be in only one state at a given point in time.&#xA;These states are virtual machine states which do not reflect&#xA;any operating system thread states.&#xA;&#xA;@since   1.5&#xA;@see Thread#getState&#xA;" annotatedElement="_10_5_622020d_1132928308169_578222_5173"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928308179_829231_5176" name="UncaughtExceptionHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308179_494405_5177" body="Interface for handlers invoked when a &lt;tt>Thread&lt;/tt> abruptly&#xA;terminates due to an uncaught exception.&#xA;&lt;p>When a thread is about to terminate due to an uncaught exception&#xA;the Java Virtual Machine will query the thread for its&#xA;&lt;tt>UncaughtExceptionHandler&lt;/tt> using&#xA;{@link Thread#getUncaughtExceptionHandler} and will invoke the handler's&#xA;&lt;tt>uncaughtException&lt;/tt> method, passing the thread and the&#xA;exception as arguments.&#xA;If a thread has not had its &lt;tt>UncaughtExceptionHandler&lt;/tt>&#xA;explicitly set, then its &lt;tt>ThreadGroup&lt;/tt> object acts as its&#xA;&lt;tt>UncaughtExceptionHandler&lt;/tt>. If the &lt;tt>ThreadGroup&lt;/tt> object&#xA;has no&#xA;special requirements for dealing with the exception, it can forward&#xA;the invocation to the {@linkplain #getDefaultUncaughtExceptionHandler&#xA;default uncaught exception handler}.&#xA;&#xA;@see #setDefaultUncaughtExceptionHandler&#xA;@see #setUncaughtExceptionHandler&#xA;@see ThreadGroup#uncaughtException&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308179_829231_5176"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_927897_7555" name="ArrayStoreException">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_508870_4937" body="Thrown to indicate that an attempt has been made to store the&#xA;wrong type of object into an array of objects. For example, the&#xA;following code generates an &lt;code>ArrayStoreException&lt;/code>:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;Object x[] = new String[3];&#xA;x[0] = new Integer(0);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@author  unascribed&#xA;@version 1.11, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_927897_7555"/>
            <generalization xmi:id="_10_5_622020d_1132928321618_245530_13613" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_897100_7595" name="Double" clientDependency="_10_5_622020d_1132928321648_246100_13645" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307949_863627_5016" body="The &lt;code>Double&lt;/code> class wraps a value of the primitive type&#xA;&lt;code>double&lt;/code> in an object. An object of type&#xA;&lt;code>Double&lt;/code> contains a single field whose type is&#xA;&lt;code>double&lt;/code>.&#xA;&lt;p>&#xA;In addition, this class provides several methods for converting a&#xA;&lt;code>double&lt;/code> to a &lt;code>String&lt;/code> and a&#xA;&lt;code>String&lt;/code> to a &lt;code>double&lt;/code>, as well as other&#xA;constants and methods useful when dealing with a&#xA;&lt;code>double&lt;/code>.&#xA;&#xA;@author  Lee Boynton&#xA;@author  Arthur van Hoff&#xA;@author  Joseph D. Darcy&#xA;@version 1.94, 05/11/04&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_897100_7595"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_571538_13646" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321648_246100_13645" name="" supplier="_10_5_622020d_1132928321648_934758_13642" client="_9_5_f720368_1110473546612_897100_7595" contract="_10_5_622020d_1132928321648_934758_13642"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_286965_7549" name="AbstractMethodError">
            <ownedComment xmi:id="_10_5_622020d_1132928307869_691734_4925" body="Thrown when an application tries to call an abstract method.&#xA;Normally, this error is caught by the compiler; this error can&#xA;only occur at run time if the definition of some class has&#xA;incompatibly changed since the currently executing method was last&#xA;compiled.&#xA;&#xA;@author  unascribed&#xA;@version 1.18, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_286965_7549"/>
            <generalization xmi:id="_10_5_622020d_1132928321618_436881_13608" isSubstitutable="true" general="_9_5_f720368_1110473546612_396947_7621"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_219598_7677" name="SecurityException">
            <ownedComment xmi:id="_10_5_622020d_1132928308119_778756_5137" body="Thrown by the security manager to indicate a security violation.&#xA;&#xA;@author  unascribed&#xA;@version 1.16, 12/19/03&#xA;@see     java.lang.SecurityManager&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_219598_7677"/>
            <generalization xmi:id="_10_5_622020d_1132928321689_203847_13732" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_21020_7571" name="CharSequence" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307919_934846_4973" body="A &lt;tt>CharSequence&lt;/tt> is a readable sequence of &lt;code>char&lt;/code> values. This&#xA;interface provides uniform, read-only access to many different kinds of&#xA;&lt;code>char&lt;/code> sequences.&#xA;A &lt;code>char&lt;/code> value represents a character in the &lt;i>Basic&#xA;Multilingual Plane (BMP)&lt;/i> or a surrogate. Refer to &lt;a&#xA;href=&quot;Character.html#unicode&quot;>Unicode Character Representation&lt;/a> for details.&#xA;&#xA;&lt;p> This interface does not refine the general contracts of the {@link&#xA;java.lang.Object#equals(java.lang.Object) equals} and {@link&#xA;java.lang.Object#hashCode() hashCode} methods.  The result of comparing two&#xA;objects that implement &lt;tt>CharSequence&lt;/tt> is therefore, in general,&#xA;undefined.  Each object may be implemented by a different class, and there&#xA;is no guarantee that each class will be capable of testing its instances&#xA;for equality with those of the other.  It is therefore inappropriate to use&#xA;arbitrary &lt;tt>CharSequence&lt;/tt> instances as elements in a set or as keys in&#xA;a map. &lt;/p>&#xA;&#xA;@author Mike McCloskey&#xA;@version 1.8 03/12/19&#xA;@since 1.4&#xA;@spec JSR-51&#xA;" annotatedElement="_9_5_f720368_1110473546612_21020_7571"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_346971_7709" name="ThreadLocal">
            <ownedComment xmi:id="_10_5_622020d_1132928308189_820967_5190" body="This class provides thread-local variables.  These variables differ from&#xA;their normal counterparts in that each thread that accesses one (via its&#xA;&lt;tt>get&lt;/tt> or &lt;tt>set&lt;/tt> method) has its own, independently initialized&#xA;copy of the variable.  &lt;tt>ThreadLocal&lt;/tt> instances are typically private&#xA;static fields in classes that wish to associate state with a thread (e.g.,&#xA;a user ID or Transaction ID).&#xA;&#xA;&lt;p>For example, in the class below, the private static &lt;tt>ThreadLocal&lt;/tt>&#xA;instance (&lt;tt>serialNum&lt;/tt>) maintains a &quot;serial number&quot; for each thread&#xA;that invokes the class's static &lt;tt>SerialNum.get()&lt;/tt> method, which&#xA;returns the current thread's serial number.  (A thread's serial number is&#xA;assigned the first time it invokes &lt;tt>SerialNum.get()&lt;/tt>, and remains&#xA;unchanged on subsequent calls.)&#xA;&lt;pre>&#xA;public class SerialNum {&#xA;The next serial number to be assigned&#xA;private static int nextSerialNum = 0;&#xA;&#xA;private static ThreadLocal serialNum = new ThreadLocal() {&#xA;protected synchronized Object initialValue() {&#xA;return new Integer(nextSerialNum++);&#xA;}&#xA;};&#xA;&#xA;public static int get() {&#xA;return ((Integer) (serialNum.get())).intValue();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Each thread holds an implicit reference to its copy of a thread-local&#xA;variable as long as the thread is alive and the &lt;tt>ThreadLocal&lt;/tt>&#xA;instance is accessible; after a thread goes away, all of its copies of&#xA;thread-local instances are subject to garbage collection (unless other&#xA;references to these copies exist).&#xA;&#xA;@author  Josh Bloch and Doug Lea&#xA;@version 1.33, 02/19/04&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_346971_7709"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928308179_660510_5184" name="" parameter="_10_5_622020d_1132928308179_723618_5185">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928308179_723618_5185" parameteredElement="_10_5_622020d_1132928308179_786332_5186">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308179_786332_5186" name="T" templateParameter="_10_5_622020d_1132928308179_723618_5185"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_668938_17939" name="ThreadLocalMap" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928308179_324831_5188" body="ThreadLocalMap is a customized hash map suitable only for&#xA;maintaining thread local values. No operations are exported&#xA;outside of the ThreadLocal class. The class is package private to&#xA;allow declaration of fields in class Thread.  To help deal with&#xA;very large and long-lived usages, the hash table entries use&#xA;WeakReferences for keys. However, since reference queues are not&#xA;used, stale entries are guaranteed to be removed only when&#xA;the table starts running out of space.&#xA;" annotatedElement="_9_5_f720368_1110473547534_668938_17939"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_906901_17942" name="Entry" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928308179_179571_5187" body="The entries in this hash map extend WeakReference, using&#xA;its main ref field as the key (which is always a&#xA;ThreadLocal object).  Note that null keys (i.e. entry.get()&#xA;== null) mean that the key is no longer referenced, so the&#xA;entry can be expunged from table.  Such entries are referred to&#xA;as &quot;stale entries&quot; in the code that follows.&#xA;" annotatedElement="_9_5_f720368_1110473547534_906901_17942"/>
                <generalization xmi:id="_10_5_622020d_1132928321699_381409_13765" isSubstitutable="true" general="_10_5_622020d_1132928321699_864498_13762"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_366945_7649" name="NoSuchFieldException">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_575152_5086" body="Signals that the class doesn't have a field of a specified name.&#xA;&#xA;@author  unascribed&#xA;@version 1.14, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_366945_7649"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_727595_13691" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547503_114953_17805" name="reflect">
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307859_836151_4913" name="TypeVariable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307869_154184_4918" body="TypeVariable is the common superinterface for type variables of kinds.&#xA;A type variable is created the first time it is needed by a reflective&#xA;method, as specified in this package.  If a type variable t is referenced&#xA;by a type (i.e, class, interface or annotation type) T, and T is declared&#xA;by the nth enclosing class of T (see JLS 8.1.2), then the creation of t&#xA;requires the resolution (see JVMS 5) of the ith enclosing class of T,&#xA;for i = 0 to n, inclusive. Creating a type variable must not cause the&#xA;creation of its bounds. Repeated creation of a type variable has no effect.&#xA;&#xA;&lt;p>Multiple objects may be instantiated at run-time to&#xA;represent a given type variable. Even though a type variable is&#xA;created only once, this does not imply any requirement to cache&#xA;instances representing the type variable. However, all instances&#xA;representing a type variable must be equal() to each other.&#xA;As a consequence, users of type variables must not rely on the identity&#xA;of instances of classes implementing this interface.&#xA;&#xA;&lt;p>The type parameter D represents the type of generic declaration&#xA;that declared the underlying type variable.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307859_836151_4913"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307859_377895_4914" name="" parameter="_10_5_622020d_1132928307869_584128_4915">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307869_584128_4915" parameteredElement="_10_5_622020d_1132928307869_996827_4916">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307869_996827_4916" name="D" clientDependency="_10_5_622020d_1132928324232_818114_18741" templateParameter="_10_5_622020d_1132928307869_584128_4915">
                    <interfaceRealization xmi:id="_10_5_622020d_1132928324232_818114_18741" name="" supplier="_10_5_622020d_1132928307799_85189_4882" client="_10_5_622020d_1132928307869_996827_4916" contract="_10_5_622020d_1132928307799_85189_4882"/>
                  </ownedParameteredElement>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321618_295253_13605" isSubstitutable="true" general="_10_5_622020d_1132928307859_269629_4910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_376896_7539" name="Modifier">
              <ownedComment xmi:id="_10_5_622020d_1132928307809_320297_4900" body="The Modifier class provides &lt;code>static&lt;/code> methods and&#xA;constants to decode class and member access modifiers.  The sets of&#xA;modifiers are represented as integers with distinct bit positions&#xA;representing different modifiers.  The values for the constants&#xA;representing the modifiers are taken from &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html&quot;>&lt;i>The&#xA;Java&lt;/i>&lt;sup>&lt;small>TM&lt;/small>&lt;/sup> &lt;i>Virtual Machine Specification, Second&#xA;edition&lt;/i>&lt;/a> tables&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75734&quot;>4.1&lt;/a>,&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88358&quot;>4.4&lt;/a>,&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75568&quot;>4.5&lt;/a>, and&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88478&quot;>4.7&lt;/a>.&#xA;&#xA;@see Class#getModifiers()&#xA;@see Member#getModifiers()&#xA;&#xA;@author Nakul Saraiya&#xA;@author Kenneth Russell&#xA;" annotatedElement="_9_5_f720368_1110473546612_376896_7539"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_513168_7523" name="AccessibleObject" clientDependency="_10_5_622020d_1132928321608_331494_13588">
              <ownedComment xmi:id="_10_5_622020d_1132928307779_51097_4866" body="The AccessibleObject class is the base class for Field, Method and&#xA;Constructor objects.  It provides the ability to flag a reflected&#xA;object as suppressing default Java language access control checks&#xA;when it is used.  The access checks--for public, default (package)&#xA;access, protected, and private members--are performed when Fields,&#xA;Methods or Constructors are used to set or get fields, to invoke&#xA;methods, or to create and initialize new instances of classes,&#xA;respectively.&#xA;&#xA;&lt;p>Setting the &lt;tt>accessible&lt;/tt> flag in a reflected object&#xA;permits sophisticated applications with sufficient privilege, such&#xA;as Java Object Serialization or other persistence mechanisms, to&#xA;manipulate objects in a manner that would normally be prohibited.&#xA;&#xA;@see Field&#xA;@see Method&#xA;@see Constructor&#xA;@see ReflectPermission&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_513168_7523"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321608_331494_13588" name="" supplier="_10_5_622020d_1132928307779_179201_4867" client="_9_5_f720368_1110473546612_513168_7523" contract="_10_5_622020d_1132928307779_179201_4867"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_253886_7537" name="Method" clientDependency="_10_5_622020d_1132928321618_827676_13598 _10_5_622020d_1132928321618_335015_13599" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307809_943261_4898" body="A &lt;code>Method&lt;/code> provides information about, and access to, a single method&#xA;on a class or interface.  The reflected method may be a class method&#xA;or an instance method (including an abstract method).&#xA;&#xA;&lt;p>A &lt;code>Method&lt;/code> permits widening conversions to occur when matching the&#xA;actual parameters to invoke with the underlying method's formal&#xA;parameters, but it throws an &lt;code>IllegalArgumentException&lt;/code> if a&#xA;narrowing conversion would occur.&#xA;&#xA;@see Member&#xA;@see java.lang.Class&#xA;@see java.lang.Class#getMethods()&#xA;@see java.lang.Class#getMethod(String, Class[])&#xA;@see java.lang.Class#getDeclaredMethods()&#xA;@see java.lang.Class#getDeclaredMethod(String, Class[])&#xA;&#xA;@author Kenneth Russell&#xA;@author Nakul Saraiya&#xA;" annotatedElement="_9_5_f720368_1110473546612_253886_7537"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_153975_13600" isSubstitutable="true" general="_9_5_f720368_1110473546612_513168_7523"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321618_827676_13598" name="" supplier="_10_5_622020d_1132928307799_85189_4882" client="_9_5_f720368_1110473546612_253886_7537" contract="_10_5_622020d_1132928307799_85189_4882"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321618_335015_13599" name="" supplier="_9_5_f720368_1110473546612_6172_7535" client="_9_5_f720368_1110473546612_253886_7537" contract="_9_5_f720368_1110473546612_6172_7535"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307809_814270_4901" name="ParameterizedType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307809_955707_4903" body="ParameterizedType represents a parameterized type such as&#xA;Collection&lt;String>.&#xA;&#xA;&lt;p>A parameterized type is created the first time it is needed by a&#xA;reflective method, as specified in this package. When a&#xA;parameterized type p is created, the generic type declaration that&#xA;p instantiates is resolved, and all type arguments of p are created&#xA;recursively. See {@link java.lang.reflect.TypeVariable&#xA;TypeVariable} for details on the creation process for type&#xA;variables. Repeated creation of a parameterized type has no effect.&#xA;&#xA;&lt;p>Instances of classes that implement this interface must implement&#xA;an equals() method that equates any two instances that share the&#xA;same generic type declaration and have equal type parameters.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307809_814270_4901"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_793883_13601" isSubstitutable="true" general="_10_5_622020d_1132928307859_269629_4910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_13046_7543" name="ReflectAccess" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928307859_475156_4907" body="Package-private class implementing the&#xA;sun.reflect.LangReflectAccess interface, allowing the java.lang&#xA;package to instantiate objects in this package." annotatedElement="_9_5_f720368_1110473546612_13046_7543"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307799_85189_4882" name="GenericDeclaration" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_795326_4884" body="A common interface for all entities that declare type variables.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307799_85189_4882"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_886574_7547" name="UndeclaredThrowableException">
              <ownedComment xmi:id="_10_5_622020d_1132928307869_199495_4920" body="Thrown by a method invocation on a proxy instance if its invocation&#xA;handler's {@link InvocationHandler#invoke invoke} method throws a&#xA;checked exception (a &lt;code>Throwable&lt;/code> that is not assignable&#xA;to &lt;code>RuntimeException&lt;/code> or &lt;code>Error&lt;/code>) that&#xA;is not assignable to any of the exception types declared in the&#xA;&lt;code>throws&lt;/code> clause of the method that was invoked on the&#xA;proxy instance and dispatched to the invocation handler.&#xA;&#xA;&lt;p>An &lt;code>UndeclaredThrowableException&lt;/code> instance contains&#xA;the undeclared checked exception that was thrown by the invocation&#xA;handler, and it can be retrieved with the&#xA;&lt;code>getUndeclaredThrowable()&lt;/code> method.&#xA;&lt;code>UndeclaredThrowableException&lt;/code> extends&#xA;&lt;code>RuntimeException&lt;/code>, so it is an unchecked exception&#xA;that wraps a checked exception.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to&#xA;conform to the general purpose exception-chaining mechanism.  The&#xA;&quot;undeclared checked exception that was thrown by the invocation&#xA;handler&quot; that may be provided at construction time and accessed via&#xA;the {@link #getUndeclaredThrowable()} method is now known as the&#xA;&lt;i>cause&lt;/i>, and may be accessed via the {@link&#xA;Throwable#getCause()} method, as well as the aforementioned &quot;legacy&#xA;method.&quot;&#xA;&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.13, 04/02/19&#xA;@see&#x9;&#x9;InvocationHandler&#xA;@since&#x9;JDK1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_886574_7547"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_967119_13606" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_6172_7535" name="Member" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307809_853866_4896" body="Member is an interface that reflects identifying information about&#xA;a single member (a field or a method) or a constructor.&#xA;&#xA;@see&#x9;java.lang.Class&#xA;@see&#x9;Field&#xA;@see&#x9;Method&#xA;@see&#x9;Constructor&#xA;&#xA;@author Nakul Saraiya&#xA;" annotatedElement="_9_5_f720368_1110473546612_6172_7535"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307799_617771_4879" name="GenericArrayType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_176822_4881" body="&lt;tt>GenericArrayType&lt;/tt> represents an array type whose component&#xA;type is either a parameterized type or a type variable.&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307799_617771_4879"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_529954_13594" isSubstitutable="true" general="_10_5_622020d_1132928307859_269629_4910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_903028_7527" name="Constructor" clientDependency="_10_5_622020d_1132928321608_916503_13589 _10_5_622020d_1132928321608_292729_13590" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307789_50193_4876" body="&lt;code>Constructor&lt;/code> provides information about, and access to, a single&#xA;constructor for a class.&#xA;&#xA;&lt;p>&lt;code>Constructor&lt;/code> permits widening conversions to occur when matching the&#xA;actual parameters to newInstance() with the underlying&#xA;constructor's formal parameters, but throws an&#xA;&lt;code>IllegalArgumentException&lt;/code> if a narrowing conversion would occur.&#xA;&#xA;@see Member&#xA;@see java.lang.Class&#xA;@see java.lang.Class#getConstructors()&#xA;@see java.lang.Class#getConstructor(Class[])&#xA;@see java.lang.Class#getDeclaredConstructors()&#xA;&#xA;@author&#x9;Kenneth Russell&#xA;@author&#x9;Nakul Saraiya&#xA;" annotatedElement="_9_5_f720368_1110473546612_903028_7527"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307789_448359_4872" name="" parameter="_10_5_622020d_1132928307789_729610_4873">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307789_729610_4873" parameteredElement="_10_5_622020d_1132928307789_799558_4874">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307789_799558_4874" name="T" templateParameter="_10_5_622020d_1132928307789_729610_4873"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321618_386564_13591" isSubstitutable="true" general="_9_5_f720368_1110473546612_513168_7523"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321608_916503_13589" name="" supplier="_10_5_622020d_1132928307799_85189_4882" client="_9_5_f720368_1110473546612_903028_7527" contract="_10_5_622020d_1132928307799_85189_4882"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321608_292729_13590" name="" supplier="_9_5_f720368_1110473546612_6172_7535" client="_9_5_f720368_1110473546612_903028_7527" contract="_9_5_f720368_1110473546612_6172_7535"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_195925_7541" name="Proxy" clientDependency="_10_5_622020d_1132928321618_436623_13602">
              <ownedComment xmi:id="_10_5_622020d_1132928307859_137553_4905" body="&lt;code>Proxy&lt;/code> provides static methods for creating dynamic proxy&#xA;classes and instances, and it is also the superclass of all&#xA;dynamic proxy classes created by those methods.&#xA;&#xA;&lt;p>To create a proxy for some interface &lt;code>Foo&lt;/code>:&#xA;&lt;pre>&#xA;InvocationHandler handler = new MyInvocationHandler(...);&#xA;Class proxyClass = Proxy.getProxyClass(&#xA;Foo.class.getClassLoader(), new Class[] { Foo.class });&#xA;Foo f = (Foo) proxyClass.&#xA;getConstructor(new Class[] { InvocationHandler.class }).&#xA;newInstance(new Object[] { handler });&#xA;&lt;/pre>&#xA;or more simply:&#xA;&lt;pre>&#xA;Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),&#xA;new Class[] { Foo.class },&#xA;handler);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>A &lt;i>dynamic proxy class&lt;/i> (simply referred to as a &lt;i>proxy&#xA;class&lt;/i> below) is a class that implements a list of interfaces&#xA;specified at runtime when the class is created, with behavior as&#xA;described below.&#xA;&#xA;A &lt;i>proxy interface&lt;/i> is such an interface that is implemented&#xA;by a proxy class.&#xA;&#xA;A &lt;i>proxy instance&lt;/i> is an instance of a proxy class.&#xA;&#xA;Each proxy instance has an associated &lt;i>invocation handler&lt;/i>&#xA;object, which implements the interface {@link InvocationHandler}.&#xA;A method invocation on a proxy instance through one of its proxy&#xA;interfaces will be dispatched to the {@link InvocationHandler#invoke&#xA;invoke} method of the instance's invocation handler, passing the proxy&#xA;instance, a &lt;code>java.lang.reflect.Method&lt;/code> object identifying&#xA;the method that was invoked, and an array of type &lt;code>Object&lt;/code>&#xA;containing the arguments.  The invocation handler processes the&#xA;encoded method invocation as appropriate and the result that it&#xA;returns will be returned as the result of the method invocation on&#xA;the proxy instance.&#xA;&#xA;&lt;p>A proxy class has the following properties:&#xA;&#xA;&lt;ul>&#xA;&lt;li>Proxy classes are public, final, and not abstract.&#xA;&#xA;&lt;li>The unqualified name of a proxy class is unspecified.  The space&#xA;of class names that begin with the string &lt;code>&quot;$Proxy&quot;&lt;/code>&#xA;should be, however, reserved for proxy classes.&#xA;&#xA;&lt;li>A proxy class extends &lt;code>java.lang.reflect.Proxy&lt;/code>.&#xA;&#xA;&lt;li>A proxy class implements exactly the interfaces specified at its&#xA;creation, in the same order.&#xA;&#xA;&lt;li>If a proxy class implements a non-public interface, then it will&#xA;be defined in the same package as that interface.  Otherwise, the&#xA;package of a proxy class is also unspecified.  Note that package&#xA;sealing will not prevent a proxy class from being successfully defined&#xA;in a particular package at runtime, and neither will classes already&#xA;defined by the same class loader and the same package with particular&#xA;signers.&#xA;&#xA;&lt;li>Since a proxy class implements all of the interfaces specified at&#xA;its creation, invoking &lt;code>getInterfaces&lt;/code> on its&#xA;&lt;code>Class&lt;/code> object will return an array containing the same&#xA;list of interfaces (in the order specified at its creation), invoking&#xA;&lt;code>getMethods&lt;/code> on its &lt;code>Class&lt;/code> object will return&#xA;an array of &lt;code>Method&lt;/code> objects that include all of the&#xA;methods in those interfaces, and invoking &lt;code>getMethod&lt;/code> will&#xA;find methods in the proxy interfaces as would be expected.&#xA;&#xA;&lt;li>The {@link Proxy#isProxyClass Proxy.isProxyClass} method will&#xA;return true if it is passed a proxy class-- a class returned by&#xA;&lt;code>Proxy.getProxyClass&lt;/code> or the class of an object returned by&#xA;&lt;code>Proxy.newProxyInstance&lt;/code>-- and false otherwise.&#xA;&#xA;&lt;li>The &lt;code>java.security.ProtectionDomain&lt;/code> of a proxy class&#xA;is the same as that of system classes loaded by the bootstrap class&#xA;loader, such as &lt;code>java.lang.Object&lt;/code>, because the code for a&#xA;proxy class is generated by trusted system code.  This protection&#xA;domain will typically be granted&#xA;&lt;code>java.security.AllPermission&lt;/code>.&#xA;&#xA;&lt;li>Each proxy class has one public constructor that takes one argument,&#xA;an implementation of the interface {@link InvocationHandler}, to set&#xA;the invocation handler for a proxy instance.  Rather than having to use&#xA;the reflection API to access the public constructor, a proxy instance&#xA;can be also be created by calling the {@link Proxy#newProxyInstance&#xA;Proxy.newInstance} method, which combines the actions of calling&#xA;{@link Proxy#getProxyClass Proxy.getProxyClass} with invoking the&#xA;constructor with an invocation handler.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>A proxy instance has the following properties:&#xA;&#xA;&lt;ul>&#xA;&lt;li>Given a proxy instance &lt;code>proxy&lt;/code> and one of the&#xA;interfaces implemented by its proxy class &lt;code>Foo&lt;/code>, the&#xA;following expression will return true:&#xA;&lt;pre>&#xA;&lt;code>proxy instanceof Foo&lt;/code>&#xA;&lt;/pre>&#xA;and the following cast operation will succeed (rather than throwing&#xA;a &lt;code>ClassCastException&lt;/code>):&#xA;&lt;pre>&#xA;&lt;code>(Foo) proxy&lt;/code>&#xA;&lt;/pre>&#xA;&#xA;&lt;li>Each proxy instance has an associated invocation handler, the one&#xA;that was passed to its constructor.  The static&#xA;{@link Proxy#getInvocationHandler Proxy.getInvocationHandler} method&#xA;will return the invocation handler associated with the proxy instance&#xA;passed as its argument.&#xA;&#xA;&lt;li>An interface method invocation on a proxy instance will be&#xA;encoded and dispatched to the invocation handler's {@link&#xA;InvocationHandler#invoke invoke} method as described in the&#xA;documentation for that method.&#xA;&#xA;&lt;li>An invocation of the &lt;code>hashCode&lt;/code>,&#xA;&lt;code>equals&lt;/code>, or &lt;code>toString&lt;/code> methods declared in&#xA;&lt;code>java.lang.Object&lt;/code> on a proxy instance will be encoded and&#xA;dispatched to the invocation handler's &lt;code>invoke&lt;/code> method in&#xA;the same manner as interface method invocations are encoded and&#xA;dispatched, as described above.  The declaring class of the&#xA;&lt;code>Method&lt;/code> object passed to &lt;code>invoke&lt;/code> will be&#xA;&lt;code>java.lang.Object&lt;/code>.  Other public methods of a proxy&#xA;instance inherited from &lt;code>java.lang.Object&lt;/code> are not&#xA;overridden by a proxy class, so invocations of those methods behave&#xA;like they do for instances of &lt;code>java.lang.Object&lt;/code>.&#xA;&lt;/ul>&#xA;&#xA;&lt;h3>Methods Duplicated in Multiple Proxy Interfaces&lt;/h3>&#xA;&#xA;&lt;p>When two or more interfaces of a proxy class contain a method with&#xA;the same name and parameter signature, the order of the proxy class's&#xA;interfaces becomes significant.  When such a &lt;i>duplicate method&lt;/i>&#xA;is invoked on a proxy instance, the &lt;code>Method&lt;/code> object passed&#xA;to the invocation handler will not necessarily be the one whose&#xA;declaring class is assignable from the reference type of the interface&#xA;that the proxy's method was invoked through.  This limitation exists&#xA;because the corresponding method implementation in the generated proxy&#xA;class cannot determine which interface it was invoked through.&#xA;Therefore, when a duplicate method is invoked on a proxy instance,&#xA;the &lt;code>Method&lt;/code> object for the method in the foremost interface&#xA;that contains the method (either directly or inherited through a&#xA;superinterface) in the proxy class's list of interfaces is passed to&#xA;the invocation handler's &lt;code>invoke&lt;/code> method, regardless of the&#xA;reference type through which the method invocation occurred.&#xA;&#xA;&lt;p>If a proxy interface contains a method with the same name and&#xA;parameter signature as the &lt;code>hashCode&lt;/code>, &lt;code>equals&lt;/code>,&#xA;or &lt;code>toString&lt;/code> methods of &lt;code>java.lang.Object&lt;/code>,&#xA;when such a method is invoked on a proxy instance, the&#xA;&lt;code>Method&lt;/code> object passed to the invocation handler will have&#xA;&lt;code>java.lang.Object&lt;/code> as its declaring class.  In other words,&#xA;the public, non-final methods of &lt;code>java.lang.Object&lt;/code>&#xA;logically precede all of the proxy interfaces for the determination of&#xA;which &lt;code>Method&lt;/code> object to pass to the invocation handler.&#xA;&#xA;&lt;p>Note also that when a duplicate method is dispatched to an&#xA;invocation handler, the &lt;code>invoke&lt;/code> method may only throw&#xA;checked exception types that are assignable to one of the exception&#xA;types in the &lt;code>throws&lt;/code> clause of the method in &lt;i>all&lt;/i> of&#xA;the proxy interfaces that it can be invoked through.  If the&#xA;&lt;code>invoke&lt;/code> method throws a checked exception that is not&#xA;assignable to any of the exception types declared by the method in one&#xA;of the proxy interfaces that it can be invoked through, then an&#xA;unchecked &lt;code>UndeclaredThrowableException&lt;/code> will be thrown by&#xA;the invocation on the proxy instance.  This restriction means that not&#xA;all of the exception types returned by invoking&#xA;&lt;code>getExceptionTypes&lt;/code> on the &lt;code>Method&lt;/code> object&#xA;passed to the &lt;code>invoke&lt;/code> method can necessarily be thrown&#xA;successfully by the &lt;code>invoke&lt;/code> method.&#xA;&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.20, 04/04/20&#xA;@see&#x9;&#x9;InvocationHandler&#xA;@since&#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_195925_7541"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321618_436623_13602" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_195925_7541" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_149432_7531" name="InvocationHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_919893_4889" body="&lt;code>InvocationHandler&lt;/code> is the interface implemented by&#xA;the &lt;i>invocation handler&lt;/i> of a proxy instance.&#xA;&#xA;&lt;p>Each proxy instance has an associated invocation handler.&#xA;When a method is invoked on a proxy instance, the method&#xA;invocation is encoded and dispatched to the &lt;code>invoke&lt;/code>&#xA;method of its invocation handler.&#xA;&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.9, 03/12/19&#xA;@see&#x9;&#x9;Proxy&#xA;@since&#x9;JDK1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_149432_7531"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307799_207126_4885" name="GenericSignatureFormatError">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_556020_4887" body="Thrown when a syntactically malformed signature attribute is&#xA;encountered by a reflective method that needs to interpret the&#xA;generic signature information for a type, method or constructor.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307799_207126_4885"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_869519_13595" isSubstitutable="true" general="_9_5_f720368_1110473546612_882672_7579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307779_179201_4867" name="AnnotatedElement" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307789_409763_4869" body="Represents an annotated element of the program currently running in this&#xA;VM.  This interface allows annotations to be read reflectively.  All&#xA;annotations returned by methods in this interface are immutable and&#xA;serializable.  It is permissible for the caller to modify the&#xA;arrays returned by accessors for array-valued enum members; it will&#xA;have no affect on the arrays returned to other callers.&#xA;&#xA;&lt;p>If an annotation returned by a method in this interface contains&#xA;(directly or indirectly) a {@link Class}-valued member referring to&#xA;a class that is not accessible in this VM, attempting to read the class&#xA;by calling the relevant Class-returning method on the returned annotation&#xA;will result in a {@link TypeNotPresentException}.&#xA;&#xA;&lt;p>Similarly, attempting to read an enum-valued member will result in&#xA;a {@link EnumConstantNotPresentException} if the enum constant in the&#xA;annotation is no longer present in the enum type.&#xA;&#xA;&lt;p>Finally, Attempting to read a member whose definition has evolved&#xA;incompatibly will result in a {@link&#xA;java.lang.annotation.AnnotationTypeMismatchException} or an&#xA;{@link java.lang.annotation.IncompleteAnnotationException}.&#xA;&#xA;@since 1.5&#xA;@author Josh Bloch&#xA;" annotatedElement="_10_5_622020d_1132928307779_179201_4867"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307799_777130_4892" name="MalformedParameterizedTypeException">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_253210_4894" body="Thrown when a semantically malformed parameterized type is&#xA;encountered by a reflective method that needs to instantiate it.&#xA;For example, if the number of type arguments to a parameterized type&#xA;is wrong.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307799_777130_4892"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_339546_13597" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307869_722778_4921" name="WildcardType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307869_322739_4923" body="WildcardType represents a wildcard type expression, such as&#xA;&lt;tt>?&lt;/tt>, &lt;tt>? extends Number&lt;/tt>, or &lt;tt>? super Integer&lt;/tt>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307869_722778_4921"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_715038_13607" isSubstitutable="true" general="_10_5_622020d_1132928307859_269629_4910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_886431_7525" name="Array" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307789_781113_4871" body="The &lt;code>Array&lt;/code> class provides static methods to dynamically create and&#xA;access Java arrays.&#xA;&#xA;&lt;p>&lt;code>Array&lt;/code> permits widening conversions to occur during a get or set&#xA;operation, but throws an &lt;code>IllegalArgumentException&lt;/code> if a narrowing&#xA;conversion would occur.&#xA;&#xA;@author Nakul Saraiya&#xA;" annotatedElement="_9_5_f720368_1110473546612_886431_7525"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_898431_7545" name="ReflectPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307859_208391_4909" body="The Permission class for reflective operations.  A&#xA;ReflectPermission is a &lt;em>named permission&lt;/em> and has no&#xA;actions.  The only name currently defined is &lt;tt>suppressAccessChecks&lt;/tt>,&#xA;which allows suppressing the standard Java language access checks&#xA;-- for public, default (package) access, protected, and private&#xA;members -- performed by reflected objects at their point of use.&#xA;&lt;P>&#xA;The following table&#xA;provides a summary description of what the permission allows,&#xA;and discusses the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;Table shows permission target name, what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>suppressAccessChecks&lt;/td>&#xA;&lt;td>ability to access&#xA;fields and invoke methods in a class. Note that this includes&#xA;not only public, but protected and private fields and methods as well.&lt;/td>&#xA;&lt;td>This is dangerous in that information (possibly confidential) and&#xA;methods normally unavailable would be accessible to malicious code.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.BasicPermission&#xA;@see AccessibleObject&#xA;@see Field#get&#xA;@see Field#set&#xA;@see Method#invoke&#xA;@see Constructor#newInstance&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_898431_7545"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_275849_13604" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307859_269629_4910" name="Type" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307859_846396_4912" body="Type is the common superinterface for all types in the Java&#xA;programming language. These include raw types, parameterized types,&#xA;array types, type variables and primitive types.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307859_269629_4910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_39405_7533" name="InvocationTargetException">
              <ownedComment xmi:id="_10_5_622020d_1132928307799_908777_4891" body="InvocationTargetException is a checked exception that wraps&#xA;an exception thrown by an invoked method or constructor.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;target exception&quot;&#xA;that is provided at construction time and accessed via the&#xA;{@link #getTargetException()} method is now known as the &lt;i>cause&lt;/i>,&#xA;and may be accessed via the {@link Throwable#getCause()} method,&#xA;as well as the aforementioned &quot;legacy method.&quot;&#xA;&#xA;@see Method&#xA;@see Constructor&#xA;" annotatedElement="_9_5_f720368_1110473546612_39405_7533"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_209929_13596" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_913808_7529" name="Field" clientDependency="_10_5_622020d_1132928321618_312132_13592" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307789_528660_4878" body="A &lt;code>Field&lt;/code> provides information about, and dynamic access to, a&#xA;single field of a class or an interface.  The reflected field may&#xA;be a class (static) field or an instance field.&#xA;&#xA;&lt;p>A &lt;code>Field&lt;/code> permits widening conversions to occur during a get or&#xA;set access operation, but throws an &lt;code>IllegalArgumentException&lt;/code> if a&#xA;narrowing conversion would occur.&#xA;&#xA;@see Member&#xA;@see java.lang.Class&#xA;@see java.lang.Class#getFields()&#xA;@see java.lang.Class#getField(String)&#xA;@see java.lang.Class#getDeclaredFields()&#xA;@see java.lang.Class#getDeclaredField(String)&#xA;&#xA;@author Kenneth Russell&#xA;@author Nakul Saraiya&#xA;" annotatedElement="_9_5_f720368_1110473546612_913808_7529"/>
              <generalization xmi:id="_10_5_622020d_1132928321618_56576_13593" isSubstitutable="true" general="_9_5_f720368_1110473546612_513168_7523"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321618_312132_13592" name="" supplier="_9_5_f720368_1110473546612_6172_7535" client="_9_5_f720368_1110473546612_913808_7529" contract="_9_5_f720368_1110473546612_6172_7535"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_726183_7711" name="Throwable" clientDependency="_10_5_622020d_1132928321699_736731_13766">
            <ownedComment xmi:id="_10_5_622020d_1132928308189_165261_5192" body="The &lt;code>Throwable&lt;/code> class is the superclass of all errors and&#xA;exceptions in the Java language. Only objects that are instances of this&#xA;class (or one of its subclasses) are thrown by the Java Virtual Machine or&#xA;can be thrown by the Java &lt;code>throw&lt;/code> statement. Similarly, only&#xA;this class or one of its subclasses can be the argument type in a&#xA;&lt;code>catch&lt;/code> clause.&#xA;&#xA;&lt;p>Instances of two subclasses, {@link java.lang.Error} and&#xA;{@link java.lang.Exception}, are conventionally used to indicate&#xA;that exceptional situations have occurred. Typically, these instances&#xA;are freshly created in the context of the exceptional situation so&#xA;as to include relevant information (such as stack trace data).&#xA;&#xA;&lt;p>A throwable contains a snapshot of the execution stack of its thread at&#xA;the time it was created. It can also contain a message string that gives&#xA;more information about the error. Finally, it can contain a &lt;i>cause&lt;/i>:&#xA;another throwable that caused this throwable to get thrown.  The cause&#xA;facility is new in release 1.4.  It is also known as the &lt;i>chained&#xA;exception&lt;/i> facility, as the cause can, itself, have a cause, and so on,&#xA;leading to a &quot;chain&quot; of exceptions, each caused by another.&#xA;&#xA;&lt;p>One reason that a throwable may have a cause is that the class that&#xA;throws it is built atop a lower layered abstraction, and an operation on&#xA;the upper layer fails due to a failure in the lower layer.  It would be bad&#xA;design to let the throwable thrown by the lower layer propagate outward, as&#xA;it is generally unrelated to the abstraction provided by the upper layer.&#xA;Further, doing so would tie the API of the upper layer to the details of&#xA;its implementation, assuming the lower layer's exception was a checked&#xA;exception.  Throwing a &quot;wrapped exception&quot; (i.e., an exception containing a&#xA;cause) allows the upper layer to communicate the details of the failure to&#xA;its caller without incurring either of these shortcomings.  It preserves&#xA;the flexibility to change the implementation of the upper layer without&#xA;changing its API (in particular, the set of exceptions thrown by its&#xA;methods).&#xA;&#xA;&lt;p>A second reason that a throwable may have a cause is that the method&#xA;that throws it must conform to a general-purpose interface that does not&#xA;permit the method to throw the cause directly.  For example, suppose&#xA;a persistent collection conforms to the {@link java.util.Collection&#xA;Collection} interface, and that its persistence is implemented atop&#xA;&lt;tt>java.io&lt;/tt>.  Suppose the internals of the &lt;tt>put&lt;/tt> method&#xA;can throw an {@link java.io.IOException IOException}.  The implementation&#xA;can communicate the details of the &lt;tt>IOException&lt;/tt> to its caller&#xA;while conforming to the &lt;tt>Collection&lt;/tt> interface by wrapping the&#xA;&lt;tt>IOException&lt;/tt> in an appropriate unchecked exception.  (The&#xA;specification for the persistent collection should indicate that it is&#xA;capable of throwing such exceptions.)&#xA;&#xA;&lt;p>A cause can be associated with a throwable in two ways: via a&#xA;constructor that takes the cause as an argument, or via the&#xA;{@link #initCause(Throwable)} method.  New throwable classes that&#xA;wish to allow causes to be associated with them should provide constructors&#xA;that take a cause and delegate (perhaps indirectly) to one of the&#xA;&lt;tt>Throwable&lt;/tt> constructors that takes a cause.  For example:&#xA;&lt;pre>&#xA;try {&#xA;lowLevelOp();&#xA;} catch (LowLevelException le) {&#xA;throw new HighLevelException(le);  // Chaining-aware constructor&#xA;}&#xA;&lt;/pre>&#xA;Because the &lt;tt>initCause&lt;/tt> method is public, it allows a cause to be&#xA;associated with any throwable, even a &quot;legacy throwable&quot; whose&#xA;implementation predates the addition of the exception chaining mechanism to&#xA;&lt;tt>Throwable&lt;/tt>. For example:&#xA;&lt;pre>&#xA;try {&#xA;lowLevelOp();&#xA;} catch (LowLevelException le) {&#xA;throw (HighLevelException)&#xA;new HighLevelException().initCause(le);  // Legacy constructor&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Prior to release 1.4, there were many throwables that had their own&#xA;non-standard exception chaining mechanisms (&#xA;{@link ExceptionInInitializerError}, {@link ClassNotFoundException},&#xA;{@link java.lang.reflect.UndeclaredThrowableException},&#xA;{@link java.lang.reflect.InvocationTargetException},&#xA;{@link java.io.WriteAbortedException},&#xA;{@link java.security.PrivilegedActionException},&#xA;{@link java.awt.print.PrinterIOException},&#xA;{@link java.rmi.RemoteException} and&#xA;{@link javax.naming.NamingException}).&#xA;All of these throwables have been retrofitted to&#xA;use the standard exception chaining mechanism, while continuing to&#xA;implement their &quot;legacy&quot; chaining mechanisms for compatibility.&#xA;&#xA;&lt;p>Further, as of release 1.4, many general purpose &lt;tt>Throwable&lt;/tt>&#xA;classes (for example {@link Exception}, {@link RuntimeException},&#xA;{@link Error}) have been retrofitted with constructors that take&#xA;a cause.  This was not strictly necessary, due to the existence of the&#xA;&lt;tt>initCause&lt;/tt> method, but it is more convenient and expressive to&#xA;delegate to a constructor that takes a cause.&#xA;&#xA;&lt;p>By convention, class &lt;code>Throwable&lt;/code> and its subclasses have two&#xA;constructors, one that takes no arguments and one that takes a&#xA;&lt;code>String&lt;/code> argument that can be used to produce a detail message.&#xA;Further, those subclasses that might likely have a cause associated with&#xA;them should have two more constructors, one that takes a&#xA;&lt;code>Throwable&lt;/code> (the cause), and one that takes a&#xA;&lt;code>String&lt;/code> (the detail message) and a &lt;code>Throwable&lt;/code> (the&#xA;cause).&#xA;&#xA;&lt;p>Also introduced in release 1.4 is the {@link #getStackTrace()} method,&#xA;which allows programmatic access to the stack trace information that was&#xA;previously available only in text form, via the various forms of the&#xA;{@link #printStackTrace()} method.  This information has been added to the&#xA;&lt;i>serialized representation&lt;/i> of this class so &lt;tt>getStackTrace&lt;/tt>&#xA;and &lt;tt>printStackTrace&lt;/tt> will operate properly on a throwable that&#xA;was obtained by deserialization.&#xA;&#xA;@author  unascribed&#xA;@author  Josh Bloch (Added exception chaining and programmatic access to&#xA;stack trace in 1.4.)&#xA;@version 1.53, 12/19/03&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_726183_7711"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321699_736731_13766" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_726183_7711" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_138336_7629" name="InstantiationException">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_146773_5058" body="Thrown when an application tries to create an instance of a class&#xA;using the &lt;code>newInstance&lt;/code> method in class&#xA;&lt;code>Class&lt;/code>, but the specified class object cannot be&#xA;instantiated because it is an interface or is an abstract class.&#xA;&#xA;@author  unascribed&#xA;@version 1.17, 12/19/03&#xA;@see     java.lang.Class#newInstance()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_138336_7629"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_861985_13674" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307909_492399_4969" name="CharacterDataUndefined" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307919_811271_4971" body="The CharacterData class encapsulates the large tables found in&#xA;Java.lang.Character." annotatedElement="_10_5_622020d_1132928307909_492399_4969"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321648_934758_13642" name="Comparable&lt;Double>">
            <templateBinding xmi:id="_10_5_622020d_1132928321648_793694_13643" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321648_421713_13644" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_897100_7595"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_476224_7557" name="AssertionError">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_981850_4939" body="Thrown to indicate that an assertion has failed.&#xA;&#xA;&lt;p>The seven one-argument public constructors provided by this&#xA;class ensure that the assertion error returned by the invocation:&#xA;&lt;pre>&#xA;new AssertionError(&lt;i>expression&lt;/i>)&#xA;&lt;/pre>&#xA;has as its detail message the &lt;i>string conversion&lt;/i> of&#xA;&lt;i>expression&lt;/i> (as defined in &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html&quot;>&#xA;&lt;i>The Java Language Specification, Second Edition&lt;/i>&lt;/a>,&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#40220&quot;>&#xA;Section  15.18.1.1&lt;/a>), regardless of the type of &lt;i>expression&lt;/i>.&#xA;&#xA;@version 1.7, 12/19/03&#xA;@since   JDK1.4&#xA;" annotatedElement="_9_5_f720368_1110473546612_476224_7557"/>
            <generalization xmi:id="_10_5_622020d_1132928321618_861132_13614" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_583517_7637" name="LinkageError">
            <ownedComment xmi:id="_10_5_622020d_1132928307989_782108_5073" body="Subclasses of &lt;code>LinkageError&lt;/code> indicate that a class has&#xA;some dependency on another class; however, the latter class has&#xA;incompatibly changed after the compilation of the former class.&#xA;&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_583517_7637"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_778914_13682" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_509786_7681" name="Short" clientDependency="_10_5_622020d_1132928321689_582505_13736" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_309136_5142" body="The &lt;code>Short&lt;/code> class wraps a value of primitive type&#xA;&lt;code>short&lt;/code> in an object.  An object of type&#xA;&lt;code>Short&lt;/code> contains a single field whose type is&#xA;&lt;code>short&lt;/code>.&#xA;&#xA;&lt;p>&#xA;&#xA;In addition, this class provides several methods for converting a&#xA;&lt;code>short&lt;/code> to a &lt;code>String&lt;/code> and a&#xA;&lt;code>String&lt;/code> to a &lt;code>short&lt;/code>, as well as other&#xA;constants and methods useful when dealing with a &lt;code>short&lt;/code>.&#xA;&#xA;@author  Nakul Saraiya&#xA;@version 1.43, 05/11/04&#xA;@see     java.lang.Number&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_509786_7681"/>
            <generalization xmi:id="_10_5_622020d_1132928321689_877534_13737" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_582505_13736" name="" supplier="_10_5_622020d_1132928321689_111514_13733" client="_9_5_f720368_1110473546612_509786_7681" contract="_10_5_622020d_1132928321689_111514_13733"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308149_771096_5140" name="ShortCache" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321679_287856_13725" name="Comparator&lt;Entry&lt;String, String>>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_569398_13726" signature="_10_5_622020d_1132928310923_924476_7163">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_804355_13727" formal="_10_5_622020d_1132928310923_956594_7164" actual="_10_5_622020d_1132928321669_477586_13704"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_501831_7641" name="Math" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308029_981910_5078" body="The class &lt;code>Math&lt;/code> contains methods for performing basic&#xA;numeric operations such as the elementary exponential, logarithm,&#xA;square root, and trigonometric functions.&#xA;&#xA;&lt;p>Unlike some of the numeric methods of class&#xA;&lt;code>StrictMath&lt;/code>, all implementations of the equivalent&#xA;functions of class &lt;code>Math&lt;/code> are not defined to return the&#xA;bit-for-bit same results.  This relaxation permits&#xA;better-performing implementations where strict reproducibility is&#xA;not required.&#xA;&#xA;&lt;p>By default many of the &lt;code>Math&lt;/code> methods simply call&#xA;the equivalent method in &lt;code>StrictMath&lt;/code> for their&#xA;implementation.  Code generators are encouraged to use&#xA;platform-specific native libraries or microprocessor instructions,&#xA;where available, to provide higher-performance implementations of&#xA;&lt;code>Math&lt;/code> methods.  Such higher-performance&#xA;implementations still must conform to the specification for&#xA;&lt;code>Math&lt;/code>.&#xA;&#xA;&lt;p>The quality of implementation specifications concern two&#xA;properties, accuracy of the returned result and monotonicity of the&#xA;method.  Accuracy of the floating-point &lt;code>Math&lt;/code> methods&#xA;is measured in terms of &lt;i>ulps&lt;/i>, units in the last place.  For&#xA;a given floating-point format, an ulp of a specific real number&#xA;value is the distance between the two floating-point values&#xA;bracketing that numerical value.  When discussing the accuracy of a&#xA;method as a whole rather than at a specific argument, the number of&#xA;ulps cited is for the worst-case error at any argument.  If a&#xA;method always has an error less than 0.5 ulps, the method always&#xA;returns the floating-point number nearest the exact result; such a&#xA;method is &lt;i>correctly rounded&lt;/i>.  A correctly rounded method is&#xA;generally the best a floating-point approximation can be; however,&#xA;it is impractical for many floating-point methods to be correctly&#xA;rounded.  Instead, for the &lt;code>Math&lt;/code> class, a larger error&#xA;bound of 1 or 2 ulps is allowed for certain methods.  Informally,&#xA;with a 1 ulp error bound, when the exact result is a representable&#xA;number, the exact result should be returned as the computed result;&#xA;otherwise, either of the two floating-point values which bracket&#xA;the exact result may be returned.  For exact results large in&#xA;magnitude, one of the endpoints of the bracket may be infinite.&#xA;Besides accuracy at individual arguments, maintaining proper&#xA;relations between the method at different arguments is also&#xA;important.  Therefore, most methods with more than 0.5 ulp errors&#xA;are required to be &lt;i>semi-monotonic&lt;/i>: whenever the mathematical&#xA;function is non-decreasing, so is the floating-point approximation,&#xA;likewise, whenever the mathematical function is non-increasing, so&#xA;is the floating-point approximation.  Not all approximations that&#xA;have 1 ulp accuracy will automatically meet the monotonicity&#xA;requirements.&#xA;&#xA;@author  unascribed&#xA;@author  Joseph D. Darcy&#xA;@version 1.69, 06/14/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_501831_7641"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_180337_7597" name="Error">
            <ownedComment xmi:id="_10_5_622020d_1132928307949_984372_5027" body="An &lt;code>Error&lt;/code> is a subclass of &lt;code>Throwable&lt;/code>&#xA;that indicates serious problems that a reasonable application&#xA;should not try to catch. Most such errors are abnormal conditions.&#xA;The &lt;code>ThreadDeath&lt;/code> error, though a &quot;normal&quot; condition,&#xA;is also a subclass of &lt;code>Error&lt;/code> because most applications&#xA;should not try to catch it.&#xA;&lt;p>&#xA;A method is not required to declare in its &lt;code>throws&lt;/code>&#xA;clause any subclasses of &lt;code>Error&lt;/code> that might be thrown&#xA;during the execution of the method but not caught, since these&#xA;errors are abnormal conditions that should never occur.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.16, 12/19/03&#xA;@see     java.lang.ThreadDeath&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_180337_7597"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_246697_13653" isSubstitutable="true" general="_9_5_f720368_1110473546612_726183_7711"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_396577_7607" name="FDBigInt" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_429426_7705" name="ThreadDeath">
            <ownedComment xmi:id="_10_5_622020d_1132928308179_813059_5181" body="An instance of &lt;code>ThreadDeath&lt;/code> is thrown in the victim&#xA;thread when the &lt;code>stop&lt;/code> method with zero arguments in&#xA;class &lt;code>Thread&lt;/code> is called.&#xA;&lt;p>&#xA;An application should catch instances of this class only if it&#xA;must clean up after being terminated asynchronously. If&#xA;&lt;code>ThreadDeath&lt;/code> is caught by a method, it is important&#xA;that it be rethrown so that the thread actually dies.&#xA;&lt;p>&#xA;The top-level error handler does not print out a message if&#xA;&lt;code>ThreadDeath&lt;/code> is never caught.&#xA;&lt;p>&#xA;The class &lt;code>ThreadDeath&lt;/code> is specifically a subclass of&#xA;&lt;code>Error&lt;/code> rather than &lt;code>Exception&lt;/code>, even though&#xA;it is a &quot;normal occurrence&quot;, because many applications&#xA;catch all occurrences of &lt;code>Exception&lt;/code> and then discard&#xA;the exception.&#xA;&#xA;@author unascribed&#xA;@version 1.15, 12/19/03&#xA;@see     java.lang.Thread#stop()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_429426_7705"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_456059_13760" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307939_802128_5003" name="ConditionalSpecialCasing" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307939_528562_5007" body="This is a utility class for &lt;code>String.toLowerCase()&lt;/code> and&#xA;&lt;code>String.toUpperCase()&lt;/code>, that handles special casing with&#xA;conditions.  In other words, it handles the mappings with conditions&#xA;that are defined in&#xA;&lt;a href=&quot;http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt&quot;>Special&#xA;Casing Properties&lt;/a> file.&#xA;&lt;p>&#xA;Note that the unconditional case mappings (including 1:M mappings)&#xA;are handled in &lt;code>Character.toLower/UpperCase()&lt;/code>.&#xA;" annotatedElement="_10_5_622020d_1132928307939_802128_5003"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307939_4528_5004" name="Entry" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928307939_966156_5005" body="An internal class that represents an entry in the Special Casing Properties.&#xA;" annotatedElement="_10_5_622020d_1132928307939_4528_5004"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_853074_7585" name="ClassNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928307929_145780_4991" body="Thrown when an application tries to load in a class through its&#xA;string name using:&#xA;&lt;ul>&#xA;&lt;li>The &lt;code>forName&lt;/code> method in class &lt;code>Class&lt;/code>.&#xA;&lt;li>The &lt;code>findSystemClass&lt;/code> method in class&#xA;&lt;code>ClassLoader&lt;/code> .&#xA;&lt;li>The &lt;code>loadClass&lt;/code> method in class &lt;code>ClassLoader&lt;/code>.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;but no definition for the class with the specified name could be found.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;optional exception&#xA;that was raised while loading the class&quot; that may be provided at&#xA;construction time and accessed via the {@link #getException()} method is&#xA;now known as the &lt;i>cause&lt;/i>, and may be accessed via the {@link&#xA;Throwable#getCause()} method, as well as the aforementioned &quot;legacy method.&quot;&#xA;&#xA;@author  unascribed&#xA;@version 1.20, 02/19/04&#xA;@see     java.lang.Class#forName(java.lang.String)&#xA;@see     java.lang.ClassLoader#findSystemClass(java.lang.String)&#xA;@see     java.lang.ClassLoader#loadClass(java.lang.String, boolean)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_853074_7585"/>
            <generalization xmi:id="_10_5_622020d_1132928321638_840825_13640" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_879144_7653" name="NoSuchMethodException">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_68002_5090" body="Thrown when a particular method cannot be found.&#xA;&#xA;@author     unascribed&#xA;@version    1.13, 12/19/03&#xA;@since      JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_879144_7653"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_498880_13693" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_425407_7601" name="ExceptionInInitializerError">
            <ownedComment xmi:id="_10_5_622020d_1132928307959_114264_5031" body="Signals that an unexpected exception has occurred in a static initializer.&#xA;An &lt;code>ExceptionInInitializerError&lt;/code> is thrown to indicate that an&#xA;exception occurred during evaluation of a static initializer or the&#xA;initializer for a static variable.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;saved throwable&#xA;object&quot; that may be provided at construction time and accessed via&#xA;the {@link #getException()} method is now known as the &lt;i>cause&lt;/i>,&#xA;and may be accessed via the {@link Throwable#getCause()} method, as well&#xA;as the aforementioned &quot;legacy method.&quot;&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.17, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_425407_7601"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_41151_13655" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_539960_7643" name="NegativeArraySizeException">
            <ownedComment xmi:id="_10_5_622020d_1132928308029_436247_5080" body="Thrown if an application tries to create an array with negative size.&#xA;&#xA;@author  unascribed&#xA;@version 1.19, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_539960_7643"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_43031_13688" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_37695_7651" name="NoSuchMethodError">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_857551_5088" body="Thrown if an application tries to call a specified method of a&#xA;class (either static or instance), and that class no longer has a&#xA;definition of that method.&#xA;&lt;p>&#xA;Normally, this error is caught by the compiler; this error can&#xA;only occur at run time if the definition of a class has&#xA;incompatibly changed.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_37695_7651"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_289776_13692" isSubstitutable="true" general="_9_5_f720368_1110473546612_396947_7621"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_379565_7559" name="AssertionStatusDirectives" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_203817_4941" body="A collection of assertion status directives (such as &quot;enable assertions&#xA;in package p&quot; or &quot;disable assertions in class c&quot;).  This class is used by&#xA;the JVM to communicate the assertion status directives implied by&#xA;the &lt;tt>java&lt;/tt> command line flags &lt;tt>-enableassertions&lt;/tt>&#xA;(&lt;tt>-ea&lt;/tt>) and &lt;tt>-disableassertions&lt;/tt> (&lt;tt>-da&lt;/tt>).&#xA;&#xA;@since  1.4&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546612_379565_7559"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928324232_498755_18742" name="Enum&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928324232_708575_18743" signature="_10_5_622020d_1132928307949_365894_5018">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928324232_918086_18744" formal="_10_5_622020d_1132928307949_644246_5019" actual="_10_5_622020d_1132928307949_506394_5020"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_321766_7611" name="IllegalAccessException">
            <ownedComment xmi:id="_10_5_622020d_1132928307959_861792_5037" body="An IllegalAccessException is thrown when an application tries&#xA;to reflectively create an instance (other than an array),&#xA;set or get a field, or invoke a method, but the currently&#xA;executing method does not have access to the definition of&#xA;the specified class, field, method or constructor.&#xA;&#xA;@author  unascribed&#xA;@version 1.14, 12/19/03&#xA;@see     Class#newInstance()&#xA;@see     java.lang.reflect.Field#set(Object, Object)&#xA;@see     java.lang.reflect.Field#setBoolean(Object, boolean)&#xA;@see     java.lang.reflect.Field#setByte(Object, byte)&#xA;@see     java.lang.reflect.Field#setShort(Object, short)&#xA;@see     java.lang.reflect.Field#setChar(Object, char)&#xA;@see     java.lang.reflect.Field#setInt(Object, int)&#xA;@see     java.lang.reflect.Field#setLong(Object, long)&#xA;@see     java.lang.reflect.Field#setFloat(Object, float)&#xA;@see     java.lang.reflect.Field#setDouble(Object, double)&#xA;@see     java.lang.reflect.Field#get(Object)&#xA;@see     java.lang.reflect.Field#getBoolean(Object)&#xA;@see     java.lang.reflect.Field#getByte(Object)&#xA;@see     java.lang.reflect.Field#getShort(Object)&#xA;@see     java.lang.reflect.Field#getChar(Object)&#xA;@see     java.lang.reflect.Field#getInt(Object)&#xA;@see     java.lang.reflect.Field#getLong(Object)&#xA;@see     java.lang.reflect.Field#getFloat(Object)&#xA;@see     java.lang.reflect.Field#getDouble(Object)&#xA;@see     java.lang.reflect.Method#invoke(Object, Object[])&#xA;@see     java.lang.reflect.Constructor#newInstance(Object[])&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_321766_7611"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_104638_13662" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321628_319954_13616" name="Comparable&lt;Boolean>">
            <templateBinding xmi:id="_10_5_622020d_1132928321628_792121_13617" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321628_83202_13618" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_366010_7561"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307889_53221_4952" name="CharacterData00" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307889_978412_4954" body="The CharacterData00 class encapsulates the large tables once found in&#xA;java.lang.Character&#xA;" annotatedElement="_10_5_622020d_1132928307889_53221_4952"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_510097_7695" name="StringCoding" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308159_770112_5159" body="Utility class for string encoding and decoding.&#xA;" annotatedElement="_9_5_f720368_1110473546612_510097_7695"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_301395_17920" name="StringDecoder" visibility="private" isAbstract="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_434972_17922" name="ConverterSD" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321699_397941_13754" isSubstitutable="true" general="_9_5_f720368_1110473547534_301395_17920"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_794266_17924" name="CharsetSD" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321699_794268_13755" isSubstitutable="true" general="_9_5_f720368_1110473547534_301395_17920"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_370384_17926" name="StringEncoder" visibility="private" isAbstract="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_871023_17928" name="ConverterSE" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321699_310487_13756" isSubstitutable="true" general="_9_5_f720368_1110473547534_370384_17926"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_840765_17930" name="CharsetSE" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321699_895883_13757" isSubstitutable="true" general="_9_5_f720368_1110473547534_370384_17926"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321699_864498_13762" name="WeakReference&lt;ThreadLocal>">
            <templateBinding xmi:id="_10_5_622020d_1132928321699_359798_13763" signature="_10_5_622020d_1132928307779_589855_4860">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321699_444080_13764" formal="_10_5_622020d_1132928307779_297685_4861" actual="_9_5_f720368_1110473546612_346971_7709"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_99480_5123" name="ProcessImpl" visibility="package" isLeaf="true">
            <generalization xmi:id="_10_5_622020d_1132928321689_896603_13729" isSubstitutable="true" general="_9_5_f720368_1110473546612_907356_7667"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_682455_7605" name="FloatingDecimal" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_321995_7565" name="Character" clientDependency="_10_5_622020d_1132928321628_576142_13625 _10_5_622020d_1132928321628_424061_13629" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307889_626004_4951" body="The &lt;code>Character&lt;/code> class wraps a value of the primitive&#xA;type &lt;code>char&lt;/code> in an object. An object of type&#xA;&lt;code>Character&lt;/code> contains a single field whose type is&#xA;&lt;code>char&lt;/code>.&#xA;&lt;p>&#xA;In addition, this class provides several methods for determining&#xA;a character's category (lowercase letter, digit, etc.) and for converting&#xA;characters from uppercase to lowercase and vice versa.&#xA;&lt;p>&#xA;Character information is based on the Unicode Standard, version 4.0.&#xA;&lt;p>&#xA;The methods and data of class &lt;code>Character&lt;/code> are defined by&#xA;the information in the &lt;i>UnicodeData&lt;/i> file that is part of the&#xA;Unicode Character Database maintained by the Unicode&#xA;Consortium. This file specifies various properties including name&#xA;and general category for every defined Unicode code point or&#xA;character range.&#xA;&lt;p>&#xA;The file and its description are available from the Unicode Consortium at:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;http://www.unicode.org&quot;>http://www.unicode.org&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>&lt;a name=&quot;unicode&quot;>Unicode Character Representations&lt;/a>&lt;/h4>&#xA;&#xA;&lt;p>The &lt;code>char&lt;/code> data type (and therefore the value that a&#xA;&lt;code>Character&lt;/code> object encapsulates) are based on the&#xA;original Unicode specification, which defined characters as&#xA;fixed-width 16-bit entities. The Unicode standard has since been&#xA;changed to allow for characters whose representation requires more&#xA;than 16 bits.  The range of legal &lt;em>code point&lt;/em>s is now&#xA;U+0000 to U+10FFFF, known as &lt;em>Unicode scalar value&lt;/em>.&#xA;(Refer to the &lt;a&#xA;href=&quot;http://www.unicode.org/reports/tr27/#notation&quot;>&lt;i>&#xA;definition&lt;/i>&lt;/a> of the U+&lt;i>n&lt;/i> notation in the Unicode&#xA;standard.)&#xA;&#xA;&lt;p>The set of characters from U+0000 to U+FFFF is sometimes&#xA;referred to as the &lt;em>Basic Multilingual Plane (BMP)&lt;/em>. &lt;a&#xA;name=&quot;supplementary&quot;>Characters&lt;/a> whose code points are greater&#xA;than U+FFFF are called &lt;em>supplementary character&lt;/em>s.  The Java&#xA;2 platform uses the UTF-16 representation in &lt;code>char&lt;/code>&#xA;arrays and in the &lt;code>String&lt;/code> and &lt;code>StringBuffer&lt;/code>&#xA;classes. In this representation, supplementary characters are&#xA;represented as a pair of &lt;code>char&lt;/code> values, the first from&#xA;the &lt;em>high-surrogates&lt;/em> range, (&amp;#92;uD800-&amp;#92;uDBFF), the&#xA;second from the &lt;em>low-surrogates&lt;/em> range&#xA;(&amp;#92;uDC00-&amp;#92;uDFFF).&#xA;&#xA;&lt;p>A &lt;code>char&lt;/code> value, therefore, represents Basic&#xA;Multilingual Plane (BMP) code points, including the surrogate&#xA;code points, or code units of the UTF-16 encoding. An&#xA;&lt;code>int&lt;/code> value represents all Unicode code points,&#xA;including supplementary code points. The lower (least significant)&#xA;21 bits of &lt;code>int&lt;/code> are used to represent Unicode code&#xA;points and the upper (most significant) 11 bits must be zero.&#xA;Unless otherwise specified, the behavior with respect to&#xA;supplementary characters and surrogate &lt;code>char&lt;/code> values is&#xA;as follows:&#xA;&#xA;&lt;ul>&#xA;&lt;li>The methods that only accept a &lt;code>char&lt;/code> value cannot support&#xA;supplementary characters. They treat &lt;code>char&lt;/code> values from the&#xA;surrogate ranges as undefined characters. For example,&#xA;&lt;code>Character.isLetter('&amp;#92;uD840')&lt;/code> returns &lt;code>false&lt;/code>, even though&#xA;this specific value if followed by any low-surrogate value in a string&#xA;would represent a letter.&#xA;&#xA;&lt;li>The methods that accept an &lt;code>int&lt;/code> value support all&#xA;Unicode characters, including supplementary characters. For&#xA;example, &lt;code>Character.isLetter(0x2F81A)&lt;/code> returns&#xA;&lt;code>true&lt;/code> because the code point value represents a letter&#xA;(a CJK ideograph).&#xA;&lt;/ul>&#xA;&#xA;&lt;p>In the J2SE API documentation, &lt;em>Unicode code point&lt;/em> is&#xA;used for character values in the range between U+0000 and U+10FFFF,&#xA;and &lt;em>Unicode code unit&lt;/em> is used for 16-bit&#xA;&lt;code>char&lt;/code> values that are code units of the &lt;em>UTF-16&lt;/em>&#xA;encoding. For more information on Unicode terminology, refer to the&#xA;&lt;a href=&quot;http://www.unicode.org/glossary/&quot;>Unicode Glossary&lt;/a>.&#xA;&#xA;@author  Lee Boynton&#xA;@author  Guy Steele&#xA;@author  Akira Tanaka&#xA;@since   1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_321995_7565"/>
            <generalization xmi:id="_10_5_622020d_1132928321628_504562_13630" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_576142_13625" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_321995_7565" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_424061_13629" name="" supplier="_10_5_622020d_1132928321628_377743_13626" client="_9_5_f720368_1110473546612_321995_7565" contract="_10_5_622020d_1132928321628_377743_13626"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547331_961965_16706" name="Subset">
              <ownedComment xmi:id="_10_5_622020d_1132928307889_887542_4947" body="Instances of this class represent particular subsets of the Unicode&#xA;character set.  The only family of subsets defined in the&#xA;&lt;code>Character&lt;/code> class is &lt;code>{@link Character.UnicodeBlock&#xA;UnicodeBlock}&lt;/code>.  Other portions of the Java API may define other&#xA;subsets for their own purposes.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547331_961965_16706"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_527571_17842" name="UnicodeBlock" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307889_41161_4948" body="A family of character subsets representing the character blocks in the&#xA;Unicode specification. Character blocks generally define characters&#xA;used for a specific script or purpose. A character is contained by&#xA;at most one Unicode block.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547503_527571_17842"/>
              <generalization xmi:id="_10_5_622020d_1132928321628_755629_13631" isSubstitutable="true" general="_9_5_f720368_1110473547331_961965_16706"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307889_592702_4949" name="CharacterCache" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308049_75077_5112" name="ProcessBuilder" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308059_172155_5114" body="This class is used to create operating system processes.&#xA;&#xA;&lt;p>Each &lt;code>ProcessBuilder&lt;/code> instance manages a collection&#xA;of process attributes.  The {@link #start()} method creates a new&#xA;{@link Process} instance with those attributes.  The {@link&#xA;#start()} method can be invoked repeatedly from the same instance&#xA;to create new subprocesses with identical or related attributes.&#xA;&#xA;&lt;p>Each process builder manages these process attributes:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>a &lt;i>command&lt;/i>, a list of strings which signifies the&#xA;external program file to be invoked and its arguments, if any.&#xA;Which string lists represent a valid operating system command is&#xA;system-dependent.  For example, it is common for each conceptual&#xA;argument to be an element in this list, but there are operating&#xA;systems where programs are expected to tokenize command line&#xA;strings themselves - on such a system a Java implementation might&#xA;require commands to contain exactly two elements.&#xA;&#xA;&lt;li>an &lt;i>environment&lt;/i>, which is a system-dependent mapping from&#xA;&lt;i>variables&lt;/i> to &lt;i>values&lt;/i>.  The initial value is a copy of&#xA;the environment of the current process (see {@link System#getenv()}).&#xA;&#xA;&lt;li>a &lt;i>working directory&lt;/i>.  The default value is the current&#xA;working directory of the current process, usually the directory&#xA;named by the system property &lt;code>user.dir&lt;/code>.&#xA;&#xA;&lt;li>a &lt;i>redirectErrorStream&lt;/i> property.  Initially, this property&#xA;is &lt;code>false&lt;/code>, meaning that the standard output and error&#xA;output of a subprocess are sent to two separate streams, which can&#xA;be accessed using the {@link Process#getInputStream()} and {@link&#xA;Process#getErrorStream()} methods.  If the value is set to&#xA;&lt;code>true&lt;/code>, the standard error is merged with the standard&#xA;output.  This makes it easier to correlate error messages with the&#xA;corresponding output.  In this case, the merged data can be read&#xA;from the stream returned by {@link Process#getInputStream()}, while&#xA;reading from the stream returned by {@link&#xA;Process#getErrorStream()} will get an immediate end of file.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>Modifying a process builder's attributes will affect processes&#xA;subsequently started by that object's {@link #start()} method, but&#xA;will never affect previously started processes or the Java process&#xA;itself.&#xA;&#xA;&lt;p>Most error checking is performed by the {@link #start()} method.&#xA;It is possible to modify the state of an object so that {@link&#xA;#start()} will fail.  For example, setting the command attribute to&#xA;an empty list will not throw an exception unless {@link #start()}&#xA;is invoked.&#xA;&#xA;&lt;p>&lt;strong>Note that this class is not synchronized.&lt;/strong>&#xA;If multiple threads access a &lt;code>ProcessBuilder&lt;/code> instance&#xA;concurrently, and at least one of the threads modifies one of the&#xA;attributes structurally, it &lt;i>must&lt;/i> be synchronized externally.&#xA;&#xA;&lt;p>Starting a new process which uses the default working directory&#xA;and environment is easy:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Process p = new ProcessBuilder(&quot;myCommand&quot;, &quot;myArg&quot;).start();&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>Here is an example that starts a process with a modified working&#xA;directory and environment:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;ProcessBuilder pb = new ProcessBuilder(&quot;myCommand&quot;, &quot;myArg1&quot;, &quot;myArg2&quot;);&#xA;Map&lt;String, String> env = pb.environment();&#xA;env.put(&quot;VAR1&quot;, &quot;myValue&quot;);&#xA;env.remove(&quot;OTHERVAR&quot;);&#xA;env.put(&quot;VAR2&quot;, env.get(&quot;VAR1&quot;) + &quot;suffix&quot;);&#xA;pb.directory(&quot;myDir&quot;);&#xA;Process p = pb.start();&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>To start a process with an explicit set of environment&#xA;variables, first call {@link java.util.Map#clear() Map.clear()}&#xA;before adding environment variables.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308049_75077_5112"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_882672_7579" name="ClassFormatError">
            <ownedComment xmi:id="_10_5_622020d_1132928307929_334996_4985" body="Thrown when the Java Virtual Machine attempts to read a class&#xA;file and determines that the file is malformed or otherwise cannot&#xA;be interpreted as a class file.&#xA;&#xA;@author  unascribed&#xA;@version 1.20, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_882672_7579"/>
            <generalization xmi:id="_10_5_622020d_1132928321638_396622_13638" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_624360_7723" name="VirtualMachineError" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_928476_5207" body="Thrown to indicate that the Java Virtual Machine is broken or has&#xA;run out of resources necessary for it to continue operating.&#xA;&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.14, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_624360_7723"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_246434_13773" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_433369_7581" name="ClassLoader" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307929_602694_4988" body="A class loader is an object that is responsible for loading classes. The&#xA;class &lt;tt>ClassLoader&lt;/tt> is an abstract class.  Given the &lt;a&#xA;href=&quot;#name&quot;>binary name&lt;/a> of a class, a class loader should attempt to&#xA;locate or generate data that constitutes a definition for the class.  A&#xA;typical strategy is to transform the name into a file name and then read a&#xA;&quot;class file&quot; of that name from a file system.&#xA;&#xA;&lt;p> Every {@link Class &lt;tt>Class&lt;/tt>} object contains a {@link&#xA;Class#getClassLoader() reference} to the &lt;tt>ClassLoader&lt;/tt> that defined&#xA;it.&#xA;&#xA;&lt;p> &lt;tt>Class&lt;/tt> objects for array classes are not created by class&#xA;loaders, but are created automatically as required by the Java runtime.&#xA;The class loader for an array class, as returned by {@link&#xA;Class#getClassLoader()} is the same as the class loader for its element&#xA;type; if the element type is a primitive type, then the array class has no&#xA;class loader.&#xA;&#xA;&lt;p> Applications implement subclasses of &lt;tt>ClassLoader&lt;/tt> in order to&#xA;extend the manner in which the Java virtual machine dynamically loads&#xA;classes.&#xA;&#xA;&lt;p> Class loaders may typically be used by security managers to indicate&#xA;security domains.&#xA;&#xA;&lt;p> The &lt;tt>ClassLoader&lt;/tt> class uses a delegation model to search for&#xA;classes and resources.  Each instance of &lt;tt>ClassLoader&lt;/tt> has an&#xA;associated parent class loader.  When requested to find a class or&#xA;resource, a &lt;tt>ClassLoader&lt;/tt> instance will delegate the search for the&#xA;class or resource to its parent class loader before attempting to find the&#xA;class or resource itself.  The virtual machine's built-in class loader,&#xA;called the &quot;bootstrap class loader&quot;, does not itself have a parent but may&#xA;serve as the parent of a &lt;tt>ClassLoader&lt;/tt> instance.&#xA;&#xA;&lt;p> Normally, the Java virtual machine loads classes from the local file&#xA;system in a platform-dependent manner.  For example, on UNIX systems, the&#xA;virtual machine loads classes from the directory defined by the&#xA;&lt;tt>CLASSPATH&lt;/tt> environment variable.&#xA;&#xA;&lt;p> However, some classes may not originate from a file; they may originate&#xA;from other sources, such as the network, or they could be constructed by an&#xA;application.  The method {@link #defineClass(String, byte[], int, int)&#xA;&lt;tt>defineClass&lt;/tt>} converts an array of bytes into an instance of class&#xA;&lt;tt>Class&lt;/tt>. Instances of this newly defined class can be created using&#xA;{@link Class#newInstance &lt;tt>Class.newInstance&lt;/tt>}.&#xA;&#xA;&lt;p> The methods and constructors of objects created by a class loader may&#xA;reference other classes.  To determine the class(es) referred to, the Java&#xA;virtual machine invokes the {@link #loadClass &lt;tt>loadClass&lt;/tt>} method of&#xA;the class loader that originally created the class.&#xA;&#xA;&lt;p> For example, an application could create a network class loader to&#xA;download class files from a server.  Sample code might look like:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;ClassLoader loader&amp;nbsp;= new NetworkClassLoader(host,&amp;nbsp;port);&#xA;Object main&amp;nbsp;= loader.loadClass(&quot;Main&quot;, true).newInstance();&#xA;&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The network class loader subclass must define the methods {@link&#xA;#findClass &lt;tt>findClass&lt;/tt>} and &lt;tt>loadClassData&lt;/tt> to load a class&#xA;from the network.  Once it has downloaded the bytes that make up the class,&#xA;it should use the method {@link #defineClass &lt;tt>defineClass&lt;/tt>} to&#xA;create a class instance.  A sample implementation is:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;class NetworkClassLoader extends ClassLoader {&#xA;String host;&#xA;int port;&#xA;&#xA;public Class findClass(String name) {&#xA;byte[] b = loadClassData(name);&#xA;return defineClass(name, b, 0, b.length);&#xA;}&#xA;&#xA;private byte[] loadClassData(String name) {&#xA;load the class data from the connection&#xA;&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;h4> &lt;a name=&quot;name&quot;>Binary names&lt;/a> &lt;/h4>&#xA;&#xA;&lt;p> Any class name provided as a {@link String} parameter to methods in&#xA;&lt;tt>ClassLoader&lt;/tt> must be a binary name as defined by the &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/&quot;>Java Language Specification&lt;/a>.&#xA;&#xA;&lt;p> Examples of valid class names include:&#xA;&lt;blockquote>&lt;pre>&#xA;&quot;java.lang.String&quot;&#xA;&quot;javax.swing.JSpinner$DefaultEditor&quot;&#xA;&quot;java.security.KeyStore$Builder$FileBuilder$1&quot;&#xA;&quot;java.net.URLClassLoader$3$1&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@version  1.186, 08/02/04&#xA;@see      #resolveClass(Class)&#xA;@since 1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_433369_7581"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547518_440238_17855" name="NativeLibrary" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928307929_594600_4986" body="The inner class NativeLibrary denotes a loaded native library instance.&#xA;Every classloader contains a vector of loaded native libraries in the&#xA;private field &lt;tt>nativeLibraries&lt;/tt>.  The native libraries loaded&#xA;into the system are entered into the &lt;tt>systemNativeLibraries&lt;/tt>&#xA;vector.&#xA;&#xA;&lt;p> Every native library requires a particular version of JNI. This is&#xA;denoted by the private &lt;tt>jniVersion&lt;/tt> field.  This field is set by&#xA;the VM when it loads the library, and used by the VM to pass the correct&#xA;version of JNI to the native methods.  &lt;/p>&#xA;&#xA;@version  1.186 08/02/04&#xA;@see      ClassLoader&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473547518_440238_17855"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321628_825173_13620" name="Comparable&lt;Byte>">
            <templateBinding xmi:id="_10_5_622020d_1132928321628_217888_13621" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321628_332128_13622" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_256090_7563"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321689_923904_13741" name="Comparable&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321689_987000_13742" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321689_958545_13743" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307869_604362_4929" name="Appendable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_490434_4931" body="An object to which &lt;tt>char&lt;/tt> sequences and values can be appended.  The&#xA;&lt;tt>Appendable&lt;/tt> interface must be implemented by any class whose&#xA;instances are intended to receive formatted output from a {@link&#xA;java.util.Formatter}.&#xA;&#xA;&lt;p> The characters to be appended should be valid Unicode characters as&#xA;described in &lt;a href=&quot;Character.html#unicode&quot;>Unicode Character&#xA;Representation&lt;/a>.  Note that supplementary characters may be composed of&#xA;multiple 16-bit &lt;tt>char&lt;/tt> values.&#xA;&#xA;&lt;p> Appendables are not necessarily safe for multithreaded access.  Thread&#xA;safety is the responsibility of classes that extend and implement this&#xA;interface.&#xA;&#xA;&lt;p> Since this interface may be implemented by existing classes&#xA;with different styles of error handling there is no guarantee that&#xA;errors will be propagated to the invoker.&#xA;&#xA;@version &#x9;1.3, 07/16/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307869_604362_4929"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321669_590717_13699" name="HashMap&lt;String, String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321669_189773_13700" signature="_10_5_622020d_1132928313206_982769_7254">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321669_646037_13701" formal="_10_5_622020d_1132928313206_544830_7255" actual="_9_5_f720368_1110473546612_692218_7691"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321669_821403_13702" formal="_10_5_622020d_1132928313206_88358_7257" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_694834_7675" name="RuntimePermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308109_195264_5135" body="This class is for runtime permissions. A RuntimePermission&#xA;contains a name (also referred to as a &quot;target name&quot;) but&#xA;no actions list; you either have the named permission&#xA;or you don't.&#xA;&#xA;&lt;P>&#xA;The target name is the name of the runtime permission (see below). The&#xA;naming convention follows the  hierarchical property naming convention.&#xA;Also, an asterisk&#xA;may appear at the end of the name, following a &quot;.&quot;, or by itself, to&#xA;signify a wildcard match. For example: &quot;loadLibrary.*&quot; or &quot;*&quot; is valid,&#xA;&quot;*loadLibrary&quot; or &quot;a*b&quot; is not valid.&#xA;&lt;P>&#xA;The following table lists all the possible RuntimePermission target names,&#xA;and for each provides a description of what the permission allows&#xA;and a discussion of the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;permission target name,&#xA;what the target allows,and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>createClassLoader&lt;/td>&#xA;&lt;td>Creation of a class loader&lt;/td>&#xA;&lt;td>This is an extremely dangerous permission to grant.&#xA;Malicious applications that can instantiate their own class&#xA;loaders could then load their own rogue classes into the system.&#xA;These newly loaded classes could be placed into any protection&#xA;domain by the class loader, thereby automatically granting the&#xA;classes the permissions for that domain.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getClassLoader&lt;/td>&#xA;&lt;td>Retrieval of a class loader (e.g., the class loader for the calling&#xA;class)&lt;/td>&#xA;&lt;td>This would grant an attacker permission to get the&#xA;class loader for a particular class. This is dangerous because&#xA;having access to a class's class loader allows the attacker to&#xA;load other classes available to that class loader. The attacker&#xA;would typically otherwise not have access to those classes.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setContextClassLoader&lt;/td>&#xA;&lt;td>Setting of the context class loader used by a thread&lt;/td>&#xA;&lt;td>The context class loader is used by system code and extensions&#xA;when they need to lookup resources that might not exist in the system&#xA;class loader. Granting setContextClassLoader permission would allow&#xA;code to change which context class loader is used&#xA;for a particular thread, including system threads.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>enableContextClassLoaderOverride&lt;/td>&#xA;&lt;td>Subclass implementation of the thread context class loader methods&lt;/td>&#xA;&lt;td>The context class loader is used by system code and extensions&#xA;when they need to lookup resources that might not exist in the system&#xA;class loader. Granting enableContextClassLoaderOverride permission would allow&#xA;a subclass of Thread to override the methods that are used&#xA;to get or set the context class loader for a particular thread.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setSecurityManager&lt;/td>&#xA;&lt;td>Setting of the security manager (possibly replacing an existing one)&#xA;&lt;/td>&#xA;&lt;td>The security manager is a class that allows&#xA;applications to implement a security policy. Granting the setSecurityManager&#xA;permission would allow code to change which security manager is used by&#xA;installing a different, possibly less restrictive security manager,&#xA;thereby bypassing checks that would have been enforced by the original&#xA;security manager.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>createSecurityManager&lt;/td>&#xA;&lt;td>Creation of a new security manager&lt;/td>&#xA;&lt;td>This gives code access to protected, sensitive methods that may&#xA;disclose information about other classes or the execution stack.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getenv.{variable name}&lt;/td>&#xA;&lt;td>Reading of the value of the specified environment variable&lt;/td>&#xA;&lt;td>This would allow code to read the value, or determine the&#xA;existence, of a particular environment variable.  This is&#xA;dangerous if the variable contains confidential data.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>exitVM&lt;/td>&#xA;&lt;td>Halting of the Java Virtual Machine&lt;/td>&#xA;&lt;td>This allows an attacker to mount a denial-of-service attack&#xA;by automatically forcing the virtual machine to halt.&#xA;Note: The &quot;exitVM&quot; permission is automatically granted to all code&#xA;loaded from the application class path, thus enabling applications&#xA;to terminate themselves.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>shutdownHooks&lt;/td>&#xA;&lt;td>Registration and cancellation of virtual-machine shutdown hooks&lt;/td>&#xA;&lt;td>This allows an attacker to register a malicious shutdown&#xA;hook that interferes with the clean shutdown of the virtual machine.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setFactory&lt;/td>&#xA;&lt;td>Setting of the socket factory used by ServerSocket or Socket,&#xA;or of the stream handler factory used by URL&lt;/td>&#xA;&lt;td>This allows code to set the actual implementation&#xA;for the socket, server socket, stream handler, or RMI socket factory.&#xA;An attacker may set a faulty implementation which mangles the data&#xA;stream.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setIO&lt;/td>&#xA;&lt;td>Setting of System.out, System.in, and System.err&lt;/td>&#xA;&lt;td>This allows changing the value of the standard system streams.&#xA;An attacker may change System.in to monitor and&#xA;steal user input, or may set System.err to a &quot;null&quot; OutputStream,&#xA;which would hide any error messages sent to System.err. &lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>modifyThread&lt;/td>&#xA;&lt;td>Modification of threads, e.g., via calls to Thread&#xA;&lt;tt>interrupt&lt;/tt>, &lt;tt>stop&lt;/tt>, &lt;tt>suspend&lt;/tt>,&#xA;&lt;tt>resume&lt;/tt>, &lt;tt>setDaemon&lt;/tt>, &lt;tt>setPriority&lt;/tt>,&#xA;&lt;tt>setName&lt;/tt> and &lt;tt>setUncaughtExceptionHandler&lt;/tt>&#xA;methods&lt;/td>&#xA;&lt;td>This allows an attacker to modify the behaviour of&#xA;any thread in the system.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>stopThread&lt;/td>&#xA;&lt;td>Stopping of threads via calls to the Thread &lt;code>stop&lt;/code>&#xA;method&lt;/td>&#xA;&lt;td>This allows code to stop any thread in the system provided that it is&#xA;already granted permission to access that thread.&#xA;This poses as a threat, because that code may corrupt the system by&#xA;killing existing threads.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>modifyThreadGroup&lt;/td>&#xA;&lt;td>modification of thread groups, e.g., via calls to ThreadGroup&#xA;&lt;code>destroy&lt;/code>, &lt;code>getParent&lt;/code>, &lt;code>resume&lt;/code>,&#xA;&lt;code>setDaemon&lt;/code>, &lt;code>setMaxPriority&lt;/code>, &lt;code>stop&lt;/code>,&#xA;and &lt;code>suspend&lt;/code> methods&lt;/td>&#xA;&lt;td>This allows an attacker to create thread groups and&#xA;set their run priority.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getProtectionDomain&lt;/td>&#xA;&lt;td>Retrieval of the ProtectionDomain for a class&lt;/td>&#xA;&lt;td>This allows code to obtain policy information&#xA;for a particular code source. While obtaining policy information&#xA;does not compromise the security of the system, it does give&#xA;attackers additional information, such as local file names for&#xA;example, to better aim an attack.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>readFileDescriptor&lt;/td>&#xA;&lt;td>Reading of file descriptors&lt;/td>&#xA;&lt;td>This would allow code to read the particular file associated&#xA;with the file descriptor read. This is dangerous if the file&#xA;contains confidential data.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>writeFileDescriptor&lt;/td>&#xA;&lt;td>Writing to file descriptors&lt;/td>&#xA;&lt;td>This allows code to write to a particular file associated&#xA;with the descriptor. This is dangerous because it may allow&#xA;malicious code to plant viruses or at the very least, fill up&#xA;your entire disk.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>loadLibrary.{library name}&lt;/td>&#xA;&lt;td>Dynamic linking of the specified library&lt;/td>&#xA;&lt;td>It is dangerous to allow an applet permission to load native code&#xA;libraries, because the Java security architecture is not designed to and&#xA;does not prevent malicious behavior at the level of native code.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>accessClassInPackage.{package name}&lt;/td>&#xA;&lt;td>Access to the specified package via a class loader's&#xA;&lt;code>loadClass&lt;/code> method when that class loader calls&#xA;the SecurityManager &lt;code>checkPackageAccess&lt;/code> method&lt;/td>&#xA;&lt;td>This gives code access to classes in packages&#xA;to which it normally does not have access. Malicious code&#xA;may use these classes to help in its attempt to compromise&#xA;security in the system.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>defineClassInPackage.{package name}&lt;/td>&#xA;&lt;td>Definition of classes in the specified package, via a class&#xA;loader's &lt;code>defineClass&lt;/code> method when that class loader calls&#xA;the SecurityManager &lt;code>checkPackageDefinition&lt;/code> method.&lt;/td>&#xA;&lt;td>This grants code permission to define a class&#xA;in a particular package. This is dangerous because malicious&#xA;code with this permission may define rogue classes in&#xA;trusted packages like &lt;code>java.security&lt;/code> or &lt;code>java.lang&lt;/code>,&#xA;for example.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>accessDeclaredMembers&lt;/td>&#xA;&lt;td>Access to the declared members of a class&lt;/td>&#xA;&lt;td>This grants code permission to query a class for its public,&#xA;protected, default (package) access, and private fields and/or&#xA;methods. Although the code would have&#xA;access to the private and protected field and method names, it would not&#xA;have access to the private/protected field data and would not be able&#xA;to invoke any private methods. Nevertheless, malicious code&#xA;may use this information to better aim an attack.&#xA;Additionally, it may invoke any public methods and/or access public fields&#xA;in the class.  This could be dangerous if&#xA;the code would normally not be able to invoke those methods and/or&#xA;access the fields  because&#xA;it can't cast the object to the class/interface with those methods&#xA;and fields.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>queuePrintJob&lt;/td>&#xA;&lt;td>Initiation of a print job request&lt;/td>&#xA;&lt;td>This could print sensitive information to a printer,&#xA;or simply waste paper.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getStackTrace&lt;/td>&#xA;&lt;td>Retrieval of the stack trace information of another thread.&lt;/td>&#xA;&lt;td>This allows retrieval of the stack trace information of&#xA;another thread.  This might allow malicious code to monitor the&#xA;execution of threads and discover vulnerabilities in applications.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setDefaultUncaughtExceptionHandler&lt;/td>&#xA;&lt;td>Setting the default handler to be used when a thread&#xA;terminates abruptly due to an uncaught exception&lt;/td>&#xA;&lt;td>This allows an attacker to register a malicious&#xA;uncaught exception handler that could interfere with termination&#xA;of a thread&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>preferences&lt;/td>&#xA;&lt;td>Represents the permission required to get access to the&#xA;java.util.prefs.Preferences implementations user or system root&#xA;which in turn allows retrieval or update operations within the&#xA;Preferences persistent backing store.) &lt;/td>&#xA;&lt;td>This permission allows the user to read from or write to the&#xA;preferences backing store if the user running the code has&#xA;sufficient OS privileges to read/write to that backing store.&#xA;The actual backing store may reside within a traditional filesystem&#xA;directory or within a registry depending on the platform OS&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.53 04/04/20&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546612_694834_7675"/>
            <generalization xmi:id="_10_5_622020d_1132928321689_357934_13731" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_11593_7635" name="InterruptedException">
            <ownedComment xmi:id="_10_5_622020d_1132928307989_910651_5065" body="Thrown when a thread is waiting, sleeping, or otherwise paused for&#xA;a long time and another thread interrupts it using the&#xA;&lt;code>interrupt&lt;/code>  method in class &lt;code>Thread&lt;/code>.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.15, 12/19/03&#xA;@see     java.lang.Object#wait()&#xA;@see     java.lang.Object#wait(long)&#xA;@see     java.lang.Object#wait(long, int)&#xA;@see     java.lang.Thread#sleep(long)&#xA;@see     java.lang.Thread#interrupt()&#xA;@see     java.lang.Thread#interrupted()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_11593_7635"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_503569_13681" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_225069_7693" name="StringBuffer" clientDependency="_10_5_622020d_1132928321689_652146_13749 _10_5_622020d_1132928321689_283333_13748" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308159_370438_5154" body="A thread-safe, mutable sequence of characters.&#xA;A string buffer is like a {@link String}, but can be modified. At any&#xA;point in time it contains some particular sequence of characters, but&#xA;the length and content of the sequence can be changed through certain&#xA;method calls.&#xA;&lt;p>&#xA;String buffers are safe for use by multiple threads. The methods&#xA;are synchronized where necessary so that all the operations on any&#xA;particular instance behave as if they occur in some serial order&#xA;that is consistent with the order of the method calls made by each of&#xA;the individual threads involved.&#xA;&lt;p>&#xA;The principal operations on a &lt;code>StringBuffer&lt;/code> are the&#xA;&lt;code>append&lt;/code> and &lt;code>insert&lt;/code> methods, which are&#xA;overloaded so as to accept data of any type. Each effectively&#xA;converts a given datum to a string and then appends or inserts the&#xA;characters of that string to the string buffer. The&#xA;&lt;code>append&lt;/code> method always adds these characters at the end&#xA;of the buffer; the &lt;code>insert&lt;/code> method adds the characters at&#xA;a specified point.&#xA;&lt;p>&#xA;For example, if &lt;code>z&lt;/code> refers to a string buffer object&#xA;whose current contents are &quot;&lt;code>start&lt;/code>&quot;, then&#xA;the method call &lt;code>z.append(&quot;le&quot;)&lt;/code> would cause the string&#xA;buffer to contain &quot;&lt;code>startle&lt;/code>&quot;, whereas&#xA;&lt;code>z.insert(4, &quot;le&quot;)&lt;/code> would alter the string buffer to&#xA;contain &quot;&lt;code>starlet&lt;/code>&quot;.&#xA;&lt;p>&#xA;In general, if sb refers to an instance of a &lt;code>StringBuffer&lt;/code>,&#xA;then &lt;code>sb.append(x)&lt;/code> has the same effect as&#xA;&lt;code>sb.insert(sb.length(),&amp;nbsp;x)&lt;/code>.&#xA;&lt;p>&#xA;Whenever an operation occurs involving a source sequence (such as&#xA;appending or inserting from a source sequence) this class synchronizes&#xA;only on the string buffer performing the operation, not on the source.&#xA;&lt;p>&#xA;Every string buffer has a capacity. As long as the length of the&#xA;character sequence contained in the string buffer does not exceed&#xA;the capacity, it is not necessary to allocate a new internal&#xA;buffer array. If the internal buffer overflows, it is&#xA;automatically made larger.&#xA;&#xA;As of  release JDK 5, this class has been supplemented with an equivalent&#xA;class designed for use by a single thread, {@link StringBuilder}.  The&#xA;&lt;tt>StringBuilder&lt;/tt> class should generally be used in preference to&#xA;this one, as it supports all of the same operations but it is faster, as&#xA;it performs no synchronization.&#xA;&#xA;@author&#x9;Arthur van Hoff&#xA;@version &#x9;1.99, 07/15/04&#xA;@see     java.lang.StringBuilder&#xA;@see     java.lang.String&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_225069_7693"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_370237_13750" isSubstitutable="true" general="_10_5_622020d_1132928307869_383825_4926"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_283333_13748" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_225069_7693" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_652146_13749" name="" supplier="_9_5_f720368_1110473546612_21020_7571" client="_9_5_f720368_1110473546612_225069_7693" contract="_9_5_f720368_1110473546612_21020_7571"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_358911_7717" name="UnsupportedClassVersionError">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_650065_5201" body="Thrown when the Java Virtual Machine attempts to read a class&#xA;file and determines that the major and minor version numbers&#xA;in the file are not supported.&#xA;&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_358911_7717"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_935036_13770" isSubstitutable="true" general="_9_5_f720368_1110473546612_882672_7579"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_149000_7663" name="OutOfMemoryError">
            <ownedComment xmi:id="_10_5_622020d_1132928308049_116758_5100" body="Thrown when the Java Virtual Machine cannot allocate an object&#xA;because it is out of memory, and no more memory could be made&#xA;available by the garbage collector.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_149000_7663"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_647728_13697" isSubstitutable="true" general="_9_5_f720368_1110473546628_624360_7723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_667912_7553" name="ArrayIndexOutOfBoundsException">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_405881_4935" body="Thrown to indicate that an array has been accessed with an&#xA;illegal index. The index is either negative or greater than or&#xA;equal to the size of the array.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_667912_7553"/>
            <generalization xmi:id="_10_5_622020d_1132928321618_13559_13612" isSubstitutable="true" general="_9_5_f720368_1110473546612_382320_7623"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_67261_7689" name="StrictMath" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_588632_5150" body="The class &lt;code>StrictMath&lt;/code> contains methods for performing basic&#xA;numeric operations such as the elementary exponential, logarithm,&#xA;square root, and trigonometric functions.&#xA;&#xA;&lt;p>To help ensure portability of Java programs, the definitions of&#xA;some of the numeric functions in this package require that they&#xA;produce the same results as certain published algorithms. These&#xA;algorithms are available from the well-known network library&#xA;&lt;code>netlib&lt;/code> as the package &quot;Freely Distributable Math&#xA;Library,&quot; &lt;a&#xA;href=&quot;ftp://ftp.netlib.org/fdlibm.tar&quot;>&lt;code>fdlibm&lt;/code>&lt;/a>. These&#xA;algorithms, which are written in the C programming language, are&#xA;then to be understood as executed with all floating-point&#xA;operations following the rules of Java floating-point arithmetic.&#xA;&#xA;&lt;p>The Java math library is defined with respect to&#xA;&lt;code>fdlibm&lt;/code> version 5.3. Where &lt;code>fdlibm&lt;/code> provides&#xA;more than one definition for a function (such as&#xA;&lt;code>acos&lt;/code>), use the &quot;IEEE 754 core function&quot; version&#xA;(residing in a file whose name begins with the letter&#xA;&lt;code>e&lt;/code>).  The methods which require &lt;code>fdlibm&lt;/code>&#xA;semantics are &lt;code>sin&lt;/code>, &lt;code>cos&lt;/code>, &lt;code>tan&lt;/code>,&#xA;&lt;code>asin&lt;/code>, &lt;code>acos&lt;/code>, &lt;code>atan&lt;/code>,&#xA;&lt;code>exp&lt;/code>, &lt;code>log&lt;/code>, &lt;code>log10&lt;/code>,&#xA;&lt;code>cbrt&lt;/code>, &lt;code>atan2&lt;/code>, &lt;code>pow&lt;/code>,&#xA;&lt;code>sinh&lt;/code>, &lt;code>cosh&lt;/code>, &lt;code>tanh&lt;/code>,&#xA;&lt;code>hypot&lt;/code>, &lt;code>expm1&lt;/code>, and &lt;code>log1p&lt;/code>.&#xA;&#xA;@author  unascribed&#xA;@author  Joseph D. Darcy&#xA;@version 1.26, 06/14/04&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_67261_7689"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321669_54718_13683" name="Comparable&lt;Long>">
            <templateBinding xmi:id="_10_5_622020d_1132928321669_807028_13684" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321669_924746_13685" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_800239_7639"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_1187_7613" name="IllegalArgumentException">
            <ownedComment xmi:id="_10_5_622020d_1132928307969_271164_5039" body="Thrown to indicate that a method has been passed an illegal or&#xA;inappropriate argument.&#xA;&#xA;@author  unascribed&#xA;@version 1.23, 12/19/03&#xA;@see&#x9;    java.lang.Thread#setPriority(int)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_1187_7613"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_863565_13663" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_953158_7669" name="Runnable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308069_216266_5129" body="The &lt;code>Runnable&lt;/code> interface should be implemented by any&#xA;class whose instances are intended to be executed by a thread. The&#xA;class must define a method of no arguments called &lt;code>run&lt;/code>.&#xA;&lt;p>&#xA;This interface is designed to provide a common protocol for objects that&#xA;wish to execute code while they are active. For example,&#xA;&lt;code>Runnable&lt;/code> is implemented by class &lt;code>Thread&lt;/code>.&#xA;Being active simply means that a thread has been started and has not&#xA;yet been stopped.&#xA;&lt;p>&#xA;In addition, &lt;code>Runnable&lt;/code> provides the means for a class to be&#xA;active while not subclassing &lt;code>Thread&lt;/code>. A class that implements&#xA;&lt;code>Runnable&lt;/code> can run without subclassing &lt;code>Thread&lt;/code>&#xA;by instantiating a &lt;code>Thread&lt;/code> instance and passing itself in&#xA;as the target.  In most cases, the &lt;code>Runnable&lt;/code> interface should&#xA;be used if you are only planning to override the &lt;code>run()&lt;/code>&#xA;method and no other &lt;code>Thread&lt;/code> methods.&#xA;This is important because classes should not be subclassed&#xA;unless the programmer intends on modifying or enhancing the fundamental&#xA;behavior of the class.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.24, 12/19/03&#xA;@see     java.lang.Thread&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_953158_7669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_74686_7713" name="UnknownError">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_374801_5197" body="Thrown when an unknown but serious exception has occurred in the&#xA;Java Virtual Machine.&#xA;&#xA;@author unascribed&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_74686_7713"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_504962_13768" isSubstitutable="true" general="_9_5_f720368_1110473546628_624360_7723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928307518_833692_4788" name="management">
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307548_226527_4804" name="MemoryManagerMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307548_917730_4806" body="The management interface for a memory manager.&#xA;A memory manager manages one or more memory pools of the&#xA;Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has one or more memory managers.&#xA;An instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getMemoryManagerMXBeans} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;a memory manager within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=MemoryManager&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>manager's name&lt;/i>&#xA;&lt;/blockquote>&#xA;&#xA;@see MemoryMXBean&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.10, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307548_226527_4804"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307678_766185_4823" name="OperatingSystemMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307678_265515_4825" body="The management interface for the operating system on which&#xA;the Java virtual machine is running.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getOperatingSystemMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the operating system within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#OPERATING_SYSTEM_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=OperatingSystem&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> This interface defines several convenient methods for accessing&#xA;system properties about the operating system on which the Java&#xA;virtual machine is running.&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.9, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307678_766185_4823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307688_258318_4832" name="ThreadMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307698_519463_4834" body="The management interface for the thread system of&#xA;the Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getThreadMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the thread system within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#THREAD_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Threading&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4>Thread ID&lt;/h4>&#xA;Thread ID is a positive long value returned by calling the&#xA;{@link java.lang.Thread#getId} method for a thread.&#xA;The thread ID is unique during its lifetime.  When a thread&#xA;is terminated, this thread ID may be reused.&#xA;&#xA;&lt;p> Some methods in this interface take a thread ID or an array&#xA;of thread IDs as the input parameter and return per-thread information.&#xA;&#xA;&lt;h4>Thread CPU time&lt;/h4>&#xA;A Java virtual machine implementation may support measuring&#xA;the CPU time for the current thread, for any thread, or for no threads.&#xA;&#xA;&lt;p>&#xA;The {@link #isThreadCpuTimeSupported} method can be used to determine&#xA;if a Java virtual machine supports measuring of the CPU time for any&#xA;thread.  The {@link #isCurrentThreadCpuTimeSupported} method can&#xA;be used to determine if a Java virtual machine supports measuring of&#xA;the CPU time for the current  thread.&#xA;A Java virtual machine implementation that supports CPU time measurement&#xA;for any thread will also support that for the current thread.&#xA;&#xA;&lt;p> The CPU time provided by this interface has nanosecond precision&#xA;but not necessarily nanosecond accuracy.&#xA;&#xA;&lt;p>&#xA;A Java virtual machine may disable CPU time measurement&#xA;by default.&#xA;The {@link #isThreadCpuTimeEnabled} and {@link #setThreadCpuTimeEnabled}&#xA;methods can be used to test if CPU time measurement is enabled&#xA;and to enable/disable this support respectively.&#xA;Enabling thread CPU measurement could be expensive in some&#xA;Java virtual machine implementations.&#xA;&#xA;&lt;h4>Thread Contention Monitoring&lt;/h4>&#xA;Some Java virtual machines may support thread contention monitoring.&#xA;The {@link #isThreadContentionMonitoringSupported} method can be used to&#xA;determine if a Java virtual machine supports thread contention monitoring.&#xA;&#xA;The thread contention monitoring is disabled by default.  The&#xA;{@link #setThreadContentionMonitoringEnabled} method can be used to enable&#xA;thread contention monitoring.&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.14, 04/29/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307688_258318_4832"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307598_83865_4813" name="MemoryPoolMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307668_730395_4815" body="The management interface for a memory pool.  A memory pool&#xA;represents the memory resource managed by the Java virtual machine&#xA;and is managed by one or more {@link MemoryManagerMXBean memory managers}.&#xA;&#xA;&lt;p> A Java virtual machine has one or more instances of the&#xA;implementation class of this interface.  An instance&#xA;implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getMemoryPoolMXBeans} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;a memory pool within an &lt;tt>MBeanServer&lt;/tt> is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#MEMORY_POOL_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=MemoryPool&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>pool's name&lt;/i>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4>Memory Type&lt;/h4>&#xA;&lt;p>The Java virtual machine has a heap for object allocation and also&#xA;maintains non-heap memory for the method area and the Java virtual&#xA;machine execution.  The Java virtual machine can have one or more&#xA;memory pools.  Each memory pool represents a memory area&#xA;of one of the following types:&#xA;&lt;ul>&#xA;&lt;li>{@link MemoryType#HEAP heap}&lt;/li>&#xA;&lt;li>{@link MemoryType#NON_HEAP non-heap}&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>Memory Usage Monitoring&lt;/h4>&#xA;&#xA;A memory pool has the following attributes:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;Usage&quot;>Memory usage&lt;/a>&lt;/li>&#xA;&lt;li>&lt;a href=&quot;PeakUsage&quot;>Peak memory usage&lt;/a>&lt;/li>&#xA;&lt;li>&lt;a href=&quot;UsageThreshold&quot;>Usage Threshold&lt;/a>&lt;/li>&#xA;&lt;li>&lt;a href=&quot;CollectionThreshold&quot;>Collection Usage Threshold&lt;/a>&#xA;(only supported by some &lt;em>garbage-collected&lt;/em> memory pools)&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>&lt;a name=&quot;Usage&quot;>1. Memory Usage&lt;/a>&lt;/h4>&#xA;&#xA;The {@link #getUsage} method provides an estimate&#xA;of the current usage of a memory pool.&#xA;For a garbage-collected memory pool, the amount of used memory&#xA;includes the memory occupied by all objects in the pool&#xA;including both &lt;em>reachable&lt;/em> and &lt;em>unreachable&lt;/em> objects.&#xA;&#xA;&lt;p>In general, this method is a lightweight operation for getting&#xA;an approximate memory usage.  For some memory pools, for example,&#xA;when objects are not packed contiguously, this method may be&#xA;an expensive operation that requires some computation to determine&#xA;the current memory usage.  An implementation should document when&#xA;this is the case.&#xA;&#xA;&lt;h4>&lt;a name=&quot;PeakUsage&quot;>2. Peak Memory Usage&lt;/a>&lt;/h4>&#xA;&#xA;The Java virtual machine maintains the peak memory usage of a memory&#xA;pool since the virtual machine was started or the peak was reset.&#xA;The peak memory usage is returned by the {@link #getPeakUsage} method&#xA;and reset by calling the {@link #resetPeakUsage} method.&#xA;&#xA;&lt;h4>&lt;a name=&quot;UsageThreshold&quot;>3. Usage Threshold&lt;/a>&lt;/h4>&#xA;&#xA;Each memory pool has a manageable attribute&#xA;called the &lt;i>usage threshold&lt;/i> which has a default value supplied&#xA;by the Java virtual machine.  The default value is platform-dependent.&#xA;The usage threshold can be set via the&#xA;{@link #setUsageThreshold setUsageThreshold} method.&#xA;If the threshold is set to a positive value, the usage threshold crossing&#xA;checking is enabled in this memory pool.&#xA;If the usage threshold is set to zero, usage&#xA;threshold crossing checking on this memory pool is disabled.&#xA;The {@link MemoryPoolMXBean#isUsageThresholdSupported} method can&#xA;be used to determine if this functionality is supported.&#xA;&lt;p>&#xA;A Java virtual machine performs usage threshold crossing checking on a&#xA;memory pool basis at its best appropriate time, typically,&#xA;at garbage collection time.&#xA;Each memory pool maintains a {@link #getUsageThresholdCount&#xA;usage threshold count} that will get incremented&#xA;every time when the Java virtual machine&#xA;detects that the memory pool usage is crossing the threshold.&#xA;&lt;p>&#xA;This manageable usage threshold attribute is designed for monitoring the&#xA;increasing trend of memory usage with low overhead.&#xA;Usage threshold may not be appropriate for some memory pools.&#xA;For example, a generational garbage collector, a common garbage collection&#xA;algorithm used in many Java virtual machine implementations,&#xA;manages two or more generations segregating objects by age.&#xA;Most of the objects are allocated in&#xA;the &lt;em>youngest generation&lt;/em> (say a nursery memory pool).&#xA;The nursery memory pool is designed to be filled up and&#xA;collecting the nursery memory pool will free most of its memory space&#xA;since it is expected to contain mostly short-lived objects&#xA;and mostly are unreachable at garbage collection time.&#xA;In this case, it is more appropriate for the nursery memory pool&#xA;not to support a usage threshold.  In addition,&#xA;if the cost of an object allocation&#xA;in one memory pool is very low (for example, just atomic pointer exchange),&#xA;the Java virtual machine would probably not support the usage threshold&#xA;for that memory pool since the overhead in comparing the usage with&#xA;the threshold is higher than the cost of object allocation.&#xA;&#xA;&lt;p>&#xA;The memory usage of the system can be monitored using&#xA;&lt;a href=&quot;#Polling&quot;>polling&lt;/a> or&#xA;&lt;a href=&quot;#Notification&quot;>threshold notification&lt;/a> mechanisms.&#xA;&#xA;&lt;ol type=&quot;a&quot;>&#xA;&lt;li>&lt;a name=&quot;Polling&quot;>&lt;b>Polling&lt;/b>&lt;/a>&#xA;&lt;p>&#xA;An application can continuously monitor its memory usage&#xA;by calling either the {@link #getUsage} method for all&#xA;memory pools or the {@link #isUsageThresholdExceeded} method&#xA;for those memory pools that support a usage threshold.&#xA;Below is example code that has a thread delicated for&#xA;task distribution and processing.  At every interval,&#xA;it will determine if it should receive and process new tasks based&#xA;on its memory usage.  If the memory usage exceeds its usage threshold,&#xA;it will redistribute all outstanding tasks to other VMs and&#xA;stop receiving new tasks until the memory usage returns&#xA;below its usage threshold.&#xA;&#xA;&lt;pre>&#xA;Assume the usage threshold is supported for this pool.&#xA;Set the threshold to myThreshold above which no new tasks&#xA;should be taken.&#xA;pool.setUsageThreshold(myThreshold);&#xA;....&#xA;&#xA;boolean lowMemory = false;&#xA;while (true) {&#xA;if (pool.isUsageThresholdExceeded()) {&#xA;potential low memory, so redistribute tasks to other VMs&#xA;lowMemory = true;&#xA;redistributeTasks();&#xA;stop receiving new tasks&#xA;stopReceivingTasks();&#xA;} else {&#xA;if (lowMemory) {&#xA;resume receiving tasks&#xA;lowMemory = false;&#xA;resumeReceivingTasks();&#xA;}&#xA;processing outstanding task&#xA;...&#xA;}&#xA;sleep for sometime&#xA;try {&#xA;Thread.sleep(sometime);&#xA;} catch (InterruptedException e) {&#xA;...&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;hr>&#xA;The above example does not differentiate the case where&#xA;the memory usage has temporarily dropped below the usage threshold&#xA;from the case where the memory usage remains above the threshould&#xA;between two iterations.  The usage threshold count returned by&#xA;the {@link #getUsageThresholdCount} method&#xA;can be used to determine&#xA;if the memory usage has returned below the threshold&#xA;between two polls.&#xA;&lt;p>&#xA;Below shows another example that takes some action if a&#xA;memory pool is under low memory and ignores the memory usage&#xA;changes during the action processing time.&#xA;&#xA;&lt;pre>&#xA;Assume the usage threshold is supported for this pool.&#xA;Set the threshold to myThreshold which determines if&#xA;the application will take some action under low memory condition.&#xA;pool.setUsageThreshold(myThreshold);&#xA;&#xA;int prevCrossingCount = 0;&#xA;while (true) {&#xA;A busy loop to detect when the memory usage&#xA;has exceeded the threshold.&#xA;while (!pool.isUsageThresholdExceeded() ||&#xA;pool.getUsageThresholdCount() == prevCrossingCount) {&#xA;try {&#xA;Thread.sleep(sometime)&#xA;} catch (InterruptException e) {&#xA;....&#xA;}&#xA;}&#xA;&#xA;Do some processing such as check for memory usage&#xA;and issue a warning&#xA;....&#xA;&#xA;Gets the current threshold count. The busy loop will then&#xA;ignore any crossing of threshold happens during the processing.&#xA;prevCrossingCount = pool.getUsageThresholdCount();&#xA;}&#xA;&lt;/pre>&lt;hr>&#xA;&lt;/li>&#xA;&lt;li>&lt;a name=&quot;ThresholdNotification&quot;>&lt;b>Usage Threshold Notifications&lt;/b>&lt;/a>&#xA;&lt;p>&#xA;Usage threshold notification will be emitted by {@link MemoryMXBean}.&#xA;When the Java virtual machine detects that the memory usage of&#xA;a memory pool has reached or exceeded the usage threshold&#xA;the virtual machine will trigger the &lt;tt>MemoryMXBean&lt;/tt> to emit an&#xA;{@link MemoryNotificationInfo#MEMORY_THRESHOLD_EXCEEDED&#xA;usage threshold exceeded notification}.&#xA;Another usage threshold exceeded notification will not be&#xA;generated until the usage has fallen below the threshold and&#xA;then exceeded it again.&#xA;&lt;p>&#xA;Below is an example code implementing the same logic as the&#xA;first example above but using the usage threshold notification&#xA;mechanism to detect low memory conditions instead of polling.&#xA;In this example code, upon receiving notification, the notification&#xA;listener notifies another thread to perform the actual action&#xA;such as to redistribute outstanding tasks, stop receiving tasks,&#xA;or resume receiving tasks.&#xA;The &lt;tt>handleNotification&lt;/tt> method should be designed to&#xA;do a very minimal amount of work and return without delay to avoid&#xA;causing delay in delivering subsequent notifications.  Time-consuming&#xA;actions should be performed by a separate thread.&#xA;The notification listener may be invoked by multiple threads&#xA;concurrently; so the tasks performed by the listener&#xA;should be properly synchronized.&#xA;&#xA;&lt;pre>&#xA;class MyListener implements javax.management.NotificationListener {&#xA;public void handleNotification(Notification notification, Object handback)  {&#xA;String notifType = notification.getType();&#xA;if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED)) {&#xA;potential low memory, notify another thread&#xA;to redistribute outstanding tasks to other VMs&#xA;and stop receiving new tasks.&#xA;lowMemory = true;&#xA;notifyAnotherThread(lowMemory);&#xA;}&#xA;}&#xA;}&#xA;&#xA;Register MyListener with MemoryMXBean&#xA;MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();&#xA;NotificationEmitter emitter = (NotificationEmitter) mbean;&#xA;MyListener listener = new MyListener();&#xA;emitter.addNotificationListener(listener, null, null);&#xA;&#xA;Assume this pool supports a usage threshold.&#xA;Set the threshold to myThreshold above which no new tasks&#xA;should be taken.&#xA;pool.setUsageThreshold(myThreshold);&#xA;&#xA;Usage threshold detection is enabled and notification will be&#xA;handled by MyListener.  Continue for other processing.&#xA;....&#xA;&#xA;&lt;/pre>&#xA;&lt;hr>&#xA;&lt;p>&#xA;There is no guarantee about when the &lt;tt>MemoryMXBean&lt;/tt> will emit&#xA;a threshold notification and when the notification will be delivered.&#xA;When a notification listener is invoked, the memory usage of&#xA;the memory pool may have crossed the usage threshold more&#xA;than once.&#xA;The {@link MemoryNotificationInfo#getCount} method returns the number&#xA;of times that the memory usage has crossed the usage threshold&#xA;at the point in time when the notification was constructed.&#xA;It can be compared with the current usage threshold count returned&#xA;by the {@link #getUsageThresholdCount} method to determine if&#xA;such situation has occurred.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;h4>&lt;a name=&quot;CollectionThreshold&quot;>4. Collection Usage Threshold&lt;/a>&lt;/h4>&#xA;&#xA;Collection usage threshold is a manageable attribute only applicable&#xA;to some garbage-collected memory pools.&#xA;After a Java virtual machine has expended effort in reclaiming memory&#xA;space by recycling unused objects in a memory pool at garbage collection&#xA;time, some number of bytes in the memory pools that are garbaged&#xA;collected will still be in use.  The collection usage threshold&#xA;allows a value to be set for this number of bytes such&#xA;that if the threshold is exceeded,&#xA;a {@link MemoryNotificationInfo#MEMORY_THRESHOLD_EXCEEDED&#xA;collection usage threshold exceeded notification}&#xA;will be emitted by the {@link MemoryMXBean}.&#xA;In addition, the {@link #getCollectionUsageThresholdCount&#xA;collection usage threshold count} will then be incremented.&#xA;&#xA;&lt;p>&#xA;The {@link MemoryPoolMXBean#isCollectionUsageThresholdSupported} method can&#xA;be used to determine if this functionality is supported.&#xA;&#xA;&lt;p>&#xA;A Java virtual machine performs collection usage threshold checking&#xA;on a memory pool basis.  This checking is enabled if the collection&#xA;usage threshold is set to a positive value.&#xA;If the collection usage threshold is set to zero, this checking&#xA;is disabled on this memory pool.  Default value is zero.&#xA;The Java virtual machine performs the collection usage threshold&#xA;checking at garbage collection time.&#xA;&#xA;&lt;p>&#xA;Some garbage-collected memory pools may&#xA;choose not to support the collection usage threshold.  For example,&#xA;a memory pool is only managed by a continuous concurrent garbage&#xA;collector.  Objects can be allocated in this memory pool by some thread&#xA;while the unused objects are reclaimed by the concurrent garbage&#xA;collector simultaneously.  Unless there is a well-defined&#xA;garbage collection time which is the best appropriate time&#xA;to check the memory usage, the collection usage threshold should not&#xA;be supported.&#xA;&#xA;&lt;p>&#xA;The collection usage threshold is designed for monitoring the memory usage&#xA;after the Java virtual machine has expended effort in reclaiming&#xA;memory space.  The collection usage could also be monitored&#xA;by the polling and threshold notification mechanism&#xA;described above for the &lt;a href=&quot;#UsageThreshold&quot;>usage threshold&lt;/a>&#xA;in a similar fashion.&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.18, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307598_83865_4813"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307548_669812_4801" name="ManagementPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307548_138993_4803" body="The permission which the SecurityManager will check when code&#xA;that is running with a SecurityManager calls methods defined&#xA;in the management interface for the Java platform.&#xA;&lt;P>&#xA;The following table&#xA;provides a summary description of what the permission allows,&#xA;and discusses the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;Table shows permission target name, wh&#xA;at the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>control&lt;/td>&#xA;&lt;td>Ability to control the runtime characteristics of the Java virtual&#xA;machine, for example, setting the -verbose:gc and -verbose:class flag,&#xA;setting the threshold of a memory pool, and enabling and disabling&#xA;the thread contention monitoring support.&#xA;&lt;/td>&#xA;&lt;td>This allows an attacker to control the runtime characteristics&#xA;of the Java virtual machine and cause the system to misbehave.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>monitor&lt;/td>&#xA;&lt;td>Ability to retrieve runtime information about&#xA;the Java virtual machine such as thread&#xA;stack trace, a list of all loaded class names, and input arguments&#xA;to the Java virtual machine.&lt;/td>&#xA;&lt;td>This allows malicious code to monitor runtime information and&#xA;uncover vulnerabilities.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p>&#xA;Programmers do not normally create ManagementPermission objects directly.&#xA;Instead they are created by the security policy code based on reading&#xA;the security policy file.&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.3, 12/19/03&#xA;@since   1.5&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928307548_669812_4801"/>
              <generalization xmi:id="_10_5_622020d_1132928321608_744943_13576" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307668_99808_4820" name="MemoryUsage">
              <ownedComment xmi:id="_10_5_622020d_1132928307678_907374_4822" body="A &lt;tt>MemoryUsage&lt;/tt> object represents a snapshot of memory usage.&#xA;Instances of the &lt;tt>MemoryUsage&lt;/tt> class are usually constructed&#xA;by methods that are used to obtain memory usage&#xA;information about individual memory pool of the Java virtual machine or&#xA;the heap or non-heap memory of the Java virtual machine as a whole.&#xA;&#xA;&lt;p> A &lt;tt>MemoryUsage&lt;/tt> object contains four values:&#xA;&lt;ul>&#xA;&lt;table>&#xA;&lt;tr>&#xA;&lt;td valign=top> &lt;tt>init&lt;/tt> &lt;/td>&#xA;&lt;td valign=top> represents the initial amount of memory (in bytes) that&#xA;the Java virtual machine requests from the operating system&#xA;for memory management during startup.  The Java virtual machine&#xA;may request additional memory from the operating system and&#xA;may also release memory to the system over time.&#xA;The value of &lt;tt>init&lt;/tt> may be undefined.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign=top> &lt;tt>used&lt;/tt> &lt;/td>&#xA;&lt;td valign=top> represents the amount of memory currently used (in bytes).&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign=top> &lt;tt>committed&lt;/tt> &lt;/td>&#xA;&lt;td valign=top> represents the amount of memory (in bytes) that is&#xA;guaranteed to be available for use by the Java virtual machine.&#xA;The amount of committed memory may change over time (increase&#xA;or decrease).  The Java virtual machine may release memory to&#xA;the system and &lt;tt>committed&lt;/tt> could be less than &lt;tt>init&lt;/tt>.&#xA;&lt;tt>committed&lt;/tt> will always be greater than&#xA;or equal to &lt;tt>used&lt;/tt>.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign=top> &lt;tt>max&lt;/tt> &lt;/td>&#xA;&lt;td valign=top> represents the maximum amount of memory (in bytes)&#xA;that can be used for memory management. Its value may be undefined.&#xA;The maximum amount of memory may change over time if defined.&#xA;The amount of used and committed memory will always be less than&#xA;or equal to &lt;tt>max&lt;/tt> if &lt;tt>max&lt;/tt> is defined.&#xA;A memory allocation may fail if it attempts to increase the&#xA;used memory such that &lt;tt>used &amp;gt committed&lt;/tt> even&#xA;if &lt;tt>used &amp;lt= max&lt;/tt> would still be true (for example,&#xA;when the system is low on virtual memory).&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/ul>&#xA;&#xA;Below is a picture showing an example of a memory pool:&#xA;&lt;p>&#xA;&lt;pre>&#xA;+----------------------------------------------+&#xA;+////////////////           |                  +&#xA;+////////////////           |                  +&#xA;+----------------------------------------------+&#xA;&#xA;|--------|&#xA;init&#xA;|---------------|&#xA;used&#xA;|---------------------------|&#xA;committed&#xA;|----------------------------------------------|&#xA;max&#xA;&lt;/pre>&#xA;&#xA;&lt;h4>MXBean Mapping&lt;/h4>&#xA;&lt;tt>MemoryUsage&lt;/tt> is mapped to a {@link CompositeData CompositeData}&#xA;with attributes as specified in the {@link #from from} method.&#xA;&#xA;@author   Mandy Chung&#xA;@version 1.16, 05/25/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307668_99808_4820"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307528_873449_4792" name="CompilationMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307528_862388_4794" body="The management interface for the compilation system of&#xA;the Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getCompilationMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the compilation system within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#COMPILATION_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Compilation&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.10, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307528_873449_4792"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307688_714439_4829" name="ThreadInfo">
              <ownedComment xmi:id="_10_5_622020d_1132928307688_91930_4831" body="Thread information. &lt;tt>ThreadInfo&lt;/tt> contains the information&#xA;about a thread including:&#xA;&lt;h4>General thread information&lt;/h4>&#xA;&lt;ul>&#xA;&lt;li>Thread ID.&lt;/li>&#xA;&lt;li>Name of the thread.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>Execution information&lt;/h4>&#xA;&lt;ul>&#xA;&lt;li>Thread state.&lt;/tt>&#xA;&lt;li>The object upon which the thread is blocked waiting to enter&#xA;a synchronization block or waiting to be notified in&#xA;a {@link Object#wait Object.wait} call.&lt;/li>&#xA;&lt;li>The ID of the thread that owns the object&#xA;that the thread is blocked.&lt;/li>&#xA;&lt;li>Stack trace of the thread.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>Synchronization statistics&lt;/h4>&#xA;&lt;ul>&#xA;&lt;li>The number of times that the thread has blocked for&#xA;synchronization or waited for notification.&lt;/li>&#xA;&lt;li>The accumulated elapsed time that the thread has blocked&#xA;for synchronization or waited for notification&#xA;since thread contention monitoring&#xA;was enabled. Some Java virtual machine implementation&#xA;may not support this.  The&#xA;{@link ThreadMXBean#isThreadContentionMonitoringSupported()}&#xA;method can be used to determine if a Java virtual machine&#xA;supports this.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>This thread information class is designed for use in monitoring of&#xA;the system, not for synchronization control.&#xA;&#xA;&lt;h4>MXBean Mapping&lt;/h4>&#xA;&lt;tt>ThreadInfo&lt;/tt> is mapped to a {@link CompositeData CompositeData}&#xA;with attributes as specified in&#xA;the {@link #from from} method.&#xA;&#xA;@see ThreadMXBean#isThreadContentionMonitoringSupported&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.16, 04/18/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307688_714439_4829"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307528_989285_4798" name="ManagementFactory">
              <ownedComment xmi:id="_10_5_622020d_1132928307548_260556_4800" body="The &lt;tt>ManagementFactory&lt;/tt> class is a factory class for getting&#xA;managed beans for the Java platform.&#xA;This class consists of static methods each of which returns&#xA;one or more &lt;a href=&quot;#MXBean&quot;>platform MXBean(s)&lt;/a> representing&#xA;the management interface of a component of the Java virtual&#xA;machine.&#xA;&#xA;&lt;p>&#xA;An application can access a platform MXBean in the following ways:&#xA;&lt;ul>&#xA;&lt;li>&lt;i>Direct access to an MXBean interface&lt;/i>&#xA;&lt;ol type=&quot;a&quot;>&#xA;&lt;li>Get the MXBean instance through the static factory method&#xA;and access the MXBean locally of the running&#xA;virtual machine.&#xA;&lt;/li>&#xA;&lt;li>Construct an MXBean proxy instance that forwards the&#xA;method calls to a given {@link MBeanServer MBeanServer} by calling&#xA;{@link #newPlatformMXBeanProxy newPlatfromMXBeanProxy}.&#xA;A proxy is typically constructed to remotely access&#xA;an MXBean of another running virtual machine.&#xA;&lt;/li>&#xA;&lt;/ol>&lt;/li>&#xA;&lt;li>&lt;i>Indirect access to an MXBean interface via MBeanServer&lt;/i>&#xA;&lt;ol type=&quot;a&quot;>&#xA;&lt;li>Go through the {@link #getPlatformMBeanServer&#xA;platform MBeanServer} to access MXBeans locally or&#xA;a specific &lt;tt>MBeanServerConnection&lt;/tt> to access&#xA;MXBeans remotely.&#xA;The attributes and operations of an MXBean use only&#xA;&lt;em>JMX open types&lt;/em> which include basic&#xA;data types, {@link CompositeData CompositeData},&#xA;and {@link TabularData TabularData} defined in&#xA;{@link javax.management.openmbean.OpenType OpenType}.&#xA;The mapping is specified below.&#xA;&lt;/li>&#xA;&lt;/ol>&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;h4>&lt;a name=&quot;MXBean&quot;>Platform MXBeans&lt;/a>&lt;/h4>&#xA;A platform MXBean is a &lt;i>managed bean&lt;/i> that conforms to&#xA;the JMX Instrumentation Specification and only uses&#xA;a set of basic data types described below.&#xA;A JMX management application and the platform &lt;tt>MBeanServer&lt;/tt>&#xA;can interoperate without requiring classes for MXBean specific&#xA;data types.&#xA;The data types being transmitted between the JMX connector&#xA;server and the connector client are&#xA;{@link javax.management.openmbean.OpenType open types}&#xA;and this allows interoperation across versions.&#xA;&lt;p>&#xA;The platform MXBean interfaces use only the following data types:&#xA;&lt;ul>&#xA;&lt;li>Primitive types such as &lt;tt>int&lt;/tt>, &lt;tt>long&lt;/tt>,&#xA;&lt;tt>boolean&lt;/tt>, etc&lt;/li>&#xA;&lt;li>Wrapper classes for primitive types such as&#xA;{@link java.lang.Integer Integer}, {@link java.lang.Long Long},&#xA;{@link java.lang.Boolean Boolean}, etc and&#xA;{@link java.lang.String String}&lt;/li>&#xA;&lt;li>{@link java.lang.Enum Enum} classes&lt;/li>&#xA;&lt;li>Classes that define only getter methods and define a static&#xA;&lt;tt>from&lt;/tt> method with a {@link CompositeData CompositeData}&#xA;argument to convert from an input &lt;tt>CompositeData&lt;/tt> to&#xA;an instance of that class&#xA;&lt;/li>&#xA;&lt;li>{@link java.util.List List&lt;E>}&#xA;where &lt;tt>E&lt;/tt> is a primitive type, a wrapper class,&#xA;an enum class, or a class supporting conversion from a&#xA;&lt;tt>CompositeData&lt;/tt> to its class&#xA;&lt;/li>&#xA;&lt;li>{@link java.util.Map Map&lt;K,V>}&#xA;where &lt;tt>K&lt;/tt> and &lt;tt>V&lt;/tt> are&#xA;a primitive type, a wrapper class,&#xA;an enum class, or a class supporting conversion from a&#xA;&lt;tt>CompositeData&lt;/tt> to its class&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;When an attribute or operation of a platform MXBean&#xA;is accessed via an &lt;tt>MBeanServer&lt;/tt>, the data types are mapped&#xA;as follows:&#xA;&lt;ul>&#xA;&lt;li>A primitive type or a wrapper class is mapped&#xA;to the same type.&#xA;&lt;/li>&#xA;&lt;li>An {@link Enum} is mapped to&#xA;&lt;tt>String&lt;/tt> whose value is the name of the enum constant.&#xA;&lt;li>A class that defines only getter methods and a static&#xA;&lt;tt>from&lt;/tt> method with a {@link CompositeData CompositeData}&#xA;argument is mapped to&#xA;{@link javax.management.openmbean.CompositeData CompositeData}.&#xA;&lt;/li>&#xA;&lt;li>&lt;tt>Map&lt;K,V>&lt;/tt> is mapped to&#xA;{@link TabularData TabularData}&#xA;whose row type is a {@link CompositeType CompositeType} with&#xA;two items whose names are &lt;i>&quot;key&quot;&lt;/i> and &lt;i>&quot;value&quot;&lt;/i>&#xA;and the item types are&#xA;the corresponding mapped type of &lt;tt>K&lt;/tt> and &lt;tt>V&lt;/tt>&#xA;respectively and the &lt;i>&quot;key&quot;&lt;/i> is the index.&#xA;&lt;/li>&#xA;&lt;li>&lt;tt>List&lt;E>&lt;/tt> is mapped to an array with the mapped&#xA;type of &lt;tt>E&lt;/tt> as the element type.&#xA;&lt;/li>&#xA;&lt;li>An array of element type &lt;tt>E&lt;/tt> is mapped to&#xA;an array of the same dimenions with the mapped type of &lt;tt>E&lt;/tt>&#xA;as the element type.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;The {@link javax.management.MBeanInfo MBeanInfo}&#xA;for a platform MXBean&#xA;describes the data types of the attributes and operations&#xA;as primitive or open types mapped as specified above.&#xA;&#xA;&lt;p>&#xA;For example, the {@link MemoryMXBean}&#xA;interface has the following &lt;i>getter&lt;/i> and &lt;i>setter&lt;/i> methods:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;public MemoryUsage getHeapMemoryUsage();&#xA;public boolean isVerbose();&#xA;public void setVerbose(boolean value);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;These attributes in the &lt;tt>MBeanInfo&lt;/tt>&#xA;of the &lt;tt>MemoryMXBean&lt;/tt> have the following names and types:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border>&#xA;&lt;tr>&#xA;&lt;th>Attribute Name&lt;/th>&#xA;&lt;th>Type&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;tt>HeapMemoryUsage&lt;/tt>&lt;/td>&#xA;&lt;td>{@link MemoryUsage#from&#xA;CompositeData representing MemoryUsage}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;tt>Verbose&lt;/tt>&lt;/td>&#xA;&lt;td>&lt;tt>boolean&lt;/tt>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&lt;b>Implementation Note:&lt;/b>&lt;p>&#xA;The mapping specified above could be done in the implementation&#xA;of each platform MXBean.  One good implementation choice is to&#xA;implement a MXBean as a {@link javax.management.DynamicMBean dynamic&#xA;MBean}.&#xA;&#xA;&#xA;&lt;h4>&lt;a name=&quot;MXBeanNames&quot;>MXBean Names&lt;/a>&lt;/h4>&#xA;Each platform MXBean for a Java virtual machine has a unique&#xA;{@link javax.management.ObjectName ObjectName} for&#xA;registration in the platform &lt;tt>MBeanServer&lt;/tt>.&#xA;A Java virtual machine has a single instance of the following management&#xA;interfaces:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border>&#xA;&lt;tr>&#xA;&lt;th>Management Interface&lt;/th>&#xA;&lt;th>ObjectName&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link ClassLoadingMXBean} &lt;/td>&#xA;&lt;td> {@link #CLASS_LOADING_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=ClassLoading&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link MemoryMXBean} &lt;/td>&#xA;&lt;td> {@link #MEMORY_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Memory&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link ThreadMXBean} &lt;/td>&#xA;&lt;td> {@link #THREAD_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Threading&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link RuntimeMXBean} &lt;/td>&#xA;&lt;td> {@link #RUNTIME_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Runtime&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link OperatingSystemMXBean} &lt;/td>&#xA;&lt;td> {@link #OPERATING_SYSTEM_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=OperatingSystem&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;A Java virtual machine has zero or a single instance of&#xA;the following management interfaces.&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border>&#xA;&lt;tr>&#xA;&lt;th>Management Interface&lt;/th>&#xA;&lt;th>ObjectName&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link CompilationMXBean} &lt;/td>&#xA;&lt;td> {@link #COMPILATION_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Compilation&lt;/tt>}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;A Java virtual machine may have one or more instances of the following&#xA;management interfaces.&#xA;&lt;blockquote>&#xA;&lt;table border>&#xA;&lt;tr>&#xA;&lt;th>Management Interface&lt;/th>&#xA;&lt;th>ObjectName&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link GarbageCollectorMXBean} &lt;/td>&#xA;&lt;td> {@link #GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=GarbageCollector&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>collector's name&lt;/i>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link MemoryManagerMXBean} &lt;/td>&#xA;&lt;td> {@link #MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=MemoryManager&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>manager's name&lt;/i>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td> {@link MemoryPoolMXBean} &lt;/td>&#xA;&lt;td> {@link #MEMORY_POOL_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=MemoryPool&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>pool's name&lt;/i>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access Management Metrics&lt;/a>&#xA;@see java.util.logging.LoggingMXBean&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.19, 05/17/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307528_989285_4798"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307548_590403_4807" name="MemoryMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307598_219339_4809" body="The management interface for the memory system of&#xA;the Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getMemoryMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the memory system within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#MEMORY_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Memory&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h4> Memory &lt;/h4>&#xA;The memory system of the Java virtual machine manages&#xA;the following kinds of memory:&#xA;&#xA;&lt;h4> 1. Heap &lt;/h4>&#xA;The Java virtual machine has a &lt;i>heap&lt;/i> that is the runtime&#xA;data area from which memory for all class instances and arrays&#xA;are allocated.  It is created at the Java virtual machine start-up.&#xA;Heap memory for objects is reclaimed by an automatic memory management&#xA;system which is known as a &lt;i>garbage collector&lt;/i>.&#xA;&#xA;&lt;p>The heap may be of a fixed size or may be expanded and shrunk.&#xA;The memory for the heap does not need to be contiguous.&#xA;&#xA;&lt;h4> 2. Non-Heap Memory&lt;/h4>&#xA;The Java virtual machine manages memory other than the heap&#xA;(referred as &lt;i>non-heap memory&lt;/i>).&#xA;&#xA;&lt;p> The Java virtual machine has a &lt;i>method area&lt;/i> that is shared&#xA;among all threads.&#xA;The method area belongs to non-heap memory.  It stores per-class structures&#xA;such as a runtime constant pool, field and method data, and the code for&#xA;methods and constructors.  It is created at the Java virtual machine&#xA;start-up.&#xA;&#xA;&lt;p> The method area is logically part of the heap but a Java virtual&#xA;machine implementation may choose not to either garbage collect&#xA;or compact it.  Similar to the heap, the method area may be of a&#xA;fixed size or may be expanded and shrunk.  The memory for the&#xA;method area does not need to be contiguous.&#xA;&#xA;&lt;p>In addition to the method area, a Java virtual machine&#xA;implementation may require memory for internal processing or&#xA;optimization which also belongs to non-heap memory.&#xA;For example, the JIT compiler requires memory for storing the native&#xA;machine code translated from the Java virtual machine code for&#xA;high performance.&#xA;&#xA;&lt;h4>Memory Pools and Memory Managers&lt;/h4>&#xA;{@link MemoryPoolMXBean Memory pools} and&#xA;{@link MemoryManagerMXBean memory managers} are the abstract entities&#xA;that monitor and manage the memory system&#xA;of the Java virtual machine.&#xA;&#xA;&lt;p>A memory pool represents a memory area that the Java virtual machine&#xA;manages.  The Java virtual machine has at least one memory pool&#xA;and it may create or remove memory pools during execution.&#xA;A memory pool can belong to either the heap or the non-heap memory.&#xA;&#xA;&lt;p>A memory manager is responsible for managing one or more memory pools.&#xA;The garbage collector is one type of memory manager responsible&#xA;for reclaiming memory occupied by unreachable objects.  A Java virtual&#xA;machine may have one or more memory managers.   It may&#xA;add or remove memory managers during execution.&#xA;A memory pool can be managed by more than one memory manager.&#xA;&#xA;&lt;h4>Memory Usage Monitoring&lt;/h4>&#xA;&#xA;Memory usage is a very important monitoring attribute for the memory system.&#xA;The memory usage, for example, could indicate:&#xA;&lt;ul>&#xA;&lt;li>the memory usage of an application,&lt;/li>&#xA;&lt;li>the workload being imposed on the automatic memory management system,&lt;/li>&#xA;&lt;li>potential memory leakage.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;The memory usage can be monitored in three ways:&#xA;&lt;ul>&#xA;&lt;li>Polling&lt;/li>&#xA;&lt;li>Usage Threshold Notification&lt;/li>&#xA;&lt;li>Collection Usage Threshold Notification&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;Details are specified in the {@link MemoryPoolMXBean} interface.&#xA;&#xA;&lt;p>The memory usage monitoring mechanism is intended for load-balancing&#xA;or workload distribution use.  For example, an application would stop&#xA;receiving any new workload when its memory usage exceeds a&#xA;certain threshold. It is not intended for an application to detect&#xA;and recover from a low memory condition.&#xA;&#xA;&lt;h4>Notifications&lt;/h4>&#xA;&#xA;&lt;p>This &lt;tt>MemoryMXBean&lt;/tt> is a&#xA;{@link javax.management.NotificationEmitter NotificationEmitter}&#xA;that emits two types of memory {@link javax.management.Notification&#xA;notifications} if any one of the memory pools&#xA;supports a &lt;a href=&quot;MemoryPoolMXBean#UsageThreshold&quot;>usage threshold&lt;/a>&#xA;or a &lt;a href=&quot;MemoryPoolMXBean#CollectionThreshold&quot;>collection usage&#xA;threshold&lt;/a> which can be determined by calling the&#xA;{@link MemoryPoolMXBean#isUsageThresholdSupported} and&#xA;{@link MemoryPoolMXBean#isCollectionUsageThresholdSupported} methods.&#xA;&lt;ul>&#xA;&lt;li>{@link MemoryNotificationInfo#MEMORY_THRESHOLD_EXCEEDED&#xA;usage threshold exceeded notification} - for notifying that&#xA;the memory usage of a memory pool is increased and has reached&#xA;or exceeded its&#xA;&lt;a href=&quot;MemoryPoolMXBean#UsageThreshold&quot;> usage threshold&lt;/a> value.&#xA;&lt;/li>&#xA;&lt;li>{@link MemoryNotificationInfo#MEMORY_COLLECTION_THRESHOLD_EXCEEDED&#xA;collection usage threshold exceeded notification} - for notifying that&#xA;the memory usage of a memory pool is greater than or equal to its&#xA;&lt;a href=&quot;MemoryPoolMXBean#CollectionThreshold&quot;>&#xA;collection usage threshold&lt;/a> after the Java virtual machine&#xA;has expended effort in recycling unused objects in that&#xA;memory pool.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;The notification emitted is a {@link javax.management.Notification}&#xA;instance whose {@link javax.management.Notification#setUserData&#xA;user data} is set to a {@link CompositeData CompositeData}&#xA;that represents a {@link MemoryNotificationInfo} object&#xA;containing information about the memory pool when the notification&#xA;was constructed. The &lt;tt>CompositeData&lt;/tt> contains the attributes&#xA;as described in {@link MemoryNotificationInfo#from&#xA;MemoryNotificationInfo}.&#xA;&#xA;&lt;hr>&#xA;&lt;h4>NotificationEmitter&lt;/h4>&#xA;The &lt;tt>MemoryMXBean&lt;/tt> object returned by&#xA;{@link ManagementFactory#getMemoryMXBean} implements&#xA;the {@link javax.management.NotificationEmitter NotificationEmitter}&#xA;interface that allows a listener to be registered within the&#xA;&lt;tt>MemoryMXBean&lt;/tt> as a notification listener.&#xA;&#xA;Below is an example code that registers a &lt;tt>MyListener&lt;/tt> to handle&#xA;notification emitted by the &lt;tt>MemoryMXBean&lt;/tt>.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;class MyListener implements javax.management.NotificationListener {&#xA;public void handleNotification(Notification notif, Object handback) {&#xA;handle notification&#xA;....&#xA;}&#xA;}&#xA;&#xA;MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();&#xA;NotificationEmitter emitter = (NotificationEmitter) mbean;&#xA;MyListener listener = new MyListener();&#xA;emitter.addNotificationListener(listener, null, null);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.14, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307548_590403_4807"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307668_884490_4816" name="MemoryType">
              <ownedComment xmi:id="_10_5_622020d_1132928307668_880350_4819" body="Types of {@link MemoryPoolMXBean memory pools}.&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.7, 04/18/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307668_884490_4816"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307598_614261_4810" name="MemoryNotificationInfo">
              <ownedComment xmi:id="_10_5_622020d_1132928307598_2215_4812" body="The information about a memory notification.&#xA;&#xA;&lt;p>&#xA;A memory notification is emitted by {@link MemoryMXBean}&#xA;when the Java virtual machine detects that the memory usage&#xA;of a memory pool is exceeding a threshold value.&#xA;The notification emitted will contain the memory notification&#xA;information about the detected condition:&#xA;&lt;ul>&#xA;&lt;li>The name of the memory pool.&lt;/li>&#xA;&lt;li>The memory usage of the memory pool when the notification&#xA;was constructed.&lt;/li>&#xA;&lt;li>The number of times that the memory usage has crossed&#xA;a threshold when the notification was constructed.&#xA;For usage threshold notifications, this count will be the&#xA;{@link MemoryPoolMXBean#getUsageThresholdCount usage threshold&#xA;count}.  For collection threshold notifications,&#xA;this count will be the&#xA;{@link MemoryPoolMXBean#getCollectionUsageThresholdCount&#xA;collection usage threshold count}.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;A {@link CompositeData CompositeData} representing&#xA;the &lt;tt>MemoryNotificationInfo&lt;/tt> object&#xA;is stored in the&#xA;{@link javax.management.Notification#setUserData user data}&#xA;of a {@link javax.management.Notification notification}.&#xA;The {@link #from from} method is provided to convert from&#xA;a &lt;tt>CompositeData&lt;/tt> to a &lt;tt>MemoryNotificationInfo&lt;/tt>&#xA;object. For example:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Notification notif;&#xA;&#xA;receive the notification emitted by MemoryMXBean and set to notif&#xA;...&#xA;&#xA;String notifType = notif.getType();&#xA;if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED) ||&#xA;notifType.equals(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED)) {&#xA;retrieve the memory notification information&#xA;CompositeData cd = (CompositeData) notif.getUserData();&#xA;MemoryNotificationInfo info = MemoryNotificationInfo.from(cd);&#xA;....&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The types of notifications emitted by &lt;tt>MemoryMXBean&lt;/tt> are:&#xA;&lt;ul>&#xA;&lt;li>A {@link #MEMORY_THRESHOLD_EXCEEDED&#xA;usage threshold exceeded notification}.&#xA;&lt;br>This notification will be emitted when&#xA;the memory usage of a memory pool is increased and has reached&#xA;or exceeded its&#xA;&lt;a href=&quot;MemoryPoolMXBean#UsageThreshold&quot;> usage threshold&lt;/a> value.&#xA;Subsequent crossing of the usage threshold value does not cause&#xA;further notification until the memory usage has returned&#xA;to become less than the usage threshold value.&#xA;&lt;p>&lt;/li>&#xA;&lt;li>A {@link #MEMORY_COLLECTION_THRESHOLD_EXCEEDED&#xA;collection usage threshold exceeded notification}.&#xA;&lt;br>This notification will be emitted when&#xA;the memory usage of a memory pool is greater than or equal to its&#xA;&lt;a href=&quot;MemoryPoolMXBean#CollectionThreshold&quot;>&#xA;collection usage threshold&lt;/a> after the Java virtual machine&#xA;has expended effort in recycling unused objects in that&#xA;memory pool.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.6, 04/18/04&#xA;@since   1.5&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928307598_614261_4810"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307528_952090_4795" name="GarbageCollectorMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307528_681846_4797" body="The management interface for the garbage collection of&#xA;the Java virtual machine.  Garbage collection is the process&#xA;that the Java virtual machine uses to find and reclaim unreachable&#xA;objects to free up memory space.  A garbage collector is one type of&#xA;{@link MemoryManagerMXBean memory manager}.&#xA;&#xA;&lt;p> A Java virtual machine may have one or more instances of&#xA;the implementation class of this interface.&#xA;An instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getGarbageCollectorMXBeans} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;a garbage collector within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE&#xA;&lt;tt>java.lang:type=GarbageCollector&lt;/tt>}&lt;tt>,name=&lt;/tt>&lt;i>collector's name&lt;/i>&#xA;&lt;/blockquote>&#xA;&#xA;A platform usually includes additional platform-dependent information&#xA;specific to a garbage collection algorithm for monitoring.&#xA;&#xA;@see MemoryMXBean&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.9, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307528_952090_4795"/>
              <generalization xmi:id="_10_5_622020d_1132928321608_670807_13575" isSubstitutable="true" general="_10_5_622020d_1132928307548_226527_4804"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307518_718750_4789" name="ClassLoadingMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307528_970234_4791" body="The management interface for the class loading system of&#xA;the Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getClassLoadingMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the class loading system within an &lt;tt>MBeanServer&lt;/tt> is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#CLASS_LOADING_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=ClassLoading&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.11, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307518_718750_4789"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307678_172258_4826" name="RuntimeMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307688_547676_4828" body="The management interface for the runtime system of&#xA;the Java virtual machine.&#xA;&#xA;&lt;p> A Java virtual machine has a single instance of the implementation&#xA;class of this interface.  This instance implementing this interface is&#xA;an &lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;that can be obtained by calling&#xA;the {@link ManagementFactory#getRuntimeMXBean} method or&#xA;from the {@link ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The &lt;tt>ObjectName&lt;/tt> for uniquely identifying the MXBean for&#xA;the runtime system within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link ManagementFactory#RUNTIME_MXBEAN_NAME&#xA;&lt;tt>java.lang:type=Runtime&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> This interface defines several convenient methods for accessing&#xA;system properties about the Java virtual machine.&#xA;&#xA;@see &lt;a href=&quot;../../../javax/management/package-summary.html&quot;>&#xA;JMX Specification.&lt;/a>&#xA;@see &lt;a href=&quot;package-summary.html#examples&quot;>&#xA;Ways to Access MXBeans&lt;/a>&#xA;&#xA;@author  Mandy Chung&#xA;@version 1.13, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307678_172258_4826"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_256090_7563" name="Byte" clientDependency="_10_5_622020d_1132928321628_951886_13623" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307889_73783_4946" body="The &lt;code>Byte&lt;/code> class wraps a value of primitive type&#xA;&lt;code>byte&lt;/code> in an object.  An object of type&#xA;&lt;code>Byte&lt;/code> contains a single field whose type is&#xA;&lt;code>byte&lt;/code>.&#xA;&#xA;&lt;p>&#xA;&#xA;In addition, this class provides several methods for converting a&#xA;&lt;code>byte&lt;/code> to a &lt;code>String&lt;/code> and a &lt;code>String&lt;/code>&#xA;to a &lt;code>byte&lt;/code>, as well as other constants and methods&#xA;useful when dealing with a &lt;code>byte&lt;/code>.&#xA;&#xA;@author  Nakul Saraiya&#xA;@version 1.40, 05/11/04&#xA;@see     java.lang.Number&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_256090_7563"/>
            <generalization xmi:id="_10_5_622020d_1132928321628_184146_13624" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_951886_13623" name="" supplier="_10_5_622020d_1132928321628_825173_13620" client="_9_5_f720368_1110473546612_256090_7563" contract="_10_5_622020d_1132928321628_825173_13620"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307879_640403_4944" name="ByteCache" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_121672_7727" name="Win32Process" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_465691_7599" name="Exception">
            <ownedComment xmi:id="_10_5_622020d_1132928307959_975302_5029" body="The class &lt;code>Exception&lt;/code> and its subclasses are a form of&#xA;&lt;code>Throwable&lt;/code> that indicates conditions that a reasonable&#xA;application might want to catch.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.31, 12/19/03&#xA;@see     java.lang.Error&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_465691_7599"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_196187_13654" isSubstitutable="true" general="_9_5_f720368_1110473546612_726183_7711"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_431813_7589" name="CloneNotSupportedException">
            <ownedComment xmi:id="_10_5_622020d_1132928307939_873430_4995" body="Thrown to indicate that the &lt;code>clone&lt;/code> method in class&#xA;&lt;code>Object&lt;/code> has been called to clone an object, but that&#xA;the object's class does not implement the &lt;code>Cloneable&lt;/code>&#xA;interface.&#xA;&lt;p>&#xA;Applications that override the &lt;code>clone&lt;/code> method can also&#xA;throw this exception to indicate that an object could not or&#xA;should not be cloned.&#xA;&#xA;@author  unascribed&#xA;@version 1.11, 12/19/03&#xA;@see     java.lang.Cloneable&#xA;@see     java.lang.Object#clone()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_431813_7589"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_959822_13641" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_279917_7567" name="CharacterData" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_382320_7623" name="IndexOutOfBoundsException">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_738945_5049" body="Thrown to indicate that an index of some sort (such as to an array, to a&#xA;string, or to a vector) is out of range.&#xA;&lt;p>&#xA;Applications can subclass this class to indicate similar exceptions.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.11, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_382320_7623"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_920207_13668" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_961804_7715" name="UnsatisfiedLinkError">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_533983_5199" body="Thrown if the Java Virtual Machine cannot find an appropriate&#xA;native-language definition of a method declared &lt;code>native&lt;/code>.&#xA;&#xA;@author unascribed&#xA;@version 1.21, 12/19/03&#xA;@see     java.lang.Runtime&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_961804_7715"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_239010_13769" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308189_219558_5193" name="TypeNotPresentException">
            <ownedComment xmi:id="_10_5_622020d_1132928308189_147013_5195" body="Thrown when an application tries to access a type using a string&#xA;representing the type's name, but no definition for the type with&#xA;the specified name can be found.   This exception differs from&#xA;{@link ClassNotFoundException} in that &lt;tt>ClassNotFoundException&lt;/tt> is a&#xA;checked exception, whereas this exception is unchecked.&#xA;&#xA;&lt;p>Note that this exception may be used when undefined type variables&#xA;are accessed as well as when types (e.g., classes, interfaces or&#xA;annotation types) are loaded.&#xA;&#xA;@author  Josh Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308189_219558_5193"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_676900_13767" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_845812_7569" name="CharacterDataLatin1" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307909_431542_4965" body="The CharacterData class encapsulates the large tables found in&#xA;Java.lang.Character." annotatedElement="_9_5_f720368_1110473546612_845812_7569"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307889_861859_4955" name="CharacterData01" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307899_796799_4957" body="The CharacterData class encapsulates the large tables once found in&#xA;java.lang.Character.&#xA;" annotatedElement="_10_5_622020d_1132928307889_861859_4955"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_754672_7687" name="StackTraceElement" clientDependency="_10_5_622020d_1132928321689_972617_13739" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_932776_5148" body="An element in a stack trace, as returned by {@link&#xA;Throwable#getStackTrace()}.  Each element represents a single stack frame.&#xA;All stack frames except for the one at the top of the stack represent&#xA;a method invocation.  The frame at the top of the stack represents the&#xA;execution point at which the stack trace was generated.  Typically,&#xA;this is the point at which the throwable corresponding to the stack trace&#xA;was created.&#xA;&#xA;@since  1.4&#xA;@author Josh Bloch&#xA;" annotatedElement="_9_5_f720368_1110473546612_754672_7687"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_972617_13739" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_754672_7687" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_860783_7659" name="NumberFormatException">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_702284_5096" body="Thrown to indicate that the application has attempted to convert&#xA;a string to one of the numeric types, but that the string does not&#xA;have the appropriate format.&#xA;&#xA;@author  unascribed&#xA;@version 1.20, 12/19/03&#xA;@see     java.lang.Integer#toString()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_860783_7659"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_652060_13696" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307949_835522_5023" name="EnumConstantNotPresentException">
            <ownedComment xmi:id="_10_5_622020d_1132928307949_274662_5025" body="Thrown when an application tries to access an enum constant by name&#xA;and the enum type contains no constant with the specified name.&#xA;&#xA;@author  Josh Bloch&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307949_835522_5023"/>
            <generalization xmi:id="_10_5_622020d_1132928321648_175544_13652" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_787058_7665" name="Package" clientDependency="_10_5_622020d_1132928321669_84165_13698">
            <ownedComment xmi:id="_10_5_622020d_1132928308049_542365_5109" body="&lt;code>Package&lt;/code> objects contain version information&#xA;about the implementation and specification of a Java package.&#xA;This versioning information is retrieved and made available&#xA;by the {@link ClassLoader &lt;code>ClassLoader&lt;/code>} instance that&#xA;loaded the class(es).  Typically, it is stored in the manifest that is&#xA;distributed with the classes.&#xA;&#xA;&lt;p>The set of classes that make up the package may implement a&#xA;particular specification and if so the specification title, version number,&#xA;and vendor strings identify that specification.&#xA;An application can ask if the package is&#xA;compatible with a particular version, see the {@link #isCompatibleWith&#xA;&lt;code>isCompatibleWith&lt;/code>} method for details.&#xA;&#xA;&lt;p>Specification version numbers use a syntax that consists of positive&#xA;decimal integers separated by periods &quot;.&quot;, for example &quot;2.0&quot; or&#xA;&quot;1.2.3.4.5.6.7&quot;.  This allows an extensible number to be used to represent&#xA;major, minor, micro, etc. versions.  The version specification is described&#xA;by the following formal grammar:&#xA;&lt;blockquote>&#xA;&lt;dl>&#xA;&lt;dt>&lt;i>SpecificationVersion:&#xA;&lt;dd>Digits RefinedVersion&lt;sub>opt&lt;/sub>&lt;/i>&#xA;&lt;p>&lt;dt>&lt;i>RefinedVersion:&lt;/i>&#xA;&lt;dd>&lt;code>.&lt;/code> &lt;i>Digits&lt;/i>&#xA;&lt;dd>&lt;code>.&lt;/code> &lt;i>Digits RefinedVersion&lt;/i>&#xA;&#xA;&lt;p>&lt;dt>&lt;i>Digits:&#xA;&lt;dd>Digit&#xA;&lt;dd>Digits&lt;/i>&#xA;&#xA;&lt;p>&lt;dt>&lt;i>Digit:&lt;/i>&#xA;&lt;dd>any character for which {@link Character#isDigit} returns &lt;code>true&lt;/code>,&#xA;e.g. 0, 1, 2, ...&#xA;&lt;/dl>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>The implementation title, version, and vendor strings identify an&#xA;implementation and are made available conveniently to enable accurate&#xA;reporting of the packages involved when a problem occurs. The contents&#xA;all three implementation strings are vendor specific. The&#xA;implementation version strings have no specified syntax and should&#xA;only be compared for equality with desired version identifiers.&#xA;&#xA;&lt;p>Within each &lt;code>ClassLoader&lt;/code> instance all classes from the same&#xA;java package have the same Package object.  The static methods allow a package&#xA;to be found by name or the set of all packages known to the current class&#xA;loader to be found.&#xA;&#xA;@see ClassLoader#definePackage&#xA;" annotatedElement="_9_5_f720368_1110473546612_787058_7665"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321669_84165_13698" name="" supplier="_10_5_622020d_1132928307779_179201_4867" client="_9_5_f720368_1110473546612_787058_7665" contract="_10_5_622020d_1132928307779_179201_4867"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_797872_7725" name="Void" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_578182_5209" body="The Void class is an uninstantiable placeholder class to hold a&#xA;reference to the Class object representing the Java keyword&#xA;void.&#xA;&#xA;@author  unascribed&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_797872_7725"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_888397_7587" name="Cloneable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307939_944228_4993" body="A class implements the &lt;code>Cloneable&lt;/code> interface to&#xA;indicate to the {@link java.lang.Object#clone()} method that it&#xA;is legal for that method to make a&#xA;field-for-field copy of instances of that class.&#xA;&lt;p>&#xA;Invoking Object's clone method on an instance that does not implement the&#xA;&lt;code>Cloneable&lt;/code> interface results in the exception&#xA;&lt;code>CloneNotSupportedException&lt;/code> being thrown.&#xA;&lt;p>&#xA;By convention, classes that implement this interface should override&#xA;&lt;tt>Object.clone&lt;/tt> (which is protected) with a public method.&#xA;See {@link java.lang.Object#clone()} for details on overriding this&#xA;method.&#xA;&lt;p>&#xA;Note that this interface does &lt;i>not&lt;/i> contain the &lt;tt>clone&lt;/tt> method.&#xA;Therefore, it is not possible to clone an object merely by virtue of the&#xA;fact that it implements this interface.  Even if the clone method is invoked&#xA;reflectively, there is no guarantee that it will succeed.&#xA;&#xA;@author  unascribed&#xA;@version 1.16, 01/17/04&#xA;@see     java.lang.CloneNotSupportedException&#xA;@see     java.lang.Object#clone()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_700611_5115" name="ProcessEnvironment" visibility="package" isLeaf="true">
            <generalization xmi:id="_10_5_622020d_1132928321669_806564_13703" isSubstitutable="true" general="_10_5_622020d_1132928321669_590717_13699"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_414135_5116" name="CheckedEntry" visibility="private" clientDependency="_10_5_622020d_1132928321679_198120_13708">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321679_198120_13708" name="" supplier="_10_5_622020d_1132928321669_477586_13704" client="_10_5_622020d_1132928308059_414135_5116" contract="_10_5_622020d_1132928321669_477586_13704"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_196232_5117" name="CheckedEntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321679_870913_13712" isSubstitutable="true" general="_10_5_622020d_1132928321679_69205_13709"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_9913_5118" name="CheckedValues" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321679_148626_13716" isSubstitutable="true" general="_10_5_622020d_1132928321679_782714_13713"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_751454_5119" name="CheckedKeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321679_722252_13720" isSubstitutable="true" general="_10_5_622020d_1132928321679_383419_13717"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_621744_5120" name="NameComparator" visibility="private" clientDependency="_10_5_622020d_1132928321679_768718_13724" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321679_768718_13724" name="" supplier="_10_5_622020d_1132928321679_165469_13721" client="_10_5_622020d_1132928308059_621744_5120" contract="_10_5_622020d_1132928321679_165469_13721"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308059_893395_5121" name="EntryComparator" visibility="private" clientDependency="_10_5_622020d_1132928321689_47110_13728" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321689_47110_13728" name="" supplier="_10_5_622020d_1132928321679_287856_13725" client="_10_5_622020d_1132928308059_893395_5121" contract="_10_5_622020d_1132928321679_287856_13725"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321648_626485_13656" name="Comparable&lt;Float>">
            <templateBinding xmi:id="_10_5_622020d_1132928321658_71424_13657" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321658_637238_13658" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_585522_7603"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307869_383825_4926" name="AbstractStringBuilder" visibility="package" clientDependency="_10_5_622020d_1132928321618_422481_13610 _10_5_622020d_1132928321618_421991_13609" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307869_535551_4928" body="A mutable sequence of characters.&#xA;&lt;p>&#xA;Implements a modifiable string. At any point in time it contains some&#xA;particular sequence of characters, but the length and content of the&#xA;sequence can be changed through certain method calls.&#xA;&#xA;@author&#x9;Michael McCloskey&#xA;@version &#x9;1.12, 07/16/04&#xA;@since&#x9;1.5&#xA;" annotatedElement="_10_5_622020d_1132928307869_383825_4926"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321618_421991_13609" name="" supplier="_10_5_622020d_1132928307869_604362_4929" client="_10_5_622020d_1132928307869_383825_4926" contract="_10_5_622020d_1132928307869_604362_4929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321618_422481_13610" name="" supplier="_9_5_f720368_1110473546612_21020_7571" client="_10_5_622020d_1132928307869_383825_4926" contract="_9_5_f720368_1110473546612_21020_7571"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_679086_7625" name="InheritableThreadLocal">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_744862_5054" body="This class extends &lt;tt>ThreadLocal&lt;/tt> to provide inheritance of values&#xA;from parent thread to child thread: when a child thread is created, the&#xA;child receives initial values for all inheritable thread-local variables&#xA;for which the parent has values.  Normally the child's values will be&#xA;identical to the parent's; however, the child's value can be made an&#xA;arbitrary function of the parent's by overriding the &lt;tt>childValue&lt;/tt>&#xA;method in this class.&#xA;&#xA;&lt;p>Inheritable thread-local variables are used in preference to&#xA;ordinary thread-local variables when the per-thread-attribute being&#xA;maintained in the variable (e.g., User ID, Transaction ID) must be&#xA;automatically transmitted to any child threads that are created.&#xA;&#xA;@author  Josh Bloch and Doug Lea&#xA;@version 1.21, 02/09/04&#xA;@see     ThreadLocal&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_679086_7625"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307979_976556_5050" name="" parameter="_10_5_622020d_1132928307979_615536_5051">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307979_615536_5051" parameteredElement="_10_5_622020d_1132928307979_982788_5052">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307979_982788_5052" name="T" templateParameter="_10_5_622020d_1132928307979_615536_5051"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928321658_282988_13672" isSubstitutable="true" general="_10_5_622020d_1132928321658_545223_13669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_379805_7645" name="NoClassDefFoundError">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_790413_5082" body="Thrown if the Java Virtual Machine or a &lt;code>ClassLoader&lt;/code> instance&#xA;tries to load in the definition of a class (as part of a normal method call&#xA;or as part of creating a new instance using the &lt;code>new&lt;/code> expression)&#xA;and no definition of the class could be found.&#xA;&lt;p>&#xA;The searched-for class definition existed when the currently&#xA;executing class was compiled, but the definition can no longer be&#xA;found.&#xA;&#xA;@author  unascribed&#xA;@version 1.22, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_379805_7645"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_730860_13689" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_539857_7707" name="ThreadGroup" clientDependency="_10_5_622020d_1132928321699_739759_13761">
            <ownedComment xmi:id="_10_5_622020d_1132928308179_142636_5183" body="A thread group represents a set of threads. In addition, a thread&#xA;group can also include other thread groups. The thread groups form&#xA;a tree in which every thread group except the initial thread group&#xA;has a parent.&#xA;&lt;p>&#xA;A thread is allowed to access information about its own thread&#xA;group, but not to access information about its thread group's&#xA;parent thread group or any other thread groups.&#xA;&#xA;@author  unascribed&#xA;@version 1.63, 06/17/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_539857_7707"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321699_739759_13761" name="" supplier="_10_5_622020d_1132928308179_829231_5176" client="_9_5_f720368_1110473546612_539857_7707" contract="_10_5_622020d_1132928308179_829231_5176"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_438135_7655" name="NullPointerException">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_491153_5092" body="Thrown when an application attempts to use &lt;code>null&lt;/code> in a&#xA;case where an object is required. These include:&#xA;&lt;ul>&#xA;&lt;li>Calling the instance method of a &lt;code>null&lt;/code> object.&#xA;&lt;li>Accessing or modifying the field of a &lt;code>null&lt;/code> object.&#xA;&lt;li>Taking the length of &lt;code>null&lt;/code> as if it were an array.&#xA;&lt;li>Accessing or modifying the slots of &lt;code>null&lt;/code> as if it&#xA;were an array.&#xA;&lt;li>Throwing &lt;code>null&lt;/code> as if it were a &lt;code>Throwable&lt;/code>&#xA;value.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Applications should throw instances of this class to indicate&#xA;other illegal uses of the &lt;code>null&lt;/code> object.&#xA;&#xA;@author  unascribed&#xA;@version 1.19, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_438135_7655"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_552199_13694" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_331021_7719" name="UnsupportedOperationException">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_718311_5203" body="Thrown to indicate that the requested operation is not supported.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.19, 12/19/03&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_331021_7719"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_394904_13771" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_120722_7683" name="Shutdown" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_650925_5144" body="Package-private utility class containing data structures and logic&#xA;governing the virtual-machine shutdown sequence.&#xA;&#xA;@author   Mark Reinhold&#xA;@version  1.11, 03/12/19&#xA;@since    1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_120722_7683"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547518_436416_17907" name="WrappedHook" visibility="private"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547518_498262_17909" name="Lock" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_901773_7721" name="VerifyError">
            <ownedComment xmi:id="_10_5_622020d_1132928308199_134965_5205" body="Thrown when the &quot;verifier&quot; detects that a class file,&#xA;though well formed, contains some sort of internal inconsistency&#xA;or security problem.&#xA;&#xA;@author  unascribed&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_901773_7721"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_319182_13772" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307939_514099_5008" name="Deprecated" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307949_790679_5014" body="A program element annotated &amp;#64;Deprecated is one that programmers&#xA;are discouraged from using, typically because it is dangerous,&#xA;or because a better alternative exists.  Compilers warn when a&#xA;deprecated program element is used or overridden in non-deprecated code.&#xA;&#xA;@author  Neal Gafter&#xA;@version 1.4, 06/10/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307939_514099_5008"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321679_69205_13709" name="AbstractSet&lt;Entry&lt;String, String>>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_680753_13710" signature="_10_5_622020d_1132928310803_326819_6974">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_551362_13711" formal="_10_5_622020d_1132928310803_863661_6975" actual="_10_5_622020d_1132928321669_477586_13704"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_396947_7621" name="IncompatibleClassChangeError">
            <ownedComment xmi:id="_10_5_622020d_1132928307969_567054_5047" body="Thrown when an incompatible class change has occurred to some class&#xA;definition. The definition of some class, on which the currently&#xA;executing method depends, has since changed.&#xA;&#xA;@author  unascribed&#xA;@version 1.18, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_396947_7621"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_396838_13667" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_475087_7679" name="SecurityManager">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_431807_5139" body="The security manager is a class that allows&#xA;applications to implement a security policy. It allows an&#xA;application to determine, before performing a possibly unsafe or&#xA;sensitive operation, what the operation is and whether&#xA;it is being attempted in a security context that allows the&#xA;operation to be performed. The&#xA;application can allow or disallow the operation.&#xA;&lt;p>&#xA;The &lt;code>SecurityManager&lt;/code> class contains many methods with&#xA;names that begin with the word &lt;code>check&lt;/code>. These methods&#xA;are called by various methods in the Java libraries before those&#xA;methods perform certain potentially sensitive operations. The&#xA;invocation of such a &lt;code>check&lt;/code> method typically looks like this:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;SecurityManager security = System.getSecurityManager();&#xA;if (security != null) {&#xA;security.check&lt;i>XXX&lt;/i>(argument, &amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&amp;nbsp;);&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;The security manager is thereby given an opportunity to prevent&#xA;completion of the operation by throwing an exception. A security&#xA;manager routine simply returns if the operation is permitted, but&#xA;throws a &lt;code>SecurityException&lt;/code> if the operation is not&#xA;permitted. The only exception to this convention is&#xA;&lt;code>checkTopLevelWindow&lt;/code>, which returns a&#xA;&lt;code>boolean&lt;/code> value.&#xA;&lt;p>&#xA;The current security manager is set by the&#xA;&lt;code>setSecurityManager&lt;/code> method in class&#xA;&lt;code>System&lt;/code>. The current security manager is obtained&#xA;by the &lt;code>getSecurityManager&lt;/code> method.&#xA;&lt;p>&#xA;The special method&#xA;{@link SecurityManager#checkPermission(java.security.Permission)}&#xA;determines whether an access request indicated by a specified&#xA;permission should be granted or denied. The&#xA;default implementation calls&#xA;&#xA;&lt;pre>&#xA;AccessController.checkPermission(perm);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;If a requested access is allowed,&#xA;&lt;code>checkPermission&lt;/code> returns quietly. If denied, a&#xA;&lt;code>SecurityException&lt;/code> is thrown.&#xA;&lt;p>&#xA;As of Java 2 SDK v1.2, the default implementation of each of the other&#xA;&lt;code>check&lt;/code> methods in &lt;code>SecurityManager&lt;/code> is to&#xA;call the &lt;code>SecurityManager checkPermission&lt;/code> method&#xA;to determine if the calling thread has permission to perform the requested&#xA;operation.&#xA;&lt;p>&#xA;Note that the &lt;code>checkPermission&lt;/code> method with&#xA;just a single permission argument always performs security checks&#xA;within the context of the currently executing thread.&#xA;Sometimes a security check that should be made within a given context&#xA;will actually need to be done from within a&#xA;&lt;i>different&lt;/i> context (for example, from within a worker thread).&#xA;The {@link SecurityManager#getSecurityContext getSecurityContext} method&#xA;and the {@link SecurityManager#checkPermission(java.security.Permission,&#xA;java.lang.Object) checkPermission}&#xA;method that includes a context argument are provided&#xA;for this situation. The&#xA;&lt;code>getSecurityContext&lt;/code> method returns a &quot;snapshot&quot;&#xA;of the current calling context. (The default implementation&#xA;returns an AccessControlContext object.) A sample call is&#xA;the following:&#xA;&#xA;&lt;pre>&#xA;Object context = null;&#xA;SecurityManager sm = System.getSecurityManager();&#xA;if (sm != null) context = sm.getSecurityContext();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;The &lt;code>checkPermission&lt;/code> method&#xA;that takes a context object in addition to a permission&#xA;makes access decisions based on that context,&#xA;rather than on that of the current execution thread.&#xA;Code within a different context can thus call that method,&#xA;passing the permission and the&#xA;previously-saved context object. A sample call, using the&#xA;SecurityManager &lt;code>sm&lt;/code> obtained as in the previous example,&#xA;is the following:&#xA;&#xA;&lt;pre>&#xA;if (sm != null) sm.checkPermission(permission, context);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Permissions fall into these categories: File, Socket, Net,&#xA;Security, Runtime, Property, AWT, Reflect, and Serializable.&#xA;The classes managing these various&#xA;permission categories are &lt;code>java.io.FilePermission&lt;/code>,&#xA;&lt;code>java.net.SocketPermission&lt;/code>,&#xA;&lt;code>java.net.NetPermission&lt;/code>,&#xA;&lt;code>java.security.SecurityPermission&lt;/code>,&#xA;&lt;code>java.lang.RuntimePermission&lt;/code>,&#xA;&lt;code>java.util.PropertyPermission&lt;/code>,&#xA;&lt;code>java.awt.AWTPermission&lt;/code>,&#xA;&lt;code>java.lang.reflect.ReflectPermission&lt;/code>, and&#xA;&lt;code>java.io.SerializablePermission&lt;/code>.&#xA;&#xA;&lt;p>All but the first two (FilePermission and SocketPermission) are&#xA;subclasses of &lt;code>java.security.BasicPermission&lt;/code>, which itself&#xA;is an abstract subclass of the&#xA;top-level class for permissions, which is&#xA;&lt;code>java.security.Permission&lt;/code>. BasicPermission defines the&#xA;functionality needed for all permissions that contain a name&#xA;that follows the hierarchical property naming convention&#xA;(for example, &quot;exitVM&quot;, &quot;setFactory&quot;, &quot;queuePrintJob&quot;, etc).&#xA;An asterisk&#xA;may appear at the end of the name, following a &quot;.&quot;, or by itself, to&#xA;signify a wildcard match. For example: &quot;a.*&quot; or &quot;*&quot; is valid,&#xA;&quot;*a&quot; or &quot;a*b&quot; is not valid.&#xA;&#xA;&lt;p>FilePermission and SocketPermission are subclasses of the&#xA;top-level class for permissions&#xA;(&lt;code>java.security.Permission&lt;/code>). Classes like these&#xA;that have a more complicated name syntax than that used by&#xA;BasicPermission subclass directly from Permission rather than from&#xA;BasicPermission. For example,&#xA;for a &lt;code>java.io.FilePermission&lt;/code> object, the permission name is&#xA;the path name of a file (or directory).&#xA;&#xA;&lt;p>Some of the permission classes have an &quot;actions&quot; list that tells&#xA;the actions that are permitted for the object.  For example,&#xA;for a &lt;code>java.io.FilePermission&lt;/code> object, the actions list&#xA;(such as &quot;read, write&quot;) specifies which actions are granted for the&#xA;specified file (or for files in the specified directory).&#xA;&#xA;&lt;p>Other permission classes are for &quot;named&quot; permissions -&#xA;ones that contain a name but no actions list; you either have the&#xA;named permission or you don't.&#xA;&#xA;&lt;p>Note: There is also a &lt;code>java.security.AllPermission&lt;/code>&#xA;permission that implies all permissions. It exists to simplify the work&#xA;of system administrators who might need to perform multiple&#xA;tasks that require all (or numerous) permissions.&#xA;&lt;p>&#xA;See &lt;a href =&quot;../../../guide/security/permissions.html&quot;>&#xA;Permissions in the JDK&lt;/a> for permission-related information.&#xA;This document includes, for example, a table listing the various SecurityManager&#xA;&lt;code>check&lt;/code> methods and the permission(s) the default&#xA;implementation of each such method requires.&#xA;It also contains a table of all the version 1.2 methods&#xA;that require permissions, and for each such method tells&#xA;which permission it requires.&#xA;&lt;p>&#xA;For more information about &lt;code>SecurityManager&lt;/code> changes made in&#xA;the JDK and advice regarding porting of 1.1-style security managers,&#xA;see the &lt;a href=&quot;../../../guide/security/index.html&quot;>security documentation&lt;/a>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@author  Roland Schemers&#xA;&#xA;@version 1.136, 06/28/04&#xA;@see     java.lang.ClassLoader&#xA;@see     java.lang.SecurityException&#xA;@see     java.lang.SecurityManager#checkTopLevelWindow(java.lang.Object)&#xA;checkTopLevelWindow&#xA;@see     java.lang.System#getSecurityManager() getSecurityManager&#xA;@see     java.lang.System#setSecurityManager(java.lang.SecurityManager)&#xA;setSecurityManager&#xA;@see     java.security.AccessController AccessController&#xA;@see     java.security.AccessControlContext AccessControlContext&#xA;@see     java.security.AccessControlException AccessControlException&#xA;@see     java.security.Permission&#xA;@see     java.security.BasicPermission&#xA;@see     java.io.FilePermission&#xA;@see     java.net.SocketPermission&#xA;@see     java.util.PropertyPermission&#xA;@see     java.lang.RuntimePermission&#xA;@see     java.awt.AWTPermission&#xA;@see     java.security.Policy Policy&#xA;@see     java.security.SecurityPermission SecurityPermission&#xA;@see     java.security.ProtectionDomain&#xA;&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_475087_7679"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307989_915005_5066" name="Iterable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307989_429724_5071" body="Implementing this interface allows an object to be the target of&#xA;the &quot;foreach&quot; statement.&#xA;" annotatedElement="_10_5_622020d_1132928307989_915005_5066"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307989_572128_5067" name="" parameter="_10_5_622020d_1132928307989_555372_5068">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307989_555372_5068" parameteredElement="_10_5_622020d_1132928307989_561136_5069">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307989_561136_5069" name="T" templateParameter="_10_5_622020d_1132928307989_555372_5068"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321628_377743_13626" name="Comparable&lt;Character>">
            <templateBinding xmi:id="_10_5_622020d_1132928321628_469505_13627" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321628_241734_13628" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_321995_7565"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_800239_7639" name="Long" clientDependency="_10_5_622020d_1132928321669_119903_13686" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307989_724189_5076" body="The &lt;code>Long&lt;/code> class wraps a value of the primitive type&#xA;&lt;code>long&lt;/code> in an object. An object of type &lt;code>Long&lt;/code>&#xA;contains a single field whose type is &lt;code>long&lt;/code>.&#xA;&#xA;&lt;p>&#xA;&#xA;In addition, this class provides several methods for converting a&#xA;&lt;code>long&lt;/code> to a &lt;code>String&lt;/code> and a&#xA;&lt;code>String&lt;/code> to a &lt;code>long&lt;/code>, as well as other&#xA;constants and methods useful when dealing with a &lt;code>long&lt;/code>.&#xA;&#xA;&lt;p>Implementation note: The implementations of the &quot;bit twiddling&quot;&#xA;methods (such as {@link #highestOneBit(long) highestOneBit} and&#xA;{@link #numberOfTrailingZeros(long) numberOfTrailingZeros}) are&#xA;based on material from Henry S. Warren, Jr.'s &lt;i>Hacker's&#xA;Delight&lt;/i>, (Addison Wesley, 2002).&#xA;&#xA;@author  Lee Boynton&#xA;@author  Arthur van Hoff&#xA;@author  Josh Bloch&#xA;@version 1.79, 05/11/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_800239_7639"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_260479_13687" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321669_119903_13686" name="" supplier="_10_5_622020d_1132928321669_54718_13683" client="_9_5_f720368_1110473546612_800239_7639" contract="_10_5_622020d_1132928321669_54718_13683"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307989_578276_5074" name="LongCache" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_156381_7647" name="NoSuchFieldError">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_249842_5084" body="Thrown if an application tries to access or modify a specified&#xA;field of an object, and that object no longer has that field.&#xA;&lt;p>&#xA;Normally, this error is caught by the compiler; this error can&#xA;only occur at run time if the definition of a class has&#xA;incompatibly changed.&#xA;&#xA;@author  unascribed&#xA;@version 1.12, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_156381_7647"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_88700_13690" isSubstitutable="true" general="_9_5_f720368_1110473546612_396947_7621"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321648_880251_13647" name="Comparable&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928321648_750280_13648" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321648_116864_13649" formal="_10_5_622020d_1132928307939_608180_4997" actual="_10_5_622020d_1132928307949_506394_5020"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547503_605120_17781" name="ref">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_768541_7517" name="ReferenceQueue">
              <ownedComment xmi:id="_10_5_622020d_1132928307779_614453_4854" body="Reference queues, to which registered reference objects are appended by the&#xA;garbage collector after the appropriate reachability changes are detected.&#xA;&#xA;@version  1.23, 12/19/03&#xA;@author   Mark Reinhold&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_768541_7517"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307779_522586_4850" name="" parameter="_10_5_622020d_1132928307779_39128_4851">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307779_39128_4851" parameteredElement="_10_5_622020d_1132928307779_777622_4852">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307779_777622_4852" name="T" templateParameter="_10_5_622020d_1132928307779_39128_4851"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_485931_17791" name="Null" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928321608_855576_13585" isSubstitutable="true" general="_9_5_f720368_1110473546612_768541_7517"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_206568_17793" name="Lock" visibility="private"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_438460_7511" name="FinalReference" visibility="package">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307748_666090_4836" name="" parameter="_10_5_622020d_1132928307759_391041_4837">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307759_391041_4837" parameteredElement="_10_5_622020d_1132928307769_535654_4838">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307769_535654_4838" name="T" templateParameter="_10_5_622020d_1132928307759_391041_4837"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321608_369153_13582" isSubstitutable="true" general="_10_5_622020d_1132928321608_706139_13579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_294432_7515" name="Reference" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307769_159930_4849" body="Abstract base class for reference objects.  This class defines the&#xA;operations common to all reference objects.&#x9;Because reference objects are&#xA;implemented in close cooperation with the garbage collector, this class may&#xA;not be subclassed directly.&#xA;&#xA;@version  1.41, 04/20/04&#xA;@author   Mark Reinhold&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_294432_7515"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307769_656582_4845" name="" parameter="_10_5_622020d_1132928307769_170424_4846">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307769_170424_4846" parameteredElement="_10_5_622020d_1132928307769_784734_4847">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307769_784734_4847" name="T" templateParameter="_10_5_622020d_1132928307769_170424_4846"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_584439_17786" name="Lock" visibility="private"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_440510_17788" name="ReferenceHandler" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928321608_191238_13584" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_633971_7521" name="WeakReference">
              <ownedComment xmi:id="_10_5_622020d_1132928307779_948138_4864" body="Weak reference objects, which do not prevent their referents from being&#xA;made finalizable, finalized, and then reclaimed.  Weak references are most&#xA;often used to implement canonicalizing mappings.&#xA;&#xA;&lt;p> Suppose that the garbage collector determines at a certain point in time&#xA;that an object is &lt;a href=&quot;package-summary.html#reachability&quot;>weakly&#xA;reachable&lt;/a>.  At that time it will atomically clear all weak references to&#xA;that object and all weak references to any other weakly-reachable objects&#xA;from which that object is reachable through a chain of strong and soft&#xA;references.  At the same time it will declare all of the formerly&#xA;weakly-reachable objects to be finalizable.  At the same time or at some&#xA;later time it will enqueue those newly-cleared weak references that are&#xA;registered with reference queues.&#xA;&#xA;@version  1.18, 12/19/03&#xA;@author   Mark Reinhold&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_633971_7521"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307779_589855_4860" name="" parameter="_10_5_622020d_1132928307779_297685_4861">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307779_297685_4861" parameteredElement="_10_5_622020d_1132928307779_316381_4862">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307779_316381_4862" name="T" templateParameter="_10_5_622020d_1132928307779_297685_4861"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321608_16932_13587" isSubstitutable="true" general="_10_5_622020d_1132928321608_706139_13579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_526026_7513" name="PhantomReference">
              <ownedComment xmi:id="_10_5_622020d_1132928307769_254293_4844" body="Phantom reference objects, which are enqueued after the collector&#xA;determines that their referents may otherwise be reclaimed.  Phantom&#xA;references are most often used for scheduling pre-mortem cleanup actions in&#xA;a more flexible way than is possible with the Java finalization mechanism.&#xA;&#xA;&lt;p> If the garbage collector determines at a certain point in time that the&#xA;referent of a phantom reference is &lt;a&#xA;href=&quot;package-summary.html#reachability&quot;>phantom reachable&lt;/a>, then at that&#xA;time or at some later time it will enqueue the reference.&#xA;&#xA;&lt;p> In order to ensure that a reclaimable object remains so, the referent of&#xA;a phantom reference may not be retrieved: The &lt;code>get&lt;/code> method of a&#xA;phantom reference always returns &lt;code>null&lt;/code>.&#xA;&#xA;&lt;p> Unlike soft and weak references, phantom references are not&#xA;automatically cleared by the garbage collector as they are enqueued.  An&#xA;object that is reachable via phantom references will remain so until all&#xA;such references are cleared or themselves become unreachable.&#xA;&#xA;@version  1.19, 12/19/03&#xA;@author   Mark Reinhold&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_526026_7513"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307769_981431_4840" name="" parameter="_10_5_622020d_1132928307769_807316_4841">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307769_807316_4841" parameteredElement="_10_5_622020d_1132928307769_659084_4842">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307769_659084_4842" name="T" templateParameter="_10_5_622020d_1132928307769_807316_4841"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321608_152941_13583" isSubstitutable="true" general="_10_5_622020d_1132928321608_706139_13579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_953579_7509" name="Finalizer" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321608_17570_13577" isSubstitutable="true" general="_9_5_f720368_1110473546612_438460_7511"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_500634_17782" name="FinalizerThread" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928321608_278842_13578" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321608_706139_13579" name="Reference&lt;T>">
              <templateBinding xmi:id="_10_5_622020d_1132928321608_429408_13580" signature="_10_5_622020d_1132928307769_656582_4845">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321608_146508_13581" formal="_10_5_622020d_1132928307769_170424_4846" actual="_10_5_622020d_1132928307769_535654_4838"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_136171_7519" name="SoftReference">
              <ownedComment xmi:id="_10_5_622020d_1132928307779_966618_4859" body="Soft reference objects, which are cleared at the discretion of the garbage&#xA;collector in response to memory demand.  Soft references are most often used&#xA;to implement memory-sensitive caches.&#xA;&#xA;&lt;p> Suppose that the garbage collector determines at a certain point in time&#xA;that an object is &lt;a href=&quot;package-summary.html#reachability&quot;>softly&#xA;reachable&lt;/a>.  At that time it may choose to clear atomically all soft&#xA;references to that object and all soft references to any other&#xA;softly-reachable objects from which that object is reachable through a chain&#xA;of strong references.  At the same time or at some later time it will&#xA;enqueue those newly-cleared soft references that are registered with&#xA;reference queues.&#xA;&#xA;&lt;p> All soft references to softly-reachable objects are guaranteed to have&#xA;been cleared before the virtual machine throws an&#xA;&lt;code>OutOfMemoryError&lt;/code>.  Otherwise no constraints are placed upon the&#xA;time at which a soft reference will be cleared or the order in which a set&#xA;of such references to different objects will be cleared.  Virtual machine&#xA;implementations are, however, encouraged to bias against clearing&#xA;recently-created or recently-used soft references.&#xA;&#xA;&lt;p> Direct instances of this class may be used to implement simple caches;&#xA;this class or derived subclasses may also be used in larger data structures&#xA;to implement more sophisticated caches.  As long as the referent of a soft&#xA;reference is strongly reachable, that is, is actually in use, the soft&#xA;reference will not be cleared.  Thus a sophisticated cache can, for example,&#xA;prevent its most recently used entries from being discarded by keeping&#xA;strong referents to those entries, leaving the remaining entries to be&#xA;discarded at the discretion of the garbage collector.&#xA;&#xA;@version  1.34, 12/19/03&#xA;@author   Mark Reinhold&#xA;@since    1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_136171_7519"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307779_432272_4855" name="" parameter="_10_5_622020d_1132928307779_205778_4856">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307779_205778_4856" parameteredElement="_10_5_622020d_1132928307779_550659_4857">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307779_550659_4857" name="T" templateParameter="_10_5_622020d_1132928307779_205778_4856"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321608_237867_13586" isSubstitutable="true" general="_10_5_622020d_1132928321608_706139_13579"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_96021_7633" name="InternalError">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_727881_5063" body="Thrown to indicate some unexpected internal error has occurred in&#xA;the Java Virtual Machine.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_96021_7633"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_851383_13680" isSubstitutable="true" general="_9_5_f720368_1110473546628_624360_7723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_366010_7561" name="Boolean" clientDependency="_10_5_622020d_1132928321628_603826_13615 _10_5_622020d_1132928321628_30627_13619" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_515947_4943" body="The Boolean class wraps a value of the primitive type&#xA;&lt;code>boolean&lt;/code> in an object. An object of type&#xA;&lt;code>Boolean&lt;/code> contains a single field whose type is&#xA;&lt;code>boolean&lt;/code>.&#xA;&lt;p>&#xA;In addition, this class provides many methods for&#xA;converting a &lt;code>boolean&lt;/code> to a &lt;code>String&lt;/code> and a&#xA;&lt;code>String&lt;/code> to a &lt;code>boolean&lt;/code>, as well as other&#xA;constants and methods useful when dealing with a&#xA;&lt;code>boolean&lt;/code>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.51, 05/11/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_366010_7561"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_603826_13615" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_366010_7561" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_30627_13619" name="" supplier="_10_5_622020d_1132928321628_319954_13616" client="_9_5_f720368_1110473546612_366010_7561" contract="_10_5_622020d_1132928321628_319954_13616"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_264397_7575" name="ClassCastException">
            <ownedComment xmi:id="_10_5_622020d_1132928307919_894641_4981" body="Thrown to indicate that the code has attempted to cast an object&#xA;to a subclass of which it is not an instance. For example, the&#xA;following code generates a &lt;code>ClassCastException&lt;/code>:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;Object x = new Integer(0);&#xA;System.out.println((String)x);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@author  unascribed&#xA;@version 1.20, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_264397_7575"/>
            <generalization xmi:id="_10_5_622020d_1132928321638_985952_13636" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_710110_7627" name="InstantiationError">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_106946_5056" body="Thrown when an application tries to use the Java &lt;code>new&lt;/code>&#xA;construct to instantiate an abstract class or an interface.&#xA;&lt;p>&#xA;Normally, this error is caught by the compiler; this error can&#xA;only occur at run time if the definition of a class has&#xA;incompatibly changed.&#xA;&#xA;@author  unascribed&#xA;@version 1.12, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_710110_7627"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_831232_13673" isSubstitutable="true" general="_9_5_f720368_1110473546612_396947_7621"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_362064_7593" name="Compiler" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307939_138995_5002" body="The &lt;code>Compiler&lt;/code> class is provided to support&#xA;Java-to-native-code compilers and related services. By design, the&#xA;&lt;code>Compiler&lt;/code> class does nothing; it serves as a&#xA;placeholder for a JIT compiler implementation.&#xA;&lt;p>&#xA;When the Java Virtual Machine first starts, it determines if the&#xA;system property &lt;code>java.compiler&lt;/code> exists. (System&#xA;properties are accessible through &lt;code>getProperty&lt;/code>  and ,&#xA;a method defined by the &lt;code>System&lt;/code> class.) If so, it is&#xA;assumed to be the name of a library (with a platform-dependent&#xA;exact location and type); the &lt;code>loadLibrary&lt;/code> method in&#xA;class &lt;code>System&lt;/code> is called to load that library. If this&#xA;loading succeeds, the function named&#xA;&lt;code>java_lang_Compiler_start()&lt;/code> in that library is called.&#xA;&lt;p>&#xA;If no compiler is available, these methods do nothing.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.20, 05/05/04&#xA;@see     java.lang.System#getProperty(java.lang.String)&#xA;@see     java.lang.System#getProperty(java.lang.String, java.lang.String)&#xA;@see     java.lang.System#loadLibrary(java.lang.String)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_362064_7593"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307949_309873_5017" name="Enum" clientDependency="_10_5_622020d_1132928321648_239929_13651 _10_5_622020d_1132928321648_204006_13650" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307949_796938_5022" body="This is the common base class of all Java language enumeration types.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.12, 06/08/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307949_309873_5017"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307949_365894_5018" name="" parameter="_10_5_622020d_1132928307949_644246_5019">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307949_644246_5019" parameteredElement="_10_5_622020d_1132928307949_506394_5020" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307949_506394_5020" name="E" templateParameter="_10_5_622020d_1132928307949_644246_5019"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321648_204006_13650" name="" supplier="_10_5_622020d_1132928321648_880251_13647" client="_10_5_622020d_1132928307949_309873_5017" contract="_10_5_622020d_1132928321648_880251_13647"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321648_239929_13651" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928307949_309873_5017" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_878988_7657" name="Number" clientDependency="_10_5_622020d_1132928321669_253416_13695" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_495922_5094" body="The abstract class &lt;code>Number&lt;/code> is the superclass of classes&#xA;&lt;code>BigDecimal&lt;/code>, &lt;code>BigInteger&lt;/code>,&#xA;&lt;code>Byte&lt;/code>, &lt;code>Double&lt;/code>, &lt;code>Float&lt;/code>,&#xA;&lt;code>Integer&lt;/code>, &lt;code>Long&lt;/code>, and &lt;code>Short&lt;/code>.&#xA;&lt;p>&#xA;Subclasses of &lt;code>Number&lt;/code> must provide methods to convert&#xA;the represented numeric value to &lt;code>byte&lt;/code>, &lt;code>double&lt;/code>,&#xA;&lt;code>float&lt;/code>, &lt;code>int&lt;/code>, &lt;code>long&lt;/code>, and&#xA;&lt;code>short&lt;/code>.&#xA;&#xA;@author&#x9;Lee Boynton&#xA;@author&#x9;Arthur van Hoff&#xA;@version 1.29, 12/19/03&#xA;@see     java.lang.Byte&#xA;@see     java.lang.Double&#xA;@see     java.lang.Float&#xA;@see     java.lang.Integer&#xA;@see     java.lang.Long&#xA;@see     java.lang.Short&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321669_253416_13695" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_878988_7657" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_75266_7697" name="StringIndexOutOfBoundsException">
            <ownedComment xmi:id="_10_5_622020d_1132928308169_516730_5161" body="Thrown by &lt;code>String&lt;/code> methods to indicate that an index&#xA;is either negative or greater than the size of the string.  For&#xA;some methods such as the charAt method, this exception also is&#xA;thrown when the index is equal to the size of the string.&#xA;&#xA;@author  unascribed&#xA;@version 1.22, 12/19/03&#xA;@see     java.lang.String#charAt(int)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_75266_7697"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_528781_13758" isSubstitutable="true" general="_9_5_f720368_1110473546612_382320_7623"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928308169_974030_5162" name="SuppressWarnings" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308169_637362_5168" body="Indicates that the named compiler warnings should be suppressed in the&#xA;annotated element (and in all program elements contained in the annotated&#xA;element).  Note that the set of warnings suppressed in a given element is&#xA;a superset of the warnings suppressed in all containing elements.  For&#xA;example, if you annotate a class to suppress one warning and annotate a&#xA;method to suppress another, both warnings will be suppressed in the method.&#xA;&#xA;&lt;p>As a matter of style, programmers should always use this annotation&#xA;on the most deeply nested element where it is effective.  If you want to&#xA;suppress a warning in a particular method, you should annotate that&#xA;method rather than its class.&#xA;&#xA;@since 1.5&#xA;@author Josh Bloch&#xA;" annotatedElement="_10_5_622020d_1132928308169_974030_5162"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321689_111514_13733" name="Comparable&lt;Short>">
            <templateBinding xmi:id="_10_5_622020d_1132928321689_981747_13734" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321689_130714_13735" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_509786_7681"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321669_477586_13704" name="Entry&lt;String, String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_267859_13705" signature="_10_5_622020d_1132928313327_288174_7391">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_111195_13706" formal="_10_5_622020d_1132928313327_187425_7392" actual="_9_5_f720368_1110473546612_692218_7691"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_391662_13707" formal="_10_5_622020d_1132928313327_117316_7394" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321658_545223_13669" name="ThreadLocal&lt;T>">
            <templateBinding xmi:id="_10_5_622020d_1132928321658_714298_13670" signature="_10_5_622020d_1132928308179_660510_5184">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321658_526283_13671" formal="_10_5_622020d_1132928308179_723618_5185" actual="_10_5_622020d_1132928307979_982788_5052"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_977237_7685" name="StackOverflowError">
            <ownedComment xmi:id="_10_5_622020d_1132928308149_58616_5146" body="Thrown when a stack overflow occurs because an application&#xA;recurses too deeply.&#xA;&#xA;@author unascribed&#xA;@version 1.21, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_977237_7685"/>
            <generalization xmi:id="_10_5_622020d_1132928321689_146431_13738" isSubstitutable="true" general="_9_5_f720368_1110473546628_624360_7723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307909_209876_4961" name="CharacterData0E" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307909_636871_4963" body="The CharacterData class encapsulates the large tables found in&#xA;Java.lang.Character." annotatedElement="_10_5_622020d_1132928307909_209876_4961"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928307468_552752_4772" name="instrument">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307468_509064_4773" name="ClassDefinition" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307478_785714_4775" body="This class serves as a parameter block to the &lt;code>Instrumentation.redefineClasses&lt;/code> method.&#xA;Serves to bind the &lt;code>Class&lt;/code> that needs redefining together with the new class file bytes.&#xA;&#xA;@see     java.lang.instrument.Instrumentation#redefineClasses&#xA;@since   JDK1.5&#xA;" annotatedElement="_10_5_622020d_1132928307468_509064_4773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307518_240721_4785" name="UnmodifiableClassException">
              <ownedComment xmi:id="_10_5_622020d_1132928307518_893666_4787" body="Thrown by an implementation of&#xA;{@link java.lang.instrument.Instrumentation#redefineClasses Instrumentation.redefineClasses}&#xA;when one of the specified classes cannot be modified.&#xA;&#xA;@see     java.lang.instrument.Instrumentation#redefineClasses&#xA;@since   JDK1.5&#xA;" annotatedElement="_10_5_622020d_1132928307518_240721_4785"/>
              <generalization xmi:id="_10_5_622020d_1132928321598_222044_13574" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307478_775935_4776" name="ClassFileTransformer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307478_647292_4778" body="An agent provides an implementation of this interface in order&#xA;to transform class files.&#xA;The transformation occurs before the class is defined by the JVM.&#xA;&lt;P>&#xA;Note the term &lt;i>class file&lt;/i> is used as defined in the chapter&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80959&quot;>The class File Format&lt;/a>&#xA;of &lt;i>The Java Virtual Machine Specification&lt;/i>, to mean a sequence&#xA;of bytes in class file format, whether or not they reside in a file.&#xA;&#xA;@see     java.lang.instrument.Instrumentation&#xA;@see     java.lang.instrument.Instrumentation#addTransformer&#xA;@see     java.lang.instrument.Instrumentation#removeTransformer&#xA;@since   JDK1.5&#xA;" annotatedElement="_10_5_622020d_1132928307478_775935_4776"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307478_343362_4779" name="IllegalClassFormatException">
              <ownedComment xmi:id="_10_5_622020d_1132928307478_212129_4781" body="Thrown by an implementation of&#xA;{@link java.lang.instrument.ClassFileTransformer#transform ClassFileTransformer.transform}&#xA;when its input parameters are invalid.&#xA;This may occur either because the initial class file bytes were&#xA;invalid or a previously applied transform corrupted the bytes.&#xA;&#xA;@see     java.lang.instrument.ClassFileTransformer#transform&#xA;@since   JDK1.5&#xA;" annotatedElement="_10_5_622020d_1132928307478_343362_4779"/>
              <generalization xmi:id="_10_5_622020d_1132928321598_692843_13573" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307478_797833_4782" name="Instrumentation" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307518_349298_4784" body="This class provides services needed to instrument Java&#xA;programming language code.&#xA;Instrumentation is the addition of byte-codes to methods for the&#xA;purpose of gathering data to be utilized by tools.&#xA;Since the changes are purely additive, these tools do not modify&#xA;application state or behavior.&#xA;Examples of such benign tools include monitoring agents, profilers,&#xA;coverage analyzers, and event loggers.&#xA;&#xA;&lt;P>&#xA;The only way to access an instance of the &lt;code>Instrumentation&lt;/code>&#xA;interface is for the JVM to be launched in a way that indicates&#xA;the agent class - see&#xA;{@linkplain java.lang.instrument the package specification}.&#xA;The &lt;code>Instrumentation&lt;/code> instance is passed&#xA;to the &lt;code>premain&lt;/code> method of the agent class.&#xA;Once an agent acquires the &lt;code>Instrumentation&lt;/code> instance,&#xA;the agent may call methods on the instance at any time.&#xA;&#xA;@since   JDK1.5&#xA;" annotatedElement="_10_5_622020d_1132928307478_797833_4782"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321679_165469_13721" name="Comparator&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_690007_13722" signature="_10_5_622020d_1132928310923_924476_7163">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_210942_13723" formal="_10_5_622020d_1132928310923_956594_7164" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307909_7035_4966" name="CharacterDataPrivateUse" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307909_10066_4968" body="The CharacterData class encapsulates the large tables found in&#xA;Java.lang.Character." annotatedElement="_10_5_622020d_1132928307909_7035_4966"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308159_810030_5155" name="StringBuilder" clientDependency="_10_5_622020d_1132928321699_252866_13751 _10_5_622020d_1132928321699_17866_13752" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308159_357809_5157" body="A mutable sequence of characters.  This class provides an API compatible&#xA;with &lt;code>StringBuffer&lt;/code>, but with no guarantee of synchronization.&#xA;This class is designed for use as a drop-in replacement for&#xA;&lt;code>StringBuffer&lt;/code> in places where the string buffer was being&#xA;used by a single thread (as is generally the case).   Where possible,&#xA;it is recommended that this class be used in preference to&#xA;&lt;code>StringBuffer&lt;/code> as it will be faster under most implementations.&#xA;&#xA;&lt;p>The principal operations on a &lt;code>StringBuilder&lt;/code> are the&#xA;&lt;code>append&lt;/code> and &lt;code>insert&lt;/code> methods, which are&#xA;overloaded so as to accept data of any type. Each effectively&#xA;converts a given datum to a string and then appends or inserts the&#xA;characters of that string to the string builder. The&#xA;&lt;code>append&lt;/code> method always adds these characters at the end&#xA;of the builder; the &lt;code>insert&lt;/code> method adds the characters at&#xA;a specified point.&#xA;&lt;p>&#xA;For example, if &lt;code>z&lt;/code> refers to a string builder object&#xA;whose current contents are &quot;&lt;code>start&lt;/code>&quot;, then&#xA;the method call &lt;code>z.append(&quot;le&quot;)&lt;/code> would cause the string&#xA;builder to contain &quot;&lt;code>startle&lt;/code>&quot;, whereas&#xA;&lt;code>z.insert(4, &quot;le&quot;)&lt;/code> would alter the string builder to&#xA;contain &quot;&lt;code>starlet&lt;/code>&quot;.&#xA;&lt;p>&#xA;In general, if sb refers to an instance of a &lt;code>StringBuilder&lt;/code>,&#xA;then &lt;code>sb.append(x)&lt;/code> has the same effect as&#xA;&lt;code>sb.insert(sb.length(),&amp;nbsp;x)&lt;/code>.&#xA;&#xA;Every string builder has a capacity. As long as the length of the&#xA;character sequence contained in the string builder does not exceed&#xA;the capacity, it is not necessary to allocate a new internal&#xA;buffer. If the internal buffer overflows, it is automatically made larger.&#xA;&#xA;&lt;p>Instances of &lt;code>StringBuilder&lt;/code> are not safe for&#xA;use by multiple threads. If such synchronization is required then it is&#xA;recommended that {@link java.lang.StringBuffer} be used.&#xA;&#xA;@author&#x9;Michael McCloskey&#xA;@version &#x9;1.9, 07/16/04&#xA;@see         java.lang.StringBuffer&#xA;@see         java.lang.String&#xA;@since&#x9;1.5&#xA;" annotatedElement="_10_5_622020d_1132928308159_810030_5155"/>
            <generalization xmi:id="_10_5_622020d_1132928321699_878575_13753" isSubstitutable="true" general="_10_5_622020d_1132928307869_383825_4926"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321699_252866_13751" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928308159_810030_5155" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321699_17866_13752" name="" supplier="_9_5_f720368_1110473546612_21020_7571" client="_10_5_622020d_1132928308159_810030_5155" contract="_9_5_f720368_1110473546612_21020_7571"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928308059_262497_5125" name="Readable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308069_664174_5127" body="A &lt;tt>Readable&lt;/tt> is a source of characters. Characters from&#xA;a &lt;tt>Readable&lt;/tt> are made available to callers of the read&#xA;method via a {@link java.nio.CharBuffer CharBuffer}.&#xA;&#xA;@version 1.3 03/12/19&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308059_262497_5125"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307899_381481_4958" name="CharacterData02" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307909_82604_4960" body="The CharacterData class encapsulates the large tables found in&#xA;Java.lang.Character." annotatedElement="_10_5_622020d_1132928307899_381481_4958"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_189363_7551" name="ArithmeticException">
            <ownedComment xmi:id="_10_5_622020d_1132928307879_734793_4933" body="Thrown when an exceptional arithmetic condition has occurred. For&#xA;example, an integer &quot;divide by zero&quot; throws an&#xA;instance of this class.&#xA;&#xA;@author  unascribed&#xA;@version 1.22, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_189363_7551"/>
            <generalization xmi:id="_10_5_622020d_1132928321618_170642_13611" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_259787_7699" name="System" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308169_245415_5170" body="The &lt;code>System&lt;/code> class contains several useful class fields&#xA;and methods. It cannot be instantiated.&#xA;&#xA;&lt;p>Among the facilities provided by the &lt;code>System&lt;/code> class&#xA;are standard input, standard output, and error output streams;&#xA;access to externally defined properties and environment&#xA;variables; a means of loading files and libraries; and a utility&#xA;method for quickly copying a portion of an array.&#xA;&#xA;@author  unascribed&#xA;@version 1.149, 06/02/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_259787_7699"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321679_383419_13717" name="AbstractSet&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_837052_13718" signature="_10_5_622020d_1132928310803_326819_6974">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_472981_13719" formal="_10_5_622020d_1132928310803_863661_6975" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_428363_7573" name="Class" clientDependency="_10_5_622020d_1132928321638_867456_13634 _10_5_622020d_1132928321638_607698_13635 _10_5_622020d_1132928321628_592913_13632 _10_5_622020d_1132928321638_415249_13633" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307919_293136_4979" body="Instances of the class &lt;code>Class&lt;/code> represent classes and&#xA;interfaces in a running Java application.  An enum is a kind of&#xA;class and an annotation is a kind of interface.  Every array also&#xA;belongs to a class that is reflected as a &lt;code>Class&lt;/code> object&#xA;that is shared by all arrays with the same element type and number&#xA;of dimensions.  The primitive Java types (&lt;code>boolean&lt;/code>,&#xA;&lt;code>byte&lt;/code>, &lt;code>char&lt;/code>, &lt;code>short&lt;/code>,&#xA;&lt;code>int&lt;/code>, &lt;code>long&lt;/code>, &lt;code>float&lt;/code>, and&#xA;&lt;code>double&lt;/code>), and the keyword &lt;code>void&lt;/code> are also&#xA;represented as &lt;code>Class&lt;/code> objects.&#xA;&#xA;&lt;p> &lt;code>Class&lt;/code> has no public constructor. Instead &lt;code>Class&lt;/code>&#xA;objects are constructed automatically by the Java Virtual Machine as classes&#xA;are loaded and by calls to the &lt;code>defineClass&lt;/code> method in the class&#xA;loader.&#xA;&#xA;&lt;p> The following example uses a &lt;code>Class&lt;/code> object to print the&#xA;class name of an object:&#xA;&#xA;&lt;p> &lt;blockquote>&lt;pre>&#xA;void printClassName(Object obj) {&#xA;System.out.println(&quot;The class of &quot; + obj +&#xA;&quot; is &quot; + obj.getClass().getName());&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> It is also possible to get the &lt;code>Class&lt;/code> object for a named&#xA;type (or for void) using a class literal&#xA;(JLS Section &lt;A HREF=&quot;http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530&quot;>15.8.2&lt;/A>).&#xA;For example:&#xA;&#xA;&lt;p> &lt;blockquote>&lt;pre>&#xA;System.out.println(&quot;The name of class Foo is: &quot;+Foo.class.getName());&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@author  unascribed&#xA;@version 1.135, 05/25/01&#xA;@see     java.lang.ClassLoader#defineClass(byte[], int, int)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_428363_7573"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307919_171890_4974" name="" parameter="_10_5_622020d_1132928307919_848695_4975">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307919_848695_4975" parameteredElement="_10_5_622020d_1132928307919_77968_4976">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307919_77968_4976" name="T" templateParameter="_10_5_622020d_1132928307919_848695_4975"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321628_592913_13632" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_428363_7573" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321638_415249_13633" name="" supplier="_10_5_622020d_1132928307799_85189_4882" client="_9_5_f720368_1110473546612_428363_7573" contract="_10_5_622020d_1132928307799_85189_4882"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321638_867456_13634" name="" supplier="_10_5_622020d_1132928307859_269629_4910" client="_9_5_f720368_1110473546612_428363_7573" contract="_10_5_622020d_1132928307859_269629_4910"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321638_607698_13635" name="" supplier="_10_5_622020d_1132928307779_179201_4867" client="_9_5_f720368_1110473546612_428363_7573" contract="_10_5_622020d_1132928307779_179201_4867"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547503_714755_17849" name="MethodArray" visibility="package"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307919_104654_4977" name="EnclosingMethodInfo" visibility="private" isLeaf="true"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_117118_7661" name="Object">
            <ownedComment xmi:id="_10_5_622020d_1132928308039_979029_5098" body="Class &lt;code>Object&lt;/code> is the root of the class hierarchy.&#xA;Every class has &lt;code>Object&lt;/code> as a superclass. All objects,&#xA;including arrays, implement the methods of this class.&#xA;&#xA;@author  unascribed&#xA;@version 1.68, 04/08/04&#xA;@see     java.lang.Class&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_117118_7661"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_585522_7603" name="Float" clientDependency="_10_5_622020d_1132928321658_175817_13659" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307959_565391_5033" body="The &lt;code>Float&lt;/code> class wraps a value of primitive type&#xA;&lt;code>float&lt;/code> in an object. An object of type&#xA;&lt;code>Float&lt;/code> contains a single field whose type is&#xA;&lt;code>float&lt;/code>.&#xA;&lt;p>&#xA;In addition, this class provides several methods for converting a&#xA;&lt;code>float&lt;/code> to a &lt;code>String&lt;/code> and a&#xA;&lt;code>String&lt;/code> to a &lt;code>float&lt;/code>, as well as other&#xA;constants and methods useful when dealing with a&#xA;&lt;code>float&lt;/code>.&#xA;&#xA;@author  Lee Boynton&#xA;@author  Arthur van Hoff&#xA;@author  Joseph D. Darcy&#xA;@version 1.94, 05/11/04&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_585522_7603"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_965149_13660" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321658_175817_13659" name="" supplier="_10_5_622020d_1132928321648_626485_13656" client="_9_5_f720368_1110473546612_585522_7603" contract="_10_5_622020d_1132928321648_626485_13656"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928308049_4885_5101" name="Override" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308049_888799_5107" body="Indicates that a method declaration is intended to override a&#xA;method declaration in a superclass.  If a method is annotated with&#xA;this annotation type but does not override a superclass method,&#xA;compilers are required to generate an error message.&#xA;&#xA;@author  Joshua Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308049_4885_5101"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928307428_771940_4719" name="annotation">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307438_945392_4737" name="ElementType">
              <ownedComment xmi:id="_10_5_622020d_1132928307448_575617_4740" body="A program element type.  The constants of this enumerated type&#xA;provide a simple classification of the declared elements in a&#xA;Java program.&#xA;&#xA;&lt;p>These constants are used with the {@link Target} meta-annotation type&#xA;to specify where it is legal to use an annotation type.&#xA;&#xA;@author  Joshua Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307438_945392_4737"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307448_713950_4741" name="IncompleteAnnotationException">
              <ownedComment xmi:id="_10_5_622020d_1132928307448_771257_4743" body="Thrown to indicate that a program has attempted to access an element of&#xA;an annotation type that was added to the annotation type definition after&#xA;the annotation was compiled (or serialized).  This exception will not be&#xA;thrown if the new element has a default value.&#xA;&#xA;@author  Josh Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307448_713950_4741"/>
              <generalization xmi:id="_10_5_622020d_1132928321598_452365_13572" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307468_207929_4764" name="Target" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307468_527632_4771" body="Indicates the kinds of program element to which an annotation type&#xA;is applicable.  If a Target meta-annotation is not present on an&#xA;annotation type declaration, the declared type may be used on any&#xA;program element.  If such a meta-annotation is present, the compiler&#xA;will enforce the specified usage restriction.&#xA;&#xA;For example, this meta-annotation indicates that the declared type is&#xA;itself a meta-annotation type.  It can only be used on annotation type&#xA;declarations:&#xA;&lt;pre>&#xA;&amp;#064;Target(ElementType.ANNOTATION_TYPE)&#xA;public &amp;#064;interface MetaAnnotationType {&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;This meta-annotation indicates that the declared type is intended solely&#xA;for use as a member type in complex annotation type declarations.  It&#xA;cannot be used to annotate anything directly:&#xA;&lt;pre>&#xA;&amp;#064;Target({})&#xA;public &amp;#064;interface MemberType {&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;It is a compile-time error for a single ElementType constant to&#xA;appear more than once in a Target annotation.  For example, the&#xA;following meta-annotation is illegal:&#xA;&lt;pre>&#xA;&amp;#064;Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD})&#xA;public &amp;#064;interface Bogus {&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;" annotatedElement="_10_5_622020d_1132928307468_207929_4764"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307428_136430_4726" name="AnnotationTypeMismatchException">
              <ownedComment xmi:id="_10_5_622020d_1132928307438_425907_4728" body="Thrown to indicate that a program has attempted to access an element of&#xA;an annotation whose type has changed after the annotation was compiled&#xA;(or serialized).&#xA;&#xA;@author  Josh Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307428_136430_4726"/>
              <generalization xmi:id="_10_5_622020d_1132928321598_495685_13571" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307428_71322_4723" name="AnnotationFormatError">
              <ownedComment xmi:id="_10_5_622020d_1132928307428_411991_4725" body="Thrown when the annotation parser attempts to read an annotation&#xA;from a class file and determines that the annotation is malformed.&#xA;&#xA;@author  Josh Bloch&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307428_71322_4723"/>
              <generalization xmi:id="_10_5_622020d_1132928321598_418061_13570" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307458_137197_4752" name="Retention" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307468_881857_4759" body="Indicates how long annotations with the annotated type are to&#xA;be retained.  If no Retention annotation is present on&#xA;an annotation type declaration, the retention policy defaults to&#xA;&lt;tt>RetentionPolicy.CLASS&lt;/tt>.&#xA;&#xA;&lt;p>A Target meta-annotation has effect only if the meta-annotated&#xA;type is use directly for annotation.  It has no effect if the meta-annotated&#xA;type is used as a member type in another annotation type.&#xA;&#xA;@author  Joshua Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307458_137197_4752"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307428_297860_4720" name="Annotation" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307428_412439_4722" body="The common interface extended by all annotation types.  Note that an&#xA;interface that manually extends this one does &lt;i>not&lt;/i> define&#xA;an annotation type.  Also note that this interface does not itself&#xA;define an annotation type.&#xA;&#xA;@author  Josh Bloch&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928307428_297860_4720"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307468_978843_4760" name="RetentionPolicy">
              <ownedComment xmi:id="_10_5_622020d_1132928307468_934757_4763" body="Annotation retention policy.  The constants of this enumerated type&#xA;describe the various policies for retaining annotations.  They are used&#xA;in conjunction with the {@link Retention} meta-annotation type to specify&#xA;how long annotations are to be retained.&#xA;&#xA;@author  Joshua Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307468_978843_4760"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307438_67267_4729" name="Documented" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307438_217805_4736" body="Indicates that annotations with a type are to be documented by javadoc&#xA;and similar tools by default.  This type should be used to annotate the&#xA;declarations of types whose annotations affect the use of annotated&#xA;elements by their clients.  If a type declaration is annotated with&#xA;Documented, its annotations become part of the public API&#xA;of the annotated elements.&#xA;&#xA;@author  Joshua Bloch&#xA;@version 1.5, 02/03/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307438_67267_4729"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307448_409688_4744" name="Inherited" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307458_889404_4751" body="Indicates that an annotation type is automatically inherited.  If&#xA;an Inherited meta-annotation is present on an annotation type&#xA;declaration, and the user queries the annotation type on a class&#xA;declaration, and the class declaration has no annotation for this type,&#xA;then the class's superclass will automatically be queried for the&#xA;annotation type.  This process will be repeated until an annotation for this&#xA;type is found, or the top of the class hierarchy (Object)&#xA;is reached.  If no superclass has an annotation for this type, then&#xA;the query will indicate that the class in question has no such annotation.&#xA;&#xA;&lt;p>Note that this meta-annotation type has no effect if the annotated&#xA;type is used to annotate anything other than a class.  Note also&#xA;that this meta-annotation only causes annotations to be inherited&#xA;from superclasses; annotations on implemented interfaces have no&#xA;effect.&#xA;&#xA;@author  Joshua Bloch&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307448_409688_4744"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_441232_7619" name="IllegalThreadStateException">
            <ownedComment xmi:id="_10_5_622020d_1132928307969_510643_5045" body="Thrown to indicate that a thread is not in an appropriate state&#xA;for the requested operation. See, for example, the&#xA;&lt;code>suspend&lt;/code> and &lt;code>resume&lt;/code> methods in class&#xA;&lt;code>Thread&lt;/code>.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@see     java.lang.Thread#resume()&#xA;@see     java.lang.Thread#suspend()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_441232_7619"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_27440_13666" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_45790_7671" name="Runtime">
            <ownedComment xmi:id="_10_5_622020d_1132928308069_593026_5131" body="Every Java application has a single instance of class&#xA;&lt;code>Runtime&lt;/code> that allows the application to interface with&#xA;the environment in which the application is running. The current&#xA;runtime can be obtained from the &lt;code>getRuntime&lt;/code> method.&#xA;&lt;p>&#xA;An application cannot create its own instance of this class.&#xA;&#xA;@author  unascribed&#xA;@version 1.74, 05/18/04&#xA;@see     java.lang.Runtime#getRuntime()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_45790_7671"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_795618_7609" name="IllegalAccessError">
            <ownedComment xmi:id="_10_5_622020d_1132928307959_210887_5035" body="Thrown if an application attempts to access or modify a field, or&#xA;to call a method that it does not have access to.&#xA;&lt;p>&#xA;Normally, this error is caught by the compiler; this error can&#xA;only occur at run time if the definition of a class has&#xA;incompatibly changed.&#xA;&#xA;@author  unascribed&#xA;@version 1.16, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_795618_7609"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_497519_13661" isSubstitutable="true" general="_9_5_f720368_1110473546612_396947_7621"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_728723_7615" name="IllegalMonitorStateException">
            <ownedComment xmi:id="_10_5_622020d_1132928307969_542467_5041" body="Thrown to indicate that a thread has attempted to wait on an&#xA;object's monitor or to notify other threads waiting on an object's&#xA;monitor without owning the specified monitor.&#xA;&#xA;@author  unascribed&#xA;@version 1.12, 12/19/03&#xA;@see     java.lang.Object#notify()&#xA;@see     java.lang.Object#notifyAll()&#xA;@see     java.lang.Object#wait()&#xA;@see     java.lang.Object#wait(long)&#xA;@see     java.lang.Object#wait(long, int)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_728723_7615"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_530854_13664" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_799782_7673" name="RuntimeException">
            <ownedComment xmi:id="_10_5_622020d_1132928308069_11031_5133" body="&lt;code>RuntimeException&lt;/code> is the superclass of those&#xA;exceptions that can be thrown during the normal operation of the&#xA;Java Virtual Machine.&#xA;&lt;p>&#xA;A method is not required to declare in its &lt;code>throws&lt;/code>&#xA;clause any subclasses of &lt;code>RuntimeException&lt;/code> that might&#xA;be thrown during the execution of the method but not caught.&#xA;&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_799782_7673"/>
            <generalization xmi:id="_10_5_622020d_1132928321689_689724_13730" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321679_782714_13713" name="AbstractCollection&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928321679_622920_13714" signature="_10_5_622020d_1132928310783_69936_6932">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321679_774558_13715" formal="_10_5_622020d_1132928310783_329056_6933" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_692218_7691" name="String" clientDependency="_10_5_622020d_1132928321689_850553_13740 _10_5_622020d_1132928321689_53166_13744 _10_5_622020d_1132928321689_848714_13745" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308159_21552_5152" body="The &lt;code>String&lt;/code> class represents character strings. All&#xA;string literals in Java programs, such as &lt;code>&quot;abc&quot;&lt;/code>, are&#xA;implemented as instances of this class.&#xA;&lt;p>&#xA;Strings are constant; their values cannot be changed after they&#xA;are created. String buffers support mutable strings.&#xA;Because String objects are immutable they can be shared. For example:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;String str = &quot;abc&quot;;&#xA;&lt;/pre>&lt;/blockquote>&lt;p>&#xA;is equivalent to:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;char data[] = {'a', 'b', 'c'};&#xA;String str = new String(data);&#xA;&lt;/pre>&lt;/blockquote>&lt;p>&#xA;Here are some more examples of how strings can be used:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;System.out.println(&quot;abc&quot;);&#xA;String cde = &quot;cde&quot;;&#xA;System.out.println(&quot;abc&quot; + cde);&#xA;String c = &quot;abc&quot;.substring(2,3);&#xA;String d = cde.substring(1, 2);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;The class &lt;code>String&lt;/code> includes methods for examining&#xA;individual characters of the sequence, for comparing strings, for&#xA;searching strings, for extracting substrings, and for creating a&#xA;copy of a string with all characters translated to uppercase or to&#xA;lowercase. Case mapping is based on the Unicode Standard version&#xA;specified by the {@link java.lang.Character Character} class.&#xA;&lt;p>&#xA;The Java language provides special support for the string&#xA;concatenation operator (&amp;nbsp;+&amp;nbsp;), and for conversion of&#xA;other objects to strings. String concatenation is implemented&#xA;through the &lt;code>StringBuilder&lt;/code>(or &lt;code>StringBuffer&lt;/code>)&#xA;class and its &lt;code>append&lt;/code> method.&#xA;String conversions are implemented through the method&#xA;&lt;code>toString&lt;/code>, defined by &lt;code>Object&lt;/code> and&#xA;inherited by all classes in Java. For additional information on&#xA;string concatenation and conversion, see Gosling, Joy, and Steele,&#xA;&lt;i>The Java Language Specification&lt;/i>.&#xA;&#xA;&lt;p> Unless otherwise noted, passing a &lt;tt>null&lt;/tt> argument to a constructor&#xA;or method in this class will cause a {@link NullPointerException} to be&#xA;thrown.&#xA;&#xA;&lt;p>A &lt;code>String&lt;/code> represents a string in the UTF-16 format&#xA;in which &lt;em>supplementary characters&lt;/em> are represented by &lt;em>surrogate&#xA;pairs&lt;/em> (see the section &lt;a href=&quot;Character.html#unicode&quot;>Unicode&#xA;Character Representations&lt;/a> in the &lt;code>Character&lt;/code> class for&#xA;more information).&#xA;Index values refer to &lt;code>char&lt;/code> code units, so a supplementary&#xA;character uses two positions in a &lt;code>String&lt;/code>.&#xA;&lt;p>The &lt;code>String&lt;/code> class provides methods for dealing with&#xA;Unicode code points (i.e., characters), in addition to those for&#xA;dealing with Unicode code units (i.e., &lt;code>char&lt;/code> values).&#xA;&#xA;@author  Lee Boynton&#xA;@author  Arthur van Hoff&#xA;@version 1.187, 07/13/04&#xA;@see     java.lang.Object#toString()&#xA;@see     java.lang.StringBuffer&#xA;@see     java.lang.StringBuilder&#xA;@see     java.nio.charset.Charset&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_692218_7691"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_850553_13740" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546612_692218_7691" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_53166_13744" name="" supplier="_10_5_622020d_1132928321689_923904_13741" client="_9_5_f720368_1110473546612_692218_7691" contract="_10_5_622020d_1132928321689_923904_13741"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321689_848714_13745" name="" supplier="_9_5_f720368_1110473546612_21020_7571" client="_9_5_f720368_1110473546612_692218_7691" contract="_9_5_f720368_1110473546612_21020_7571"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547534_161471_17916" name="CaseInsensitiveComparator" visibility="private" clientDependency="_10_5_622020d_1132928321689_946162_13746 _10_5_622020d_1132928321689_761545_13747">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321689_946162_13746" name="" supplier="_10_5_622020d_1132928321679_165469_13721" client="_9_5_f720368_1110473547534_161471_17916" contract="_10_5_622020d_1132928321679_165469_13721"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321689_761545_13747" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547534_161471_17916" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_661819_7701" name="Terminator" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308169_15961_5172" body="Package-private utility class for setting up and tearing down&#xA;platform-specific support for termination-triggered shutdowns.&#xA;&#xA;@author   Mark Reinhold&#xA;@version  1.10, 03/12/19&#xA;@since    1.3&#xA;" annotatedElement="_9_5_f720368_1110473546612_661819_7701"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_167906_7631" name="Integer" clientDependency="_10_5_622020d_1132928321658_892318_13678" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307979_63910_5061" body="The &lt;code>Integer&lt;/code> class wraps a value of the primitive type&#xA;&lt;code>int&lt;/code> in an object. An object of type&#xA;&lt;code>Integer&lt;/code> contains a single field whose type is&#xA;&lt;code>int&lt;/code>.&#xA;&#xA;&lt;p>&#xA;&#xA;In addition, this class provides several methods for converting an&#xA;&lt;code>int&lt;/code> to a &lt;code>String&lt;/code> and a &lt;code>String&lt;/code>&#xA;to an &lt;code>int&lt;/code>, as well as other constants and methods&#xA;useful when dealing with an &lt;code>int&lt;/code>.&#xA;&#xA;&lt;p>Implementation note: The implementations of the &quot;bit twiddling&quot;&#xA;methods (such as {@link #highestOneBit(int) highestOneBit} and&#xA;{@link #numberOfTrailingZeros(int) numberOfTrailingZeros}) are&#xA;based on material from Henry S. Warren, Jr.'s &lt;i>Hacker's&#xA;Delight&lt;/i>, (Addison Wesley, 2002).&#xA;&#xA;@author  Lee Boynton&#xA;@author  Arthur van Hoff&#xA;@author  Josh Bloch&#xA;@version 1.90, 05/11/04&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_167906_7631"/>
            <generalization xmi:id="_10_5_622020d_1132928321669_862619_13679" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321658_892318_13678" name="" supplier="_10_5_622020d_1132928321658_338592_13675" client="_9_5_f720368_1110473546612_167906_7631" contract="_10_5_622020d_1132928321658_338592_13675"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307979_231041_5059" name="IntegerCache" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321658_338592_13675" name="Comparable&lt;Integer>">
            <templateBinding xmi:id="_10_5_622020d_1132928321658_930571_13676" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321658_392796_13677" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_167906_7631"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_484638_7617" name="IllegalStateException">
            <ownedComment xmi:id="_10_5_622020d_1132928307969_149921_5043" body="Signals that a method has been invoked at an illegal or&#xA;inappropriate time.  In other words, the Java environment or&#xA;Java application is not in an appropriate state for the requested&#xA;operation.&#xA;&#xA;@author  Jonni Kanerva&#xA;@version 1.15, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_484638_7617"/>
            <generalization xmi:id="_10_5_622020d_1132928321658_898416_13665" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_726383_7591" name="Comparable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307939_671122_5000" body="This interface imposes a total ordering on the objects of each class that&#xA;implements it.  This ordering is referred to as the class's &lt;i>natural&#xA;ordering&lt;/i>, and the class's &lt;tt>compareTo&lt;/tt> method is referred to as&#xA;its &lt;i>natural comparison method&lt;/i>.&lt;p>&#xA;&#xA;Lists (and arrays) of objects that implement this interface can be sorted&#xA;automatically by &lt;tt>Collections.sort&lt;/tt> (and &lt;tt>Arrays.sort&lt;/tt>).&#xA;Objects that implement this interface can be used as keys in a sorted map&#xA;or elements in a sorted set, without the need to specify a comparator.&lt;p>&#xA;&#xA;The natural ordering for a class &lt;tt>C&lt;/tt> is said to be &lt;i>consistent&#xA;with equals&lt;/i> if and only if &lt;tt>(e1.compareTo((Object)e2) == 0)&lt;/tt> has&#xA;the same boolean value as &lt;tt>e1.equals((Object)e2)&lt;/tt> for every&#xA;&lt;tt>e1&lt;/tt> and &lt;tt>e2&lt;/tt> of class &lt;tt>C&lt;/tt>.  Note that &lt;tt>null&lt;/tt>&#xA;is not an instance of any class, and &lt;tt>e.compareTo(null)&lt;/tt> should&#xA;throw a &lt;tt>NullPointerException&lt;/tt> even though &lt;tt>e.equals(null)&lt;/tt>&#xA;returns &lt;tt>false&lt;/tt>.&lt;p>&#xA;&#xA;It is strongly recommended (though not required) that natural orderings be&#xA;consistent with equals.  This is so because sorted sets (and sorted maps)&#xA;without explicit comparators behave &quot;strangely&quot; when they are used with&#xA;elements (or keys) whose natural ordering is inconsistent with equals.  In&#xA;particular, such a sorted set (or sorted map) violates the general contract&#xA;for set (or map), which is defined in terms of the &lt;tt>equals&lt;/tt>&#xA;method.&lt;p>&#xA;&#xA;For example, if one adds two keys &lt;tt>a&lt;/tt> and &lt;tt>b&lt;/tt> such that&#xA;&lt;tt>(!a.equals((Object)b) &amp;&amp; a.compareTo((Object)b) == 0)&lt;/tt> to a sorted&#xA;set that does not use an explicit comparator, the second &lt;tt>add&lt;/tt>&#xA;operation returns false (and the size of the sorted set does not increase)&#xA;because &lt;tt>a&lt;/tt> and &lt;tt>b&lt;/tt> are equivalent from the sorted set's&#xA;perspective.&lt;p>&#xA;&#xA;Virtually all Java core classes that implement comparable have natural&#xA;orderings that are consistent with equals.  One exception is&#xA;&lt;tt>java.math.BigDecimal&lt;/tt>, whose natural ordering equates&#xA;&lt;tt>BigDecimal&lt;/tt> objects with equal values and different precisions&#xA;(such as 4.0 and 4.00).&lt;p>&#xA;&#xA;For the mathematically inclined, the &lt;i>relation&lt;/i> that defines&#xA;the natural ordering on a given class C is:&lt;pre>&#xA;{(x, y) such that x.compareTo((Object)y) &lt;= 0}.&#xA;&lt;/pre> The &lt;i>quotient&lt;/i> for this total order is: &lt;pre>&#xA;{(x, y) such that x.compareTo((Object)y) == 0}.&#xA;&lt;/pre>&#xA;&#xA;It follows immediately from the contract for &lt;tt>compareTo&lt;/tt> that the&#xA;quotient is an &lt;i>equivalence relation&lt;/i> on &lt;tt>C&lt;/tt>, and that the&#xA;natural ordering is a &lt;i>total order&lt;/i> on &lt;tt>C&lt;/tt>.  When we say that a&#xA;class's natural ordering is &lt;i>consistent with equals&lt;/i>, we mean that the&#xA;quotient for the natural ordering is the equivalence relation defined by&#xA;the class's &lt;tt>equals(Object)&lt;/tt> method:&lt;pre>&#xA;{(x, y) such that x.equals((Object)y)}.&#xA;&lt;/pre>&lt;p>&#xA;&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.22, 12/19/03&#xA;@see java.util.Comparator&#xA;@see java.util.Collections#sort(java.util.List)&#xA;@see java.util.Arrays#sort(Object[])&#xA;@see java.util.SortedSet&#xA;@see java.util.SortedMap&#xA;@see java.util.TreeSet&#xA;@see java.util.TreeMap&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_726383_7591"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928307939_612079_4996" name="" parameter="_10_5_622020d_1132928307939_608180_4997">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928307939_608180_4997" parameteredElement="_10_5_622020d_1132928307939_477066_4998">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928307939_477066_4998" name="T" templateParameter="_10_5_622020d_1132928307939_608180_4997"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_173539_7583" name="SystemClassLoaderAction" visibility="package" clientDependency="_10_5_622020d_1132928321638_893601_13639">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321638_893601_13639" name="" supplier="_9_5_f720368_1110473546690_56745_8511" client="_9_5_f720368_1110473546612_173539_7583" contract="_9_5_f720368_1110473546690_56745_8511"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_457915_7577" name="ClassCircularityError">
            <ownedComment xmi:id="_10_5_622020d_1132928307919_209007_4983" body="Thrown when a circularity has been detected while initializing a class.&#xA;&#xA;@author     unascribed&#xA;@version    1.15, 12/19/03&#xA;@since      JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_457915_7577"/>
            <generalization xmi:id="_10_5_622020d_1132928321638_455351_13637" isSubstitutable="true" general="_9_5_f720368_1110473546612_583517_7637"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_907356_7667" name="Process" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308049_125459_5111" body="The {@link ProcessBuilder#start()} and&#xA;{@link Runtime#exec(String[],String[],File) Runtime.exec}&#xA;methods create a native process and&#xA;return an instance of a subclass of &lt;code>Process&lt;/code> that can&#xA;be used to control the process and obtain information about it.&#xA;The class &lt;code>Process&lt;/code> provides methods for performing&#xA;input from the process, performing output to the process, waiting&#xA;for the process to complete, checking the exit status of the process,&#xA;and destroying (killing) the process.&#xA;&#xA;&lt;p>&#xA;The methods that create processes may not work well for special&#xA;processes on certain native platforms, such as native windowing&#xA;processes, daemon processes, Win16/DOS processes on Microsoft Windows, or shell&#xA;scripts. The created subprocess does not have its own terminal or&#xA;console. All its standard io (i.e. stdin, stdout, stderr)  operations&#xA;will be redirected to the parent process through three streams&#xA;({@link #getOutputStream()},&#xA;{@link #getInputStream()},&#xA;{@link #getErrorStream()}).&#xA;The parent process uses these streams to feed input to and get output&#xA;from the subprocess. Because some native platforms only provide&#xA;limited buffer size for standard input and output streams, failure&#xA;to promptly write the input stream or read the output stream of&#xA;the subprocess may cause the subprocess to block, and even deadlock.&#xA;&#xA;&lt;p>&#xA;The subprocess is not killed when there are no more references to&#xA;the &lt;code>Process&lt;/code> object, but rather the subprocess&#xA;continues executing asynchronously.&#xA;&#xA;&lt;p>&#xA;There is no requirement that a process represented by a &lt;code>Process&lt;/code>&#xA;object execute asynchronously or concurrently with respect to the Java&#xA;process that owns the &lt;code>Process&lt;/code> object.&#xA;&#xA;@author  unascribed&#xA;@version 1.23, 12/19/03&#xA;@see     ProcessBuilder&#xA;@see     Runtime#exec(String[], String[], File)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_907356_7667"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547268_879571_16321" name="applet">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_293040_6433" name="Applet">
            <ownedComment xmi:id="_10_5_622020d_1132928305485_109539_3577" body="An applet is a small program that is intended not to be run on&#xA;its own, but rather to be embedded inside another application.&#xA;&lt;p>&#xA;The &lt;code>Applet&lt;/code> class must be the superclass of any&#xA;applet that is to be embedded in a Web page or viewed by the Java&#xA;Applet Viewer. The &lt;code>Applet&lt;/code> class provides a standard&#xA;interface between applets and their environment.&#xA;&#xA;@author      Arthur van Hoff&#xA;@author      Chris Warth&#xA;@version     1.77, 06/22/04&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546549_293040_6433"/>
            <generalization xmi:id="_10_5_622020d_1132928318514_310980_12866" isSubstitutable="true" general="_9_5_f720368_1110473546581_596295_7095"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547268_423198_16323" name="AccessibleApplet" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928305345_270302_3575" body="This class implements accessibility support for the&#xA;&lt;code>Applet&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to applet user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547268_423198_16323"/>
              <generalization xmi:id="_10_5_622020d_1132928318524_944608_12867" isSubstitutable="true" general="_9_5_f720368_1110473547268_360366_16330"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_531485_6439" name="AudioClip" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928305485_68301_3583" body="The &lt;code>AudioClip&lt;/code> interface is a simple abstraction for&#xA;playing a sound clip. Multiple &lt;code>AudioClip&lt;/code> items can be&#xA;playing at the same time, and the resulting sound is mixed&#xA;together to produce a composite.&#xA;&#xA;@author &#x9;Arthur van Hoff&#xA;@version     1.18, 12/19/03&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546549_531485_6439"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_379369_6437" name="AppletStub" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928305485_234678_3581" body="When an applet is first created, an applet stub is attached to it&#xA;using the applet's &lt;code>setStub&lt;/code> method. This stub&#xA;serves as the interface between the applet and the browser&#xA;environment or applet viewer environment in which the application&#xA;is running.&#xA;&#xA;@author &#x9;Arthur van Hoff&#xA;@version     1.25, 12/19/03&#xA;@see         java.applet.Applet#setStub(java.applet.AppletStub)&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546549_379369_6437"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_858333_6435" name="AppletContext" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928305485_562050_3579" body="This interface corresponds to an applet's environment: the&#xA;document containing the applet and the other applets in the same&#xA;document.&#xA;&lt;p>&#xA;The methods in this interface can be used by an applet to obtain&#xA;information about its environment.&#xA;&#xA;@author &#x9;Arthur van Hoff&#xA;@version     1.31, 05/05/04&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546549_858333_6435"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547549_109314_18048" name="net">
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308379_50689_5313" name="SecureCacheResponse" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308379_788571_5315" body="Represents a cache response originally retrieved through secure&#xA;means, such as TLS.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308379_50689_5313"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_433169_13806" isSubstitutable="true" general="_10_5_622020d_1132928308269_387843_5237"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_663573_7837" name="URISyntaxException">
            <ownedComment xmi:id="_10_5_622020d_1132928308560_754131_5351" body="Checked exception thrown to indicate that a string could not be parsed as a&#xA;URI reference.&#xA;&#xA;@author Mark Reinhold&#xA;@version 1.5, 03/12/19&#xA;@see URI&#xA;" annotatedElement="_9_5_f720368_1110473546643_663573_7837"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_897404_13826" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308379_163257_5307" name="ProxySelector" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308379_818267_5309" body="Selects the proxy server to use, if any, when connecting to the&#xA;network resource referenced by a URL. A proxy selector is a&#xA;concrete sub-class of this class and is registered by invoking the&#xA;{@link java.net.ProxySelector#setDefault setDefault} method. The&#xA;currently registered proxy selector can be retrieved by calling&#xA;{@link java.net.ProxySelector#getDefault getDefault} method.&#xA;&#xA;&lt;p> When a proxy selector is registered, for instance, a subclass&#xA;of URLConnection class should call the {@link #select select}&#xA;method for each URL request so that the proxy selector can decide&#xA;if a direct, or proxied connection should be used. The {@link&#xA;#select select} method returns an iterator over a collection with&#xA;the preferred connection approach.&#xA;&#xA;&lt;p> If a connection cannot be established to a proxy (PROXY or&#xA;SOCKS) servers then the caller should call the proxy selector's&#xA;{@link #connectFailed connectFailed} method to notify the proxy&#xA;selector that the proxy server is unavailable. &lt;/p>&#xA;&#xA;@version 1.3, 03/08/09&#xA;@author Yingxian Wang&#xA;@author Jean-Christophe Collet&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308379_163257_5307"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_529444_7743" name="ConnectException">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_808765_5241" body="Signals that an error occurred while attempting to connect a&#xA;socket to a remote address and port.  Typically, the connection&#xA;was refused remotely (e.g., no process is listening on the&#xA;remote address/port).&#xA;&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_529444_7743"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_713645_13787" isSubstitutable="true" general="_9_5_f720368_1110473546643_247726_7807"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_90559_7767" name="Inet6AddressImpl" visibility="package" clientDependency="_10_5_622020d_1132928321719_130948_13794">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321719_130948_13794" name="" supplier="_9_5_f720368_1110473546643_890457_7773" client="_9_5_f720368_1110473546643_90559_7767" contract="_9_5_f720368_1110473546643_890457_7773"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_383921_7825" name="SocksConsts" visibility="package" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_869851_5341" body="Constants used by the SOCKS protocol implementation.&#xA;" annotatedElement="_9_5_f720368_1110473546643_383921_7825"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_746786_7829" name="SocksSocketImplFactory" visibility="package"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_956412_7857" name="URLStreamHandlerFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308590_400183_5368" body="This interface defines a factory for &lt;code>URL&lt;/code> stream&#xA;protocol handlers.&#xA;&lt;p>&#xA;It is used by the &lt;code>URL&lt;/code> class to create a&#xA;&lt;code>URLStreamHandler&lt;/code> for a specific protocol.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.18, 12/19/03&#xA;@see     java.net.URL&#xA;@see     java.net.URLStreamHandler&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_956412_7857"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_247726_7807" name="SocketException">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_75617_5323" body="Thrown to indicate that there is an error in the underlying&#xA;protocol, such as a TCP error.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.17, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_247726_7807"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_325247_13808" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_574878_7805" name="SocketAddress" clientDependency="_10_5_622020d_1132928321719_134250_13807" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_286132_5321" body="This class represents a Socket Address with no protocol attachment.&#xA;As an abstract class, it is meant to be subclassed with a specific,&#xA;protocol dependent, implementation.&#xA;&lt;p>&#xA;It provides an immutable object used by sockets for binding, connecting, or&#xA;as returned values.&#xA;&#xA;@see&#x9;java.net.Socket&#xA;@see&#x9;java.net.ServerSocket&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_574878_7805"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321719_134250_13807" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_574878_7805" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_690164_7771" name="InetAddressImplFactory" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_648940_7853" name="URLEncoder">
            <ownedComment xmi:id="_10_5_622020d_1132928308580_283832_5364" body="Utility class for HTML form encoding. This class contains static methods&#xA;for converting a String to the &lt;CODE>application/x-www-form-urlencoded&lt;/CODE> MIME&#xA;format. For more information about HTML form encoding, consult the HTML&#xA;&lt;A HREF=&quot;http://www.w3.org/TR/html4/&quot;>specification&lt;/A>.&#xA;&#xA;&lt;p>&#xA;When encoding a String, the following rules apply:&#xA;&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>The alphanumeric characters &quot;&lt;code>a&lt;/code>&quot; through&#xA;&quot;&lt;code>z&lt;/code>&quot;, &quot;&lt;code>A&lt;/code>&quot; through&#xA;&quot;&lt;code>Z&lt;/code>&quot; and &quot;&lt;code>0&lt;/code>&quot;&#xA;through &quot;&lt;code>9&lt;/code>&quot; remain the same.&#xA;&lt;li>The special characters &quot;&lt;code>.&lt;/code>&quot;,&#xA;&quot;&lt;code>-&lt;/code>&quot;, &quot;&lt;code>*&lt;/code>&quot;, and&#xA;&quot;&lt;code>_&lt;/code>&quot; remain the same.&#xA;&lt;li>The space character &quot;&lt;code>&amp;nbsp;&lt;/code>&quot; is&#xA;converted into a plus sign &quot;&lt;code>+&lt;/code>&quot;.&#xA;&lt;li>All other characters are unsafe and are first converted into&#xA;one or more bytes using some encoding scheme. Then each byte is&#xA;represented by the 3-character string&#xA;&quot;&lt;code>%&lt;i>xy&lt;/i>&lt;/code>&quot;, where &lt;i>xy&lt;/i> is the&#xA;two-digit hexadecimal representation of the byte.&#xA;The recommended encoding scheme to use is UTF-8. However,&#xA;for compatibility reasons, if an encoding is not specified,&#xA;then the default encoding of the platform is used.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;For example using UTF-8 as the encoding scheme the string &quot;The&#xA;string &amp;#252;@foo-bar&quot; would get converted to&#xA;&quot;The+string+%C3%BC%40foo-bar&quot; because in UTF-8 the character&#xA;&amp;#252; is encoded as two bytes C3 (hex) and BC (hex), and the&#xA;character @ is encoded as one byte 40 (hex).&#xA;&#xA;@author  Herb Jellinek&#xA;@version 1.30, 05/18/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_648940_7853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_851548_7753" name="DatagramSocketImpl" clientDependency="_10_5_622020d_1132928321709_140923_13788" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308279_394200_5254" body="Abstract datagram and multicast socket implementation base class.&#xA;@author Pavani Diwanji&#xA;@since  JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_851548_7753"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321709_140923_13788" name="" supplier="_9_5_f720368_1110473546643_415038_7815" client="_9_5_f720368_1110473546628_851548_7753" contract="_9_5_f720368_1110473546643_415038_7815"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_909753_7783" name="NetPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308359_601851_5285" body="This class is for various network permissions.&#xA;A NetPermission contains a name (also referred to as a &quot;target name&quot;) but&#xA;no actions list; you either have the named permission&#xA;or you don't.&#xA;&lt;P>&#xA;The target name is the name of the network permission (see below). The naming&#xA;convention follows the  hierarchical property naming convention.&#xA;Also, an asterisk&#xA;may appear at the end of the name, following a &quot;.&quot;, or by itself, to&#xA;signify a wildcard match. For example: &quot;foo.*&quot; or &quot;*&quot; is valid,&#xA;&quot;*foo&quot; or &quot;a*b&quot; is not valid.&#xA;&lt;P>&#xA;The following table lists all the possible NetPermission target names,&#xA;and for each provides a description of what the permission allows&#xA;and a discussion of the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;Permission target name, what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setDefaultAuthenticator&lt;/td>&#xA;&lt;td>The ability to set the&#xA;way authentication information is retrieved when&#xA;a proxy or HTTP server asks for authentication&lt;/td>&#xA;&lt;td>Malicious&#xA;code can set an authenticator that monitors and steals user&#xA;authentication input as it retrieves the input from the user.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>requestPasswordAuthentication&lt;/td>&#xA;&lt;td>The ability&#xA;to ask the authenticator registered with the system for&#xA;a password&lt;/td>&#xA;&lt;td>Malicious code may steal this password.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>specifyStreamHandler&lt;/td>&#xA;&lt;td>The ability&#xA;to specify a stream handler when constructing a URL&lt;/td>&#xA;&lt;td>Malicious code may create a URL with resources that it would&#xA;normally not have access to (like file:/foo/fum/), specifying a&#xA;stream handler that gets the actual bytes from someplace it does&#xA;have access to. Thus it might be able to trick the system into&#xA;creating a ProtectionDomain/CodeSource for a class even though&#xA;that class really didn't come from that location.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setProxySelector&lt;/td>&#xA;&lt;td>The ability to set the proxy selector used to make decisions&#xA;on which proxies to use when making network connections.&lt;/td>&#xA;&lt;td>Malicious code can set a ProxySelector that directs network&#xA;traffic to an arbitrary network host.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getProxySelector&lt;/td>&#xA;&lt;td>The ability to get the proxy selector used to make decisions&#xA;on which proxies to use when making network connections.&lt;/td>&#xA;&lt;td>Malicious code can get a ProxySelector to discover proxy&#xA;hosts and ports on internal networks, which could then become&#xA;targets for attack.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setCookieHandler&lt;/td>&#xA;&lt;td>The ability to set the cookie handler that processes highly&#xA;security sensitive cookie information for an Http session.&lt;/td>&#xA;&lt;td>Malicious code can set a cookie handler to obtain access to&#xA;highly security sensitive cookie information. Some web servers&#xA;use cookies to save user private information such as access&#xA;control information, or to track user browsing habit.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getCookieHandler&lt;/td>&#xA;&lt;td>The ability to get the cookie handler that processes highly&#xA;security sensitive cookie information for an Http session.&lt;/td>&#xA;&lt;td>Malicious code can get a cookie handler to obtain access to&#xA;highly security sensitive cookie information. Some web servers&#xA;use cookies to save user private information such as access&#xA;control information, or to track user browsing habit.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setResponseCache&lt;/td>&#xA;&lt;td>The ability to set the response cache that provides access to&#xA;a local response cache.&lt;/td>&#xA;&lt;td>Malicious code getting access to the local response cache&#xA;could access security sensitive information, or create false&#xA;entries in the response cache.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>getResponseCache&lt;/td>&#xA;&lt;td>The ability to get the response cache that provides&#xA;access to a local response cache.&lt;/td>&#xA;&lt;td>Malicious code getting access to the local response cache&#xA;could access security sensitive information.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.49 04/02/03&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546643_909753_7783"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_457172_13800" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321729_809327_13821" name="Comparable&lt;URI>">
            <templateBinding xmi:id="_10_5_622020d_1132928321729_881493_13822" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321729_582770_13823" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546643_114173_7835"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308269_497553_5246" name="CookieHandler" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_186557_5248" body="A CookieHandler object provides a callback mechanism to hook up a&#xA;HTTP state management policy implementation into the HTTP protocol&#xA;handler. The HTTP state management mechanism specifies a way to&#xA;create a stateful session with HTTP requests and responses.&#xA;&#xA;&lt;p>A system-wide CookieHandler that to used by the HTTP protocol&#xA;handler can be registered by doing a&#xA;CookieHandler.setDefault(CookieHandler). The currently registered&#xA;CookieHandler can be retrieved by calling&#xA;CookieHandler.getDefault().&#xA;&#xA;For more information on HTTP state management, see &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2965.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2965: HTTP&#xA;State Management Mechanism&lt;/i>&lt;/a>&#xA;&#xA;@version 1.4, 03/08/09&#xA;@author Yingxian Wang&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308269_497553_5246"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_1263_7787" name="NoRouteToHostException">
            <ownedComment xmi:id="_10_5_622020d_1132928308359_484445_5289" body="Signals that an error occurred while attempting to connect a&#xA;socket to a remote address and port.  Typically, the remote&#xA;host cannot be reached because of an intervening firewall, or&#xA;if an intermediate router is down.&#xA;&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546643_1263_7787"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_746684_13801" isSubstitutable="true" general="_9_5_f720368_1110473546643_247726_7807"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_264875_7819" name="SocketPermission" clientDependency="_10_5_622020d_1132928321729_180525_13812" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_505529_5335" body="This class represents access to a network via sockets.&#xA;A SocketPermission consists of a&#xA;host specification and a set of &quot;actions&quot; specifying ways to&#xA;connect to that host. The host is specified as&#xA;&lt;pre>&#xA;host = (hostname | IPv4address | iPv6reference) [:portrange]&#xA;portrange = portnumber | -portnumber | portnumber-[portnumber]&#xA;&lt;/pre>&#xA;The host is expressed as a DNS name, as a numerical IP address,&#xA;or as &quot;localhost&quot; (for the local machine).&#xA;The wildcard &quot;*&quot; may be included once in a DNS name host&#xA;specification. If it is included, it must be in the leftmost&#xA;position, as in &quot;*.sun.com&quot;.&#xA;&lt;p>&#xA;The format of the IPv6reference should follow that specified in &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2732.txt&quot;>&lt;i>RFC&amp;nbsp;2732: Format&#xA;for Literal IPv6 Addresses in URLs&lt;/i>&lt;/a>:&#xA;&lt;pre>&#xA;ipv6reference = &quot;[&quot; IPv6address &quot;]&quot;&#xA;&lt;/pre>&#xA;For example, you can construct a SocketPermission instance&#xA;as the following:&#xA;&lt;pre>&#xA;String hostAddress = inetaddress.getHostAddress();&#xA;if (inetaddress instanceof Inet6Address) {&#xA;sp = new SocketPermission(&quot;[&quot; + hostAddress + &quot;]:&quot; + port, action);&#xA;} else {&#xA;sp = new SocketPermission(hostAddress + &quot;:&quot; + port, action);&#xA;}&#xA;&lt;/pre>&#xA;or&#xA;&lt;pre>&#xA;String host = url.getHost();&#xA;sp = new SocketPermission(host + &quot;:&quot; + port, action);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;The &lt;A HREF=&quot;Inet6Address.html#lform&quot;>full uncompressed form&lt;/A> of&#xA;an IPv6 literal address is also valid.&#xA;&lt;p>&#xA;The port or portrange is optional. A port specification of the&#xA;form &quot;N-&quot;, where &lt;i>N&lt;/i> is a port number, signifies all ports&#xA;numbered &lt;i>N&lt;/i> and above, while a specification of the&#xA;form &quot;-N&quot; indicates all ports numbered &lt;i>N&lt;/i> and below.&#xA;&lt;p>&#xA;The possible ways to connect to the host are&#xA;&lt;pre>&#xA;accept&#xA;connect&#xA;listen&#xA;resolve&#xA;&lt;/pre>&#xA;The &quot;listen&quot; action is only meaningful when used with &quot;localhost&quot;.&#xA;The &quot;resolve&quot; action is implied when any of the other actions are present.&#xA;The action &quot;resolve&quot; refers to host/ip name service lookups.&#xA;&#xA;&lt;p>As an example of the creation and meaning of SocketPermissions,&#xA;note that if the following permission:&#xA;&#xA;&lt;pre>&#xA;p1 = new SocketPermission(&quot;puffin.eng.sun.com:7777&quot;, &quot;connect,accept&quot;);&#xA;&lt;/pre>&#xA;&#xA;is granted to some code, it allows that code to connect to port 7777 on&#xA;&lt;code>puffin.eng.sun.com&lt;/code>, and to accept connections on that port.&#xA;&#xA;&lt;p>Similarly, if the following permission:&#xA;&#xA;&lt;pre>&#xA;p1 = new SocketPermission(&quot;puffin.eng.sun.com:7777&quot;, &quot;connect,accept&quot;);&#xA;p2 = new SocketPermission(&quot;localhost:1024-&quot;, &quot;accept,connect,listen&quot;);&#xA;&lt;/pre>&#xA;&#xA;is granted to some code, it allows that code to&#xA;accept connections on, connect to, or listen on any port between&#xA;1024 and 65535 on the local host.&#xA;&#xA;&lt;p>Note: Granting code permission to accept or make connections to remote&#xA;hosts may be dangerous because malevolent code can then more easily&#xA;transfer and share confidential data among parties who may not&#xA;otherwise have access to the data.&#xA;&#xA;@see java.security.Permissions&#xA;@see SocketPermission&#xA;&#xA;@version 1.59 04/02/12&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546643_264875_7819"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_108561_13813" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_180525_13812" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_264875_7819" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_672268_7847" name="URLConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308580_463804_5359" body="The abstract class &lt;code>URLConnection&lt;/code> is the superclass&#xA;of all classes that represent a communications link between the&#xA;application and a URL. Instances of this class can be used both to&#xA;read from and to write to the resource referenced by the URL. In&#xA;general, creating a connection to a URL is a multistep process:&#xA;&lt;p>&#xA;&lt;center>&lt;table border=2 summary=&quot;Describes the process of creating a connection to a URL: openConnection() and connect() over time.&quot;>&#xA;&lt;tr>&lt;th>&lt;code>openConnection()&lt;/code>&lt;/th>&#xA;&lt;th>&lt;code>connect()&lt;/code>&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>Manipulate parameters that affect the connection to the remote&#xA;resource.&lt;/td>&#xA;&lt;td>Interact with the resource; query header fields and&#xA;contents.&lt;/td>&lt;/tr>&#xA;&lt;/table>&#xA;---------------------------->&#xA;&lt;br>time&lt;/center>&#xA;&#xA;&lt;ol>&#xA;&lt;li>The connection object is created by invoking the&#xA;&lt;code>openConnection&lt;/code> method on a URL.&#xA;&lt;li>The setup parameters and general request properties are manipulated.&#xA;&lt;li>The actual connection to the remote object is made, using the&#xA;&lt;code>connect&lt;/code> method.&#xA;&lt;li>The remote object becomes available. The header fields and the contents&#xA;of the remote object can be accessed.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;The setup parameters are modified using the following methods:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>setAllowUserInteraction&lt;/code>&#xA;&lt;li>&lt;code>setDoInput&lt;/code>&#xA;&lt;li>&lt;code>setDoOutput&lt;/code>&#xA;&lt;li>&lt;code>setIfModifiedSince&lt;/code>&#xA;&lt;li>&lt;code>setUseCaches&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;and the general request properties are modified using the method:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>setRequestProperty&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Default values for the &lt;code>AllowUserInteraction&lt;/code> and&#xA;&lt;code>UseCaches&lt;/code> parameters can be set using the methods&#xA;&lt;code>setDefaultAllowUserInteraction&lt;/code> and&#xA;&lt;code>setDefaultUseCaches&lt;/code>.&#xA;&lt;p>&#xA;Each of the above &lt;code>set&lt;/code> methods has a corresponding&#xA;&lt;code>get&lt;/code> method to retrieve the value of the parameter or&#xA;general request property. The specific parameters and general&#xA;request properties that are applicable are protocol specific.&#xA;&lt;p>&#xA;The following methods are used to access the header fields and&#xA;the contents after the connection is made to the remote object:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>getContent&lt;/code>&#xA;&lt;li>&lt;code>getHeaderField&lt;/code>&#xA;&lt;li>&lt;code>getInputStream&lt;/code>&#xA;&lt;li>&lt;code>getOutputStream&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Certain header fields are accessed frequently. The methods:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>getContentEncoding&lt;/code>&#xA;&lt;li>&lt;code>getContentLength&lt;/code>&#xA;&lt;li>&lt;code>getContentType&lt;/code>&#xA;&lt;li>&lt;code>getDate&lt;/code>&#xA;&lt;li>&lt;code>getExpiration&lt;/code>&#xA;&lt;li>&lt;code>getLastModifed&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;provide convenient access to these fields. The&#xA;&lt;code>getContentType&lt;/code> method is used by the&#xA;&lt;code>getContent&lt;/code> method to determine the type of the remote&#xA;object; subclasses may find it convenient to override the&#xA;&lt;code>getContentType&lt;/code> method.&#xA;&lt;p>&#xA;In the common case, all of the pre-connection parameters and&#xA;general request properties can be ignored: the pre-connection&#xA;parameters and request properties default to sensible values. For&#xA;most clients of this interface, there are only two interesting&#xA;methods: &lt;code>getInputStream&lt;/code> and &lt;code>getContent&lt;/code>,&#xA;which are mirrored in the &lt;code>URL&lt;/code> class by convenience methods.&#xA;&lt;p>&#xA;More information on the request properties and header fields of&#xA;an &lt;code>http&lt;/code> connection can be found at:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2068.txt&quot;>http://www.ietf.org/rfc/rfc2068.txt&lt;/a>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;Note about &lt;code>fileNameMap&lt;/code>: In versions prior to JDK 1.1.6,&#xA;field &lt;code>fileNameMap&lt;/code> of &lt;code>URLConnection&lt;/code> was public.&#xA;In JDK 1.1.6 and later, &lt;code>fileNameMap&lt;/code> is private; accessor&#xA;and mutator methods {@link #getFileNameMap() getFileNameMap} and&#xA;{@link #setFileNameMap(java.net.FileNameMap) setFileNameMap} are added&#xA;to access it.  This change is also described on the &lt;a href=&#xA;&quot;http://java.sun.com/products/jdk/1.2/compatibility.html#incompatibilities1.2&quot;>&#xA;Compatibility&lt;/a> page.&#xA;&#xA;Invoking the &lt;tt>close()&lt;/tt> methods on the &lt;tt>InputStream&lt;/tt> or &lt;tt>OutputStream&lt;/tt> of an&#xA;&lt;tt>URLConnection&lt;/tt> after a request may free network resources associated with this&#xA;instance, unless particular protocol specifications specify different behaviours&#xA;for it.&#xA;&#xA;@author  James Gosling&#xA;@version 1.102, 05/18/04&#xA;@see     java.net.URL#openConnection()&#xA;@see     java.net.URLConnection#connect()&#xA;@see     java.net.URLConnection#getContent()&#xA;@see     java.net.URLConnection#getContentEncoding()&#xA;@see     java.net.URLConnection#getContentLength()&#xA;@see     java.net.URLConnection#getContentType()&#xA;@see     java.net.URLConnection#getDate()&#xA;@see     java.net.URLConnection#getExpiration()&#xA;@see     java.net.URLConnection#getHeaderField(int)&#xA;@see     java.net.URLConnection#getHeaderField(java.lang.String)&#xA;@see     java.net.URLConnection#getInputStream()&#xA;@see     java.net.URLConnection#getLastModified()&#xA;@see     java.net.URLConnection#getOutputStream()&#xA;@see     java.net.URLConnection#setAllowUserInteraction(boolean)&#xA;@see     java.net.URLConnection#setDefaultUseCaches(boolean)&#xA;@see     java.net.URLConnection#setDoInput(boolean)&#xA;@see     java.net.URLConnection#setDoOutput(boolean)&#xA;@see     java.net.URLConnection#setIfModifiedSince(long)&#xA;@see     java.net.URLConnection#setRequestProperty(java.lang.String, java.lang.String)&#xA;@see     java.net.URLConnection#setUseCaches(boolean)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_672268_7847"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_684710_7849" name="UnknownContentHandler" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321729_824418_13830" isSubstitutable="true" general="_9_5_f720368_1110473546628_571198_7745"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_87401_7831" name="UnknownHostException">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_791293_5345" body="Thrown to indicate that the IP address of a host could not be determined.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.15, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_87401_7831"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_508158_13819" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_18560_7801" name="ServerSocket">
            <ownedComment xmi:id="_10_5_622020d_1132928308379_474662_5317" body="This class implements server sockets. A server socket waits for&#xA;requests to come in over the network. It performs some operation&#xA;based on that request, and then possibly returns a result to the requester.&#xA;&lt;p>&#xA;The actual work of the server socket is performed by an instance&#xA;of the &lt;code>SocketImpl&lt;/code> class. An application can&#xA;change the socket factory that creates the socket&#xA;implementation to configure itself to create sockets&#xA;appropriate to the local firewall.&#xA;&#xA;@author  unascribed&#xA;@version 1.86, 05/24/04&#xA;@see     java.net.SocketImpl&#xA;@see     java.net.ServerSocket#setSocketFactory(java.net.SocketImplFactory)&#xA;@see     java.nio.channels.ServerSocketChannel&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_18560_7801"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_758910_7791" name="PlainDatagramSocketImpl" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308369_390933_5293" body="Concrete datagram and multicast socket implementation base class.&#xA;Note: This is not a public class, so that applets cannot call&#xA;into the implementation directly and hence cannot bypass the&#xA;security checks present in the DatagramSocket and MulticastSocket&#xA;classes.&#xA;&#xA;@author Pavani Diwanji&#xA;" annotatedElement="_9_5_f720368_1110473546643_758910_7791"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_143943_13802" isSubstitutable="true" general="_9_5_f720368_1110473546628_851548_7753"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_943345_7813" name="SocketInputStream" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_576179_5329" body="This stream extends FileInputStream to implement a&#xA;SocketInputStream. Note that this class should &lt;b>NOT&lt;/b> be&#xA;public.&#xA;&#xA;@version     1.34, 12/19/03&#xA;@author&#x9;Jonathan Payne&#xA;@author&#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546643_943345_7813"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_149367_13810" isSubstitutable="true" general="_9_5_f720368_1110473546596_722046_7389"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308269_285288_5234" name="CacheRequest" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_892768_5236" body="Represents channels for storing resources in the&#xA;ResponseCache. Instances of such a class provide an&#xA;OutputStream object which is called by protocol handlers to&#xA;store the resource data into the cache, and also an abort() method&#xA;which allows a cache store operation to be interrupted and&#xA;abandoned. If an IOException is encountered while reading the&#xA;response or writing to the cache, the current cache store operation&#xA;will be aborted.&#xA;&#xA;@version 1.1, 03/09/22&#xA;@author Yingxian Wang&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308269_285288_5234"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308369_953319_5301" name="Proxy">
            <ownedComment xmi:id="_10_5_622020d_1132928308379_383682_5306" body="This class represents a proxy setting, typically a type (http, socks) and&#xA;a socket address.&#xA;A &lt;code>Proxy&lt;/code> is an immutable object.&#xA;&#xA;@version 1.3, 08/09/03&#xA;@see     java.net.ProxySelector&#xA;@author Yingxian Wang&#xA;@author Jean-Christophe Collet&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928308369_953319_5301"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308379_68065_5302" name="Type">
              <ownedComment xmi:id="_10_5_622020d_1132928308379_147892_5304" body="Represents the proxy type.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308379_68065_5302"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308289_28551_5259" name="HttpRetryException">
            <ownedComment xmi:id="_10_5_622020d_1132928308289_779335_5261" body="Thrown to indicate that a HTTP request needs to be retried&#xA;but cannot be retried automatically, due to streaming mode&#xA;being enabled.&#xA;&#xA;@author  Michael McMahon&#xA;@version 1.1, 04/20/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928308289_28551_5259"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_27100_13789" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_951564_7803" name="Socket">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_631446_5319" body="This class implements client sockets (also called just&#xA;&quot;sockets&quot;). A socket is an endpoint for communication&#xA;between two machines.&#xA;&lt;p>&#xA;The actual work of the socket is performed by an instance of the&#xA;&lt;code>SocketImpl&lt;/code> class. An application, by changing&#xA;the socket factory that creates the socket implementation,&#xA;can configure itself to create sockets appropriate to the local&#xA;firewall.&#xA;&#xA;@author  unascribed&#xA;@version 1.108, 05/18/04&#xA;@see     java.net.Socket#setSocketImplFactory(java.net.SocketImplFactory)&#xA;@see     java.net.SocketImpl&#xA;@see     java.nio.channels.SocketChannel&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_951564_7803"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_888747_7775" name="InetSocketAddress">
            <ownedComment xmi:id="_10_5_622020d_1132928308349_642395_5277" body="This class implements an IP Socket Address (IP address + port number)&#xA;It can also be a pair (hostname + port number), in which case an attempt&#xA;will be made to resolve the hostname. If resolution fails then the address&#xA;is said to be &lt;I>unresolved&lt;/I> but can still be used on some circumstances&#xA;like connecting through a proxy.&#xA;&lt;p>&#xA;It provides an immutable object used by sockets for binding, connecting, or&#xA;as returned values.&#xA;&lt;p>&#xA;The &lt;i>wildcard&lt;/i> is a special local IP address. It usually means &quot;any&quot;&#xA;and can only be used for &lt;code>bind&lt;/code> operations.&#xA;&#xA;@see&#x9;java.net.Socket&#xA;@see&#x9;java.net.ServerSocket&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_888747_7775"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_488986_13796" isSubstitutable="true" general="_9_5_f720368_1110473546643_574878_7805"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_664629_7761" name="Inet4Address" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308299_190316_5265" body="This class represents an Internet Protocol version 4 (IPv4) address.&#xA;Defined by &lt;a href=&quot;http://www.ietf.org/rfc/rfc790.txt&quot;>&#xA;&lt;i>RFC&amp;nbsp;790: Assigned Numbers&lt;/i>&lt;/a>,&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc1918.txt&quot;>&#xA;&lt;i>RFC&amp;nbsp;1918: Address Allocation for Private Internets&lt;/i>&lt;/a>,&#xA;and &lt;a href=&quot;http://www.ietf.org/rfc/rfc2365.txt&quot;>&lt;i>RFC&amp;nbsp;2365:&#xA;Administratively Scoped IP Multicast&lt;/i>&lt;/a>&#xA;&#xA;&lt;h4> &lt;A NAME=&quot;format&quot;>Textual representation of IP addresses&lt;/a> &lt;/h4>&#xA;&#xA;Textual representation of IPv4 address used as input to methods&#xA;takes one of the following forms:&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>d.d.d.d&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>d.d.d&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>d.d&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>d&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> When four parts are specified, each is interpreted as a byte of&#xA;data and assigned, from left to right, to the four bytes of an IPv4&#xA;address.&#xA;&lt;p> When a three part address is specified, the last part is&#xA;interpreted as a 16-bit quantity and placed in the right most two&#xA;bytes of the network address. This makes the three part address&#xA;format convenient for specifying Class B net- work addresses as&#xA;128.net.host.&#xA;&#xA;&lt;p> When a two part address is supplied, the last part is&#xA;interpreted as a 24-bit quantity and placed in the right most three&#xA;bytes of the network address. This makes the two part address&#xA;format convenient for specifying Class A network addresses as&#xA;net.host.&#xA;&#xA;&lt;p> When only one part is given, the value is stored directly in&#xA;the network address without any byte rearrangement.&#xA;&#xA;&lt;p> For methods that return a textual representation as output&#xA;value, the first form, i.e. a dotted-quad string, is used.&#xA;&#xA;&lt;h4> The Scope of a Multicast Address &lt;/h4>&#xA;&#xA;Historically the IPv4 TTL field in the IP header has doubled as a&#xA;multicast scope field: a TTL of 0 means node-local, 1 means&#xA;link-local, up through 32 means site-local, up through 64 means&#xA;region-local, up through 128 means continent-local, and up through&#xA;255 are global. However, the administrative scoping is preferred.&#xA;Please refer to &lt;a href=&quot;http://www.ietf.org/rfc/rfc2365.txt&quot;>&#xA;&lt;i>RFC&amp;nbsp;2365: Administratively Scoped IP Multicast&lt;/i>&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546628_664629_7761"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_678701_13791" isSubstitutable="true" general="_9_5_f720368_1110473546643_279990_7769"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_331537_7817" name="SocketOutputStream" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_540630_5333" body="This stream extends FileOutputStream to implement a&#xA;SocketOutputStream. Note that this class should &lt;b>NOT&lt;/b> be&#xA;public.&#xA;&#xA;@version     1.30, 12/19/03&#xA;@author &#x9;Jonathan Payne&#xA;@author&#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546643_331537_7817"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_85131_13811" isSubstitutable="true" general="_9_5_f720368_1110473546596_678938_7395"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_815726_7851" name="URLDecoder">
            <ownedComment xmi:id="_10_5_622020d_1132928308580_686191_5362" body="Utility class for HTML form decoding. This class contains static methods&#xA;for decoding a String from the &lt;CODE>application/x-www-form-urlencoded&lt;/CODE>&#xA;MIME format.&#xA;&lt;p>&#xA;To conversion process is the reverse of that used by the URLEncoder class. It is assumed&#xA;that all characters in the encoded string are one of the following:&#xA;&quot;&lt;code>a&lt;/code>&quot; through &quot;&lt;code>z&lt;/code>&quot;,&#xA;&quot;&lt;code>A&lt;/code>&quot; through &quot;&lt;code>Z&lt;/code>&quot;,&#xA;&quot;&lt;code>0&lt;/code>&quot; through &quot;&lt;code>9&lt;/code>&quot;, and&#xA;&quot;&lt;code>-&lt;/code>&quot;, &quot;&lt;code>_&lt;/code>&quot;,&#xA;&quot;&lt;code>.&lt;/code>&quot;, and &quot;&lt;code>*&lt;/code>&quot;. The&#xA;character &quot;&lt;code>%&lt;/code>&quot; is allowed but is interpreted&#xA;as the start of a special escaped sequence.&#xA;&lt;p>&#xA;The following rules are applied in the conversion:&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>The alphanumeric characters &quot;&lt;code>a&lt;/code>&quot; through&#xA;&quot;&lt;code>z&lt;/code>&quot;, &quot;&lt;code>A&lt;/code>&quot; through&#xA;&quot;&lt;code>Z&lt;/code>&quot; and &quot;&lt;code>0&lt;/code>&quot;&#xA;through &quot;&lt;code>9&lt;/code>&quot; remain the same.&#xA;&lt;li>The special characters &quot;&lt;code>.&lt;/code>&quot;,&#xA;&quot;&lt;code>-&lt;/code>&quot;, &quot;&lt;code>*&lt;/code>&quot;, and&#xA;&quot;&lt;code>_&lt;/code>&quot; remain the same.&#xA;&lt;li>The plus sign &quot;&lt;code>+&lt;/code>&quot; is converted into a&#xA;space character &quot;&lt;code>&amp;nbsp;&lt;/code>&quot; .&#xA;&lt;li>A sequence of the form &quot;&lt;code>%&lt;i>xy&lt;/i>&lt;/code>&quot; will be&#xA;treated as representing a byte where &lt;i>xy&lt;/i> is the two-digit&#xA;hexadecimal representation of the 8 bits. Then, all substrings&#xA;that contain one or more of these byte sequences consecutively&#xA;will be replaced by the character(s) whose encoding would result&#xA;in those consecutive bytes.&#xA;The encoding scheme used to decode these characters may be specified,&#xA;or if unspecified, the default encoding of the platform will be used.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;There are two possible ways in which this decoder could deal with&#xA;illegal strings.  It could either leave illegal characters alone or&#xA;it could throw an &lt;tt>{@link java.lang.IllegalArgumentException}&lt;/tt>.&#xA;Which approach the decoder takes is left to the&#xA;implementation.&#xA;&#xA;@author  Mark Chamness&#xA;@author  Michael McCloskey&#xA;@version 1.27, 05/18/04&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546643_815726_7851"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_103226_7781" name="MulticastSocket">
            <ownedComment xmi:id="_10_5_622020d_1132928308349_506415_5283" body="The multicast datagram socket class is useful for sending&#xA;and receiving IP multicast packets.  A MulticastSocket is&#xA;a (UDP) DatagramSocket, with additional capabilities for&#xA;joining &quot;groups&quot; of other multicast hosts on the internet.&#xA;&lt;P>&#xA;A multicast group is specified by a class D IP address&#xA;and by a standard UDP port number. Class D IP addresses&#xA;are in the range &lt;CODE>224.0.0.0&lt;/CODE> to &lt;CODE>239.255.255.255&lt;/CODE>,&#xA;inclusive. The address 224.0.0.0 is reserved and should not be used.&#xA;&lt;P>&#xA;One would join a multicast group by first creating a MulticastSocket&#xA;with the desired port, then invoking the&#xA;&lt;CODE>joinGroup(InetAddress groupAddr)&lt;/CODE>&#xA;method:&#xA;&lt;PRE>&#xA;join a Multicast group and send the group salutations&#xA;...&#xA;String msg = &quot;Hello&quot;;&#xA;InetAddress group = InetAddress.getByName(&quot;228.5.6.7&quot;);&#xA;MulticastSocket s = new MulticastSocket(6789);&#xA;s.joinGroup(group);&#xA;DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(),&#xA;group, 6789);&#xA;s.send(hi);&#xA;get their responses!&#xA;byte[] buf = new byte[1000];&#xA;DatagramPacket recv = new DatagramPacket(buf, buf.length);&#xA;s.receive(recv);&#xA;...&#xA;OK, I'm done talking - leave the group...&#xA;s.leaveGroup(group);&#xA;&lt;/PRE>&#xA;&#xA;When one sends a message to a multicast group, &lt;B>all&lt;/B> subscribing&#xA;recipients to that host and port receive the message (within the&#xA;time-to-live range of the packet, see below).  The socket needn't&#xA;be a member of the multicast group to send messages to it.&#xA;&lt;P>&#xA;When a socket subscribes to a multicast group/port, it receives&#xA;datagrams sent by other hosts to the group/port, as do all other&#xA;members of the group and port.  A socket relinquishes membership&#xA;in a group by the leaveGroup(InetAddress addr) method.  &lt;B>&#xA;Multiple MulticastSocket's&lt;/B> may subscribe to a multicast group&#xA;and port concurrently, and they will all receive group datagrams.&#xA;&lt;P>&#xA;Currently applets are not allowed to use multicast sockets.&#xA;&#xA;@author Pavani Diwanji&#xA;@since  JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546643_103226_7781"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_234286_13799" isSubstitutable="true" general="_9_5_f720368_1110473546628_922688_7751"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_304219_7759" name="HttpURLConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308289_418904_5263" body="A URLConnection with support for HTTP-specific features. See&#xA;&lt;A HREF=&quot;http://www.w3.org/pub/WWW/Protocols/&quot;> the spec &lt;/A> for&#xA;details.&#xA;&lt;p>&#xA;&#xA;Each HttpURLConnection instance is used to make a single request&#xA;but the underlying network connection to the HTTP server may be&#xA;transparently shared by other instances. Calling the close() methods&#xA;on the InputStream or OutputStream of an HttpURLConnection&#xA;after a request may free network resources associated with this&#xA;instance but has no effect on any shared persistent connection.&#xA;Calling the disconnect() method may close the underlying socket&#xA;if a persistent connection is otherwise idle at that time.&#xA;&#xA;@see     java.net.HttpURLConnection#disconnect()&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_304219_7759"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_555828_13790" isSubstitutable="true" general="_9_5_f720368_1110473546643_672268_7847"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_415038_7815" name="SocketOptions" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_237262_5331" body="Interface of methods to get/set socket options.  This interface is&#xA;implemented by: &lt;B>SocketImpl&lt;/B> and  &lt;B>DatagramSocketImpl&lt;/B>.&#xA;Subclasses of these should override the methods&#xA;of this interface in order to support their own options.&#xA;&lt;P>&#xA;The methods and constants which specify options in this interface are&#xA;for implementation only.  If you're not subclassing SocketImpl or&#xA;DatagramSocketImpl, &lt;B>you won't use these directly.&lt;/B> There are&#xA;type-safe methods to get/set each of these options in Socket, ServerSocket,&#xA;DatagramSocket and MulticastSocket.&#xA;&lt;P>&#xA;@version 1.32, 01/28/04&#xA;@author David Brown&#xA;" annotatedElement="_9_5_f720368_1110473546643_415038_7815"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546628_747903_7747" name="ContentHandlerFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_329288_5245" body="This interface defines a factory for content handlers. An&#xA;implementation of this interface should map a MIME type into an&#xA;instance of &lt;code>ContentHandler&lt;/code>.&#xA;&lt;p>&#xA;This interface is used by the &lt;code>URLStreamHandler&lt;/code> class&#xA;to create a &lt;code>ContentHandler&lt;/code> for a MIME type.&#xA;&#xA;@author  James Gosling&#xA;@version 1.12, 12/19/03&#xA;@see     java.net.ContentHandler&#xA;@see     java.net.URLStreamHandler&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_747903_7747"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_88403_7841" name="Parts" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_912542_7821" name="SocketPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928321729_909458_13814" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_294076_5337" body="if (init'd with IP, key is IP as string)&#xA;if wildcard, its the wild card&#xA;else its the cname?&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;&#xA;@version 1.59 02/12/04&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546643_912542_7821"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_841684_13815" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_909458_13814" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_912542_7821" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_727076_7845" name="FactoryURLClassLoader" visibility="package" isLeaf="true">
            <generalization xmi:id="_10_5_622020d_1132928321729_154499_13829" isSubstitutable="true" general="_9_5_f720368_1110473546643_203154_7843"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_559750_7795" name="InetAddressContainer" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_102560_7827" name="SocksSocketImpl" visibility="package" clientDependency="_10_5_622020d_1132928321729_183480_13817">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_183957_5343" body="SOCKS (V4 &amp; V5) TCP socket implementation (RFC 1928).&#xA;This is a subclass of PlainSocketImpl.&#xA;Note this class should &lt;b>NOT&lt;/b> be public.&#xA;" annotatedElement="_9_5_f720368_1110473546643_102560_7827"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_633078_13818" isSubstitutable="true" general="_9_5_f720368_1110473546643_247592_7793"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_183480_13817" name="" supplier="_9_5_f720368_1110473546643_383921_7825" client="_9_5_f720368_1110473546643_102560_7827" contract="_9_5_f720368_1110473546643_383921_7825"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_795445_7839" name="URL" clientDependency="_10_5_622020d_1132928321729_713362_13827" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308570_563610_5353" body="Class &lt;code>URL&lt;/code> represents a Uniform Resource&#xA;Locator, a pointer to a &quot;resource&quot; on the World&#xA;Wide Web. A resource can be something as simple as a file or a&#xA;directory, or it can be a reference to a more complicated object,&#xA;such as a query to a database or to a search engine. More&#xA;information on the types of URLs and their formats can be found at:&#xA;&lt;blockquote>&#xA;&lt;a href=&quot;http://archive.ncsa.uiuc.edu/SDG/Software/Mosaic/Demo/url-primer.html&quot;>&#xA;&lt;i>http://archive.ncsa.uiuc.edu/SDG/Software/Mosaic/Demo/url-primer.html&lt;/i>&lt;/a>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;In general, a URL can be broken into several parts. The previous&#xA;example of a URL indicates that the protocol to use is&#xA;&lt;code>http&lt;/code> (HyperText Transfer Protocol) and that the&#xA;information resides on a host machine named&#xA;&lt;code>www.ncsa.uiuc.edu&lt;/code>. The information on that host&#xA;machine is named &lt;code>/SDG/Software/Mosaic/Demo/url-primer.html&lt;/code>. The exact&#xA;meaning of this name on the host machine is both protocol&#xA;dependent and host dependent. The information normally resides in&#xA;a file, but it could be generated on the fly. This component of&#xA;the URL is called the &lt;i>path&lt;/i> component.&#xA;&lt;p>&#xA;A URL can optionally specify a &quot;port&quot;, which is the&#xA;port number to which the TCP connection is made on the remote host&#xA;machine. If the port is not specified, the default port for&#xA;the protocol is used instead. For example, the default port for&#xA;&lt;code>http&lt;/code> is &lt;code>80&lt;/code>. An alternative port could be&#xA;specified as:&#xA;&lt;blockquote>&lt;pre>&#xA;http://archive.ncsa.uiuc.edu:80/SDG/Software/Mosaic/Demo/url-primer.html&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;The syntax of &lt;code>URL&lt;/code> is defined by  &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2396.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2396: Uniform&#xA;Resource Identifiers (URI): Generic Syntax&lt;/i>&lt;/a>, amended by &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2732.txt&quot;>&lt;i>RFC&amp;nbsp;2732: Format for&#xA;Literal IPv6 Addresses in URLs&lt;/i>&lt;/a>. The Literal IPv6 address format&#xA;also supports scope_ids. The syntax and usage of scope_ids is described&#xA;&lt;a href=&quot;Inet6Address.html#scoped&quot;>here&lt;/a>.&#xA;&lt;p>&#xA;A URL may have appended to it a &quot;fragment&quot;, also known&#xA;as a &quot;ref&quot; or a &quot;reference&quot;. The fragment is indicated by the sharp&#xA;sign character &quot;#&quot; followed by more characters. For example,&#xA;&lt;blockquote>&lt;pre>&#xA;http://java.sun.com/index.html#chapter1&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;This fragment is not technically part of the URL. Rather, it&#xA;indicates that after the specified resource is retrieved, the&#xA;application is specifically interested in that part of the&#xA;document that has the tag &lt;code>chapter1&lt;/code> attached to it. The&#xA;meaning of a tag is resource specific.&#xA;&lt;p>&#xA;An application can also specify a &quot;relative URL&quot;,&#xA;which contains only enough information to reach the resource&#xA;relative to another URL. Relative URLs are frequently used within&#xA;HTML pages. For example, if the contents of the URL:&#xA;&lt;blockquote>&lt;pre>&#xA;http://java.sun.com/index.html&#xA;&lt;/pre>&lt;/blockquote>&#xA;contained within it the relative URL:&#xA;&lt;blockquote>&lt;pre>&#xA;FAQ.html&#xA;&lt;/pre>&lt;/blockquote>&#xA;it would be a shorthand for:&#xA;&lt;blockquote>&lt;pre>&#xA;http://java.sun.com/FAQ.html&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;The relative URL need not specify all the components of a URL. If&#xA;the protocol, host name, or port number is missing, the value is&#xA;inherited from the fully specified URL. The file component must be&#xA;specified. The optional fragment is not inherited.&#xA;&lt;p>&#xA;The URL class does not itself encode or decode any URL components&#xA;according to the escaping mechanism defined in RFC2396. It is the&#xA;responsibility of the caller to encode any fields, which need to be&#xA;escaped prior to calling URL, and also to decode any escaped fields,&#xA;that are returned from URL. Furthermore, because URL has no knowledge&#xA;of URL escaping, it does not recognise equivalence between the encoded&#xA;or decoded form of the same URL. For example, the two URLs:&lt;br>&#xA;&lt;pre>    http://foo.com/hello world/ and http://foo.com/hello%20world&lt;/pre>&#xA;would be considered not equal to each other.&#xA;&lt;p>&#xA;Note, the {@link java.net.URI} class does perform escaping of its&#xA;component fields in certain circumstances. The recommended way&#xA;to manage the encoding and decoding of URLs is to use {@link java.net.URI},&#xA;and to convert between these two classes using {@link #toURI()} and&#xA;{@link URI#toURL()}.&#xA;&lt;p>&#xA;The {@link URLEncoder} and {@link URLDecoder} classes can also be&#xA;used, but only for HTML form encoding, which is not the same&#xA;as the encoding scheme defined in RFC2396.&#xA;&#xA;@author  James Gosling&#xA;@version 1.129, 01/27/04&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_795445_7839"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_713362_13827" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_795445_7839" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_571198_7745" name="ContentHandler" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_308780_5243" body="The abstract class &lt;code>ContentHandler&lt;/code> is the superclass&#xA;of all classes that read an &lt;code>Object&lt;/code> from a&#xA;&lt;code>URLConnection&lt;/code>.&#xA;&lt;p>&#xA;An application does not generally call the&#xA;&lt;code>getContent&lt;/code> method in this class directly. Instead, an&#xA;application calls the &lt;code>getContent&lt;/code> method in class&#xA;&lt;code>URL&lt;/code> or in &lt;code>URLConnection&lt;/code>.&#xA;The application's content handler factory (an instance of a class that&#xA;implements the interface &lt;code>ContentHandlerFactory&lt;/code> set&#xA;up by a call to &lt;code>setContentHandler&lt;/code>) is&#xA;called with a &lt;code>String&lt;/code> giving the MIME type of the&#xA;object being received on the socket. The factory returns an&#xA;instance of a subclass of &lt;code>ContentHandler&lt;/code>, and its&#xA;&lt;code>getContent&lt;/code> method is called to create the object.&#xA;&lt;p>&#xA;If no content handler could be found, URLConnection will&#xA;look for a content handler in a user-defineable set of places.&#xA;By default it looks in sun.net.www.content, but users can define a&#xA;vertical-bar delimited set of class prefixes to search through in&#xA;addition by defining the java.content.handler.pkgs property.&#xA;The class name must be of the form:&#xA;&lt;pre>&#xA;{package-prefix}.{major}.{minor}&#xA;e.g.&#xA;YoyoDyne.experimental.text.plain&#xA;&lt;/pre>&#xA;If the loading of the content handler class would be performed by&#xA;a classloader that is outside of the the delegation chain of the caller,&#xA;the JVM will need the RuntimePermission &quot;getClassLoader&quot;.&#xA;&#xA;@author  James Gosling&#xA;@version 1.17, 12/19/03&#xA;@see     java.net.ContentHandler#getContent(java.net.URLConnection)&#xA;@see     java.net.ContentHandlerFactory&#xA;@see     java.net.URL#getContent()&#xA;@see     java.net.URLConnection&#xA;@see     java.net.URLConnection#getContent()&#xA;@see     java.net.URLConnection#setContentHandlerFactory(java.net.ContentHandlerFactory)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_571198_7745"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308269_387843_5237" name="CacheResponse" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_457570_5239" body="Represent channels for retrieving resources from the&#xA;ResponseCache. Instances of such a class provide an&#xA;InputStream that returns the entity body, and also a&#xA;getHeaders() method which returns the associated response headers.&#xA;&#xA;@version 1.1, 03/09/22&#xA;@author Yingxian Wang&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308269_387843_5237"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_922688_7751" name="DatagramSocket">
            <ownedComment xmi:id="_10_5_622020d_1132928308279_494254_5252" body="This class represents a socket for sending and receiving datagram packets.&#xA;&#xA;&lt;p>A datagram socket is the sending or receiving point for a packet&#xA;delivery service. Each packet sent or received on a datagram socket&#xA;is individually addressed and routed. Multiple packets sent from&#xA;one machine to another may be routed differently, and may arrive in&#xA;any order.&#xA;&#xA;&lt;p>UDP broadcasts sends are always enabled on a DatagramSocket.&#xA;In order to receive broadcast packets a DatagramSocket&#xA;should be bound to the wildcard address. In some&#xA;implementations, broadcast packets may also be received when&#xA;a DatagramSocket is bound to a more specific address.&#xA;&lt;p>&#xA;Example:&#xA;&lt;code>&#xA;DatagramSocket s = new DatagramSocket(null);&#xA;s.bind(new InetSocketAddress(8888));&#xA;&lt;/code>&#xA;Which is equivalent to:&#xA;&lt;code>&#xA;DatagramSocket s = new DatagramSocket(8888);&#xA;&lt;/code>&#xA;Both cases will create a DatagramSocket able to receive broadcasts on&#xA;UDP port 8888.&#xA;&#xA;@author  Pavani Diwanji&#xA;@version 1.96, 03/05/04&#xA;@see     java.net.DatagramPacket&#xA;@see     java.nio.channels.DatagramChannel&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_922688_7751"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_763508_7799" name="ProtocolException">
            <ownedComment xmi:id="_10_5_622020d_1132928308369_523588_5300" body="Thrown to indicate that there is an error in the underlying&#xA;protocol, such as a TCP error.&#xA;&#xA;@author  Chris Warth&#xA;@version 1.16, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_763508_7799"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_593278_13805" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_247592_7793" name="PlainSocketImpl" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928308369_174807_5295" body="Default Socket Implementation. This implementation does&#xA;not implement any security checks.&#xA;Note this class should &lt;b>NOT&lt;/b> be public.&#xA;&#xA;@author  Steven B. Byrne&#xA;@version 1.65, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546643_247592_7793"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_376059_13803" isSubstitutable="true" general="_9_5_f720368_1110473546643_65138_7809"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_526798_7855" name="URLStreamHandler" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308580_330710_5366" body="The abstract class &lt;code>URLStreamHandler&lt;/code> is the common&#xA;superclass for all stream protocol handlers. A stream protocol&#xA;handler knows how to make a connection for a particular protocol&#xA;type, such as &lt;code>http&lt;/code>, &lt;code>ftp&lt;/code>, or&#xA;&lt;code>gopher&lt;/code>.&#xA;&lt;p>&#xA;In most cases, an instance of a &lt;code>URLStreamHandler&lt;/code>&#xA;subclass is not created directly by an application. Rather, the&#xA;first time a protocol name is encountered when constructing a&#xA;&lt;code>URL&lt;/code>, the appropriate stream protocol handler is&#xA;automatically loaded.&#xA;&#xA;@author  James Gosling&#xA;@version 1.68, 05/18/04&#xA;@see     java.net.URL#URL(java.lang.String, java.lang.String, int, java.lang.String)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_526798_7855"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_488239_7749" name="DatagramPacket" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308279_883080_5250" body="This class represents a datagram packet.&#xA;&lt;p>&#xA;Datagram packets are used to implement a connectionless packet&#xA;delivery service. Each message is routed from one machine to&#xA;another based solely on information contained within that packet.&#xA;Multiple packets sent from one machine to another might be routed&#xA;differently, and might arrive in any order. Packet delivery is&#xA;not guaranteed.&#xA;&#xA;@author  Pavani Diwanji&#xA;@author  Benjamin Renaud&#xA;@version 1.43, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546628_488239_7749"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_807502_7789" name="PasswordAuthentication" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308369_560449_5291" body="The class PasswordAuthentication is a data holder that is used by&#xA;Authenticator.  It is simply a repository for a user name and a password.&#xA;&#xA;@see java.net.Authenticator&#xA;@see java.net.Authenticator#getPasswordAuthentication()&#xA;&#xA;@author  Bill Foote&#xA;@version 1.15, 12/19/03&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546643_807502_7789"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_890457_7773" name="InetAddressImpl" visibility="package" isAbstract="true"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546628_303414_7755" name="DatagramSocketImplFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308279_94862_5256" body="This interface defines a factory for datagram socket implementations. It&#xA;is used by the classes &lt;code>DatagramSocket&lt;/code> to create actual socket&#xA;implementations.&#xA;&#xA;@author  Yingxian Wang&#xA;@version %I %E&#xA;@see     java.net.DatagramSocket&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546628_303414_7755"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_203154_7843" name="URLClassLoader">
            <ownedComment xmi:id="_10_5_622020d_1132928308570_632344_5356" body="This class loader is used to load classes and resources from a search&#xA;path of URLs referring to both JAR files and directories. Any URL that&#xA;ends with a '/' is assumed to refer to a directory. Otherwise, the URL&#xA;is assumed to refer to a JAR file which will be opened as needed.&#xA;&lt;p>&#xA;The AccessControlContext of the thread that created the instance of&#xA;URLClassLoader will be used when subsequently loading classes and&#xA;resources.&#xA;&lt;p>&#xA;The classes that are loaded are by default granted permission only to&#xA;access the URLs specified when the URLClassLoader was created.&#xA;&#xA;@author  David Connelly&#xA;@version 1.85, 08/02/04&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546643_203154_7843"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_288362_13828" isSubstitutable="true" general="_9_5_f720368_1110473546690_359551_8521"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_198274_7763" name="Inet4AddressImpl" visibility="package" clientDependency="_10_5_622020d_1132928321719_761608_13792">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321719_761608_13792" name="" supplier="_9_5_f720368_1110473546643_890457_7773" client="_9_5_f720368_1110473546643_198274_7763" contract="_9_5_f720368_1110473546643_890457_7773"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_748261_7823" name="SocketTimeoutException">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_440105_5339" body="Signals that a timeout has occurred on a socket read or accept.&#xA;&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_748261_7823"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_33384_13816" isSubstitutable="true" general="_9_5_f720368_1110473546596_994549_7419"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_303191_7777" name="JarURLConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308349_971866_5279" body="A URL Connection to a Java ARchive (JAR) file or an entry in a JAR&#xA;file.&#xA;&#xA;&lt;p>The syntax of a JAR URL is:&#xA;&#xA;&lt;pre>&#xA;jar:&lt;url>!/{entry}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>for example:&#xA;&#xA;&lt;p>&lt;code>&#xA;jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class&lt;br>&#xA;&lt;/code>&#xA;&#xA;&lt;p>Jar URLs should be used to refer to a JAR file or entries in&#xA;a JAR file. The example above is a JAR URL which refers to a JAR&#xA;entry. If the entry name is omitted, the URL refers to the whole&#xA;JAR file:&#xA;&#xA;&lt;code>&#xA;jar:http://www.foo.com/bar/baz.jar!&#xA;&lt;/code>&#xA;&#xA;&lt;p>Users should cast the generic URLConnection to a&#xA;JarURLConnection when they know that the URL they created is a JAR&#xA;URL, and they need JAR-specific functionality. For example:&#xA;&#xA;&lt;pre>&#xA;URL url = new URL(&quot;jar:file:/home/duke/duke.jar!/&quot;);&#xA;JarURLConnection jarConnection = (JarURLConnection)url.openConnection();&#xA;Manifest manifest = jarConnection.getManifest();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>JarURLConnection instances can only be used to read from JAR files.&#xA;It is not possible to get a {@link java.io.OutputStream} to modify or write&#xA;to the underlying JAR file using this class.&#xA;&lt;p>Examples:&#xA;&#xA;&lt;dl>&#xA;&#xA;&lt;dt>A Jar entry&#xA;&lt;dd>&lt;code>jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class&lt;/code>&#xA;&#xA;&lt;dt>A Jar file&#xA;&lt;dd>&lt;code>jar:http://www.foo.com/bar/baz.jar!/&lt;/code>&#xA;&#xA;&lt;dt>A Jar directory&#xA;&lt;dd>&lt;code>jar:http://www.foo.com/bar/baz.jar!/COM/foo/&lt;/code>&#xA;&#xA;&lt;/dl>&#xA;&#xA;&lt;p>&lt;code>!/&lt;/code> is refered to as the &lt;em>separator&lt;/em>.&#xA;&#xA;&lt;p>When constructing a JAR url via &lt;code>new URL(context, spec)&lt;/code>,&#xA;the following rules apply:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>if there is no context URL and the specification passed to the&#xA;URL constructor doesn't contain a separator, the URL is considered&#xA;to refer to a JarFile.&#xA;&#xA;&lt;li>if there is a context URL, the context URL is assumed to refer&#xA;to a JAR file or a Jar directory.&#xA;&#xA;&lt;li>if the specification begins with a '/', the Jar directory is&#xA;ignored, and the spec is considered to be at the root of the Jar&#xA;file.&#xA;&#xA;&lt;p>Examples:&#xA;&#xA;&lt;dl>&#xA;&#xA;&lt;dt>context: &lt;b>jar:http://www.foo.com/bar/jar.jar!/&lt;/b>,&#xA;spec:&lt;b>baz/entry.txt&lt;/b>&#xA;&#xA;&lt;dd>url:&lt;b>jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt&lt;/b>&#xA;&#xA;&lt;dt>context: &lt;b>jar:http://www.foo.com/bar/jar.jar!/baz&lt;/b>,&#xA;spec:&lt;b>entry.txt&lt;/b>&#xA;&#xA;&lt;dd>url:&lt;b>jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt&lt;/b>&#xA;&#xA;&lt;dt>context: &lt;b>jar:http://www.foo.com/bar/jar.jar!/baz&lt;/b>,&#xA;spec:&lt;b>/entry.txt&lt;/b>&#xA;&#xA;&lt;dd>url:&lt;b>jar:http://www.foo.com/bar/jar.jar!/entry.txt&lt;/b>&#xA;&#xA;&lt;/dl>&#xA;&#xA;&lt;/ul>&#xA;&#xA;@see java.net.URL&#xA;@see java.net.URLConnection&#xA;&#xA;@see java.util.jar.JarFile&#xA;@see java.util.jar.JarInputStream&#xA;@see java.util.jar.Manifest&#xA;@see java.util.zip.ZipEntry&#xA;&#xA;@author Benjamin Renaud&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546643_303191_7777"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_44987_13797" isSubstitutable="true" general="_9_5_f720368_1110473546643_672268_7847"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_687359_7765" name="Inet6Address" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308339_521625_5268" body="This class represents an Internet Protocol version 6 (IPv6) address.&#xA;Defined by &lt;a href=&quot;http://www.ietf.org/rfc/rfc2373.txt&quot;>&#xA;&lt;i>RFC&amp;nbsp;2373: IP Version 6 Addressing Architecture&lt;/i>&lt;/a>.&#xA;&#xA;&lt;h4> &lt;A NAME=&quot;format&quot;>Textual representation of IP addresses&lt;/a> &lt;/h4>&#xA;&#xA;Textual representation of IPv6 address used as input to methods&#xA;takes one of the following forms:&#xA;&#xA;&lt;ol>&#xA;&lt;li>&lt;p> &lt;A NAME=&quot;lform&quot;>The preferred form&lt;/a> is x:x:x:x:x:x:x:x,&#xA;where the 'x's are&#xA;the hexadecimal values of the eight 16-bit pieces of the&#xA;address. This is the full form.  For example,&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>1080:0:0:0:8:800:200C:417A&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> Note that it is not necessary to write the leading zeros in&#xA;an individual field. However, there must be at least one numeral&#xA;in every field, except as described below.&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Due to some methods of allocating certain styles of IPv6&#xA;addresses, it will be common for addresses to contain long&#xA;strings of zero bits. In order to make writing addresses&#xA;containing zero bits easier, a special syntax is available to&#xA;compress the zeros. The use of &quot;::&quot; indicates multiple groups&#xA;of 16-bits of zeros. The &quot;::&quot; can only appear once in an address.&#xA;The &quot;::&quot; can also be used to compress the leading and/or trailing&#xA;zeros in an address. For example,&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>1080::8:800:200C:417A&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;li>&lt;p> An alternative form that is sometimes more convenient&#xA;when dealing with a mixed environment of IPv4 and IPv6 nodes is&#xA;x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values&#xA;of the six high-order 16-bit pieces of the address, and the 'd's&#xA;are the decimal values of the four low-order 8-bit pieces of the&#xA;standard IPv4 representation address, for example,&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>::FFFF:129.144.52.38&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>::129.144.52.38&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> where &quot;::FFFF:d.d.d.d&quot; and &quot;::d.d.d.d&quot; are, respectively, the&#xA;general forms of an IPv4-mapped IPv6 address and an&#xA;IPv4-compatible IPv6 address. Note that the IPv4 portion must be&#xA;in the &quot;d.d.d.d&quot; form. The following forms are invalid:&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>::FFFF:d.d.d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>::FFFF:d.d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>::d.d.d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>::d.d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> The following form:&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>::FFFF:d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> is valid, however it is an unconventional representation of&#xA;the IPv4-compatible IPv6 address,&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>::255.255.0.d&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> while &quot;::d&quot; corresponds to the general IPv6 address&#xA;&quot;0:0:0:0:0:0:0:d&quot;.&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;p> For methods that return a textual representation as output&#xA;value, the full form is used. Inet6Address will return the full&#xA;form because it is unambiguous when used in combination with other&#xA;textual data.&#xA;&#xA;&lt;h4> Special IPv6 address &lt;/h4>&#xA;&#xA;&lt;blockquote>&#xA;&lt;table cellspacing=2 summary=&quot;Description of IPv4-mapped address&quot;> &lt;tr>&lt;th valign=top>&lt;i>IPv4-mapped address&lt;/i>&lt;/th>&#xA;&lt;td>Of the form::ffff:w.x.y.z, this IPv6 address is used to&#xA;represent an IPv4 address. It allows the native program to&#xA;use the same address data structure and also the same&#xA;socket when communicating with both IPv4 and IPv6 nodes.&#xA;&#xA;&lt;p>In InetAddress and Inet6Address, it is used for internal&#xA;representation; it has no functional role. Java will never&#xA;return an IPv4-mapped address.  These classes can take an&#xA;IPv4-mapped address as input, both in byte array and text&#xA;representation. However, it will be converted into an IPv4&#xA;address.&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&lt;p>&#xA;&lt;h4> &lt;A NAME=&quot;scoped&quot;>Textual representation of IPv6 scoped addresses&lt;/a> &lt;/h4>&#xA;&lt;p>&#xA;The textual representation of IPv6 addresses as described above can be extended&#xA;to specify IPv6 scoped addresses. This extension to the basic addressing architecture&#xA;is described in [draft-ietf-ipngwg-scoping-arch-04.txt].&#xA;&lt;p>&#xA;Because link-local and site-local addresses are non-global, it is possible that different hosts&#xA;may have the same destination address and may be reachable through different interfaces on the&#xA;same originating system. In this case, the originating system is said to be connected&#xA;to multiple zones of the same scope. In order to disambiguate which is the intended destination&#xA;zone, it is possible to append a zone identifier (or &lt;i>scope_id&lt;/i>) to an IPv6 address.&#xA;&lt;p>&#xA;The general format for specifying the &lt;i>scope_id&lt;/i> is the following:&#xA;&lt;p>&lt;blockquote>&lt;i>IPv6-address&lt;/i>%&lt;i>scope_id&lt;/i>&lt;/blockquote>&#xA;&lt;p> The IPv6-address is a literal IPv6 address as described above.&#xA;The &lt;i>scope_id&lt;/i> refers to an interface on the local system, and it can be specified&#xA;in two ways.&#xA;&lt;p>&lt;ol>&lt;li>&lt;i>As a numeric identifier.&lt;/i> This must be a positive integer that identifies the&#xA;particular interface and scope as understood by the system. Usually, the numeric&#xA;values can be determined through administration tools on the system. Each interface may&#xA;have multiple values, one for each scope. If the scope is unspecified, then the default value&#xA;used is zero.&lt;/li>&lt;p>&#xA;&lt;li>&lt;i>As a string.&lt;/i> This must be the exact string that is returned by&#xA;{@link java.net.NetworkInterface#getName()} for the particular interface in question.&#xA;When an Inet6Address is created in this way, the numeric scope-id is determined at the time&#xA;the object is created by querying the relevant NetworkInterface.&lt;/li>&#xA;&lt;/ol>&lt;p>&#xA;Note also, that the numeric &lt;i>scope_id&lt;/i> can be retrieved from Inet6Address instances returned from the&#xA;NetworkInterface class. This can be used to find out the current scope ids configured on the system.&#xA;" annotatedElement="_9_5_f720368_1110473546643_687359_7765"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_415445_13793" isSubstitutable="true" general="_9_5_f720368_1110473546643_279990_7769"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_448803_7739" name="Authenticator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308259_799069_5231" body="The class Authenticator represents an object that knows how to obtain&#xA;authentication for a network connection.  Usually, it will do this&#xA;by prompting the user for information.&#xA;&lt;p>&#xA;Applications use this class by overriding {@link&#xA;#getPasswordAuthentication()} in a sub-class. This method will&#xA;typically use the various getXXX() accessor methods to get information&#xA;about the entity requesting authentication. It must then acquire a&#xA;username and password either by interacting with the user or through&#xA;some other non-interactive means. The credentials are then returned&#xA;as a {@link PasswordAuthentication} return value.&#xA;&lt;p>&#xA;An instance of this concrete sub-class is then registered&#xA;with the system by calling {@link #setDefault(Authenticator)}.&#xA;When authentication is required, the system will invoke one of the&#xA;requestPasswordAuthentication() methods which in turn will call the&#xA;getPasswordAuthentication() method of the registered object.&#xA;&lt;p>&#xA;All methods that request authentication have a default implementation&#xA;that fails.&#xA;&#xA;@see java.net.Authenticator#setDefault(java.net.Authenticator)&#xA;@see java.net.Authenticator#getPasswordAuthentication()&#xA;&#xA;@author  Bill Foote&#xA;@version 1.32, 06/28/04&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546628_448803_7739"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308259_747804_5227" name="RequestorType">
              <ownedComment xmi:id="_10_5_622020d_1132928308259_138659_5229" body="The type of the entity requesting authentication.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308259_747804_5227"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_279990_7769" name="InetAddress" clientDependency="_10_5_622020d_1132928321719_298179_13795">
            <ownedComment xmi:id="_10_5_622020d_1132928308339_263206_5273" body="This class represents an Internet Protocol (IP) address.&#xA;&#xA;&lt;p> An IP address is either a 32-bit or 128-bit unsigned number&#xA;used by IP, a lower-level protocol on which protocols like UDP and&#xA;TCP are built. The IP address architecture is defined by &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc790.txt&quot;>&lt;i>RFC&amp;nbsp;790:&#xA;Assigned Numbers&lt;/i>&lt;/a>, &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc1918.txt&quot;> &lt;i>RFC&amp;nbsp;1918:&#xA;Address Allocation for Private Internets&lt;/i>&lt;/a>, &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2365.txt&quot;>&lt;i>RFC&amp;nbsp;2365:&#xA;Administratively Scoped IP Multicast&lt;/i>&lt;/a>, and &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2373.txt&quot;>&lt;i>RFC&amp;nbsp;2373: IP&#xA;Version 6 Addressing Architecture&lt;/i>&lt;/a>. An instance of an&#xA;InetAddress consists of an IP address and possibly its&#xA;corresponding host name (depending on whether it is constructed&#xA;with a host name or whether it has already done reverse host name&#xA;resolution).&#xA;&#xA;&lt;h4> Address types &lt;/h4>&#xA;&#xA;&lt;blockquote>&lt;table cellspacing=2 summary=&quot;Description of unicast and multicast address types&quot;>&#xA;&lt;tr>&lt;th valign=top>&lt;i>unicast&lt;/i>&lt;/th>&#xA;&lt;td>An identifier for a single interface. A packet sent to&#xA;a unicast address is delivered to the interface identified by&#xA;that address.&#xA;&#xA;&lt;p> The Unspecified Address -- Also called anylocal or wildcard&#xA;address. It must never be assigned to any node. It indicates the&#xA;absence of an address. One example of its use is as the target of&#xA;bind, which allows a server to accept a client connection on any&#xA;interface, in case the server host has multiple interfaces.&#xA;&#xA;&lt;p> The &lt;i>unspecified&lt;/i> address must not be used as&#xA;the destination address of an IP packet.&#xA;&#xA;&lt;p> The &lt;i>Loopback&lt;/i> Addresses -- This is the address&#xA;assigned to the loopback interface. Anything sent to this&#xA;IP address loops around and becomes IP input on the local&#xA;host. This address is often used when testing a&#xA;client.&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>multicast&lt;/i>&lt;/th>&#xA;&lt;td>An identifier for a set of interfaces (typically belonging&#xA;to different nodes). A packet sent to a multicast address is&#xA;delivered to all interfaces identified by that address.&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;h4> IP address scope &lt;/h4>&#xA;&#xA;&lt;p> &lt;i>Link-local&lt;/i> addresses are designed to be used for addressing&#xA;on a single link for purposes such as auto-address configuration,&#xA;neighbor discovery, or when no routers are present.&#xA;&#xA;&lt;p> &lt;i>Site-local&lt;/i> addresses are designed to be used for addressing&#xA;inside of a site without the need for a global prefix.&#xA;&#xA;&lt;p> &lt;i>Global&lt;/i> addresses are unique across the internet.&#xA;&#xA;&lt;h4> Textual representation of IP addresses &lt;/h4>&#xA;&#xA;The textual representation of an IP address is address family specific.&#xA;&#xA;&lt;p>&#xA;&#xA;For IPv4 address format, please refer to &lt;A&#xA;HREF=&quot;Inet4Address.html#format&quot;>Inet4Address#format&lt;/A>; For IPv6&#xA;address format, please refer to &lt;A&#xA;HREF=&quot;Inet6Address.html#format&quot;>Inet6Address#format&lt;/A>.&#xA;&#xA;&lt;h4> Host Name Resolution &lt;/h4>&#xA;&#xA;Host name-to-IP address &lt;i>resolution&lt;/i> is accomplished through&#xA;the use of a combination of local machine configuration information&#xA;and network naming services such as the Domain Name System (DNS)&#xA;and Network Information Service(NIS). The particular naming&#xA;services(s) being used is by default the local machine configured&#xA;one. For any host name, its corresponding IP address is returned.&#xA;&#xA;&lt;p> &lt;i>Reverse name resolution&lt;/i> means that for any IP address,&#xA;the host associated with the IP address is returned.&#xA;&#xA;&lt;p> The InetAddress class provides methods to resolve host names to&#xA;their IP addresses and vise versa.&#xA;&#xA;&lt;h4> InetAddress Caching &lt;/h4>&#xA;&#xA;The InetAddress class has a cache to store successful as well as&#xA;unsuccessful host name resolutions. The positive caching is there&#xA;to guard against DNS spoofing attacks; while the negative caching&#xA;is used to improve performance.&#xA;&#xA;&lt;p> By default, the result of positive host name resolutions are&#xA;cached forever, because there is no general rule to decide when it&#xA;is safe to remove cache entries. The result of unsuccessful host&#xA;name resolution is cached for a very short period of time (10&#xA;seconds) to improve performance.&#xA;&#xA;&lt;p> Under certain circumstances where it can be determined that DNS&#xA;spoofing attacks are not possible, a Java security property can be&#xA;set to a different Time-to-live (TTL) value for positive&#xA;caching. Likewise, a system admin can configure a different&#xA;negative caching TTL value when needed.&#xA;&#xA;&lt;p> Two Java security properties control the TTL values used for&#xA;positive and negative host name resolution caching:&#xA;&#xA;&lt;blockquote>&#xA;&lt;dl>&#xA;&lt;dt>&lt;b>networkaddress.cache.ttl&lt;/b> (default: -1)&lt;/dt>&#xA;&lt;dd>Indicates the caching policy for successful name lookups from&#xA;the name service. The value is specified as as integer to indicate&#xA;the number of seconds to cache the successful lookup.&#xA;&lt;p>&#xA;A value of -1 indicates &quot;cache forever&quot;.&#xA;&lt;/dd>&#xA;&lt;p>&#xA;&lt;dt>&lt;b>networkaddress.cache.negative.ttl&lt;/b> (default: 10)&lt;/dt>&#xA;&lt;dd>Indicates the caching policy for un-successful name lookups&#xA;from the name service. The value is specified as as integer to&#xA;indicate the number of seconds to cache the failure for&#xA;un-successful lookups.&#xA;&lt;p>&#xA;A value of 0 indicates &quot;never cache&quot;.&#xA;A value of -1 indicates &quot;cache forever&quot;.&#xA;&lt;/dd>&#xA;&lt;/dl>&#xA;&lt;/blockquote>&#xA;&#xA;@author  Chris Warth&#xA;@version 1.109, 04/19/04&#xA;@see     java.net.InetAddress#getByAddress(byte[])&#xA;@see     java.net.InetAddress#getByAddress(java.lang.String, byte[])&#xA;@see     java.net.InetAddress#getAllByName(java.lang.String)&#xA;@see     java.net.InetAddress#getByName(java.lang.String)&#xA;@see     java.net.InetAddress#getLocalHost()&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_279990_7769"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321719_298179_13795" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_279990_7769" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547549_668174_18063" name="CacheEntry" visibility="package" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308339_679261_5270" body="Represents a cache entry&#xA;" annotatedElement="_9_5_f720368_1110473547549_668174_18063"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547549_544193_18066" name="Cache" visibility="package" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308339_184540_5271" body="A cache that manages entries based on a policy specified&#xA;at creation time.&#xA;" annotatedElement="_9_5_f720368_1110473547549_544193_18066"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_705564_7785" name="NetworkInterface" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308359_847020_5287" body="This class represents a Network Interface made up of a name,&#xA;and a list of IP addresses assigned to this interface.&#xA;It is used to identify the local interface on which a multicast group&#xA;is joined.&#xA;&#xA;Interfaces are normally known by names such as &quot;le0&quot;.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_705564_7785"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_641703_7833" name="UnknownServiceException">
            <ownedComment xmi:id="_10_5_622020d_1132928308419_922901_5347" body="Thrown to indicate that an unknown service exception has&#xA;occurred. Either the MIME type returned by a URL connection does&#xA;not make sense, or the application is attempting to write to a&#xA;read-only URL connection.&#xA;&#xA;@author  unascribed&#xA;@version 1.14, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_641703_7833"/>
            <generalization xmi:id="_10_5_622020d_1132928321729_15104_13820" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546628_929397_7741" name="BindException">
            <ownedComment xmi:id="_10_5_622020d_1132928308269_424703_5233" body="Signals that an error occurred while attempting to bind a&#xA;socket to a local address and port.  Typically, the port is&#xA;in use, or the requested local address could not be assigned.&#xA;&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_929397_7741"/>
            <generalization xmi:id="_10_5_622020d_1132928321709_239478_13786" isSubstitutable="true" general="_9_5_f720368_1110473546643_247726_7807"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308379_160716_5310" name="ResponseCache" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308379_648614_5312" body="Represents implementations of URLConnection caches. An instance of&#xA;such a class can be registered with the system by doing&#xA;ResponseCache.setDefault(ResponseCache), and the system will call&#xA;this object in order to:&#xA;&#xA;&lt;ul>&lt;li>store resource data which has been retrieved from an&#xA;external source into the cache&lt;/li>&#xA;&lt;li>try to fetch a requested resource that may have been&#xA;stored in the cache&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;The ResponseCache implementation decides which resources&#xA;should be cached, and for how long they should be cached. If a&#xA;request resource cannot be retrieved from the cache, then the&#xA;protocol handlers will fetch the resource from its original&#xA;location.&#xA;&#xA;The settings for URLConnection#useCaches controls whether the&#xA;protocol is allowed to use a cached response.&#xA;&#xA;For more information on HTTP caching, see &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2616.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2616: Hypertext&#xA;Transfer Protocol -- HTTP/1.1&lt;/i>&lt;/a>&#xA;&#xA;@version 1.1, 03/09/22&#xA;@author Yingxian Wang&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928308379_160716_5310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546628_688550_7757" name="FileNameMap" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308289_258124_5258" body="A simple interface which provides a mechanism to map&#xA;between a file name and a MIME type string.&#xA;&#xA;@version &#x9;1.14, 12/19/03&#xA;@author  Steven B. Byrne&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546628_688550_7757"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_918362_7779" name="MalformedURLException">
            <ownedComment xmi:id="_10_5_622020d_1132928308349_908187_5281" body="Thrown to indicate that a malformed URL has occurred. Either no&#xA;legal protocol could be found in a specification string or the&#xA;string could not be parsed.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.16, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_918362_7779"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_70387_13798" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_114173_7835" name="URI" clientDependency="_10_5_622020d_1132928321729_837662_13825 _10_5_622020d_1132928321729_732263_13824" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308560_739971_5349" body="Represents a Uniform Resource Identifier (URI) reference.&#xA;&#xA;&lt;p> Aside from some minor deviations noted below, an instance of this&#xA;class represents a URI reference as defined by&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2396.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2396: Uniform&#xA;Resource Identifiers (URI): Generic Syntax&lt;/i>&lt;/a>, amended by &lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2732.txt&quot;>&lt;i>RFC&amp;nbsp;2732: Format for&#xA;Literal IPv6 Addresses in URLs&lt;/i>&lt;/a>. The Literal IPv6 address format&#xA;also supports scope_ids. The syntax and usage of scope_ids is described&#xA;&lt;a href=&quot;Inet6Address.html#scoped&quot;>here&lt;/a>.&#xA;This class provides constructors for creating URI instances from&#xA;their components or by parsing their string forms, methods for accessing the&#xA;various components of an instance, and methods for normalizing, resolving,&#xA;and relativizing URI instances.  Instances of this class are immutable.&#xA;&#xA;&#xA;&lt;h4> URI syntax and components &lt;/h4>&#xA;&#xA;At the highest level a URI reference (hereinafter simply &quot;URI&quot;) in string&#xA;form has the syntax&#xA;&#xA;&lt;blockquote>&#xA;[&lt;i>scheme&lt;/i>&lt;tt>&lt;b>:&lt;/b>&lt;/tt>&lt;i>&lt;/i>]&lt;i>scheme-specific-part&lt;/i>[&lt;tt>&lt;b>#&lt;/b>&lt;/tt>&lt;i>fragment&lt;/i>]&#xA;&lt;/blockquote>&#xA;&#xA;where square brackets [...] delineate optional components and the characters&#xA;&lt;tt>&lt;b>:&lt;/b>&lt;/tt> and &lt;tt>&lt;b>#&lt;/b>&lt;/tt> stand for themselves.&#xA;&#xA;&lt;p> An &lt;i>absolute&lt;/i> URI specifies a scheme; a URI that is not absolute is&#xA;said to be &lt;i>relative&lt;/i>.  URIs are also classified according to whether&#xA;they are &lt;i>opaque&lt;/i> or &lt;i>hierarchical&lt;/i>.&#xA;&#xA;&lt;p> An &lt;i>opaque&lt;/i> URI is an absolute URI whose scheme-specific part does&#xA;not begin with a slash character (&lt;tt>'/'&lt;/tt>).  Opaque URIs are not&#xA;subject to further parsing.  Some examples of opaque URIs are:&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=0 cellspacing=0 summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;td>&lt;tt>mailto:java-net@java.sun.com&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>news:comp.lang.java&lt;/tt>&lt;td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;tt>urn:isbn:096139210x&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> A &lt;i>hierarchical&lt;/i> URI is either an absolute URI whose&#xA;scheme-specific part begins with a slash character, or a relative URI, that&#xA;is, a URI that does not specify a scheme.  Some examples of hierarchical&#xA;URIs are:&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>http://java.sun.com/j2se/1.3/&lt;/tt>&lt;br>&#xA;&lt;tt>docs/guide/collections/designfaq.html#28&lt;/tt>&lt;br>&#xA;&lt;tt>../../../demo/jfc/SwingSet2/src/SwingSet2.java&lt;/tt>&lt;br>&#xA;&lt;tt>file:///~/calendar&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> A hierarchical URI is subject to further parsing according to the syntax&#xA;&#xA;&lt;blockquote>&#xA;[&lt;i>scheme&lt;/i>&lt;tt>&lt;b>:&lt;/b>&lt;/tt>][&lt;tt>&lt;b>//&lt;/b>&lt;/tt>&lt;i>authority&lt;/i>][&lt;i>path&lt;/i>][&lt;tt>&lt;b>?&lt;/b>&lt;/tt>&lt;i>query&lt;/i>][&lt;tt>&lt;b>#&lt;/b>&lt;/tt>&lt;i>fragment&lt;/i>]&#xA;&lt;/blockquote>&#xA;&#xA;where the characters &lt;tt>&lt;b>:&lt;/b>&lt;/tt>, &lt;tt>&lt;b>/&lt;/b>&lt;/tt>,&#xA;&lt;tt>&lt;b>?&lt;/b>&lt;/tt>, and &lt;tt>&lt;b>#&lt;/b>&lt;/tt> stand for themselves.  The&#xA;scheme-specific part of a hierarchical URI consists of the characters&#xA;between the scheme and fragment components.&#xA;&#xA;&lt;p> The authority component of a hierarchical URI is, if specified, either&#xA;&lt;i>server-based&lt;/i> or &lt;i>registry-based&lt;/i>.  A server-based authority&#xA;parses according to the familiar syntax&#xA;&#xA;&lt;blockquote>&#xA;[&lt;i>user-info&lt;/i>&lt;tt>&lt;b>@&lt;/b>&lt;/tt>]&lt;i>host&lt;/i>[&lt;tt>&lt;b>:&lt;/b>&lt;/tt>&lt;i>port&lt;/i>]&#xA;&lt;/blockquote>&#xA;&#xA;where the characters &lt;tt>&lt;b>@&lt;/b>&lt;/tt> and &lt;tt>&lt;b>:&lt;/b>&lt;/tt> stand for&#xA;themselves.  Nearly all URI schemes currently in use are server-based.  An&#xA;authority component that does not parse in this way is considered to be&#xA;registry-based.&#xA;&#xA;&lt;p> The path component of a hierarchical URI is itself said to be absolute&#xA;if it begins with a slash character (&lt;tt>'/'&lt;/tt>); otherwise it is&#xA;relative.  The path of a hierarchical URI that is either absolute or&#xA;specifies an authority is always absolute.&#xA;&#xA;&lt;p> All told, then, a URI instance has the following nine components:&#xA;&#xA;&lt;blockquote>&lt;table summary=&quot;Describes the components of a URI:scheme,scheme-specific-part,authority,user-info,host,port,path,query,fragment&quot;>&#xA;&lt;tr>&lt;th>&lt;i>Component&lt;/i>&lt;/th>&lt;th>&lt;i>Type&lt;/i>&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>scheme&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>scheme-specific-part&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>authority&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>user-info&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>host&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>port&lt;/td>&lt;td>&lt;tt>int&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>path&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>query&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>fragment&lt;/td>&lt;td>&lt;tt>String&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;In a given instance any particular component is either &lt;i>undefined&lt;/i> or&#xA;&lt;i>defined&lt;/i> with a distinct value.  Undefined string components are&#xA;represented by &lt;tt>null&lt;/tt>, while undefined integer components are&#xA;represented by &lt;tt>-1&lt;/tt>.  A string component may be defined to have the&#xA;empty string as its value; this is not equivalent to that component being&#xA;undefined.&#xA;&#xA;&lt;p> Whether a particular component is or is not defined in an instance&#xA;depends upon the type of the URI being represented.  An absolute URI has a&#xA;scheme component.  An opaque URI has a scheme, a scheme-specific part, and&#xA;possibly a fragment, but has no other components.  A hierarchical URI always&#xA;has a path (though it may be empty) and a scheme-specific-part (which at&#xA;least contains the path), and may have any of the other components.  If the&#xA;authority component is present and is server-based then the host component&#xA;will be defined and the user-information and port components may be defined.&#xA;&#xA;&#xA;&lt;h4> Operations on URI instances &lt;/h4>&#xA;&#xA;The key operations supported by this class are those of&#xA;&lt;i>normalization&lt;/i>, &lt;i>resolution&lt;/i>, and &lt;i>relativization&lt;/i>.&#xA;&#xA;&lt;p> &lt;i>Normalization&lt;/i> is the process of removing unnecessary &lt;tt>&quot;.&quot;&lt;/tt>&#xA;and &lt;tt>&quot;..&quot;&lt;/tt> segments from the path component of a hierarchical URI.&#xA;Each &lt;tt>&quot;.&quot;&lt;/tt> segment is simply removed.  A &lt;tt>&quot;..&quot;&lt;/tt> segment is&#xA;removed only if it is preceded by a non-&lt;tt>&quot;..&quot;&lt;/tt> segment.&#xA;Normalization has no effect upon opaque URIs.&#xA;&#xA;&lt;p> &lt;i>Resolution&lt;/i> is the process of resolving one URI against another,&#xA;&lt;i>base&lt;/i> URI.  The resulting URI is constructed from components of both&#xA;URIs in the manner specified by RFC&amp;nbsp;2396, taking components from the&#xA;base URI for those not specified in the original.  For hierarchical URIs,&#xA;the path of the original is resolved against the path of the base and then&#xA;normalized.  The result, for example, of resolving&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>docs/guide/collections/designfaq.html#28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>(1)&#xA;&lt;/blockquote>&#xA;&#xA;against the base URI &lt;tt>http://java.sun.com/j2se/1.3/&lt;/tt> is the result&#xA;URI&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;Resolving the relative URI&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>../../../demo/jfc/SwingSet2/src/SwingSet2.java&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>(2)&#xA;&lt;/blockquote>&#xA;&#xA;against this result yields, in turn,&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>http://java.sun.com/j2se/1.3/demo/jfc/SwingSet2/src/SwingSet2.java&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;Resolution of both absolute and relative URIs, and of both absolute and&#xA;relative paths in the case of hierarchical URIs, is supported.  Resolving&#xA;the URI &lt;tt>file:///~calendar&lt;/tt> against any other URI simply yields the&#xA;original URI, since it is absolute.  Resolving the relative URI (2) above&#xA;against the relative base URI (1) yields the normalized, but still relative,&#xA;URI&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>demo/jfc/SwingSet2/src/SwingSet2.java&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> &lt;i>Relativization&lt;/i>, finally, is the inverse of resolution: For any&#xA;two normalized URIs &lt;i>u&lt;/i> and&amp;nbsp;&lt;i>v&lt;/i>,&#xA;&#xA;&lt;blockquote>&#xA;&lt;i>u&lt;/i>&lt;tt>.relativize(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.resolve(&lt;/tt>&lt;i>v&lt;/i>&lt;tt>)).equals(&lt;/tt>&lt;i>v&lt;/i>&lt;tt>)&lt;/tt>&amp;nbsp;&amp;nbsp;and&lt;br>&#xA;&lt;i>u&lt;/i>&lt;tt>.resolve(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.relativize(&lt;/tt>&lt;i>v&lt;/i>&lt;tt>)).equals(&lt;/tt>&lt;i>v&lt;/i>&lt;tt>)&lt;/tt>&amp;nbsp;&amp;nbsp;.&lt;br>&#xA;&lt;/blockquote>&#xA;&#xA;This operation is often useful when constructing a document containing URIs&#xA;that must be made relative to the base URI of the document wherever&#xA;possible.  For example, relativizing the URI&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>http://java.sun.com/j2se/1.3/docs/guide/index.html&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;against the base URI&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>http://java.sun.com/j2se/1.3&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;yields the relative URI &lt;tt>docs/guide/index.html&lt;/tt>.&#xA;&#xA;&#xA;&lt;h4> Character categories &lt;/h4>&#xA;&#xA;RFC&amp;nbsp;2396 specifies precisely which characters are permitted in the&#xA;various components of a URI reference.  The following categories, most of&#xA;which are taken from that specification, are used below to describe these&#xA;constraints:&#xA;&#xA;&lt;blockquote>&lt;table cellspacing=2 summary=&quot;Describes categories alpha,digit,alphanum,unreserved,punct,reserved,escaped,and other&quot;>&#xA;&lt;tr>&lt;th valign=top>&lt;i>alpha&lt;/i>&lt;/th>&#xA;&lt;td>The US-ASCII alphabetic characters,&#xA;&lt;tt>'A'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'Z'&lt;/tt>&#xA;and &lt;tt>'a'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'z'&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>digit&lt;/i>&lt;/th>&#xA;&lt;td>The US-ASCII decimal digit characters,&#xA;&lt;tt>'0'&lt;/tt>&amp;nbsp;through&amp;nbsp;&lt;tt>'9'&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>alphanum&lt;/i>&lt;/th>&#xA;&lt;td>All &lt;i>alpha&lt;/i> and &lt;i>digit&lt;/i> characters&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>unreserved&lt;/i>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>All &lt;i>alphanum&lt;/i> characters together with those in the string&#xA;&lt;tt>&quot;_-!.~'()*&quot;&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>punct&lt;/i>&lt;/th>&#xA;&lt;td>The characters in the string &lt;tt>&quot;,;:$&amp;+=&quot;&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>reserved&lt;/i>&lt;/th>&#xA;&lt;td>All &lt;i>punct&lt;/i> characters together with those in the string&#xA;&lt;tt>&quot;?/[]@&quot;&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>escaped&lt;/i>&lt;/th>&#xA;&lt;td>Escaped octets, that is, triplets consisting of the percent&#xA;character (&lt;tt>'%'&lt;/tt>) followed by two hexadecimal digits&#xA;(&lt;tt>'0'&lt;/tt>-&lt;tt>'9'&lt;/tt>, &lt;tt>'A'&lt;/tt>-&lt;tt>'F'&lt;/tt>, and&#xA;&lt;tt>'a'&lt;/tt>-&lt;tt>'f'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th valign=top>&lt;i>other&lt;/i>&lt;/th>&#xA;&lt;td>The Unicode characters that are not in the US-ASCII character set,&#xA;are not control characters (according to the {@link&#xA;java.lang.Character#isISOControl(char) Character.isISOControl}&#xA;method), and are not space characters (according to the {@link&#xA;java.lang.Character#isSpaceChar(char) Character.isSpaceChar}&#xA;method)&amp;nbsp;&amp;nbsp;&lt;i>(&lt;b>Deviation from RFC 2396&lt;/b>, which is&#xA;limited to US-ASCII)&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p>&lt;a name=&quot;legal-chars&quot;>&lt;/a> The set of all legal URI characters consists of&#xA;the &lt;i>unreserved&lt;/i>, &lt;i>reserved&lt;/i>, &lt;i>escaped&lt;/i>, and &lt;i>other&lt;/i>&#xA;characters.&#xA;&#xA;&#xA;&lt;h4> Escaped octets, quotation, encoding, and decoding &lt;/h4>&#xA;&#xA;RFC 2396 allows escaped octets to appear in the user-info, path, query, and&#xA;fragment components.  Escaping serves two purposes in URIs:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> To &lt;i>encode&lt;/i> non-US-ASCII characters when a URI is required to&#xA;conform strictly to RFC&amp;nbsp;2396 by not containing any &lt;i>other&lt;/i>&#xA;characters.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> To &lt;i>quote&lt;/i> characters that are otherwise illegal in a&#xA;component.  The user-info, path, query, and fragment components differ&#xA;slightly in terms of which characters are considered legal and illegal.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;These purposes are served in this class by three related operations:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p>&lt;a name=&quot;encode&quot;>&lt;/a> A character is &lt;i>encoded&lt;/i> by replacing it&#xA;with the sequence of escaped octets that represent that character in the&#xA;UTF-8 character set.  The Euro currency symbol (&lt;tt>'&amp;#92;u20AC'&lt;/tt>),&#xA;for example, is encoded as &lt;tt>&quot;%E2%82%AC&quot;&lt;/tt>.  &lt;i>(&lt;b>Deviation from&#xA;RFC&amp;nbsp;2396&lt;/b>, which does not specify any particular character&#xA;set.)&lt;/i> &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p>&lt;a name=&quot;quote&quot;>&lt;/a> An illegal character is &lt;i>quoted&lt;/i> simply by&#xA;encoding it.  The space character, for example, is quoted by replacing it&#xA;with &lt;tt>&quot;%20&quot;&lt;/tt>.  UTF-8 contains US-ASCII, hence for US-ASCII&#xA;characters this transformation has exactly the effect required by&#xA;RFC&amp;nbsp;2396. &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p>&lt;a name=&quot;decode&quot;>&lt;/a>&#xA;A sequence of escaped octets is &lt;i>decoded&lt;/i> by&#xA;replacing it with the sequence of characters that it represents in the&#xA;UTF-8 character set.  UTF-8 contains US-ASCII, hence decoding has the&#xA;effect of de-quoting any quoted US-ASCII characters as well as that of&#xA;decoding any encoded non-US-ASCII characters.  If a &lt;a&#xA;href=&quot;../nio/charset/CharsetDecoder.html#ce&quot;>decoding error&lt;/a> occurs&#xA;when decoding the escaped octets then the erroneous octets are replaced by&#xA;&lt;tt>'&amp;#92;uFFFD'&lt;/tt>, the Unicode replacement character.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;These operations are exposed in the constructors and methods of this class&#xA;as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> The {@link #URI(java.lang.String) &lt;code>single-argument&#xA;constructor&lt;/code>} requires any illegal characters in its argument to be&#xA;quoted and preserves any escaped octets and &lt;i>other&lt;/i> characters that&#xA;are present.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link&#xA;#URI(java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)&#xA;&lt;code>multi-argument constructors&lt;/code>} quote illegal characters as&#xA;required by the components in which they appear.  The percent character&#xA;(&lt;tt>'%'&lt;/tt>) is always quoted by these constructors.  Any &lt;i>other&lt;/i>&#xA;characters are preserved.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #getRawUserInfo() getRawUserInfo}, {@link #getRawPath()&#xA;getRawPath}, {@link #getRawQuery() getRawQuery}, {@link #getRawFragment()&#xA;getRawFragment}, {@link #getRawAuthority() getRawAuthority}, and {@link&#xA;#getRawSchemeSpecificPart() getRawSchemeSpecificPart} methods return the&#xA;values of their corresponding components in raw form, without interpreting&#xA;any escaped octets.  The strings returned by these methods may contain&#xA;both escaped octets and &lt;i>other&lt;/i> characters, and will not contain any&#xA;illegal characters.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #getUserInfo() getUserInfo}, {@link #getPath()&#xA;getPath}, {@link #getQuery() getQuery}, {@link #getFragment()&#xA;getFragment}, {@link #getAuthority() getAuthority}, and {@link&#xA;#getSchemeSpecificPart() getSchemeSpecificPart} methods decode any escaped&#xA;octets in their corresponding components.  The strings returned by these&#xA;methods may contain both &lt;i>other&lt;/i> characters and illegal characters,&#xA;and will not contain any escaped octets.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #toString() toString} method returns a URI string with&#xA;all necessary quotation but which may contain &lt;i>other&lt;/i> characters.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #toASCIIString() toASCIIString} method returns a fully&#xA;quoted and encoded URI string that does not contain any &lt;i>other&lt;/i>&#xA;characters.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&#xA;&lt;h4> Identities &lt;/h4>&#xA;&#xA;For any URI &lt;i>u&lt;/i>, it is always the case that&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>new URI(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.toString()).equals(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>)&lt;/tt>&amp;nbsp;.&#xA;&lt;/blockquote>&#xA;&#xA;For any URI &lt;i>u&lt;/i> that does not contain redundant syntax such as two&#xA;slashes before an empty authority (as in &lt;tt>file:///tmp/&lt;/tt>&amp;nbsp;) or a&#xA;colon following a host name but no port (as in&#xA;&lt;tt>http://java.sun.com:&lt;/tt>&amp;nbsp;), and that does not encode characters&#xA;except those that must be quoted, the following identities also hold:&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>new URI(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getScheme(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getSchemeSpecificPart(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getFragment())&lt;br>&#xA;.equals(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>)&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;in all cases,&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>new URI(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getScheme(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getUserInfo(),&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getAuthority(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getPath(),&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getQuery(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getFragment())&lt;br>&#xA;.equals(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>)&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;if &lt;i>u&lt;/i> is hierarchical, and&#xA;&#xA;&lt;blockquote>&#xA;&lt;tt>new URI(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getScheme(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getUserInfo(),&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getHost(),&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getPort(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getPath(),&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getQuery(),&lt;br>&#xA;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/tt>&lt;i>u&lt;/i>&lt;tt>.getFragment())&lt;br>&#xA;.equals(&lt;/tt>&lt;i>u&lt;/i>&lt;tt>)&lt;/tt>&#xA;&lt;/blockquote>&#xA;&#xA;if &lt;i>u&lt;/i> is hierarchical and has either no authority or a server-based&#xA;authority.&#xA;&#xA;&#xA;&lt;h4> URIs, URLs, and URNs &lt;/h4>&#xA;&#xA;A URI is a uniform resource &lt;i>identifier&lt;/i> while a URL is a uniform&#xA;resource &lt;i>locator&lt;/i>.  Hence every URL is a URI, abstractly speaking, but&#xA;not every URI is a URL.  This is because there is another subcategory of&#xA;URIs, uniform resource &lt;i>names&lt;/i> (URNs), which name resources but do not&#xA;specify how to locate them.  The &lt;tt>mailto&lt;/tt>, &lt;tt>news&lt;/tt>, and&#xA;&lt;tt>isbn&lt;/tt> URIs shown above are examples of URNs.&#xA;&#xA;&lt;p> The conceptual distinction between URIs and URLs is reflected in the&#xA;differences between this class and the {@link URL} class.&#xA;&#xA;&lt;p> An instance of this class represents a URI reference in the syntactic&#xA;sense defined by RFC&amp;nbsp;2396.  A URI may be either absolute or relative.&#xA;A URI string is parsed according to the generic syntax without regard to the&#xA;scheme, if any, that it specifies.  No lookup of the host, if any, is&#xA;performed, and no scheme-dependent stream handler is constructed.  Equality,&#xA;hashing, and comparison are defined strictly in terms of the character&#xA;content of the instance.  In other words, a URI instance is little more than&#xA;a structured string that supports the syntactic, scheme-independent&#xA;operations of comparison, normalization, resolution, and relativization.&#xA;&#xA;&lt;p> An instance of the {@link URL} class, by contrast, represents the&#xA;syntactic components of a URL together with some of the information required&#xA;to access the resource that it describes.  A URL must be absolute, that is,&#xA;it must always specify a scheme.  A URL string is parsed according to its&#xA;scheme.  A stream handler is always established for a URL, and in fact it is&#xA;impossible to create a URL instance for a scheme for which no handler is&#xA;available.  Equality and hashing depend upon both the scheme and the&#xA;Internet address of the host, if any; comparison is not defined.  In other&#xA;words, a URL is a structured string that supports the syntactic operation of&#xA;resolution as well as the network I/O operations of looking up the host and&#xA;opening a connection to the specified resource.&#xA;&#xA;&#xA;@version 1.39, 04/05/05&#xA;@author Mark Reinhold&#xA;@since 1.4&#xA;&#xA;@see &lt;a href=&quot;http://ietf.org/rfc/rfc2279.txt&quot;>&lt;i>RFC&amp;nbsp;2279: UTF-8, a&#xA;transformation format of ISO 10646&lt;/i>&lt;/a>, &lt;br>&lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2373.txt&quot;>&lt;i>RFC&amp;nbsp;2373: IPv6 Addressing&#xA;Architecture&lt;/i>&lt;/a>, &lt;br>&lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2396.txt&quot;&quot;>&lt;i>RFC&amp;nbsp;2396: Uniform&#xA;Resource Identifiers (URI): Generic Syntax&lt;/i>&lt;/a>, &lt;br>&lt;a&#xA;href=&quot;http://www.ietf.org/rfc/rfc2732.txt&quot;>&lt;i>RFC&amp;nbsp;2732: Format for&#xA;Literal IPv6 Addresses in URLs&lt;/i>&lt;/a>, &lt;br>&lt;a&#xA;href=&quot;URISyntaxException.html&quot;>URISyntaxException&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546643_114173_7835"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_732263_13824" name="" supplier="_10_5_622020d_1132928321729_809327_13821" client="_9_5_f720368_1110473546643_114173_7835" contract="_10_5_622020d_1132928321729_809327_13821"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_837662_13825" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546643_114173_7835" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547628_478686_18099" name="Parser" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_65138_7809" name="SocketImpl" clientDependency="_10_5_622020d_1132928321729_431988_13809" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_450706_5325" body="The abstract class &lt;code>SocketImpl&lt;/code> is a common superclass&#xA;of all classes that actually implement sockets. It is used to&#xA;create both client and server sockets.&#xA;&lt;p>&#xA;A &quot;plain&quot; socket implements these methods exactly as&#xA;described, without attempting to go through a firewall or proxy.&#xA;&#xA;@author  unascribed&#xA;@version 1.42, 03/25/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_65138_7809"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321729_431988_13809" name="" supplier="_9_5_f720368_1110473546643_415038_7815" client="_9_5_f720368_1110473546643_65138_7809" contract="_9_5_f720368_1110473546643_415038_7815"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546643_162131_7797" name="PortUnreachableException">
            <ownedComment xmi:id="_10_5_622020d_1132928308369_863946_5298" body="Signals that an ICMP Port Unreachable message has been&#xA;received on a connected datagram.&#xA;&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546643_162131_7797"/>
            <generalization xmi:id="_10_5_622020d_1132928321719_927352_13804" isSubstitutable="true" general="_9_5_f720368_1110473546643_247726_7807"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546643_751827_7811" name="SocketImplFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928308389_618520_5327" body="This interface defines a factory for socket implementations. It&#xA;is used by the classes &lt;code>Socket&lt;/code> and&#xA;&lt;code>ServerSocket&lt;/code> to create actual socket&#xA;implementations.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.18, 12/19/03&#xA;@see     java.net.Socket&#xA;@see     java.net.ServerSocket&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546643_751827_7811"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547268_701783_16331" name="awt">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_223609_7049" name="ImageCapabilities" clientDependency="_10_5_622020d_1132928321388_666618_13262">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_513133_4238" body="Capabilities and properties of images.&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_223609_7049"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_666618_13262" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_223609_7049" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547362_10048_16824" name="peer">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_617565_6895" name="TextComponentPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_263775_4065" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_617565_6895"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_383822_13122" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_628812_6887" name="RobotPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_729173_4057" body="RobotPeer defines an interface whereby toolkits support automated testing&#xA;by allowing native input events to be generated from Java code.&#xA;&#xA;This interface should not be directly imported by code outside the&#xA;java.awt.* hierarchy; it is not to be considered public and is subject&#xA;to change.&#xA;&#xA;@version &#x9;1.9, 12/19/03&#xA;@author &#x9;Robi Khan&#xA;" annotatedElement="_9_5_f720368_1110473546581_628812_6887"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_500980_6863" name="FileDialogPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306156_439090_4028" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_500980_6863"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_523908_13109" isSubstitutable="true" general="_9_5_f720368_1110473546581_858518_6861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_30267_6857" name="ComponentPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306156_205654_4022" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_168339_6891" name="ScrollPanePeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_184692_4061" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_168339_6891"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_963173_13120" isSubstitutable="true" general="_9_5_f720368_1110473546581_934641_6859"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_62524_6879" name="MenuItemPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_113801_4046" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_62524_6879"/>
              <generalization xmi:id="_10_5_622020d_1132928321278_35457_13115" isSubstitutable="true" general="_9_5_f720368_1110473546581_713071_6877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_934641_6859" name="ContainerPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306156_435098_4024" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_934641_6859"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_77145_13107" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_72129_6849" name="CanvasPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_909515_4014" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_72129_6849"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_527107_13103" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_967185_6867" name="FramePeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_23725_4032" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_967185_6867"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_566362_13110" isSubstitutable="true" general="_9_5_f720368_1110473546581_855233_6899"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_729557_6853" name="CheckboxPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306146_28627_4018" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_729557_6853"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_537528_13105" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928306176_279801_4049" name="MouseInfoPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_656831_4051" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_10_5_622020d_1132928306176_279801_4049"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_855233_6899" name="WindowPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_718188_4069" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_855233_6899"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_45891_13124" isSubstitutable="true" general="_9_5_f720368_1110473546581_934641_6859"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_789864_6869" name="LabelPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_8655_4036" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_789864_6869"/>
              <generalization xmi:id="_10_5_622020d_1132928321278_721764_13111" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_496000_6855" name="ChoicePeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306156_27747_4020" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_496000_6855"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_192469_13106" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_999034_6865" name="FontPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_935242_4030" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_999034_6865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_790485_6883" name="PanelPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_565148_4053" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_790485_6883"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_390145_13117" isSubstitutable="true" general="_9_5_f720368_1110473546581_934641_6859"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_664348_6881" name="MenuPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_619395_4048" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_664348_6881"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_160548_13116" isSubstitutable="true" general="_9_5_f720368_1110473546581_62524_6879"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_904823_6873" name="ListPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_40402_4040" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_904823_6873"/>
              <generalization xmi:id="_10_5_622020d_1132928321278_327900_13113" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_804717_6851" name="CheckboxMenuItemPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_877267_4016" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_804717_6851"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_565829_13104" isSubstitutable="true" general="_9_5_f720368_1110473546581_62524_6879"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_141361_6847" name="ButtonPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_968011_4012" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_141361_6847"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_780774_13102" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_601155_6871" name="LightweightPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_653947_4038" body="The LightweightPeer interface marks a component as depending upon&#xA;a native container so window related events can be routed to the&#xA;component.  Since this only applies to components and their&#xA;extensions, this interface extends ComponentPeer.&#xA;&lt;p>&#xA;The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546581_601155_6871"/>
              <generalization xmi:id="_10_5_622020d_1132928321278_103874_13112" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_945939_6875" name="MenuBarPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306166_426718_4042" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_945939_6875"/>
              <generalization xmi:id="_10_5_622020d_1132928321278_196571_13114" isSubstitutable="true" general="_9_5_f720368_1110473546581_713071_6877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_858518_6861" name="DialogPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306156_679542_4026" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_858518_6861"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_756689_13108" isSubstitutable="true" general="_9_5_f720368_1110473546581_855233_6899"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928306166_752384_4033" name="KeyboardFocusManagerPeer" isAbstract="true"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_98199_6889" name="ScrollbarPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_986059_4059" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_98199_6889"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_953668_13119" isSubstitutable="true" general="_9_5_f720368_1110473546581_30267_6857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_930596_6885" name="PopupMenuPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_384610_4055" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_930596_6885"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_48482_13118" isSubstitutable="true" general="_9_5_f720368_1110473546581_664348_6881"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_300505_6897" name="TextFieldPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_426408_4067" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_300505_6897"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_303307_13123" isSubstitutable="true" general="_9_5_f720368_1110473546581_617565_6895"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_713071_6877" name="MenuComponentPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306176_578483_4044" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_713071_6877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_49784_6893" name="TextAreaPeer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_810900_4063" body="The peer interfaces are intended only for use in porting&#xA;the AWT. They are not intended for use by application&#xA;developers, and developers should not implement peers&#xA;nor invoke any of the peer methods directly on the peer&#xA;instances.&#xA;" annotatedElement="_9_5_f720368_1110473546581_49784_6893"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_175077_13121" isSubstitutable="true" general="_9_5_f720368_1110473546581_617565_6895"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547299_819550_16532" name="font">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_562646_6621" name="CharArrayIterator" visibility="package" clientDependency="_10_5_622020d_1132928320617_228047_12968">
              <interfaceRealization xmi:id="_10_5_622020d_1132928320617_228047_12968" name="" supplier="_9_5_f720368_1110473546690_140017_8623" client="_9_5_f720368_1110473546565_562646_6621" contract="_9_5_f720368_1110473546690_140017_8623"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_486506_6643" name="OpenType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_103321_3793" body="The &lt;code>OpenType&lt;/code> interface represents OpenType and&#xA;TrueType fonts.  This interface makes it possible to obtain&#xA;&lt;i>sfnt&lt;/i> tables from the font.  A particular&#xA;&lt;code>Font&lt;/code> object can implement this interface.&#xA;&lt;p>&#xA;For more information on TrueType fonts, see the&#xA;Apple TrueType Reference Manual&#xA;( &lt;a href=&quot;http://fonts.apple.com/TTRefMan/index.html&quot;>http://fonts.apple.com/TTRefMan/index.html&lt;/a> ).&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_486506_6643"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_112756_6649" name="TextAttribute" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_866607_3799" body="The &lt;code>TextAttribute&lt;/code> class defines attribute keys and&#xA;attribute values used for text rendering.&#xA;&lt;p>&#xA;&lt;code>TextAttribute&lt;/code> instances are used as attribute keys to&#xA;identify attributes in&#xA;{@link java.text.AttributedCharacterIterator AttributedCharacterIterator},&#xA;{@link java.awt.Font Font}, and other classes handling text&#xA;attributes. Other constants defined in this class are used&#xA;as attribute values.&#xA;&lt;p>&#xA;For each text attribute, the documentation describes:&#xA;&lt;UL>&#xA;&lt;LI>the type of their values,&#xA;&lt;LI>the valid values if there are limitations&#xA;&lt;LI>relevant constants&#xA;&lt;LI>the default effect if the attribute is absent (or has a&#xA;&lt;code>null&lt;/code> value).&#xA;&lt;LI>a description of the effect.&#xA;&lt;LI>the fallback behavior if the exact attribute requested is not&#xA;available.&#xA;&lt;/UL>&#xA;&lt;p>&#xA;&lt;H4>Types of Values&lt;/H4>&#xA;&lt;UL>&#xA;&lt;LI>The values of attributes must always be immutable.&#xA;&lt;LI>Where a list of limitations is given, any value outside of that&#xA;set is reserved for future use, and ignored at present.&#xA;&lt;LI>If the value is &lt;code>null&lt;/code> or not of the proper type&#xA;then it has the default effect. The effect of a particular value&#xA;can be interpolated, especially in the case of multiple master&#xA;fonts. This interpolation is done based on the nearest defined&#xA;constants above and below the request:&lt;BR>&#xA;&lt;BLOCKQUOTE>&lt;TT>&#xA;interpolation = (request - below)/(above - below);&#xA;&lt;/TT>&lt;/BLOCKQUOTE>&#xA;&lt;/UL>&#xA;&lt;p>&#xA;&lt;H4>Interpolation&lt;/H4>&#xA;&lt;UL>&#xA;&lt;LI>Fonts should interpolate values in certain circumstances. For example,&#xA;when the WEIGHT value is 2.13. If the nearest surrounding values&#xA;in the font are WEIGHT_BOLD = 2.0 and WEIGHT_HEAVY = 2.25 then font would&#xA;then interpret the WEIGHT request as being 52% of the way between what&#xA;it considers BOLD and what it considers HEAVY. If the nearest surrounding&#xA;values are WEIGHT_SEMIBOLD = 1.25 and WEIGHT_ULTRABOLD = 2.75 then the&#xA;WEIGHT request is interpreted as being 58.67% of the way between SEMIBOLD&#xA;and ULTRABOLD.&#xA;&lt;LI>Where a font does not have enough capability to handle a given&#xA;request, such as superscript, then it should simulate it to the best of&#xA;its ability.  To determine if simulation is being performed, the client&#xA;should query the font to see what actual attributes were used.&#xA;&lt;/UL>&#xA;&#xA;@see java.text.AttributedCharacterIterator&#xA;@see java.awt.Font&#xA;" annotatedElement="_9_5_f720368_1110473546565_112756_6649"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_154457_12973" isSubstitutable="true" general="_9_5_f720368_1110473547315_824275_16567"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_837216_6655" name="TextLayout" clientDependency="_10_5_622020d_1132928320617_204051_12974" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305886_781327_3806" body="&lt;code>TextLayout&lt;/code> is an immutable graphical representation of styled&#xA;character data.&#xA;&lt;p>&#xA;It provides the following capabilities:&#xA;&lt;ul>&#xA;&lt;li>implicit bidirectional analysis and reordering,&#xA;&lt;li>cursor positioning and movement, including split cursors for&#xA;mixed directional text,&#xA;&lt;li>highlighting, including both logical and visual highlighting&#xA;for mixed directional text,&#xA;&lt;li>multiple baselines (roman, hanging, and centered),&#xA;&lt;li>hit testing,&#xA;&lt;li>justification,&#xA;&lt;li>default font substitution,&#xA;&lt;li>metric information such as ascent, descent, and advance, and&#xA;&lt;li>rendering&#xA;&lt;/ul>&#xA;&lt;p>&#xA;A &lt;code>TextLayout&lt;/code> object can be rendered using&#xA;its &lt;code>draw&lt;/code> method.&#xA;&lt;p>&#xA;&lt;code>TextLayout&lt;/code> can be constructed either directly or through&#xA;the use of a {@link LineBreakMeasurer}.  When constructed directly, the&#xA;source text represents a single paragraph.  &lt;code>LineBreakMeasurer&lt;/code>&#xA;allows styled text to be broken into lines that fit within a particular&#xA;width.  See the &lt;code>LineBreakMeasurer&lt;/code> documentation for more&#xA;information.&#xA;&lt;p>&#xA;&lt;code>TextLayout&lt;/code> construction logically proceeds as follows:&#xA;&lt;ul>&#xA;&lt;li>paragraph attributes are extracted and examined,&#xA;&lt;li>text is analyzed for bidirectional reordering, and reordering&#xA;information is computed if needed,&#xA;&lt;li>text is segmented into style runs&#xA;&lt;li>fonts are chosen for style runs, first by using a font if the&#xA;attribute {@link TextAttribute#FONT} is present, otherwise by computing&#xA;a default font using the attributes that have been defined&#xA;&lt;li>if text is on multiple baselines, the runs or subruns are further&#xA;broken into subruns sharing a common baseline,&#xA;&lt;li>glyphvectors are generated for each run using the chosen font,&#xA;&lt;li>final bidirectional reordering is performed on the glyphvectors&#xA;&lt;/ul>&#xA;&lt;p>&#xA;All graphical information returned from a &lt;code>TextLayout&lt;/code>&#xA;object's methods is relative to the origin of the&#xA;&lt;code>TextLayout&lt;/code>, which is the intersection of the&#xA;&lt;code>TextLayout&lt;/code> object's baseline with its left edge.  Also,&#xA;coordinates passed into a &lt;code>TextLayout&lt;/code> object's methods&#xA;are assumed to be relative to the &lt;code>TextLayout&lt;/code> object's&#xA;origin.  Clients usually need to translate between a&#xA;&lt;code>TextLayout&lt;/code> object's coordinate system and the coordinate&#xA;system in another object (such as a&#xA;{@link java.awt.Graphics Graphics} object).&#xA;&lt;p>&#xA;&lt;code>TextLayout&lt;/code> objects are constructed from styled text,&#xA;but they do not retain a reference to their source text.  Thus,&#xA;changes in the text previously used to generate a &lt;code>TextLayout&lt;/code>&#xA;do not affect the &lt;code>TextLayout&lt;/code>.&#xA;&lt;p>&#xA;Three methods on a &lt;code>TextLayout&lt;/code> object&#xA;(&lt;code>getNextRightHit&lt;/code>, &lt;code>getNextLeftHit&lt;/code>, and&#xA;&lt;code>hitTestChar&lt;/code>) return instances of {@link TextHitInfo}.&#xA;The offsets contained in these &lt;code>TextHitInfo&lt;/code> objects&#xA;are relative to the start of the &lt;code>TextLayout&lt;/code>, &lt;b>not&lt;/b>&#xA;to the text used to create the &lt;code>TextLayout&lt;/code>.  Similarly,&#xA;&lt;code>TextLayout&lt;/code> methods that accept &lt;code>TextHitInfo&lt;/code>&#xA;instances as parameters expect the &lt;code>TextHitInfo&lt;/code> object's&#xA;offsets to be relative to the &lt;code>TextLayout&lt;/code>, not to any&#xA;underlying text storage model.&#xA;&lt;p>&#xA;&lt;strong>Examples&lt;/strong>:&lt;p>&#xA;Constructing and drawing a &lt;code>TextLayout&lt;/code> and its bounding&#xA;rectangle:&#xA;&lt;blockquote>&lt;pre>&#xA;Graphics2D g = ...;&#xA;Point2D loc = ...;&#xA;Font font = Font.getFont(&quot;Helvetica-bold-italic&quot;);&#xA;FontRenderContext frc = g.getFontRenderContext();&#xA;TextLayout layout = new TextLayout(&quot;This is a string&quot;, font, frc);&#xA;layout.draw(g, (float)loc.getX(), (float)loc.getY());&#xA;&#xA;Rectangle2D bounds = layout.getBounds();&#xA;bounds.setRect(bounds.getX()+loc.getX(),&#xA;bounds.getY()+loc.getY(),&#xA;bounds.getWidth(),&#xA;bounds.getHeight());&#xA;g.draw(bounds);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;Hit-testing a &lt;code>TextLayout&lt;/code> (determining which character is at&#xA;a particular graphical location):&#xA;&lt;blockquote>&lt;pre>&#xA;Point2D click = ...;&#xA;TextHitInfo hit = layout.hitTestChar(&#xA;(float) (click.getX() - loc.getX()),&#xA;(float) (click.getY() - loc.getY()));&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;Responding to a right-arrow key press:&#xA;&lt;blockquote>&lt;pre>&#xA;int insertionIndex = ...;&#xA;TextHitInfo next = layout.getNextRightHit(insertionIndex);&#xA;if (next != null) {&#xA;translate graphics to origin of layout on screen&#xA;g.translate(loc.getX(), loc.getY());&#xA;Shape[] carets = layout.getCaretShapes(next.getInsertionIndex());&#xA;g.draw(carets[0]);&#xA;if (carets[1] != null) {&#xA;g.draw(carets[1]);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;Drawing a selection range corresponding to a substring in the source text.&#xA;The selected area may not be visually contiguous:&#xA;&lt;blockquote>&lt;pre>&#xA;selStart, selLimit should be relative to the layout,&#xA;not to the source text&#xA;&#xA;int selStart = ..., selLimit = ...;&#xA;Color selectionColor = ...;&#xA;Shape selection = layout.getLogicalHighlightShape(selStart, selLimit);&#xA;selection may consist of disjoint areas&#xA;graphics is assumed to be tranlated to origin of layout&#xA;g.setColor(selectionColor);&#xA;g.fill(selection);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;Drawing a visually contiguous selection range.  The selection range may&#xA;correspond to more than one substring in the source text.  The ranges of&#xA;the corresponding source text substrings can be obtained with&#xA;&lt;code>getLogicalRangesForVisualSelection()&lt;/code>:&#xA;&lt;blockquote>&lt;pre>&#xA;TextHitInfo selStart = ..., selLimit = ...;&#xA;Shape selection = layout.getVisualHighlightShape(selStart, selLimit);&#xA;g.setColor(selectionColor);&#xA;g.fill(selection);&#xA;int[] ranges = getLogicalRangesForVisualSelection(selStart, selLimit);&#xA;ranges[0], ranges[1] is the first selection range,&#xA;ranges[2], ranges[3] is the second selection range, etc.&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;@see LineBreakMeasurer&#xA;@see TextAttribute&#xA;@see TextHitInfo&#xA;" annotatedElement="_9_5_f720368_1110473546565_837216_6655"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320617_204051_12974" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_837216_6655" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_13811_16549" name="OptInfo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928305856_859739_3803" body="temporary optimization&#xA;" annotatedElement="_9_5_f720368_1110473547315_13811_16549"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_156333_16552" name="CaretPolicy">
                <ownedComment xmi:id="_10_5_622020d_1132928305856_303966_3804" body="Defines a policy for determining the strong caret location.&#xA;This class contains one method, &lt;code>getStrongCaret&lt;/code>, which&#xA;is used to specify the policy that determines the strong caret in&#xA;dual-caret text.  The strong caret is used to move the caret to the&#xA;left or right. Instances of this class can be passed to&#xA;&lt;code>getCaretShapes&lt;/code>, &lt;code>getNextLeftHit&lt;/code> and&#xA;&lt;code>getNextRightHit&lt;/code> to customize strong caret&#xA;selection.&#xA;&lt;p>&#xA;To specify alternate caret policies, subclass &lt;code>CaretPolicy&lt;/code>&#xA;and override &lt;code>getStrongCaret&lt;/code>.  &lt;code>getStrongCaret&lt;/code>&#xA;should inspect the two &lt;code>TextHitInfo&lt;/code> arguments and choose&#xA;one of them as the strong caret.&#xA;&lt;p>&#xA;Most clients do not need to use this class.&#xA;" annotatedElement="_9_5_f720368_1110473547315_156333_16552"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_594591_6633" name="ImageGraphicAttribute" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305816_515646_3783" body="The &lt;code>ImageGraphicAttribute&lt;/code> class is an implementation of&#xA;{@link GraphicAttribute} which draws images in&#xA;a {@link TextLayout}.&#xA;@see GraphicAttribute&#xA;" annotatedElement="_9_5_f720368_1110473546565_594591_6633"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_744802_12970" isSubstitutable="true" general="_9_5_f720368_1110473546565_475634_6631"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_424087_6625" name="GlyphJustificationInfo" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305786_462019_3775" body="The &lt;code>GlyphJustificationInfo&lt;/code> class represents information&#xA;about the justification properties of a glyph.  A glyph is the visual&#xA;representation of one or more characters.  Many different glyphs can&#xA;be used to represent a single character or combination of characters.&#xA;The four justification properties represented by&#xA;&lt;code>GlyphJustificationInfo&lt;/code> are weight, priority, absorb and&#xA;limit.&#xA;&lt;p>&#xA;Weight is the overall 'weight' of the glyph in the line.  Generally it is&#xA;proportional to the size of the font.  Glyphs with larger weight are&#xA;allocated a correspondingly larger amount of the change in space.&#xA;&lt;p>&#xA;Priority determines the justification phase in which this glyph is used.&#xA;All glyphs of the same priority are examined before glyphs of the next&#xA;priority.  If all the change in space can be allocated to these glyphs&#xA;without exceeding their limits, then glyphs of the next priority are not&#xA;examined. There are four priorities, kashida, whitespace, interchar,&#xA;and none.  KASHIDA is the first priority examined. NONE is the last&#xA;priority examined.&#xA;&lt;p>&#xA;Absorb determines whether a glyph absorbs all change in space.  Within a&#xA;given priority, some glyphs may absorb all the change in space.  If any of&#xA;these glyphs are present, no glyphs of later priority are examined.&#xA;&lt;p>&#xA;Limit determines the maximum or minimum amount by which the glyph can&#xA;change. Left and right sides of the glyph can have different limits.&#xA;&lt;p>&#xA;Each &lt;code>GlyphJustificationInfo&lt;/code> represents two sets of&#xA;metrics, which are &lt;i>growing&lt;/i> and &lt;i>shrinking&lt;/i>.  Growing&#xA;metrics are used when the glyphs on a line are to be&#xA;spread apart to fit a larger width.  Shrinking metrics are used when&#xA;the glyphs are to be moved together to fit a smaller width.&#xA;" annotatedElement="_9_5_f720368_1110473546565_424087_6625"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_985487_6623" name="FontRenderContext">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_750458_3773" body="The &lt;code>FontRenderContext&lt;/code> class is a container for the&#xA;information needed to correctly measure text.  The measurement of text&#xA;can vary because of rules that map outlines to pixels, and rendering&#xA;hints provided by an application.&#xA;&lt;p>&#xA;One such piece of information is a transform that scales&#xA;typographical points to pixels. (A point is defined to be exactly 1/72&#xA;of an inch, which is slightly different than&#xA;the traditional mechanical measurement of a point.)  A character that&#xA;is rendered at 12pt on a 600dpi device might have a different size&#xA;than the same character rendered at 12pt on a 72dpi device because of&#xA;such factors as rounding to pixel boundaries and hints that the font&#xA;designer may have specified.&#xA;&lt;p>&#xA;Anti-aliasing and Fractional-metrics specified by an application can also&#xA;affect the size of a character because of rounding to pixel&#xA;boundaries.&#xA;&lt;p>&#xA;Typically, instances of &lt;code>FontRenderContext&lt;/code> are&#xA;obtained from a {@link java.awt.Graphics2D Graphics2D} object.  A&#xA;&lt;code>FontRenderContext&lt;/code> which is directly constructed will&#xA;most likely not represent any actual graphics device, and may lead&#xA;to unexpected or incorrect results.&#xA;&lt;p>&#xA;@see java.awt.RenderingHints#KEY_TEXT_ANTIALIASING&#xA;@see java.awt.RenderingHints#KEY_FRACTIONALMETRICS&#xA;@see java.awt.Graphics2D#getFontRenderContext()&#xA;@see java.awt.font.LineMetrics&#xA;" annotatedElement="_9_5_f720368_1110473546565_985487_6623"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_881207_6659" name="TextMeasurer" clientDependency="_10_5_622020d_1132928321188_520591_12992" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305896_534201_3809" body="The &lt;code>TextMeasurer&lt;/code> class provides the primitive operations&#xA;needed for line break: measuring up to a given advance, determining the&#xA;advance of a range of characters, and generating a&#xA;&lt;code>TextLayout&lt;/code> for a range of characters. It also provides&#xA;methods for incremental editing of paragraphs.&#xA;&lt;p>&#xA;A &lt;code>TextMeasurer&lt;/code> object is constructed with an&#xA;{@link java.text.AttributedCharacterIterator AttributedCharacterIterator}&#xA;representing a single paragraph of text.  The value returned by the&#xA;{@link AttributedCharacterIterator#getBeginIndex() getBeginIndex}&#xA;method of &lt;code>AttributedCharacterIterator&lt;/code>&#xA;defines the absolute index of the first character.  The value&#xA;returned by the&#xA;{@link AttributedCharacterIterator#getEndIndex() getEndIndex}&#xA;method of &lt;code>AttributedCharacterIterator&lt;/code> defines the index&#xA;past the last character.  These values define the range of indexes to&#xA;use in calls to the &lt;code>TextMeasurer&lt;/code>.  For example, calls to&#xA;get the advance of a range of text or the line break of a range of text&#xA;must use indexes between the beginning and end index values.  Calls to&#xA;{@link #insertChar(java.text.AttributedCharacterIterator, int) insertChar}&#xA;and&#xA;{@link #deleteChar(java.text.AttributedCharacterIterator, int) deleteChar}&#xA;reset the &lt;code>TextMeasurer&lt;/code> to use the beginning index and end&#xA;index of the &lt;code>AttributedCharacterIterator&lt;/code> passed in those calls.&#xA;&lt;p>&#xA;Most clients will use the more convenient &lt;code>LineBreakMeasurer&lt;/code>,&#xA;which implements the standard line break policy (placing as many words&#xA;as will fit on each line).&#xA;&#xA;@author John Raley&#xA;@version 1.31, 04/20/01&#xA;@see LineBreakMeasurer&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_881207_6659"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321188_520591_12992" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_881207_6659" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_475634_6631" name="GraphicAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305816_960781_3781" body="This class is used with the CHAR_REPLACEMENT attribute.&#xA;&lt;p>&#xA;The &lt;code>GraphicAttribute&lt;/code> class represents a graphic embedded&#xA;in text. Clients subclass this class to implement their own char&#xA;replacement graphics.  Clients wishing to embed shapes and images in&#xA;text need not subclass this class.  Instead, clients can use the&#xA;{@link ShapeGraphicAttribute} and {@link ImageGraphicAttribute}&#xA;classes.&#xA;&lt;p>&#xA;Subclasses must ensure that their objects are immutable once they&#xA;are constructed.  Mutating a &lt;code>GraphicAttribute&lt;/code> that&#xA;is used in a {@link TextLayout} results in undefined behavior from the&#xA;&lt;code>TextLayout&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546565_475634_6631"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_607457_6651" name="TextHitInfo" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_35070_3801" body="The &lt;code>TextHitInfo&lt;/code> class represents a character position in a&#xA;text model, and a &lt;b>bias&lt;/b>, or &quot;side,&quot; of the character.  Biases are&#xA;either &lt;EM>leading&lt;/EM> (the left edge, for a left-to-right character)&#xA;or &lt;EM>trailing&lt;/EM> (the right edge, for a left-to-right character).&#xA;Instances of &lt;code>TextHitInfo&lt;/code> are used to specify caret and&#xA;insertion positions within text.&#xA;&lt;p>&#xA;For example, consider the text &quot;abc&quot;.  TextHitInfo.trailing(1)&#xA;corresponds to the right side of the 'b' in the text.&#xA;&lt;p>&#xA;&lt;code>TextHitInfo&lt;/code> is used primarily by {@link TextLayout} and&#xA;clients of &lt;code>TextLayout&lt;/code>.  Clients of &lt;code>TextLayout&lt;/code>&#xA;query &lt;code>TextHitInfo&lt;/code> instances for an insertion offset, where&#xA;new text is inserted into the text model.  The insertion offset is equal&#xA;to the character position in the &lt;code>TextHitInfo&lt;/code> if the bias&#xA;is leading, and one character after if the bias is trailing.  The&#xA;insertion offset for TextHitInfo.trailing(1) is 2.&#xA;&lt;p>&#xA;Sometimes it is convenient to construct a &lt;code>TextHitInfo&lt;/code> with&#xA;the same insertion offset as an existing one, but on the opposite&#xA;character.  The &lt;code>getOtherHit&lt;/code> method constructs a new&#xA;&lt;code>TextHitInfo&lt;/code> with the same insertion offset as an existing&#xA;one, with a hit on the character on the other side of the insertion offset.&#xA;Calling &lt;code>getOtherHit&lt;/code> on trailing(1) would return leading(2).&#xA;In general, &lt;code>getOtherHit&lt;/code> for trailing(n) returns&#xA;leading(n+1) and &lt;code>getOtherHit&lt;/code> for leading(n)&#xA;returns trailing(n-1).&#xA;&lt;p>&#xA;&lt;strong>Example&lt;/strong>:&lt;p>&#xA;Converting a graphical point to an insertion point within a text&#xA;model&#xA;&lt;blockquote>&lt;pre>&#xA;TextLayout layout = ...;&#xA;Point2D.Float hitPoint = ...;&#xA;TextHitInfo hitInfo = layout.hitTestChar(hitPoint.x, hitPoint.y);&#xA;int insPoint = hitInfo.getInsertionIndex();&#xA;insPoint is relative to layout;  may need to adjust for use&#xA;in a text model&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@see TextLayout&#xA;" annotatedElement="_9_5_f720368_1110473546565_607457_6651"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_996054_6629" name="GlyphVector" clientDependency="_10_5_622020d_1132928320617_935795_12969" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305816_236988_3779" body="A &lt;code>GlyphVector&lt;/code> object is a collection of glyphs&#xA;containing geometric information for the placement of each glyph&#xA;in a transformed coordinate space which corresponds to the&#xA;device on which the &lt;code>GlyphVector&lt;/code> is ultimately&#xA;displayed.&#xA;&lt;p>&#xA;The &lt;code>GlyphVector&lt;/code> does not attempt any interpretation of&#xA;the sequence of glyphs it contains.  Relationships between adjacent&#xA;glyphs in sequence are solely used to determine the placement of&#xA;the glyphs in the visual coordinate space.&#xA;&lt;p>&#xA;Instances of &lt;code>GlyphVector&lt;/code> are created by a {@link Font}.&#xA;&lt;p>&#xA;In a text processing application that can cache intermediate&#xA;representations of text, creation and subsequent caching of a&#xA;&lt;code>GlyphVector&lt;/code> for use during rendering is the fastest&#xA;method to present the visual representation of characters to a user.&#xA;&lt;p>&#xA;A &lt;code>GlyphVector&lt;/code> is associated with exactly one&#xA;&lt;code>Font&lt;/code>, and can provide data useful only in relation to&#xA;this &lt;code>Font&lt;/code>.  In addition, metrics obtained from a&#xA;&lt;code>GlyphVector&lt;/code> are not generally geometrically scaleable&#xA;since the pixelization and spacing are dependent on grid-fitting&#xA;algorithms within a &lt;code>Font&lt;/code>.  To facilitate accurate&#xA;measurement of a &lt;code>GlyphVector&lt;/code> and its component&#xA;glyphs, you must specify a scaling transform, anti-alias mode, and&#xA;fractional metrics mode when creating the &lt;code>GlyphVector&lt;/code>.&#xA;These characteristics can be derived from the destination device.&#xA;&lt;p>&#xA;For each glyph in the &lt;code>GlyphVector&lt;/code>, you can obtain:&#xA;&lt;ul>&#xA;&lt;li>the position of the glyph&#xA;&lt;li>the transform associated with the glyph&#xA;&lt;li>the metrics of the glyph in the context of the&#xA;&lt;code>GlyphVector&lt;/code>.  The metrics of the glyph may be&#xA;different under different transforms, application specified&#xA;rendering hints, and the specific instance of the glyph within&#xA;the &lt;code>GlyphVector&lt;/code>.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Altering the data used to create the &lt;code>GlyphVector&lt;/code> does not&#xA;alter the state of the &lt;code>GlyphVector&lt;/code>.&#xA;&lt;p>&#xA;Methods are provided to adjust the positions of the glyphs&#xA;within the &lt;code>GlyphVector&lt;/code>.  These methods are most&#xA;appropriate for applications that are performing justification&#xA;operations for the presentation of the glyphs.&#xA;&lt;p>&#xA;Methods are provided to transform individual glyphs within the&#xA;&lt;code>GlyphVector&lt;/code>.  These methods are primarily useful for&#xA;special effects.&#xA;&lt;p>&#xA;Methods are provided to return both the visual, logical, and pixel bounds&#xA;of the entire &lt;code>GlyphVector&lt;/code> or of individual glyphs within&#xA;the &lt;code>GlyphVector&lt;/code>.&#xA;&lt;p>&#xA;Methods are provided to return a {@link Shape} for the&#xA;&lt;code>GlyphVector&lt;/code>, and for individual glyphs within the&#xA;&lt;code>GlyphVector&lt;/code>.&#xA;@see Font&#xA;@see GlyphMetrics&#xA;@see TextLayout&#xA;@version 19 Mar 1998&#xA;@author Charlton Innovations, Inc.&#xA;" annotatedElement="_9_5_f720368_1110473546565_996054_6629"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320617_935795_12969" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_996054_6629" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_524776_6653" name="TextJustifier" visibility="package"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_787019_6627" name="GlyphMetrics" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305816_92041_3777" body="The &lt;code>GlyphMetrics&lt;/code> class represents infomation for a&#xA;single glyph.   A glyph is the visual representation of one or more&#xA;characters.  Many different glyphs can be used to represent a single&#xA;character or combination of characters.  &lt;code>GlyphMetrics&lt;/code>&#xA;instances are produced by {@link java.awt.Font Font} and are applicable&#xA;to a specific glyph in a particular &lt;code>Font&lt;/code>.&#xA;&lt;p>&#xA;Glyphs are either STANDARD, LIGATURE, COMBINING, or COMPONENT.&#xA;&lt;ul>&#xA;&lt;li>STANDARD glyphs are commonly used to represent single characters.&#xA;&lt;li>LIGATURE glyphs are used to represent sequences of characters.&#xA;&lt;li>COMPONENT glyphs in a {@link GlyphVector} do not correspond to a&#xA;particular character in a text model. Instead, COMPONENT glyphs are&#xA;added for typographical reasons, such as Arabic justification.&#xA;&lt;li>COMBINING glyphs embellish STANDARD or LIGATURE glyphs, such&#xA;as accent marks.  Carets do not appear before COMBINING glyphs.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Other metrics available through &lt;code>GlyphMetrics&lt;/code> are the&#xA;components of the advance, the visual bounds, and the left and right&#xA;side bearings.&#xA;&lt;p>&#xA;Glyphs for a rotated font, or obtained from a &lt;code>GlyphVector&lt;/code>&#xA;which has applied a rotation to the glyph, can have advances that&#xA;contain both X and Y components.  Usually the advance only has one&#xA;component.&#xA;&lt;p>&#xA;The advance of a glyph is the distance from the glyph's origin to the&#xA;origin of the next glyph along the baseline, which is either vertical&#xA;or horizontal.  Note that, in a &lt;code>GlyphVector&lt;/code>,&#xA;the distance from a glyph to its following glyph might not be the&#xA;glyph's advance, because of kerning or other positioning adjustments.&#xA;&lt;p>&#xA;The bounds is the smallest rectangle that completely contains the&#xA;outline of the glyph.  The bounds rectangle is relative to the&#xA;glyph's origin.  The left-side bearing is the distance from the glyph&#xA;origin to the left of its bounds rectangle. If the left-side bearing is&#xA;negative, part of the glyph is drawn to the left of its origin.  The&#xA;right-side bearing is the distance from the right side of the bounds&#xA;rectangle to the next glyph origin (the origin plus the advance).  If&#xA;negative, part of the glyph is drawn to the right of the next glyph's&#xA;origin.  Note that the bounds does not necessarily enclose all the pixels&#xA;affected when rendering the glyph, because of rasterization and pixel&#xA;adjustment effects.&#xA;&lt;p>&#xA;Although instances of &lt;code>GlyphMetrics&lt;/code> can be directly&#xA;constructed, they are almost always obtained from a&#xA;&lt;code>GlyphVector&lt;/code>.  Once constructed, &lt;code>GlyphMetrics&lt;/code>&#xA;objects are immutable.&#xA;&lt;p>&#xA;&lt;strong>Example&lt;/strong>:&lt;p>&#xA;Querying a &lt;code>Font&lt;/code> for glyph information&#xA;&lt;blockquote>&lt;pre>&#xA;Font font = ...;&#xA;int glyphIndex = ...;&#xA;GlyphMetrics metrics = GlyphVector.getGlyphMetrics(glyphIndex);&#xA;int isStandard = metrics.isStandard();&#xA;float glyphAdvance = metrics.getAdvance();&#xA;&lt;/pre>&lt;/blockquote>&#xA;@see java.awt.Font&#xA;@see GlyphVector&#xA;" annotatedElement="_9_5_f720368_1110473546565_787019_6627"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_41117_6647" name="StyledParagraph" visibility="package" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_397845_3797" body="This class stores Font, GraphicAttribute, and Decoration intervals&#xA;on a paragraph of styled text.&#xA;&lt;p>&#xA;Currently, this class is optimized for a small number of intervals&#xA;(preferrably 1).&#xA;" annotatedElement="_9_5_f720368_1110473546565_41117_6647"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_941252_6641" name="NumericShaper" clientDependency="_10_5_622020d_1132928320617_583816_12971" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_679161_3791" body="The &lt;code>NumericShaper&lt;/code> class is used to convert Latin-1 (European)&#xA;digits to other Unicode decimal digits.  Users of this class will&#xA;primarily be people who wish to present data using&#xA;national digit shapes, but find it more convenient to represent the&#xA;data internally using Latin-1 (European) digits.  This does not&#xA;interpret the deprecated numeric shape selector character (U+206E).&#xA;&lt;p>&#xA;Instances of &lt;code>NumericShaper&lt;/code> are typically applied&#xA;as attributes to text with the&#xA;{@link TextAttribute#NUMERIC_SHAPING NUMERIC_SHAPING} attribute&#xA;of the &lt;code>TextAttribute&lt;/code> class.&#xA;For example, this code snippet causes a &lt;code>TextLayout&lt;/code> to&#xA;shape European digits to Arabic in an Arabic context:&lt;br>&#xA;&lt;blockquote>&lt;pre>&#xA;Map map = new HashMap();&#xA;map.put(TextAttribute.NUMERIC_SHAPING,&#xA;NumericShaper.getContextualShaper(NumericShaper.ARABIC));&#xA;FontRenderContext frc = ...;&#xA;TextLayout layout = new TextLayout(text, map, frc);&#xA;layout.draw(g2d, x, y);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;br>&#xA;It is also possible to perform numeric shaping explicitly using instances&#xA;of &lt;code>NumericShaper&lt;/code>, as this code snippet demonstrates:&lt;br>&#xA;&lt;blockquote>&lt;pre>&#xA;char[] text = ...;&#xA;shape all EUROPEAN digits (except zero) to ARABIC digits&#xA;NumericShaper shaper = NumericShaper.getShaper(NumericShaper.ARABIC);&#xA;shaper.shape(text, start, count);&#xA;&#xA;shape European digits to ARABIC digits if preceeding text is Arabic, or&#xA;shape European digits to TAMIL digits if preceeding text is Tamil, or&#xA;leave European digits alone if there is no preceeding text, or&#xA;preceeding text is neither Arabic nor Tamil&#xA;NumericShaper shaper =&#xA;NumericShaper.getContextualShaper(NumericShaper.ARABIC |&#xA;NumericShaper.TAMIL,&#xA;NumericShaper.EUROPEAN);&#xA;shaper.shape(text. start, count);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_941252_6641"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320617_583816_12971" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_941252_6641" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_801530_6661" name="TransformAttribute" clientDependency="_10_5_622020d_1132928321188_245265_12993" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305896_105229_3811" body="The &lt;code>TransformAttribute&lt;/code> class provides an immutable&#xA;wrapper for a transform so that it is safe to use as an attribute.&#xA;" annotatedElement="_9_5_f720368_1110473546565_801530_6661"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321188_245265_12993" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_801530_6661" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_145276_6645" name="ShapeGraphicAttribute" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305846_205103_3795" body="The &lt;code>ShapeGraphicAttribute&lt;/code> class is an implementation of&#xA;{@link GraphicAttribute} that draws shapes in a {@link TextLayout}.&#xA;@see GraphicAttribute&#xA;" annotatedElement="_9_5_f720368_1110473546565_145276_6645"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_950946_12972" isSubstitutable="true" general="_9_5_f720368_1110473546565_475634_6631"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_617256_6657" name="TextLine" visibility="package" isLeaf="true">
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_604698_16555" name="TextLineMetrics" visibility="package" isLeaf="true"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_931852_16557" name="Function" visibility="private" isAbstract="true"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_467529_6637" name="LineMetrics" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305836_736423_3787" body="The &lt;code>LineMetrics&lt;/code> class allows access to the&#xA;metrics needed to layout characters along a line&#xA;and to layout of a set of lines.  A &lt;code>LineMetrics&lt;/code>&#xA;object encapsulates the measurement information associated&#xA;with a run of text.&#xA;&lt;p>&#xA;Fonts can have different metrics for different ranges of&#xA;characters.  The &lt;code>getLineMetrics&lt;/code> methods of&#xA;{@link java.awt.Font Font} take some text as an argument&#xA;and return a &lt;code>LineMetrics&lt;/code> object describing the&#xA;metrics of the initial number of characters in that text, as&#xA;returned by {@link #getNumChars}.&#xA;" annotatedElement="_9_5_f720368_1110473546565_467529_6637"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_978304_6635" name="LineBreakMeasurer" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305836_927956_3785" body="The &lt;code>LineBreakMeasurer&lt;/code> class allows styled text to be&#xA;broken into lines (or segments) that fit within a particular visual&#xA;advance.  This is useful for clients who wish to display a paragraph of&#xA;text that fits within a specific width, called the &lt;b>wrapping&#xA;width&lt;/b>.&#xA;&lt;p>&#xA;&lt;code>LineBreakMeasurer&lt;/code> is constructed with an iterator over&#xA;styled text.  The iterator's range should be a single paragraph in the&#xA;text.&#xA;&lt;code>LineBreakMeasurer&lt;/code> maintains a position in the text for the&#xA;start of the next text segment.  Initially, this position is the&#xA;start of text.  Paragraphs are assigned an overall direction (either&#xA;left-to-right or right-to-left) according to the bidirectional&#xA;formatting rules.  All segments obtained from a paragraph have the&#xA;same direction as the paragraph.&#xA;&lt;p>&#xA;Segments of text are obtained by calling the method&#xA;&lt;code>nextLayout&lt;/code>, which returns a {@link TextLayout}&#xA;representing the text that fits within the wrapping width.&#xA;The &lt;code>nextLayout&lt;/code> method moves the current position&#xA;to the end of the layout returned from &lt;code>nextLayout&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>LineBreakMeasurer&lt;/code> implements the most commonly used&#xA;line-breaking policy: Every word that fits within the wrapping&#xA;width is placed on the line. If the first word does not fit, then all&#xA;of the characters that fit within the wrapping width are placed on the&#xA;line.  At least one character is placed on each line.&#xA;&lt;p>&#xA;The &lt;code>TextLayout&lt;/code> instances returned by&#xA;&lt;code>LineBreakMeasurer&lt;/code> treat tabs like 0-width spaces.  Clients&#xA;who wish to obtain tab-delimited segments for positioning should use&#xA;the overload of &lt;code>nextLayout&lt;/code> which takes a limiting offset&#xA;in the text.&#xA;The limiting offset should be the first character after the tab.&#xA;The &lt;code>TextLayout&lt;/code> objects returned from this method end&#xA;at the limit provided (or before, if the text between the current&#xA;position and the limit won't fit entirely within the  wrapping&#xA;width).&#xA;&lt;p>&#xA;Clients who are laying out tab-delimited text need a slightly&#xA;different line-breaking policy after the first segment has been&#xA;placed on a line.  Instead of fitting partial words in the&#xA;remaining space, they should place words which don't fit in the&#xA;remaining space entirely on the next line.  This change of policy&#xA;can be requested in the overload of &lt;code>nextLayout&lt;/code> which&#xA;takes a &lt;code>boolean&lt;/code> parameter.  If this parameter is&#xA;&lt;code>true&lt;/code>, &lt;code>nextLayout&lt;/code> returns&#xA;&lt;code>null&lt;/code> if the first word won't fit in&#xA;the given space.  See the tab sample below.&#xA;&lt;p>&#xA;In general, if the text used to construct the&#xA;&lt;code>LineBreakMeasurer&lt;/code> changes, a new&#xA;&lt;code>LineBreakMeasurer&lt;/code> must be constructed to reflect&#xA;the change.  (The old &lt;code>LineBreakMeasurer&lt;/code> continues to&#xA;function properly, but it won't be aware of the text change.)&#xA;Nevertheless, if the text change is the insertion or deletion of a&#xA;single character, an existing &lt;code>LineBreakMeasurer&lt;/code> can be&#xA;'updated' by calling &lt;code>insertChar&lt;/code> or&#xA;&lt;code>deleteChar&lt;/code>. Updating an existing&#xA;&lt;code>LineBreakMeasurer&lt;/code> is much faster than creating a new one.&#xA;Clients who modify text based on user typing should take advantage&#xA;of these methods.&#xA;&lt;p>&#xA;&lt;strong>Examples&lt;/strong>:&lt;p>&#xA;Rendering a paragraph in a component&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public void paint(Graphics graphics) {&#xA;&#xA;Point2D pen = new Point2D(10, 20);&#xA;Graphics2D g2d = (Graphics2D)graphics;&#xA;FontRenderContext frc = g2d.getFontRenderContext();&#xA;&#xA;let styledText be an AttributedCharacterIterator containing at least&#xA;one character&#xA;&#xA;LineBreakMeasurer measurer = new LineBreakMeasurer(styledText, frc);&#xA;float wrappingWidth = getSize().width - 15;&#xA;&#xA;while (measurer.getPosition() &lt; fStyledText.length()) {&#xA;&#xA;TextLayout layout = measurer.nextLayout(wrappingWidth);&#xA;&#xA;pen.y += (layout.getAscent());&#xA;float dx = layout.isLeftToRight() ?&#xA;0 : (wrappingWidth - layout.getAdvance());&#xA;&#xA;layout.draw(graphics, pen.x + dx, pen.y);&#xA;pen.y += layout.getDescent() + layout.getLeading();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;Rendering text with tabs.  For simplicity, the overall text&#xA;direction is assumed to be left-to-right&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public void paint(Graphics graphics) {&#xA;&#xA;float leftMargin = 10, rightMargin = 310;&#xA;float[] tabStops = { 100, 250 };&#xA;&#xA;assume styledText is an AttributedCharacterIterator, and the number&#xA;of tabs in styledText is tabCount&#xA;&#xA;int[] tabLocations = new int[tabCount+1];&#xA;&#xA;int i = 0;&#xA;for (char c = styledText.first(); c != styledText.DONE; c = styledText.next()) {&#xA;if (c == '\t') {&#xA;tabLocations[i++] = styledText.getIndex();&#xA;}&#xA;}&#xA;tabLocations[tabCount] = styledText.getEndIndex() - 1;&#xA;&#xA;Now tabLocations has an entry for every tab's offset in&#xA;the text.  For convenience, the last entry is tabLocations&#xA;is the offset of the last character in the text.&#xA;&#xA;LineBreakMeasurer measurer = new LineBreakMeasurer(styledText);&#xA;int currentTab = 0;&#xA;float verticalPos = 20;&#xA;&#xA;while (measurer.getPosition() &lt; styledText.getEndIndex()) {&#xA;&#xA;Lay out and draw each line.  All segments on a line&#xA;must be computed before any drawing can occur, since&#xA;we must know the largest ascent on the line.&#xA;TextLayouts are computed and stored in a Vector;&#xA;their horizontal positions are stored in a parallel&#xA;Vector.&#xA;&#xA;lineContainsText is true after first segment is drawn&#xA;boolean lineContainsText = false;&#xA;boolean lineComplete = false;&#xA;float maxAscent = 0, maxDescent = 0;&#xA;float horizontalPos = leftMargin;&#xA;Vector layouts = new Vector(1);&#xA;Vector penPositions = new Vector(1);&#xA;&#xA;while (!lineComplete) {&#xA;float wrappingWidth = rightMargin - horizontalPos;&#xA;TextLayout layout =&#xA;measurer.nextLayout(wrappingWidth,&#xA;tabLocations[currentTab]+1,&#xA;lineContainsText);&#xA;&#xA;layout can be null if lineContainsText is true&#xA;if (layout != null) {&#xA;layouts.addElement(layout);&#xA;penPositions.addElement(new Float(horizontalPos));&#xA;horizontalPos += layout.getAdvance();&#xA;maxAscent = Math.max(maxAscent, layout.getAscent());&#xA;maxDescent = Math.max(maxDescent,&#xA;layout.getDescent() + layout.getLeading());&#xA;} else {&#xA;lineComplete = true;&#xA;}&#xA;&#xA;lineContainsText = true;&#xA;&#xA;if (measurer.getPosition() == tabLocations[currentTab]+1) {&#xA;currentTab++;&#xA;}&#xA;&#xA;if (measurer.getPosition() == styledText.getEndIndex())&#xA;lineComplete = true;&#xA;else if (horizontalPos >= tabStops[tabStops.length-1])&#xA;lineComplete = true;&#xA;&#xA;if (!lineComplete) {&#xA;move to next tab stop&#xA;int j;&#xA;for (j=0; horizontalPos >= tabStops[j]; j++) {}&#xA;horizontalPos = tabStops[j];&#xA;}&#xA;}&#xA;&#xA;verticalPos += maxAscent;&#xA;&#xA;Enumeration layoutEnum = layouts.elements();&#xA;Enumeration positionEnum = penPositions.elements();&#xA;&#xA;now iterate through layouts and draw them&#xA;while (layoutEnum.hasMoreElements()) {&#xA;TextLayout nextLayout = (TextLayout) layoutEnum.nextElement();&#xA;Float nextPosition = (Float) positionEnum.nextElement();&#xA;nextLayout.draw(graphics, nextPosition.floatValue(), verticalPos);&#xA;}&#xA;&#xA;verticalPos += maxDescent;&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;@see TextLayout&#xA;" annotatedElement="_9_5_f720368_1110473546565_978304_6635"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_523268_6639" name="MultipleMaster" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305836_73508_3789" body="The &lt;code>MultipleMaster&lt;/code> interface represents Type 1&#xA;Multiple Master fonts.&#xA;A particular {@link Font} object can implement this interface.&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_523268_6639"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_120641_7013" name="FontMetrics" clientDependency="_10_5_622020d_1132928321368_49836_13235" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306447_369240_4204" body="The &lt;code>FontMetrics&lt;/code> class defines a font metrics object, which&#xA;encapsulates information about the rendering of a particular font on a&#xA;particular screen.&#xA;&lt;p>&#xA;&lt;b>Note to subclassers&lt;/b>: Since many of these methods form closed,&#xA;mutually recursive loops, you must take care that you implement&#xA;at least one of the methods in each such loop to prevent&#xA;infinite recursion when your subclass is used.&#xA;In particular, the following is the minimal suggested set of methods&#xA;to override in order to ensure correctness and prevent infinite&#xA;recursion (though other subsets are equally feasible):&#xA;&lt;ul>&#xA;&lt;li>{@link #getAscent()}&#xA;&lt;li>{@link #getLeading()}&#xA;&lt;li>{@link #getMaxAdvance()}&#xA;&lt;li>{@link #charWidth(char)}&#xA;&lt;li>{@link #charsWidth(char[], int, int)}&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/FontMetrics-1.gif&quot; alt=&quot;The letter 'p' showing its 'reference point'&quot; border=15 align&#xA;ALIGN=right HSPACE=10 VSPACE=7>&#xA;Note that the implementations of these methods are&#xA;inefficient, so they are usually overridden with more efficient&#xA;toolkit-specific implementations.&#xA;&lt;p>&#xA;When an application asks AWT to place a character at the position&#xA;(&lt;i>x&lt;/i>,&amp;nbsp;&lt;i>y&lt;/i>), the character is placed so that its&#xA;reference point (shown as the dot in the accompanying image) is&#xA;put at that position. The reference point specifies a horizontal&#xA;line called the &lt;i>baseline&lt;/i> of the character. In normal&#xA;printing, the baselines of characters should align.&#xA;&lt;p>&#xA;In addition, every character in a font has an &lt;i>ascent&lt;/i>, a&#xA;&lt;i>descent&lt;/i>, and an &lt;i>advance width&lt;/i>. The ascent is the&#xA;amount by which the character ascends above the baseline. The&#xA;descent is the amount by which the character descends below the&#xA;baseline. The advance width indicates the position at which AWT&#xA;should place the next character.&#xA;&lt;p>&#xA;An array of characters or a string can also have an ascent, a&#xA;descent, and an advance width. The ascent of the array is the&#xA;maximum ascent of any character in the array. The descent is the&#xA;maximum descent of any character in the array. The advance width&#xA;is the sum of the advance widths of each of the characters in the&#xA;character array.  The advance of a &lt;code>String&lt;/code> is the&#xA;distance along the baseline of the &lt;code>String&lt;/code>.  This&#xA;distance is the width that should be used for centering or&#xA;right-aligning the &lt;code>String&lt;/code>.&#xA;Note that the advance of a &lt;code>String&lt;/code> is not necessarily&#xA;the sum of the advances of its characters measured in isolation&#xA;because the width of a character can vary depending on its context.&#xA;For example, in Arabic text, the shape of a character can change&#xA;in order to connect to other characters.  Also, in some scripts,&#xA;certain character sequences can be represented by a single shape,&#xA;called a &lt;em>ligature&lt;/em>.  Measuring characters individually does&#xA;not account for these transformations.&#xA;&#xA;@version &#x9;1.53 05/18/04&#xA;@author &#x9;Jim Graham&#xA;@see         java.awt.Font&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_120641_7013"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_49836_13235" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_120641_7013" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547331_32589_16695" name="im">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_892056_6723" name="InputMethodHighlight">
              <ownedComment xmi:id="_10_5_622020d_1132928305956_251893_3888" body="An InputMethodHighlight is used to describe the highlight&#xA;attributes of text being composed.&#xA;The description can be at two levels:&#xA;at the abstract level it specifies the conversion state and whether the&#xA;text is selected; at the concrete level it specifies style attributes used&#xA;to render the highlight.&#xA;An InputMethodHighlight must provide the description at the&#xA;abstract level; it may or may not provide the description at the concrete&#xA;level.&#xA;If no concrete style is provided, a renderer should use&#xA;{@link java.awt.Toolkit#mapInputMethodHighlight} to map to a concrete style.&#xA;&lt;p>&#xA;The abstract description consists of three fields: &lt;code>selected&lt;/code>,&#xA;&lt;code>state&lt;/code>, and &lt;code>variation&lt;/code>.&#xA;&lt;code>selected&lt;/code> indicates whether the text range is the one that the&#xA;input method is currently working on, for example, the segment for which&#xA;conversion candidates are currently shown in a menu.&#xA;&lt;code>state&lt;/code> represents the conversion state. State values are defined&#xA;by the input method framework and should be distinguished in all&#xA;mappings from abstract to concrete styles. Currently defined state values&#xA;are raw (unconverted) and converted.&#xA;These state values are recommended for use before and after the&#xA;main conversion step of text composition, say, before and after kana->kanji&#xA;or pinyin->hanzi conversion.&#xA;The &lt;code>variation&lt;/code> field allows input methods to express additional&#xA;information about the conversion results.&#xA;&lt;p>&#xA;&#xA;InputMethodHighlight instances are typically used as attribute values&#xA;returned from AttributedCharacterIterator for the INPUT_METHOD_HIGHLIGHT&#xA;attribute. They may be wrapped into {@link java.text.Annotation Annotation}&#xA;instances to indicate separate text segments.&#xA;&#xA;@version &#x9;1.21, 05/05/04&#xA;@see java.text.AttributedCharacterIterator&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_892056_6723"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547331_549691_16696" name="spi">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_880176_6715" name="InputMethod" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305956_630911_3880" body="Defines the interface for an input method that supports complex text input.&#xA;Input methods traditionally support text input for languages that have&#xA;more characters than can be represented on a standard-size keyboard,&#xA;such as Chinese, Japanese, and Korean. However, they may also be used to&#xA;support phonetic text input for English or character reordering for Thai.&#xA;&lt;p>&#xA;Subclasses of InputMethod can be loaded by the input method framework; they&#xA;can then be selected either through the API&#xA;({@link java.awt.im.InputContext#selectInputMethod InputContext.selectInputMethod})&#xA;or the user interface (the input method selection menu).&#xA;&#xA;@since 1.3&#xA;&#xA;@version &#x9;1.29, 12/19/03&#xA;@author JavaSoft International&#xA;" annotatedElement="_9_5_f720368_1110473546565_880176_6715"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_688640_6719" name="InputMethodDescriptor" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305956_934484_3884" body="Defines methods that provide sufficient information about an input method&#xA;to enable selection and loading of that input method.&#xA;The input method itself is only loaded when it is actually used.&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_688640_6719"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_239774_6717" name="InputMethodContext" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305956_904630_3882" body="Provides methods that input methods&#xA;can use to communicate with their client components or to request&#xA;other services.  This interface is implemented by the input method&#xA;framework, and input methods call its methods on the instance they&#xA;receive through&#xA;{@link java.awt.im.spi.InputMethod#setInputMethodContext}.&#xA;There should be no other implementors or callers.&#xA;&#xA;@since 1.3&#xA;&#xA;@version &#x9;1.16, 12/19/03&#xA;@author JavaSoft International&#xA;" annotatedElement="_9_5_f720368_1110473546565_239774_6717"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_712996_13042" isSubstitutable="true" general="_9_5_f720368_1110473546565_674254_6725"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_674254_6725" name="InputMethodRequests" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305966_742931_3890" body="InputMethodRequests defines the requests that a text editing component&#xA;has to handle in order to work with input methods. The component&#xA;can implement this interface itself or use a separate object that&#xA;implements it. The object implementing this interface must be returned&#xA;from the component's getInputMethodRequests method.&#xA;&#xA;&lt;p>&#xA;The text editing component also has to provide an input method event&#xA;listener.&#xA;&#xA;&lt;p>&#xA;The interface is designed to support one of two input user interfaces:&#xA;&lt;ul>&#xA;&lt;li>&lt;em>on-the-spot&lt;/em> input, where the composed text is displayed as part&#xA;of the text component's text body.&#xA;&lt;li>&lt;em>below-the-spot&lt;/em> input, where the composed text is displayed in&#xA;a separate composition window just below the insertion point where&#xA;the text will be inserted when it is committed. Note that, if text is&#xA;selected within the component's text body, this text will be replaced by&#xA;the committed text upon commitment; therefore it is not considered part&#xA;of the context that the text is input into.&#xA;&lt;/ul>&#xA;&#xA;@see java.awt.Component#getInputMethodRequests&#xA;@see java.awt.event.InputMethodListener&#xA;&#xA;@version &#x9;1.18, 12/19/03&#xA;@author JavaSoft Asia/Pacific&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_674254_6725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_499033_6721" name="InputContext">
              <ownedComment xmi:id="_10_5_622020d_1132928305956_620058_3886" body="Provides methods to control text input facilities such as input&#xA;methods and keyboard layouts.&#xA;Two methods handle both input methods and keyboard layouts: selectInputMethod&#xA;lets a client component select an input method or keyboard layout by locale,&#xA;getLocale lets a client component obtain the locale of the current input method&#xA;or keyboard layout.&#xA;The other methods more specifically support interaction with input methods:&#xA;They let client components control the behavior of input methods, and&#xA;dispatch events from the client component to the input method.&#xA;&#xA;&lt;p>&#xA;By default, one InputContext instance is created per Window instance,&#xA;and this input context is shared by all components within the window's&#xA;container hierarchy. However, this means that only one text input&#xA;operation is possible at any one time within a window, and that the&#xA;text needs to be committed when moving the focus from one text component&#xA;to another. If this is not desired, text components can create their&#xA;own input context instances.&#xA;&#xA;&lt;p>&#xA;The Java 2 platform supports input methods that have been developed in the Java&#xA;programming language, using the interfaces in the {@link java.awt.im.spi} package,&#xA;and installed into a Java 2 runtime environment as extensions. Implementations&#xA;may also support using the native input methods of the platforms they run on;&#xA;however, not all platforms and locales provide input methods. Keyboard layouts&#xA;are provided by the host platform.&#xA;&#xA;&lt;p>&#xA;Input methods are &lt;em>unavailable&lt;/em> if (a) no input method written&#xA;in the Java programming language has been installed and (b) the Java 2 implementation&#xA;or the underlying platform does not support native input methods. In this case,&#xA;input contexts can still be created and used; their behavior is specified with&#xA;the individual methods below.&#xA;&#xA;@see java.awt.Component#getInputContext&#xA;@see java.awt.Component#enableInputMethods&#xA;@version &#x9;1.34, 12/19/03&#xA;@author JavaSoft Asia/Pacific&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_499033_6721"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_473066_6727" name="InputSubset" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305966_614374_3892" body="Defines additional Unicode subsets for use by input methods.  Unlike the&#xA;UnicodeBlock subsets defined in the &lt;code>{@link&#xA;java.lang.Character.UnicodeBlock}&lt;/code> class, these constants do not&#xA;directly correspond to Unicode code blocks.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_473066_6727"/>
              <generalization xmi:id="_10_5_622020d_1132928321218_944686_13043" isSubstitutable="true" general="_9_5_f720368_1110473547331_961965_16706"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_531688_7101" name="PopupMenu">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_295411_4313" body="A class that implements a menu which can be dynamically popped up&#xA;at a specified position within a component.&#xA;&lt;p>&#xA;As the inheritance hierarchy implies, a &lt;code>PopupMenu&lt;/code>&#xA;can be used anywhere a &lt;code>Menu&lt;/code> can be used.&#xA;However, if you use a &lt;code>PopupMenu&lt;/code> like a &lt;code>Menu&lt;/code>&#xA;(e.g., you add it to a &lt;code>MenuBar&lt;/code>), then you &lt;b>cannot&lt;/b>&#xA;call &lt;code>show&lt;/code> on that &lt;code>PopupMenu&lt;/code>.&#xA;&#xA;@version&#x9;1.29 03/16/04&#xA;@author &#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546581_531688_7101"/>
            <generalization xmi:id="_10_5_622020d_1132928321418_206475_13324" isSubstitutable="true" general="_9_5_f720368_1110473546581_765702_7077"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_216161_17104" name="AccessibleAWTPopupMenu" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306707_570158_4311" body="Inner class of PopupMenu used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by menu component developers.&#xA;&lt;p>&#xA;The class used to obtain the accessible role for this object.&#xA;" annotatedElement="_9_5_f720368_1110473547409_216161_17104"/>
              <generalization xmi:id="_10_5_622020d_1132928321418_561114_13325" isSubstitutable="true" general="_9_5_f720368_1110473547409_217837_17067"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_587570_7065" name="LayoutManager" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_758665_4260" body="Defines the interface for classes that know how to lay out&#xA;&lt;code>Container&lt;/code>s.&#xA;&#xA;@see Container&#xA;&#xA;@version&#x9;1.25, 12/19/03&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546581_587570_7065"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_684570_6941" name="BasicStroke" clientDependency="_10_5_622020d_1132928321308_922243_13154">
            <ownedComment xmi:id="_10_5_622020d_1132928306326_403012_4113" body="The &lt;code>BasicStroke&lt;/code> class defines a basic set of rendering&#xA;attributes for the outlines of graphics primitives, which are rendered&#xA;with a {@link Graphics2D} object that has its Stroke attribute set to&#xA;this &lt;code>BasicStroke&lt;/code>.&#xA;The rendering attributes defined by &lt;code>BasicStroke&lt;/code> describe&#xA;the shape of the mark made by a pen drawn along the outline of a&#xA;{@link Shape} and the decorations applied at the ends and joins of&#xA;path segments of the &lt;code>Shape&lt;/code>.&#xA;These rendering attributes include:&#xA;&lt;dl compact>&#xA;&lt;dt>&lt;i>width&lt;/i>&#xA;&lt;dd>The pen width, measured perpendicularly to the pen trajectory.&#xA;&lt;dt>&lt;i>end caps&lt;/i>&#xA;&lt;dd>The decoration applied to the ends of unclosed subpaths and&#xA;dash segments.  Subpaths that start and end on the same point are&#xA;still considered unclosed if they do not have a CLOSE segment.&#xA;See {@link java.awt.geom.PathIterator#SEG_CLOSE SEG_CLOSE}&#xA;for more information on the CLOSE segment.&#xA;The three different decorations are: {@link #CAP_BUTT},&#xA;{@link #CAP_ROUND}, and {@link #CAP_SQUARE}.&#xA;&lt;dt>&lt;i>line joins&lt;/i>&#xA;&lt;dd>The decoration applied at the intersection of two path segments&#xA;and at the intersection of the endpoints of a subpath that is closed&#xA;using {@link java.awt.geom.PathIterator#SEG_CLOSE SEG_CLOSE}.&#xA;The three different decorations are: {@link #JOIN_BEVEL},&#xA;{@link #JOIN_MITER}, and {@link #JOIN_ROUND}.&#xA;&lt;dt>&lt;i>miter limit&lt;/i>&#xA;&lt;dd>The limit to trim a line join that has a JOIN_MITER decoration.&#xA;A line join is trimmed when the ratio of miter length to stroke&#xA;width is greater than the miterlimit value.  The miter length is&#xA;the diagonal length of the miter, which is the distance between&#xA;the inside corner and the outside corner of the intersection.&#xA;The smaller the angle formed by two line segments, the longer&#xA;the miter length and the sharper the angle of intersection.  The&#xA;default miterlimit value of 10.0f causes all angles less than&#xA;11 degrees to be trimmed.  Trimming miters converts&#xA;the decoration of the line join to bevel.&#xA;&lt;dt>&lt;i>dash attributes&lt;/i>&#xA;&lt;dd>The definition of how to make a dash pattern by alternating&#xA;between opaque and transparent sections.&#xA;&lt;/dl>&#xA;All attributes that specify measurements and distances controlling&#xA;the shape of the returned outline are measured in the same&#xA;coordinate system as the original unstroked &lt;code>Shape&lt;/code>&#xA;argument.  When a &lt;code>Graphics2D&lt;/code> object uses a&#xA;&lt;code>Stroke&lt;/code> object to redefine a path during the execution&#xA;of one of its &lt;code>draw&lt;/code> methods, the geometry is supplied&#xA;in its original form before the &lt;code>Graphics2D&lt;/code> transform&#xA;attribute is applied.  Therefore, attributes such as the pen width&#xA;are interpreted in the user space coordinate system of the&#xA;&lt;code>Graphics2D&lt;/code> object and are subject to the scaling and&#xA;shearing effects of the user-space-to-device-space transform in that&#xA;particular &lt;code>Graphics2D&lt;/code>.&#xA;For example, the width of a rendered shape's outline is determined&#xA;not only by the width attribute of this &lt;code>BasicStroke&lt;/code>,&#xA;but also by the transform attribute of the&#xA;&lt;code>Graphics2D&lt;/code> object.  Consider this code:&#xA;&lt;blockquote>&lt;tt>&#xA;sets the Graphics2D object's Tranform attribute&#xA;g2d.scale(10, 10);&#xA;sets the Graphics2D object's Stroke attribute&#xA;g2d.setStroke(new BasicStroke(1.5f));&#xA;&lt;/tt>&lt;/blockquote>&#xA;Assuming there are no other scaling transforms added to the&#xA;&lt;code>Graphics2D&lt;/code> object, the resulting line&#xA;will be approximately 15 pixels wide.&#xA;As the example code demonstrates, a floating-point line&#xA;offers better precision, especially when large transforms are&#xA;used with a &lt;code>Graphics2D&lt;/code> object.&#xA;When a line is diagonal, the exact width depends on how the&#xA;rendering pipeline chooses which pixels to fill as it traces the&#xA;theoretical widened outline.  The choice of which pixels to turn&#xA;on is affected by the antialiasing attribute because the&#xA;antialiasing rendering pipeline can choose to color&#xA;partially-covered pixels.&#xA;&lt;p>&#xA;For more information on the user space coordinate system and the&#xA;rendering process, see the &lt;code>Graphics2D&lt;/code> class comments.&#xA;@see Graphics2D&#xA;@version 1.40, 12/19/03&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546581_684570_6941"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_922243_13154" name="" supplier="_9_5_f720368_1110473546596_603780_7127" client="_9_5_f720368_1110473546581_684570_6941" contract="_9_5_f720368_1110473546596_603780_7127"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_192877_16904" name="FillAdapter" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_765702_7077" name="Menu" clientDependency="_10_5_622020d_1132928321398_616635_13290 _10_5_622020d_1132928321398_345105_13291">
            <ownedComment xmi:id="_10_5_622020d_1132928306687_938245_4273" body="A &lt;code>Menu&lt;/code> object is a pull-down menu component&#xA;that is deployed from a menu bar.&#xA;&lt;p>&#xA;A menu can optionally be a &lt;i>tear-off&lt;/i> menu. A tear-off menu&#xA;can be opened and dragged away from its parent menu bar or menu.&#xA;It remains on the screen after the mouse button has been released.&#xA;The mechanism for tearing off a menu is platform dependent, since&#xA;the look and feel of the tear-off menu is determined by its peer.&#xA;On platforms that do not support tear-off menus, the tear-off&#xA;property is ignored.&#xA;&lt;p>&#xA;Each item in a menu must belong to the &lt;code>MenuItem&lt;/code>&#xA;class. It can be an instance of &lt;code>MenuItem&lt;/code>, a submenu&#xA;(an instance of &lt;code>Menu&lt;/code>), or a check box (an instance of&#xA;&lt;code>CheckboxMenuItem&lt;/code>).&#xA;&#xA;@version 1.75, 05/18/04&#xA;@author Sami Shaio&#xA;@see     java.awt.MenuItem&#xA;@see     java.awt.CheckboxMenuItem&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_765702_7077"/>
            <generalization xmi:id="_10_5_622020d_1132928321398_727403_13292" isSubstitutable="true" general="_9_5_f720368_1110473546581_480588_7085"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_616635_13290" name="" supplier="_9_5_f720368_1110473546581_187052_7083" client="_9_5_f720368_1110473546581_765702_7077" contract="_9_5_f720368_1110473546581_187052_7083"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_345105_13291" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_765702_7077" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_217837_17067" name="AccessibleAWTMenu" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306687_283376_4271" body="Inner class of Menu used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by menu component developers.&#xA;&lt;p>&#xA;This class implements accessibility support for the&#xA;&lt;code>Menu&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_217837_17067"/>
              <generalization xmi:id="_10_5_622020d_1132928321398_898529_13293" isSubstitutable="true" general="_9_5_f720368_1110473547409_51781_17077"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_21723_6963" name="ColorPaintContext" visibility="package" clientDependency="_10_5_622020d_1132928321328_722051_13192">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_722051_13192" name="" supplier="_9_5_f720368_1110473546581_660863_7093" client="_9_5_f720368_1110473546581_21723_6963" contract="_9_5_f720368_1110473546581_660863_7093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_334931_7131" name="TextArea">
            <ownedComment xmi:id="_10_5_622020d_1132928306747_668306_4346" body="A &lt;code>TextArea&lt;/code> object is a multi-line region&#xA;that displays text. It can be set to allow editing or&#xA;to be read-only.&#xA;&lt;p>&#xA;The following image shows the appearance of a text area:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/TextArea-1.gif&quot; alt=&quot;A TextArea showing the word 'Hello!'&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;This text area could be created by the following line of code:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;new TextArea(&quot;Hello&quot;, 5, 40);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;@version&#x9;1.78, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_334931_7131"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_631535_13355" isSubstitutable="true" general="_9_5_f720368_1110473546596_302274_7133"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_15240_17128" name="AccessibleAWTTextArea" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306747_126321_4344" body="This class implements accessibility support for the&#xA;&lt;code>TextArea&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to text area user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_15240_17128"/>
              <generalization xmi:id="_10_5_622020d_1132928321498_86516_13356" isSubstitutable="true" general="_9_5_f720368_1110473547424_416672_17131"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_562118_7117" name="PeerFixer" visibility="package" clientDependency="_10_5_622020d_1132928321498_397953_13345 _10_5_622020d_1132928321498_52818_13346">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_397953_13345" name="" supplier="_9_5_f720368_1110473546565_707401_6539" client="_9_5_f720368_1110473546596_562118_7117" contract="_9_5_f720368_1110473546565_707401_6539"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_52818_13346" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_562118_7117" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_6748_7081" name="MenuComponent" clientDependency="_10_5_622020d_1132928321398_735778_13298" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306687_10670_4279" body="The abstract class &lt;code>MenuComponent&lt;/code> is the superclass&#xA;of all menu-related components. In this respect, the class&#xA;&lt;code>MenuComponent&lt;/code> is analogous to the abstract superclass&#xA;&lt;code>Component&lt;/code> for AWT components.&#xA;&lt;p>&#xA;Menu components receive and process AWT events, just as components do,&#xA;through the method &lt;code>processEvent&lt;/code>.&#xA;&#xA;@version &#x9;1.77, 05/18/04&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_6748_7081"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_735778_13298" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_6748_7081" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_476725_17073" name="AccessibleAWTMenuComponent" visibility="protected" clientDependency="_10_5_622020d_1132928321398_632258_13300 _10_5_622020d_1132928321408_255177_13301 _10_5_622020d_1132928321398_748778_13299" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306687_820191_4277" body="Inner class of &lt;code>MenuComponent&lt;/code> used to provide&#xA;default support for accessibility.  This class is not meant&#xA;to be used directly by application developers, but is instead&#xA;meant only to be subclassed by menu component developers.&#xA;&lt;p>&#xA;The class used to obtain the accessible role for this object.&#xA;" annotatedElement="_9_5_f720368_1110473547409_476725_17073"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_141023_13302" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321398_748778_13299" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547409_476725_17073" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321398_632258_13300" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473547409_476725_17073" contract="_9_5_f720368_1110473546706_824207_8957"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321408_255177_13301" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473547409_476725_17073" contract="_9_5_f720368_1110473546706_797948_8983"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_851221_6967" name="ComponentOrientation" clientDependency="_10_5_622020d_1132928321338_553529_13206" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306387_960744_4151" body="The ComponentOrientation class encapsulates the language-sensitive&#xA;orientation that is to be used to order the elements of a component&#xA;or of text. It is used to reflect the differences in this ordering&#xA;between Western alphabets, Middle Eastern (such as Hebrew), and Far&#xA;Eastern (such as Japanese).&#xA;&lt;p>&#xA;Fundamentally, this governs items (such as characters) which are laid out&#xA;in lines, with the lines then laid out in a block. This also applies&#xA;to items in a widget: for example, in a check box where the box is&#xA;positioned relative to the text.&#xA;&lt;p>&#xA;There are four different orientations used in modern languages&#xA;as in the following table.&lt;br>&#xA;&lt;pre>&#xA;LT          RT          TL          TR&#xA;A B C       C B A       A D G       G D A&#xA;D E F       F E D       B E H       H E B&#xA;G H I       I H G       C F I       I F C&#xA;&lt;/pre>&lt;br>&#xA;(In the header, the two-letter abbreviation represents the item direction&#xA;in the first letter, and the line direction in the second. For example,&#xA;LT means &quot;items left-to-right, lines top-to-bottom&quot;,&#xA;BL means &quot;items bottom-to-top, lines bottom-to-top&quot;, and so on.)&#xA;&lt;p>&#xA;The orientations are:&#xA;&lt;ul>&#xA;&lt;li>LT - Western Europe (optional for Japanese, Chinese, Korean)&#xA;&lt;li>RT - Middle East (Arabic, Hebrew)&#xA;&lt;li>TR - Japanese, Chinese, Korean&#xA;&lt;li>TL - Mongolian&#xA;&lt;/ul>&#xA;Components whose view and controller code depends on orientation&#xA;should use the &lt;code>isLeftToRight()&lt;/code> and&#xA;&lt;code>isHorizontal()&lt;/code> methods to&#xA;determine their behavior. They should not include switch-like&#xA;code that keys off of the constants, such as:&#xA;&lt;pre>&#xA;if (orientation == LEFT_TO_RIGHT) {&#xA;...&#xA;} else if (orientation == RIGHT_TO_LEFT) {&#xA;...&#xA;} else {&#xA;Oops&#xA;}&#xA;&lt;/pre>&#xA;This is unsafe, since more constants may be added in the future and&#xA;since it is not guaranteed that orientation objects will be unique.&#xA;" annotatedElement="_9_5_f720368_1110473546581_851221_6967"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321338_553529_13206" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_851221_6967" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_367284_7125" name="Shape" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306737_462446_4339" body="The &lt;code>Shape&lt;/code> interface provides definitions for objects&#xA;that represent some form of geometric shape.  The &lt;code>Shape&lt;/code>&#xA;is described by a {@link PathIterator} object, which can express the&#xA;outline of the &lt;code>Shape&lt;/code> as well as a rule for determining&#xA;how the outline divides the 2D plane into interior and exterior&#xA;points.  Each &lt;code>Shape&lt;/code> object provides callbacks to get the&#xA;bounding box of the geometry, determine whether points or&#xA;rectangles lie partly or entirely within the interior&#xA;of the &lt;code>Shape&lt;/code>, and retrieve a &lt;code>PathIterator&lt;/code>&#xA;object that describes the trajectory path of the &lt;code>Shape&lt;/code>&#xA;outline.&#xA;&lt;p>&#xA;&lt;b>Definition of insideness:&lt;/b>&#xA;A point is considered to lie inside a&#xA;&lt;code>Shape&lt;/code> if and only if:&#xA;&lt;ul>&#xA;&lt;li> it lies completely&#xA;inside the&lt;code>Shape&lt;/code> boundary &lt;i>or&lt;/i>&#xA;&lt;li>&#xA;it lies exactly on the &lt;code>Shape&lt;/code> boundary &lt;i>and&lt;/i> the&#xA;space immediately adjacent to the&#xA;point in the increasing &lt;code>X&lt;/code> direction is&#xA;entirely inside the boundary &lt;i>or&lt;/i>&#xA;&lt;li>&#xA;it lies exactly on a horizontal boundary segment &lt;b>and&lt;/b> the&#xA;space immediately adjacent to the point in the&#xA;increasing &lt;code>Y&lt;/code> direction is inside the boundary.&#xA;&lt;/ul>&#xA;&lt;p>The &lt;code>contains&lt;/code> and &lt;code>intersects&lt;/code> methods&#xA;consider the interior of a &lt;code>Shape&lt;/code> to be the area it&#xA;encloses as if it were filled.  This means that these methods&#xA;consider&#xA;unclosed shapes to be implicitly closed for the purpose of&#xA;determining if a shape contains or intersects a rectangle or if a&#xA;shape contains a point.&#xA;&#xA;@see java.awt.geom.PathIterator&#xA;@see java.awt.geom.AffineTransform&#xA;@see java.awt.geom.FlatteningPathIterator&#xA;@see java.awt.geom.GeneralPath&#xA;&#xA;@version 1.19 06/24/98&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546596_367284_7125"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_759521_6991" name="DisplayMode" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_568957_4182" body="The &lt;code>DisplayMode&lt;/code> class encapsulates the bit depth, height,&#xA;width, and refresh rate of a &lt;code>GraphicsDevice&lt;/code>.  Display modes&#xA;are hardware-dependent and may not always be available.&#xA;@see GraphicsDevice&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_759521_6991"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_134066_7055" name="JobAttributes" clientDependency="_10_5_622020d_1132928321388_643775_13265" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_984157_4249" body="A set of attributes which control a print job.&#xA;&lt;p>&#xA;Instances of this class control the number of copies, default selection,&#xA;destination, print dialog, file and printer names, page ranges, multiple&#xA;document handling (including collation), and multi-page imposition (such&#xA;as duplex) of every print job which uses the instance. Attribute names are&#xA;compliant with the Internet Printing Protocol (IPP) 1.1 where possible.&#xA;Attribute values are partially compliant where possible.&#xA;&lt;p>&#xA;To use a method which takes an inner class type, pass a reference to&#xA;one of the constant fields of the inner class. Client code cannot create&#xA;new instances of the inner class types because none of those classes&#xA;has a public constructor. For example, to set the print dialog type to&#xA;the cross-platform, pure Java print dialog, use the following code:&#xA;&lt;pre>&#xA;import java.awt.JobAttributes;&#xA;&#xA;public class PureJavaPrintDialogExample {&#xA;public void setPureJavaPrintDialog(JobAttributes jobAttributes) {&#xA;jobAttributes.setDialog(JobAttributes.DialogType.COMMON);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Every IPP attribute which supports an &lt;i>attributeName&lt;/i>-default value&#xA;has a corresponding &lt;code>set&lt;i>attributeName&lt;/i>ToDefault&lt;/code> method.&#xA;Default value fields are not provided.&#xA;&#xA;@version&#x9;1.9, 12/19/03&#xA;@author&#x9;David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546581_134066_7055"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_643775_13265" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_134066_7055" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_568480_17033" name="DefaultSelectionType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306657_972337_4243" body="A type-safe enumeration of possible default selection states.&#xA;" annotatedElement="_9_5_f720368_1110473547409_568480_17033"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_784339_13266" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_74906_17036" name="DestinationType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306657_590095_4244" body="A type-safe enumeration of possible job destinations.&#xA;" annotatedElement="_9_5_f720368_1110473547409_74906_17036"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_789086_13267" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_439269_17039" name="DialogType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306667_547421_4245" body="A type-safe enumeration of possible dialogs to display to the user.&#xA;" annotatedElement="_9_5_f720368_1110473547409_439269_17039"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_539298_13268" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_180049_17042" name="MultipleDocumentHandlingType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306667_755043_4246" body="A type-safe enumeration of possible multiple copy handling states.&#xA;It is used to control how the sheets of multiple copies of a single&#xA;document are collated.&#xA;" annotatedElement="_9_5_f720368_1110473547409_180049_17042"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_872334_13269" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_623071_17045" name="SidesType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306667_805591_4247" body="A type-safe enumeration of possible multi-page impositions. These&#xA;impositions are in compliance with IPP 1.1.&#xA;" annotatedElement="_9_5_f720368_1110473547409_623071_17045"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_777847_13270" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_509597_7045" name="IllegalComponentStateException">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_646203_4234" body="Signals that an AWT component is not in an appropriate state for&#xA;the requested operation.&#xA;&#xA;@version &#x9;1.12, 12/19/03&#xA;@author&#x9;Jonni Kanerva&#xA;" annotatedElement="_9_5_f720368_1110473546581_509597_7045"/>
            <generalization xmi:id="_10_5_622020d_1132928321388_372504_13261" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547268_293981_16347" name="datatransfer">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_381817_6463" name="FlavorTable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305615_424886_3613" body="A FlavorMap which relaxes the traditional 1-to-1 restriction of a Map. A&#xA;flavor is permitted to map to any number of natives, and likewise a native&#xA;is permitted to map to any number of flavors. FlavorTables need not be&#xA;symmetric, but typically are.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.5, 05/05/04&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546549_381817_6463"/>
              <generalization xmi:id="_10_5_622020d_1132928320537_948411_12880" isSubstitutable="true" general="_9_5_f720368_1110473546549_144226_6461"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928305505_189061_3604" name="FlavorEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305585_898851_3606" body="&lt;code>FlavorEvent&lt;/code> is used to notify interested parties&#xA;that available {@link DataFlavor}s have changed in the&#xA;{@link Clipboard} (the event source).&#xA;&#xA;@see FlavorListener&#xA;&#xA;@version 1.2 12/19/03&#xA;@author Alexander Gerasimov&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928305505_189061_3604"/>
              <generalization xmi:id="_10_5_622020d_1132928320537_987476_12878" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_461897_6471" name="StringSelection" clientDependency="_10_5_622020d_1132928320537_114528_12885 _10_5_622020d_1132928320537_771545_12886">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_777584_3621" body="A &lt;code>Transferable&lt;/code> which implements the capability required&#xA;to transfer a &lt;code>String&lt;/code>.&#xA;&#xA;This &lt;code>Transferable&lt;/code> properly supports&#xA;&lt;code>DataFlavor.stringFlavor&lt;/code>&#xA;and all equivalent flavors. Support for&#xA;&lt;code>DataFlavor.plainTextFlavor&lt;/code>&#xA;and all equivalent flavors is &lt;b>deprecated&lt;/b>. No other&#xA;&lt;code>DataFlavor&lt;/code>s are supported.&#xA;&#xA;@see java.awt.datatransfer.DataFlavor#stringFlavor&#xA;@see java.awt.datatransfer.DataFlavor#plainTextFlavor&#xA;" annotatedElement="_9_5_f720368_1110473546549_461897_6471"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_114528_12885" name="" supplier="_9_5_f720368_1110473546549_574486_6475" client="_9_5_f720368_1110473546549_461897_6471" contract="_9_5_f720368_1110473546549_574486_6475"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_771545_12886" name="" supplier="_9_5_f720368_1110473546549_562232_6457" client="_9_5_f720368_1110473546549_461897_6471" contract="_9_5_f720368_1110473546549_562232_6457"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_334099_6465" name="MimeType" visibility="package" clientDependency="_10_5_622020d_1132928320537_302420_12881 _10_5_622020d_1132928320537_37139_12882">
              <ownedComment xmi:id="_10_5_622020d_1132928305615_198008_3615" body="A Multipurpose Internet Mail Extension (MIME) type, as defined&#xA;in RFC 2045 and 2046.&#xA;&#xA;THIS IS *NOT* - REPEAT *NOT* - A PUBLIC CLASS! DataFlavor IS&#xA;THE PUBLIC INTERFACE, AND THIS IS PROVIDED AS A ***PRIVATE&#xA;(THAT IS AS IN *NOT* PUBLIC) HELPER CLASS!&#xA;" annotatedElement="_9_5_f720368_1110473546549_334099_6465"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_302420_12881" name="" supplier="_9_5_f720368_1110473546596_293067_7381" client="_9_5_f720368_1110473546549_334099_6465" contract="_9_5_f720368_1110473546596_293067_7381"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_37139_12882" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546549_334099_6465" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928305585_582181_3607" name="FlavorListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305615_190762_3609" body="Defines an object which listens for {@link FlavorEvent}s.&#xA;&#xA;@version 1.3 12/19/03&#xA;@author Alexander Gerasimov&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928305585_582181_3607"/>
              <generalization xmi:id="_10_5_622020d_1132928320537_479882_12879" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_534345_6455" name="Clipboard">
              <ownedComment xmi:id="_10_5_622020d_1132928305505_549611_3599" body="A class that implements a mechanism to transfer data using&#xA;cut/copy/paste operations.&#xA;&lt;p>&#xA;{@link FlavorListener}s may be registered on an instance of the&#xA;Clipboard class to be notified about changes to the set of&#xA;{@link DataFlavor}s available on this clipboard (see&#xA;{@link #addFlavorListener}).&#xA;&#xA;@see java.awt.Toolkit#getSystemClipboard&#xA;@see java.awt.Toolkit#getSystemSelection&#xA;&#xA;@version &#x9;1.22, 12/19/03&#xA;@author&#x9;Amy Fowler&#xA;@author      Alexander Gerasimov&#xA;" annotatedElement="_9_5_f720368_1110473546549_534345_6455"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_904961_6467" name="MimeTypeParameterList" visibility="package" clientDependency="_10_5_622020d_1132928320537_418015_12883">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_534062_3617" body="An object that encapsualtes the parameter list of a MimeType&#xA;as defined in RFC 2045 and 2046.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@author jeff.dunn@eng.sun.com&#xA;" annotatedElement="_9_5_f720368_1110473546549_904961_6467"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_418015_12883" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546549_904961_6467" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_624404_6477" name="UnsupportedFlavorException">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_422522_3627" body="Signals that the requested data is not supported in this flavor.&#xA;@see Transferable#getTransferData&#xA;&#xA;@version &#x9;1.15, 12/19/03&#xA;@author&#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546549_624404_6477"/>
              <generalization xmi:id="_10_5_622020d_1132928320547_617171_12889" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_562232_6457" name="ClipboardOwner" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305505_261462_3601" body="Defines the interface for classes that will provide data to&#xA;a clipboard. An instance of this interface becomes the owner&#xA;of the contents of a clipboard (clipboard owner) if it is&#xA;passed as an argument to&#xA;{@link java.awt.datatransfer.Clipboard#setContents} method of&#xA;the clipboard and this method returns successfully.&#xA;The instance remains the clipboard owner until another application&#xA;or another object within this application asserts ownership&#xA;of this clipboard.&#xA;&#xA;@see java.awt.datatransfer.Clipboard&#xA;&#xA;@version &#x9;1.11, 12/19/03&#xA;@author&#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546549_562232_6457"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_10576_6459" name="DataFlavor" clientDependency="_10_5_622020d_1132928320537_623402_12875 _10_5_622020d_1132928320537_630915_12876">
              <ownedComment xmi:id="_10_5_622020d_1132928305505_957013_3603" body="Each instance represents the opaque concept of a data format as would&#xA;appear on a clipboard, during drag and drop, or in a file system.&#xA;&lt;p>&#xA;&lt;code>DataFlavor&lt;/code> objects are constant and never change once&#xA;instantiated.&#xA;&lt;p>&#xA;For information on using data transfer with Swing, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/dnd.html&quot;>&#xA;How to Use Drag and Drop and Data Transfer&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, for more information.&#xA;&#xA;@version     1.79, 05/18/04&#xA;@author      Blake Sullivan&#xA;@author      Laurence P. G. Cable&#xA;@author      Jeff Dunn&#xA;" annotatedElement="_9_5_f720368_1110473546549_10576_6459"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_623402_12875" name="" supplier="_9_5_f720368_1110473546596_293067_7381" client="_9_5_f720368_1110473546549_10576_6459" contract="_9_5_f720368_1110473546596_293067_7381"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_630915_12876" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546549_10576_6459" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547268_173863_16351" name="TextFlavorComparator" visibility="package"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_144226_6461" name="FlavorMap" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305615_750101_3611" body="A two-way Map between &quot;natives&quot; (Strings), which correspond to platform-&#xA;specfic data formats, and &quot;flavors&quot; (DataFlavors), which corerspond to&#xA;platform-independent MIME types. FlavorMaps need not be symmetric, but&#xA;typically are.&#xA;&#xA;@version 1.19, 05/05/04&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_144226_6461"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_519280_6473" name="SystemFlavorMap" clientDependency="_10_5_622020d_1132928320537_398685_12888 _10_5_622020d_1132928320537_372169_12887" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_245169_3623" body="The SystemFlavorMap is a configurable map between &quot;natives&quot; (Strings), which&#xA;correspond to platform-specific data formats, and &quot;flavors&quot; (DataFlavors),&#xA;which correspond to platform-independent MIME types. This mapping is used&#xA;by the data transfer subsystem to transfer data between Java and native&#xA;applications, and between Java applications in separate VMs.&#xA;&lt;p>&#xA;In the Sun reference implementation, the default SystemFlavorMap is&#xA;initialized by the file &lt;code>jre/lib/flavormap.properties&lt;/code> and the&#xA;contents of the URL referenced by the AWT property&#xA;&lt;code>AWT.DnD.flavorMapFileURL&lt;/code>. See &lt;code>flavormap.properties&lt;/code>&#xA;for details.&#xA;&#xA;@version 1.36, 05/05/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_519280_6473"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_372169_12887" name="" supplier="_9_5_f720368_1110473546549_144226_6461" client="_9_5_f720368_1110473546549_519280_6473" contract="_9_5_f720368_1110473546549_144226_6461"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320537_398685_12888" name="" supplier="_9_5_f720368_1110473546549_381817_6463" client="_9_5_f720368_1110473546549_519280_6473" contract="_9_5_f720368_1110473546549_381817_6463"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_574486_6475" name="Transferable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_269017_3625" body="Defines the interface for classes that can be used to provide data&#xA;for a transfer operation.&#xA;&lt;p>&#xA;For information on using data transfer with Swing, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/dnd.html&quot;>&#xA;How to Use Drag and Drop and Data Transfer&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, for more information.&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@author&#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546549_574486_6475"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_37075_6469" name="MimeTypeParseException">
              <ownedComment xmi:id="_10_5_622020d_1132928305625_479557_3619" body="A class to encapsulate MimeType parsing related exceptions&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546549_37075_6469"/>
              <generalization xmi:id="_10_5_622020d_1132928320537_187034_12884" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_680435_7115" name="ScrollPane" clientDependency="_10_5_622020d_1132928321488_219115_13340">
            <ownedComment xmi:id="_10_5_622020d_1132928306727_839783_4330" body="A container class which implements automatic horizontal and/or&#xA;vertical scrolling for a single child component.  The display&#xA;policy for the scrollbars can be set to:&#xA;&lt;OL>&#xA;&lt;LI>as needed: scrollbars created and shown only when needed by scrollpane&#xA;&lt;LI>always: scrollbars created and always shown by the scrollpane&#xA;&lt;LI>never: scrollbars never created or shown by the scrollpane&#xA;&lt;/OL>&#xA;&lt;P>&#xA;The state of the horizontal and vertical scrollbars is represented&#xA;by two &lt;code>ScrollPaneAdjustable&lt;/code> objects (one for each&#xA;dimension) which implement the &lt;code>Adjustable&lt;/code> interface.&#xA;The API provides methods to access those objects such that the&#xA;attributes on the Adjustable object (such as unitIncrement, value,&#xA;etc.) can be manipulated.&#xA;&lt;P>&#xA;Certain adjustable properties (minimum, maximum, blockIncrement,&#xA;and visibleAmount) are set internally by the scrollpane in accordance&#xA;with the geometry of the scrollpane and its child and these should&#xA;not be set by programs using the scrollpane.&#xA;&lt;P>&#xA;If the scrollbar display policy is defined as &quot;never&quot;, then the&#xA;scrollpane can still be programmatically scrolled using the&#xA;setScrollPosition() method and the scrollpane will move and clip&#xA;the child's contents appropriately.  This policy is useful if the&#xA;program needs to create and manage its own adjustable controls.&#xA;&lt;P>&#xA;The placement of the scrollbars is controlled by platform-specific&#xA;properties set by the user outside of the program.&#xA;&lt;P>&#xA;The initial size of this container is set to 100x100, but can&#xA;be reset using setSize().&#xA;&lt;P>&#xA;Scrolling with the wheel on a wheel-equipped mouse is enabled by default.&#xA;This can be disabled using &lt;code>setWheelScrollingEnabled&lt;/code>.&#xA;Wheel scrolling can be customized by setting the block and&#xA;unit increment of the horizontal and vertical Adjustables.&#xA;For information on how mouse wheel events are dispatched, see&#xA;the class description for {@link MouseWheelEvent}.&#xA;&lt;P>&#xA;Insets are used to define any space used by scrollbars and any&#xA;borders created by the scroll pane. getInsets() can be used&#xA;to get the current value for the insets.  If the value of&#xA;scrollbarsAlwaysVisible is false, then the value of the insets&#xA;will change dynamically depending on whether the scrollbars are&#xA;currently visible or not.&#xA;&#xA;@version     1.95 05/18/04&#xA;@author      Tom Ball&#xA;@author      Amy Fowler&#xA;@author      Tim Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546596_680435_7115"/>
            <generalization xmi:id="_10_5_622020d_1132928321488_664033_13341" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321488_219115_13340" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546596_680435_7115" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_476955_17118" name="PeerFixer" visibility="package" clientDependency="_10_5_622020d_1132928321488_813108_13342 _10_5_622020d_1132928321498_125556_13343">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321488_813108_13342" name="" supplier="_9_5_f720368_1110473546565_707401_6539" client="_9_5_f720368_1110473547424_476955_17118" contract="_9_5_f720368_1110473546565_707401_6539"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321498_125556_13343" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547424_476955_17118" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_239659_17119" name="AccessibleAWTScrollPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306727_225571_4328" body="This class implements accessibility support for the&#xA;&lt;code>ScrollPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to scroll pane user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_239659_17119"/>
              <generalization xmi:id="_10_5_622020d_1132928321498_992980_13344" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_575757_6981" name="Cursor" clientDependency="_10_5_622020d_1132928321358_298801_13217">
            <ownedComment xmi:id="_10_5_622020d_1132928306397_910477_4170" body="A class to encapsulate the bitmap representation of the mouse cursor.&#xA;&#xA;@see Component#setCursor&#xA;@version &#x9;1.40, 12/19/03&#xA;@author &#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546581_575757_6981"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_298801_13217" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_575757_6981" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_950326_6939" name="AWTPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306326_839607_4111" body="This class is for AWT permissions.&#xA;An &lt;code>AWTPermission&lt;/code> contains a target name but&#xA;no actions list; you either have the named permission&#xA;or you don't.&#xA;&#xA;&lt;P>&#xA;The target name is the name of the AWT permission (see below). The naming&#xA;convention follows the hierarchical property naming convention.&#xA;Also, an asterisk could be used to represent all AWT permissions.&#xA;&#xA;&lt;P>&#xA;The following table lists all the possible &lt;code>AWTPermission&lt;/code>&#xA;target names, and for each provides a description of what the&#xA;permission allows and a discussion of the risks of granting code&#xA;the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;AWTPermission target names, descriptions, and associated risks.&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>accessClipboard&lt;/td>&#xA;&lt;td>Posting and retrieval of information to and from the AWT clipboard&lt;/td>&#xA;&lt;td>This would allow malfeasant code to share&#xA;potentially sensitive or confidential information.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>accessEventQueue&lt;/td>&#xA;&lt;td>Access to the AWT event queue&lt;/td>&#xA;&lt;td>After retrieving the AWT event queue,&#xA;malicious code may peek at and even remove existing events&#xA;from its event queue, as well as post bogus events which may purposefully&#xA;cause the application or applet to misbehave in an insecure manner.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>createRobot&lt;/td>&#xA;&lt;td>Create java.awt.Robot objects&lt;/td>&#xA;&lt;td>The java.awt.Robot object allows code to generate native-level&#xA;mouse and keyboard events as well as read the screen. It could allow&#xA;malicious code to control the system, run other programs, read the&#xA;display, and deny mouse and keyboard access to the user.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>fullScreenExclusive&lt;/td>&#xA;&lt;td>Enter full-screen exclusive mode&lt;/td>&#xA;&lt;td>Entering full-screen exclusive mode allows direct access to&#xA;low-level graphics card memory.  This could be used to spoof the&#xA;system, since the program is in direct control of rendering.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>listenToAllAWTEvents&lt;/td>&#xA;&lt;td>Listen to all AWT events, system-wide&lt;/td>&#xA;&lt;td>After adding an AWT event listener,&#xA;malicious code may scan all AWT events dispatched in the system,&#xA;allowing it to read all user input (such as passwords).  Each&#xA;AWT event listener is called from within the context of that&#xA;event queue's EventDispatchThread, so if the accessEventQueue&#xA;permission is also enabled, malicious code could modify the&#xA;contents of AWT event queues system-wide, causing the application&#xA;or applet to misbehave in an insecure manner.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>readDisplayPixels&lt;/td>&#xA;&lt;td>Readback of pixels from the display screen&lt;/td>&#xA;&lt;td>Interfaces such as the java.awt.Composite interface or the&#xA;java.awt.Robot class allow arbitrary code to examine pixels on the&#xA;display enable malicious code to snoop on the activities of the user.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>replaceKeyboardFocusManager&lt;/td>&#xA;&lt;td>Sets the &lt;code>KeyboardFocusManager&lt;/code> for&#xA;a particular thread.&#xA;&lt;td>When &lt;code>SecurityManager&lt;/code> is installed, the invoking&#xA;thread must be granted this permission in order to replace&#xA;the current &lt;code>KeyboardFocusManager&lt;/code>.  If permission&#xA;is not granted, a &lt;code>SecurityException&lt;/code> will be thrown.&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>showWindowWithoutWarningBanner&lt;/td>&#xA;&lt;td>Display of a window without also displaying a banner warning&#xA;that the window was created by an applet&lt;/td>&#xA;&lt;td>Without this warning,&#xA;an applet may pop up windows without the user knowing that they&#xA;belong to an applet.  Since users may make security-sensitive&#xA;decisions based on whether or not the window belongs to an applet&#xA;(entering a username and password into a dialog box, for example),&#xA;disabling this warning banner may allow applets to trick the user&#xA;into entering such information.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>watchMousePointer&lt;/td>&#xA;&lt;td>Getting the information about the mouse pointer position at any&#xA;time&lt;/td>&#xA;&lt;td>Constantly watching the mouse pointer,&#xA;an applet can make guesses about what the user is doing, i.e. moving&#xA;the mouse to the lower left corner of the screen most likely means that&#xA;the user is about to launch an application. If a virtual keypad is used&#xA;so that keyboard is emulated using the mouse, an applet may guess what&#xA;is being typed.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setWindowAlwaysOnTop&lt;/td>&#xA;&lt;td>Setting always-on-top property of the window: {@link Window#setAlwaysOnTop}&lt;/td>&#xA;&lt;td>The malicious window might make itself look and behave like a real full desktop, so that&#xA;information entered by the unsuspecting user is captured and subsequently misused &lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>setAppletStub&lt;/td>&#xA;&lt;td>Setting the stub which implements Applet container services&lt;/td>&#xA;&lt;td>Malicious code could set an applet's stub and result in unexpected&#xA;behavior or denial of service to an applet.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version &#x9;1.28, 04/21/04&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546581_950326_6939"/>
            <generalization xmi:id="_10_5_622020d_1132928321308_232937_13153" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_170990_7099" name="Polygon" clientDependency="_10_5_622020d_1132928321418_420557_13322 _10_5_622020d_1132928321418_925397_13321">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_484250_4310" body="The &lt;code>Polygon&lt;/code> class encapsulates a description of a&#xA;closed, two-dimensional region within a coordinate space. This&#xA;region is bounded by an arbitrary number of line segments, each of&#xA;which is one side of the polygon. Internally, a polygon&#xA;comprises of a list of (&lt;i>x&lt;/i>,&amp;nbsp;&lt;i>y&lt;/i>)&#xA;coordinate pairs, where each pair defines a &lt;i>vertex&lt;/i> of the&#xA;polygon, and two successive pairs are the endpoints of a&#xA;line that is a side of the polygon. The first and final&#xA;pairs of (&lt;i>x&lt;/i>,&amp;nbsp;&lt;i>y&lt;/i>) points are joined by a line segment&#xA;that closes the polygon.  This &lt;code>Polygon&lt;/code> is defined with&#xA;an even-odd winding rule.  See&#xA;{@link java.awt.geom.PathIterator#WIND_EVEN_ODD WIND_EVEN_ODD}&#xA;for a definition of the even-odd winding rule.&#xA;This class's hit-testing methods, which include the&#xA;&lt;code>contains&lt;/code>, &lt;code>intersects&lt;/code> and &lt;code>inside&lt;/code>&#xA;methods, use the &lt;i>insideness&lt;/i> definition described in the&#xA;{@link Shape} class comments.&#xA;&#xA;@version     1.26, 07/24/98&#xA;@author &#x9;Sami Shaio&#xA;@see Shape&#xA;@author      Herb Jellinek&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_170990_7099"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321418_925397_13321" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546581_170990_7099" contract="_9_5_f720368_1110473546596_367284_7125"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321418_420557_13322" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_170990_7099" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_815164_17102" name="PolygonPathIterator" visibility="package" clientDependency="_10_5_622020d_1132928321418_304652_13323">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321418_304652_13323" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473547409_815164_17102" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_229568_7029" name="GraphicsConfiguration" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306587_820871_4219" body="The &lt;code>GraphicsConfiguration&lt;/code> class describes the&#xA;characteristics of a graphics destination such as a printer or monitor.&#xA;There can be many &lt;code>GraphicsConfiguration&lt;/code> objects associated&#xA;with a single graphics device, representing different drawing modes or&#xA;capabilities.  The corresponding native structure will vary from platform&#xA;to platform.  For example, on X11 windowing systems,&#xA;each visual is a different &lt;code>GraphicsConfiguration&lt;/code>.&#xA;On Microsoft Windows, &lt;code>GraphicsConfiguration&lt;/code>s represent&#xA;PixelFormats available in the current resolution and color depth.&#xA;&lt;p>&#xA;In a virtual device multi-screen environment in which the desktop&#xA;area could span multiple physical screen devices, the bounds of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> objects are relative to the&#xA;virtual coordinate system.  When setting the location of a&#xA;component, use {@link #getBounds() getBounds} to get the bounds of&#xA;the desired &lt;code>GraphicsConfiguration&lt;/code> and offset the location&#xA;with the coordinates of the &lt;code>GraphicsConfiguration&lt;/code>,&#xA;as the following code sample illustrates:&#xA;&lt;/p>&#xA;&#xA;&lt;pre>&#xA;Frame f = new Frame(gc);  // where gc is a GraphicsConfiguration&#xA;Rectangle bounds = gc.getBounds();&#xA;f.setLocation(10 + bounds.x, 10 + bounds.y); &lt;/pre>&#xA;&#xA;&lt;p>&#xA;To determine if your environment is a virtual device&#xA;environment, call &lt;code>getBounds&lt;/code> on all of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> objects in your system.  If&#xA;any of the origins of the returned bounds is not (0,&amp;nbsp;0),&#xA;your environment is a virtual device environment.&#xA;&#xA;&lt;p>&#xA;You can also use &lt;code>getBounds&lt;/code> to determine the bounds&#xA;of the virtual device.  To do this, first call &lt;code>getBounds&lt;/code> on all&#xA;of the &lt;code>GraphicsConfiguration&lt;/code> objects in your&#xA;system.  Then calculate the union of all of the bounds returned&#xA;from the calls to &lt;code>getBounds&lt;/code>.  The union is the&#xA;bounds of the virtual device.  The following code sample&#xA;calculates the bounds of the virtual device.&#xA;&#xA;&lt;pre>&#xA;Rectangle virtualBounds = new Rectangle();&#xA;GraphicsEnvironment ge = GraphicsEnvironment.&#xA;getLocalGraphicsEnvironment();&#xA;GraphicsDevice[] gs =&#xA;ge.getScreenDevices();&#xA;for (int j = 0; j &lt; gs.length; j++) {&#xA;GraphicsDevice gd = gs[j];&#xA;GraphicsConfiguration[] gc =&#xA;gd.getConfigurations();&#xA;for (int i=0; i &lt; gc.length; i++) {&#xA;virtualBounds =&#xA;virtualBounds.union(gc[i].getBounds());&#xA;}&#xA;} &lt;/pre>&#xA;&#xA;@see Window&#xA;@see Frame&#xA;@see GraphicsEnvironment&#xA;@see GraphicsDevice&#xA;" annotatedElement="_9_5_f720368_1110473546581_229568_7029"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_307742_17019" name="DefaultBufferCapabilities" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928321368_238559_13252" isSubstitutable="true" general="_9_5_f720368_1110473546581_365047_6945"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_125034_7041" name="GridLayout" clientDependency="_10_5_622020d_1132928321378_650589_13259 _10_5_622020d_1132928321378_624332_13258">
            <ownedComment xmi:id="_10_5_622020d_1132928306637_285818_4230" body="The &lt;code>GridLayout&lt;/code> class is a layout manager that&#xA;lays out a container's components in a rectangular grid.&#xA;The container is divided into equal-sized rectangles,&#xA;and one component is placed in each rectangle.&#xA;For example, the following is an applet that lays out six buttons&#xA;into three rows and two columns:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&#xA;&lt;pre>&#xA;import java.awt.*;&#xA;import java.applet.Applet;&#xA;public class ButtonGrid extends Applet {&#xA;public void init() {&#xA;setLayout(new GridLayout(3,2));&#xA;add(new Button(&quot;1&quot;));&#xA;add(new Button(&quot;2&quot;));&#xA;add(new Button(&quot;3&quot;));&#xA;add(new Button(&quot;4&quot;));&#xA;add(new Button(&quot;5&quot;));&#xA;add(new Button(&quot;6&quot;));&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;If the container's &lt;code>ComponentOrientation&lt;/code> property is horizontal&#xA;and left-to-right, the above example produces the output shown in Figure 1.&#xA;If the container's &lt;code>ComponentOrientation&lt;/code> property is horizontal&#xA;and right-to-left, the example produces the output shown in Figure 2.&#xA;&lt;p>&#xA;&lt;center>&lt;table COLS=2 WIDTH=600 summary=&quot;layout&quot;>&#xA;&lt;tr ALIGN=CENTER>&#xA;&lt;td>&lt;img SRC=&quot;doc-files/GridLayout-1.gif&quot;&#xA;alt=&quot;Shows 6 buttons in rows of 2. Row 1 shows buttons 1 then 2.&#xA;Row 2 shows buttons 3 then 4. Row 3 shows buttons 5 then 6.&quot;>&#xA;&lt;/td>&#xA;&#xA;&lt;td ALIGN=CENTER>&lt;img SRC=&quot;doc-files/GridLayout-2.gif&quot;&#xA;alt=&quot;Shows 6 buttons in rows of 2. Row 1 shows buttons 2 then 1.&#xA;Row 2 shows buttons 4 then 3. Row 3 shows buttons 6 then 5.&quot;>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr ALIGN=CENTER>&#xA;&lt;td>Figure 1: Horizontal, Left-to-Right&lt;/td>&#xA;&#xA;&lt;td>Figure 2: Horizontal, Right-to-Left&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&lt;/center>&#xA;&lt;p>&#xA;When both the number of rows and the number of columns have&#xA;been set to non-zero values, either by a constructor or&#xA;by the &lt;tt>setRows&lt;/tt> and &lt;tt>setColumns&lt;/tt> methods, the number of&#xA;columns specified is ignored.  Instead, the number of&#xA;columns is determined from the specified number or rows&#xA;and the total number of components in the layout. So, for&#xA;example, if three rows and two columns have been specified&#xA;and nine components are added to the layout, they will&#xA;be displayed as three rows of three columns.  Specifying&#xA;the number of columns affects the layout only when the&#xA;number of rows is set to zero.&#xA;&#xA;@version 1.39, 12/19/03&#xA;@author  Arthur van Hoff&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_125034_7041"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321378_624332_13258" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546581_125034_7041" contract="_9_5_f720368_1110473546581_587570_7065"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321378_650589_13259" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_125034_7041" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_968587_6999" name="Queue" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306417_952852_4191" body="The Queue object holds pointers to the beginning and end of one internal&#xA;queue. An EventQueue object is composed of multiple internal Queues, one&#xA;for each priority supported by the EventQueue. All Events on a particular&#xA;internal Queue have identical priority.&#xA;" annotatedElement="_9_5_f720368_1110473546581_968587_6999"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_59806_7143" name="Transparency" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306767_209341_4359" body="The &lt;code>Transparency&lt;/code> interface defines the common transparency&#xA;modes for implementing classes.&#xA;@version 1.20, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546596_59806_7143"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_920486_6959" name="Choice" clientDependency="_10_5_622020d_1132928321328_839494_13186 _10_5_622020d_1132928321328_662376_13185">
            <ownedComment xmi:id="_10_5_622020d_1132928306377_476715_4137" body="The &lt;code>Choice&lt;/code> class presents a pop-up menu of choices.&#xA;The current choice is displayed as the title of the menu.&#xA;&lt;p>&#xA;The following code example produces a pop-up menu:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;Choice ColorChooser = new Choice();&#xA;ColorChooser.add(&quot;Green&quot;);&#xA;ColorChooser.add(&quot;Red&quot;);&#xA;ColorChooser.add(&quot;Blue&quot;);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;After this choice menu has been added to a panel,&#xA;it appears as follows in its normal state:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Choice-1.gif&quot; alt=&quot;The following text describes the graphic&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;In the picture, &lt;code>&quot;Green&quot;&lt;/code> is the current choice.&#xA;Pushing the mouse button down on the object causes a menu to&#xA;appear with the current choice highlighted.&#xA;&lt;p>&#xA;Some native platforms do not support arbitrary resizing of&#xA;&lt;code>Choice&lt;/code> components and the behavior of&#xA;&lt;code>setSize()/getSize()&lt;/code> is bound by&#xA;such limitations.&#xA;Native GUI &lt;code>Choice&lt;/code> components' size are often bound by such&#xA;attributes as font size and length of items contained within&#xA;the &lt;code>Choice&lt;/code>.&#xA;&lt;p>&#xA;@version&#x9;1.89 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_920486_6959"/>
            <generalization xmi:id="_10_5_622020d_1132928321328_300027_13187" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_662376_13185" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546581_920486_6959" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_839494_13186" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_920486_6959" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_413842_16926" name="AccessibleAWTChoice" visibility="protected" clientDependency="_10_5_622020d_1132928321328_221113_13188">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_11415_4135" body="This class implements accessibility support for the&#xA;&lt;code>Choice&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to choice user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_413842_16926"/>
              <generalization xmi:id="_10_5_622020d_1132928321328_152437_13189" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_221113_13188" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473547378_413842_16926" contract="_9_5_f720368_1110473546706_522529_8953"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_881760_7019" name="GradientPaintContext" visibility="package" clientDependency="_10_5_622020d_1132928321368_788027_13240">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_788027_13240" name="" supplier="_9_5_f720368_1110473546581_660863_7093" client="_9_5_f720368_1110473546581_881760_7019" contract="_9_5_f720368_1110473546581_660863_7093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_424939_7061" name="KeyEventPostProcessor" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_502841_4255" body="A KeyEventPostProcessor cooperates with the current KeyboardFocusManager&#xA;in the final resolution of all unconsumed KeyEvents. KeyEventPostProcessors&#xA;registered with the current KeyboardFocusManager will receive KeyEvents&#xA;after the KeyEvents have been dispatched to and handled by their targets.&#xA;KeyEvents that would have been otherwise discarded because no Component in&#xA;the application currently owns the focus will also be forwarded to&#xA;registered KeyEventPostProcessors. This will allow applications to implement&#xA;features that require global KeyEvent post-handling, such as menu shortcuts.&#xA;&lt;p>&#xA;Note that the KeyboardFocusManager itself implements KeyEventPostProcessor.&#xA;By default, the current KeyboardFocusManager will be the final&#xA;KeyEventPostProcessor in the chain. The current KeyboardFocusManager cannot&#xA;be completely deregistered as a KeyEventPostProcessor. However, if a&#xA;KeyEventPostProcessor reports that no further post-processing of the&#xA;KeyEvent should take place, the AWT will consider the event fully handled&#xA;and will take no additional action with regard to the event. (While it is&#xA;possible for client code to register the current KeyboardFocusManager as&#xA;a KeyEventPostProcessor one or more times, this is usually unnecessary and&#xA;not recommended.)&#xA;&#xA;@author David Mendenhall&#xA;@version 1.5, 12/19/03&#xA;&#xA;@see KeyboardFocusManager#addKeyEventPostProcessor&#xA;@see KeyboardFocusManager#removeKeyEventPostProcessor&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_424939_7061"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547315_237930_16573" name="geom">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_79098_6711" name="RoundRectangle2D" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305956_220727_3876" body="The &lt;code>RoundRectangle2D&lt;/code> class defines a rectangle with&#xA;rounded corners defined by a location (x,&amp;nbsp;y), a&#xA;dimension (w&amp;nbsp;x&amp;nbsp;h), and the width and height of an arc&#xA;with which to round the corners.&#xA;&lt;p>&#xA;This class is the abstract superclass for all objects that&#xA;store a 2D rounded rectangle.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version 1.18, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_79098_6711"/>
              <generalization xmi:id="_10_5_622020d_1132928321218_738779_13038" isSubstitutable="true" general="_9_5_f720368_1110473546565_941353_6707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_865177_16640" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_150173_3873" body="The &lt;code>Float&lt;/code> class defines a rectangle with rounded&#xA;corners all specified in &lt;code>float&lt;/code> coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_865177_16640"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_276850_13039" isSubstitutable="true" general="_9_5_f720368_1110473546565_79098_6711"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_729841_16643" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_12391_3874" body="The &lt;code>Double&lt;/code> class defines a rectangle with rounded&#xA;corners all specified in &lt;code>double&lt;/code> coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_729841_16643"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_405304_13040" isSubstitutable="true" general="_9_5_f720368_1110473546565_79098_6711"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_988530_6663" name="AffineTransform" clientDependency="_10_5_622020d_1132928321188_399212_12994 _10_5_622020d_1132928321188_243507_12995">
              <ownedComment xmi:id="_10_5_622020d_1132928305896_687709_3813" body="The &lt;code>AffineTransform&lt;/code> class represents a 2D affine transform&#xA;that performs a linear mapping from 2D coordinates to other 2D&#xA;coordinates that preserves the &quot;straightness&quot; and&#xA;&quot;parallelness&quot; of lines.  Affine transformations can be constructed&#xA;using sequences of translations, scales, flips, rotations, and shears.&#xA;&lt;p>&#xA;Such a coordinate transformation can be represented by a 3 row by&#xA;3 column matrix with an implied last row of [ 0 0 1 ].  This matrix&#xA;transforms source coordinates &lt;code>(x,&amp;nbsp;y)&lt;/code> into&#xA;destination coordinates &lt;code>(x',&amp;nbsp;y')&lt;/code> by considering&#xA;them to be a column vector and multiplying the coordinate vector&#xA;by the matrix according to the following process:&#xA;&lt;pre>&#xA;[ x']   [  m00  m01  m02  ] [ x ]   [ m00x + m01y + m02 ]&#xA;[ y'] = [  m10  m11  m12  ] [ y ] = [ m10x + m11y + m12 ]&#xA;[ 1 ]   [   0    0    1   ] [ 1 ]   [         1         ]&#xA;&lt;/pre>&#xA;&#xA;@version 1.71, 12/19/03&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_988530_6663"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321188_399212_12994" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_988530_6663" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321188_243507_12995" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_988530_6663" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_232830_6681" name="EllipseIterator" visibility="package" clientDependency="_10_5_622020d_1132928321198_601543_13012">
              <ownedComment xmi:id="_10_5_622020d_1132928305926_24403_3836" body="A utility class to iterate over the path segments of an ellipse&#xA;through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_232830_6681"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_601543_13012" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_232830_6681" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_108946_6697" name="PathIterator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_250801_3854" body="The &lt;code>PathIterator&lt;/code> interface provides the mechanism&#xA;for objects that implement the {@link java.awt.Shape Shape}&#xA;interface to return the geometry of their boundary by allowing&#xA;a caller to retrieve the path of that boundary a segment at a&#xA;time.  This interface allows these objects to retrieve the path of&#xA;their boundary a segment at a time by using 1st through 3rd order&#xA;B&amp;eacute;zier curves, which are lines and quadratic or cubic&#xA;B&amp;eacute;zier splines.&#xA;&lt;p>&#xA;Multiple subpaths can be expressed by using a &quot;MOVETO&quot; segment to&#xA;create a discontinuity in the geometry to move from the end of&#xA;one subpath to the beginning of the next.&#xA;&lt;p>&#xA;Each subpath can be closed manually by ending the last segment in&#xA;the subpath on the same coordinate as the beginning &quot;MOVETO&quot; segment&#xA;for that subpath or by using a &quot;CLOSE&quot; segment to append a line&#xA;segment from the last point back to the first.&#xA;Be aware that manually closing an outline as opposed to using a&#xA;&quot;CLOSE&quot; segment to close the path might result in different line&#xA;style decorations being used at the end points of the subpath.&#xA;For example, the {@link java.awt.BasicStroke BasicStroke} object&#xA;uses a line &quot;JOIN&quot; decoration to connect the first and last points&#xA;if a &quot;CLOSE&quot; segment is encountered, whereas simply ending the path&#xA;on the same coordinate as the beginning coordinate results in line&#xA;&quot;CAP&quot; decorations being used at the ends.&#xA;&#xA;@see java.awt.Shape&#xA;@see java.awt.BasicStroke&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_403691_6683" name="FlatteningPathIterator" clientDependency="_10_5_622020d_1132928321198_682843_13013">
              <ownedComment xmi:id="_10_5_622020d_1132928305926_128263_3838" body="The &lt;code>FlatteningPathIterator&lt;/code> class returns a flattened view of&#xA;another {@link PathIterator} object.  Other {@link java.awt.Shape Shape}&#xA;classes can use this class to provide flattening behavior for their paths&#xA;without having to perform the interpolation calculations themselves.&#xA;&#xA;@version 1.6 06/29/98&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_403691_6683"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_682843_13013" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_403691_6683" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_189623_6705" name="Rectangle2D" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_16304_3868" body="The &lt;code>Rectangle2D&lt;/code> class describes a rectangle&#xA;defined by a location (x,&amp;nbsp;y) and dimension&#xA;(w&amp;nbsp;x&amp;nbsp;h).&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects that&#xA;store a 2D rectangle.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.29, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_189623_6705"/>
              <generalization xmi:id="_10_5_622020d_1132928321218_241826_13032" isSubstitutable="true" general="_9_5_f720368_1110473546565_941353_6707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_980217_16631" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_952360_3865" body="The &lt;code>Float&lt;/code> class defines a rectangle specified in float&#xA;coordinates.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547315_980217_16631"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_458486_13033" isSubstitutable="true" general="_9_5_f720368_1110473546565_189623_6705"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_253165_16634" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_124307_3866" body="The &lt;code>Double&lt;/code> class defines a rectangle specified in&#xA;double coordinates.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547315_253165_16634"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_23029_13034" isSubstitutable="true" general="_9_5_f720368_1110473546565_189623_6705"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_669713_6671" name="AreaIterator" visibility="package" clientDependency="_10_5_622020d_1132928321198_28229_13002">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_28229_13002" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_669713_6671" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_498512_6687" name="GeneralPathIterator" visibility="package" clientDependency="_10_5_622020d_1132928321198_108170_13016">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_366245_3842" body="This class represents the iterator for General Paths.&#xA;It can be used to retrieve all of the elements in a GeneralPath.&#xA;The {@link GeneralPath#getPathIterator}&#xA;method is used to create a&#xA;GeneralPathIterator for a particular GeneralPath.&#xA;The iterator can be used to iterator the path only once.&#xA;Subsequent iterations require a new iterator.&#xA;&#xA;@see GeneralPath&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_498512_6687"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_108170_13016" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_498512_6687" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_921423_6673" name="CubicCurve2D" clientDependency="_10_5_622020d_1132928321198_361769_13004 _10_5_622020d_1132928321198_900677_13003" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305906_204886_3826" body="The &lt;code>CubicCurve2D&lt;/code> class defines a cubic parametric curve&#xA;segment in (x,&amp;nbsp; y) coordinate space.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects which&#xA;store a 2D cubic curve segment.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.29, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_921423_6673"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_900677_13003" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_921423_6673" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_361769_13004" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_921423_6673" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_204800_16585" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305906_878669_3823" body="A cubic parametric curve segment specified with float coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_204800_16585"/>
                <generalization xmi:id="_10_5_622020d_1132928321198_977149_13005" isSubstitutable="true" general="_9_5_f720368_1110473546565_921423_6673"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_581309_16588" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305906_699712_3824" body="A cubic parametric curve segment specified with double coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_581309_16588"/>
                <generalization xmi:id="_10_5_622020d_1132928321198_817262_13006" isSubstitutable="true" general="_9_5_f720368_1110473546565_921423_6673"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_834212_6699" name="Point2D" clientDependency="_10_5_622020d_1132928321208_584795_13024" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_122222_3858" body="The &lt;code>Point2D&lt;/code> class defines a point representing a location&#xA;in (x,&amp;nbsp;y) coordinate space.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects that&#xA;store a 2D coordinate.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.18, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_834212_6699"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_584795_13024" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_834212_6699" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_871668_16616" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_508976_3855" body="The &lt;code>Float&lt;/code> class defines a point specified in float&#xA;precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_871668_16616"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_135285_13025" isSubstitutable="true" general="_9_5_f720368_1110473546565_834212_6699"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_270644_16619" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_743399_3856" body="The &lt;code>Double&lt;/code> class defines a point specified in&#xA;&lt;code>double&lt;/code> precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_270644_16619"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_99286_13026" isSubstitutable="true" general="_9_5_f720368_1110473546565_834212_6699"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_797811_6701" name="QuadCurve2D" clientDependency="_10_5_622020d_1132928321208_193817_13028 _10_5_622020d_1132928321208_795587_13027" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_208645_3862" body="The &lt;code>QuadCurve2D&lt;/code> class defines a quadratic parametric curve&#xA;segment in (x,&amp;nbsp;y) coordinate space.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects that&#xA;store a 2D quadratic curve segment.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.29, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_797811_6701"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_795587_13027" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_797811_6701" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_193817_13028" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_797811_6701" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_232206_16623" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_333328_3859" body="A quadratic parametric curve segment specified with&#xA;&lt;code>float&lt;/code> coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_232206_16623"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_783370_13029" isSubstitutable="true" general="_9_5_f720368_1110473546565_797811_6701"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_857265_16626" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305946_729797_3860" body="A quadratic parametric curve segment specified with&#xA;&lt;code>double&lt;/code> coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_857265_16626"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_669505_13030" isSubstitutable="true" general="_9_5_f720368_1110473546565_797811_6701"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_63823_6667" name="ArcIterator" visibility="package" clientDependency="_10_5_622020d_1132928321198_521702_12999">
              <ownedComment xmi:id="_10_5_622020d_1132928305906_947571_3819" body="A utility class to iterate over the path segments of an arc&#xA;through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_63823_6667"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_521702_12999" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_63823_6667" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_688301_6709" name="RectIterator" visibility="package" clientDependency="_10_5_622020d_1132928321218_667756_13037">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_742035_3872" body="A utility class to iterate over the path segments of a rectangle&#xA;through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_688301_6709"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321218_667756_13037" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_688301_6709" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_731543_6689" name="IllegalPathStateException">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_480530_3844" body="The &lt;code>IllegalPathStateException&lt;/code> represents an&#xA;exception that is thrown if an operation is performed on a path&#xA;that is in an illegal state with respect to the particular&#xA;operation being performed, such as appending a path segment&#xA;to a {@link GeneralPath} without an initial moveto.&#xA;&#xA;@version &#x9;1.12, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546565_731543_6689"/>
              <generalization xmi:id="_10_5_622020d_1132928321208_849148_13017" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_941353_6707" name="RectangularShape" clientDependency="_10_5_622020d_1132928321218_232042_13035 _10_5_622020d_1132928321218_938810_13036" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_15223_3870" body="&lt;code>RectangularShape&lt;/code> is the base class for a number of&#xA;{@link Shape} objects whose geometry is defined by a rectangular frame.&#xA;This class does not directly specify any specific geometry by&#xA;itself, but merely provides manipulation methods inherited by&#xA;a whole category of &lt;code>Shape&lt;/code> objects.&#xA;The manipulation methods provided by this class can be used to&#xA;query and modify the rectangular frame, which provides a reference&#xA;for the subclasses to define their geometry.&#xA;&#xA;@version &#x9;1.18, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_941353_6707"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321218_232042_13035" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_941353_6707" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321218_938810_13036" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_941353_6707" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_103148_6675" name="CubicIterator" visibility="package" clientDependency="_10_5_622020d_1132928321198_234887_13007">
              <ownedComment xmi:id="_10_5_622020d_1132928305906_124533_3828" body="A utility class to iterate over the path segments of a cubic curve&#xA;segment through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_103148_6675"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_234887_13007" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_103148_6675" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_46264_6685" name="GeneralPath" clientDependency="_10_5_622020d_1132928321198_784191_13014 _10_5_622020d_1132928321198_366634_13015" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_182229_3840" body="The &lt;code>GeneralPath&lt;/code> class represents a geometric path&#xA;constructed from straight lines, and quadratic and cubic&#xA;(B&amp;eacute;zier) curves.  It can contain multiple subpaths.&#xA;&lt;p>&#xA;The winding rule specifies how the interior of a path is&#xA;determined.  There are two types of winding rules:&#xA;EVEN_ODD and NON_ZERO.&#xA;&lt;p>&#xA;An EVEN_ODD winding rule means that enclosed regions&#xA;of the path alternate between interior and exterior areas as&#xA;traversed from the outside of the path towards a point inside&#xA;the region.&#xA;&lt;p>&#xA;A NON_ZERO winding rule means that if a ray is&#xA;drawn in any direction from a given point to infinity&#xA;and the places where the path intersects&#xA;the ray are examined, the point is inside of the path if and only if&#xA;the number of times that the path crosses the ray from&#xA;left to right does not equal the  number of times that the path crosses&#xA;the ray from right to left.&#xA;@version 1.59, 12/19/03&#xA;@author Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_46264_6685"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_784191_13014" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_46264_6685" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_366634_13015" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_46264_6685" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_597159_6679" name="Ellipse2D" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305926_403764_3834" body="The &lt;code>Ellipse2D&lt;/code> class describes an ellipse that is defined&#xA;by a bounding rectangle.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects which&#xA;store a 2D ellipse.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_597159_6679"/>
              <generalization xmi:id="_10_5_622020d_1132928321198_51389_13009" isSubstitutable="true" general="_9_5_f720368_1110473546565_941353_6707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_453407_16594" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305926_348195_3831" body="The &lt;code>Float&lt;/code> class defines an ellipse specified&#xA;in &lt;code>float&lt;/code> precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_453407_16594"/>
                <generalization xmi:id="_10_5_622020d_1132928321198_872961_13010" isSubstitutable="true" general="_9_5_f720368_1110473546565_597159_6679"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_530970_16597" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305926_401496_3832" body="The &lt;code>Double&lt;/code> class defines an ellipse specified&#xA;in &lt;code>double&lt;/code> precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_530970_16597"/>
                <generalization xmi:id="_10_5_622020d_1132928321198_584164_13011" isSubstitutable="true" general="_9_5_f720368_1110473546565_597159_6679"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_197979_6669" name="Area" clientDependency="_10_5_622020d_1132928321198_259145_13000 _10_5_622020d_1132928321198_410806_13001">
              <ownedComment xmi:id="_10_5_622020d_1132928305906_481045_3821" body="The &lt;code>Area&lt;/code> class is a device-independent specification of an&#xA;arbitrarily-shaped area.  The &lt;code>Area&lt;/code> object is defined as an&#xA;object that performs certain binary CAG (Constructive Area Geometry)&#xA;operations on other area-enclosing geometries, such as rectangles,&#xA;ellipses, and polygons. The CAG operations are Add(union), Subtract,&#xA;Intersect, and ExclusiveOR. For example, an &lt;code>Area&lt;/code> can be&#xA;made up of the area of a rectangle minus the area of an ellipse.&#xA;" annotatedElement="_9_5_f720368_1110473546565_197979_6669"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_259145_13000" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_197979_6669" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_410806_13001" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_197979_6669" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_716213_6703" name="QuadIterator" visibility="package" clientDependency="_10_5_622020d_1132928321208_996008_13031">
              <ownedComment xmi:id="_10_5_622020d_1132928305946_867235_3864" body="A utility class to iterate over the path segments of a quadratic curve&#xA;segment through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_716213_6703"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_996008_13031" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_716213_6703" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_363121_6665" name="Arc2D" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305906_491377_3817" body="&lt;CODE>Arc2D&lt;/CODE> is the abstract superclass for all objects that&#xA;store a 2D arc defined by a bounding rectangle,&#xA;start angle, angular extent (length of the arc), and a closure type&#xA;(&lt;CODE>OPEN&lt;/CODE>, &lt;CODE>CHORD&lt;/CODE>, or &lt;CODE>PIE&lt;/CODE>).&#xA;&lt;p>&#xA;The bounding rectangle defines the outer boundary of the full ellipse&#xA;of which this arc is a partial section.&#xA;The angles are specified relative to the non-square extents of the&#xA;bounding rectangle such that 45 degrees always falls on the line from&#xA;the center of the ellipse to the upper right corner of the bounding&#xA;rectangle.&#xA;As a result, if the bounding rectangle is noticeably longer along one&#xA;axis than the other, the angles to the start and end of the arc segment&#xA;will be skewed farther along the longer axis of the bounds.&#xA;&lt;p>&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_363121_6665"/>
              <generalization xmi:id="_10_5_622020d_1132928321188_424814_12996" isSubstitutable="true" general="_9_5_f720368_1110473546565_941353_6707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_976963_16576" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305896_21850_3814" body="This class defines an arc specified in float precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_976963_16576"/>
                <generalization xmi:id="_10_5_622020d_1132928321188_36274_12997" isSubstitutable="true" general="_9_5_f720368_1110473546565_363121_6665"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_187175_16579" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305896_42865_3815" body="This class defines an arc specified in double precision.&#xA;" annotatedElement="_9_5_f720368_1110473547315_187175_16579"/>
                <generalization xmi:id="_10_5_622020d_1132928321188_810731_12998" isSubstitutable="true" general="_9_5_f720368_1110473546565_363121_6665"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_915789_6691" name="Line2D" clientDependency="_10_5_622020d_1132928321208_130401_13018 _10_5_622020d_1132928321208_174839_13019" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_871330_3848" body="This &lt;code>Line2D&lt;/code> represents a line segment in (x,&amp;nbsp;y)&#xA;coordinate space.  This class, like all of the Java 2D API, uses a&#xA;default coordinate system called &lt;i>user space&lt;/i> in which the y-axis&#xA;values increase downward and x-axis values increase to the right.  For&#xA;more information on the user space coordinate system, see the&#xA;&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/2d/spec/j2d-intro.fm2.html#61857&quot;>&#xA;Coordinate Systems&lt;/a> section of the Java 2D Programmer's Guide.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects that&#xA;store a 2D line segment.&#xA;The actual storage representation of the coordinates is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.28, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_915789_6691"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_130401_13018" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546565_915789_6691" contract="_9_5_f720368_1110473546596_367284_7125"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_174839_13019" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_915789_6691" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_74986_16606" name="Float">
                <ownedComment xmi:id="_10_5_622020d_1132928305936_966469_3845" body="A line segment specified with float coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_74986_16606"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_491124_13020" isSubstitutable="true" general="_9_5_f720368_1110473546565_915789_6691"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547315_199322_16609" name="Double">
                <ownedComment xmi:id="_10_5_622020d_1132928305936_948619_3846" body="A line segment specified with double coordinates.&#xA;" annotatedElement="_9_5_f720368_1110473547315_199322_16609"/>
                <generalization xmi:id="_10_5_622020d_1132928321208_732165_13021" isSubstitutable="true" general="_9_5_f720368_1110473546565_915789_6691"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_842229_6677" name="Dimension2D" clientDependency="_10_5_622020d_1132928321198_336509_13008" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305926_263482_3830" body="The &lt;code>Dimension2D&lt;/code> class is to encapsulate a width&#xA;and a height dimension.&#xA;&lt;p>&#xA;This class is only the abstract superclass for all objects that&#xA;store a 2D dimension.&#xA;The actual storage representation of the sizes is left to&#xA;the subclass.&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_842229_6677"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321198_336509_13008" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_842229_6677" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_81280_6693" name="LineIterator" visibility="package" clientDependency="_10_5_622020d_1132928321208_961473_13022">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_25480_3850" body="A utility class to iterate over the path segments of a line segment&#xA;through the PathIterator interface.&#xA;&#xA;@version &#x9;1.10, 12/19/03&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_81280_6693"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321208_961473_13022" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_81280_6693" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_267781_6695" name="NoninvertibleTransformException">
              <ownedComment xmi:id="_10_5_622020d_1132928305936_439747_3852" body="The &lt;code>NoninvertibleTransformException&lt;/code> class represents&#xA;an exception that is thrown if an operation is performed requiring&#xA;the inverse of an {@link AffineTransform} object but the&#xA;&lt;code>AffineTransform&lt;/code> is in a non-invertible state.&#xA;@version &#x9;1.18, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546565_267781_6695"/>
              <generalization xmi:id="_10_5_622020d_1132928321208_237023_13023" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_642394_6713" name="RoundRectIterator" visibility="package" clientDependency="_10_5_622020d_1132928321218_814051_13041">
              <ownedComment xmi:id="_10_5_622020d_1132928305956_575843_3878" body="A utility class to iterate over the path segments of an rounded rectangle&#xA;through the PathIterator interface.&#xA;&#xA;@version 10 Feb 1997&#xA;@author&#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_642394_6713"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321218_814051_13041" name="" supplier="_9_5_f720368_1110473546565_108946_6697" client="_9_5_f720368_1110473546565_642394_6713" contract="_9_5_f720368_1110473546565_108946_6697"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_678736_7105" name="PrintJob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_154578_4317" body="An abstract class which initiates and executes a print job.&#xA;It provides access to a print graphics object which renders&#xA;to an appropriate print device.&#xA;&#xA;@see Toolkit#getPrintJob&#xA;&#xA;@version &#x9;1.13 12/19/03&#xA;@author &#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546581_678736_7105"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_424045_7051" name="Insets" clientDependency="_10_5_622020d_1132928321388_76641_13264 _10_5_622020d_1132928321388_444693_13263">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_141873_4240" body="An &lt;code>Insets&lt;/code> object is a representation of the borders&#xA;of a container. It specifies the space that a container must leave&#xA;at each of its edges. The space can be a border, a blank space, or&#xA;a title.&#xA;&#xA;@version &#x9;1.30, 12/19/03&#xA;@author &#x9;Arthur van Hoff&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.LayoutManager&#xA;@see         java.awt.Container&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_424045_7051"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_444693_13263" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_424045_7051" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_76641_13264" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_424045_7051" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_314902_7011" name="FontFormatException">
            <ownedComment xmi:id="_10_5_622020d_1132928306437_598912_4202" body="Thrown by method createFont in the &lt;code>Font&lt;/code> class to indicate&#xA;that the specified font is bad.&#xA;&#xA;@author  Parry Kejriwal&#xA;@version 1.8, 12/19/03&#xA;@see     java.awt.Font&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546581_314902_7011"/>
            <generalization xmi:id="_10_5_622020d_1132928321368_379215_13234" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_627972_6951" name="CardLayout" clientDependency="_10_5_622020d_1132928321318_632953_13168 _10_5_622020d_1132928321318_740265_13169">
            <ownedComment xmi:id="_10_5_622020d_1132928306367_923804_4126" body="A &lt;code>CardLayout&lt;/code> object is a layout manager for a&#xA;container. It treats each component in the container as a card.&#xA;Only one card is visible at a time, and the container acts as&#xA;a stack of cards. The first component added to a&#xA;&lt;code>CardLayout&lt;/code> object is the visible component when the&#xA;container is first displayed.&#xA;&lt;p>&#xA;The ordering of cards is determined by the container's own internal&#xA;ordering of its component objects. &lt;code>CardLayout&lt;/code>&#xA;defines a set of methods that allow an application to flip&#xA;through these cards sequentially, or to show a specified card.&#xA;The {@link CardLayout#addLayoutComponent}&#xA;method can be used to associate a string identifier with a given card&#xA;for fast random access.&#xA;&#xA;@version &#x9;1.40 05/18/04&#xA;@author &#x9;Arthur van Hoff&#xA;@see         java.awt.Container&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_627972_6951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321318_632953_13168" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546581_627972_6951" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321318_740265_13169" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_627972_6951" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_369554_16917" name="Card" visibility="package" clientDependency="_10_5_622020d_1132928321318_818382_13170">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321318_818382_13170" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547378_369554_16917" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_371788_7015" name="Frame" clientDependency="_10_5_622020d_1132928321368_454370_13236">
            <ownedComment xmi:id="_10_5_622020d_1132928306457_989259_4207" body="A &lt;code>Frame&lt;/code> is a top-level window with a title and a border.&#xA;&lt;p>&#xA;The size of the frame includes any area designated for the&#xA;border.  The dimensions of the border area may be obtained&#xA;using the &lt;code>getInsets&lt;/code> method, however, since&#xA;these dimensions are platform-dependent, a valid insets&#xA;value cannot be obtained until the frame is made displayable&#xA;by either calling &lt;code>pack&lt;/code> or &lt;code>show&lt;/code>.&#xA;Since the border area is included in the overall size of the&#xA;frame, the border effectively obscures a portion of the frame,&#xA;constraining the area available for rendering and/or displaying&#xA;subcomponents to the rectangle which has an upper-left corner&#xA;location of &lt;code>(insets.left, insets.top)&lt;/code>, and has a size of&#xA;&lt;code>width - (insets.left + insets.right)&lt;/code> by&#xA;&lt;code>height - (insets.top + insets.bottom)&lt;/code>.&#xA;&lt;p>&#xA;The default layout for a frame is &lt;code>BorderLayout&lt;/code>.&#xA;&lt;p>&#xA;A frame may have its native decorations (i.e. &lt;code>Frame&lt;/code>&#xA;and &lt;code>Titlebar&lt;/code>) turned off&#xA;with &lt;code>setUndecorated&lt;/code>. This can only be done while the frame&#xA;is not {@link Component#isDisplayable() displayable}.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>Frame&lt;/code>&#xA;on a different screen device by constructing the &lt;code>Frame&lt;/code>&#xA;with {@link #Frame(GraphicsConfiguration)} or&#xA;{@link #Frame(String title, GraphicsConfiguration)}.  The&#xA;&lt;code>GraphicsConfiguration&lt;/code> object is one of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> objects of the target screen&#xA;device.&#xA;&lt;p>&#xA;In a virtual device multi-screen environment in which the desktop&#xA;area could span multiple physical screen devices, the bounds of all&#xA;configurations are relative to the virtual-coordinate system.  The&#xA;origin of the virtual-coordinate system is at the upper left-hand&#xA;corner of the primary physical screen.  Depending on the location&#xA;of the primary screen in the virtual device, negative coordinates&#xA;are possible, as shown in the following figure.&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/MultiScreen.gif&quot;&#xA;alt=&quot;Diagram of virtual device encompassing three physical screens and one primary physical screen. The primary physical screen&#xA;shows (0,0) coords while a different physical screen shows (-80,-100) coords.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;In such an environment, when calling &lt;code>setLocation&lt;/code>,&#xA;you must pass a virtual coordinate to this method.  Similarly,&#xA;calling &lt;code>getLocationOnScreen&lt;/code> on a &lt;code>Frame&lt;/code>&#xA;returns virtual device coordinates.  Call the &lt;code>getBounds&lt;/code>&#xA;method of a &lt;code>GraphicsConfiguration&lt;/code> to find its origin in&#xA;the virtual coordinate system.&#xA;&lt;p>&#xA;The following code sets the&#xA;location of the &lt;code>Frame&lt;/code> at (10, 10) relative&#xA;to the origin of the physical screen of the corresponding&#xA;&lt;code>GraphicsConfiguration&lt;/code>.  If the bounds of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> is not taken into account, the&#xA;&lt;code>Frame&lt;/code> location would be set at (10, 10) relative to the&#xA;virtual-coordinate system and would appear on the primary physical&#xA;screen, which might be different from the physical screen of the&#xA;specified &lt;code>GraphicsConfiguration&lt;/code>.&#xA;&#xA;&lt;pre>&#xA;Frame f = new Frame(GraphicsConfiguration gc);&#xA;Rectangle bounds = gc.getBounds();&#xA;f.setLocation(10 + bounds.x, 10 + bounds.y);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Frames are capable of generating the following types of&#xA;&lt;code>WindowEvent&lt;/code>s:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>WINDOW_OPENED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_CLOSING&lt;/code>:&#xA;&lt;br>If the program doesn't&#xA;explicitly hide or dispose the window while processing&#xA;this event, the window close operation is canceled.&#xA;&lt;li>&lt;code>WINDOW_CLOSED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_ICONIFIED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_DEICONIFIED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_ACTIVATED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_DEACTIVATED&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_GAINED_FOCUS&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_LOST_FOCUS&lt;/code>&#xA;&lt;li>&lt;code>WINDOW_STATE_CHANGED&lt;/code>&#xA;&lt;/ul>&#xA;&#xA;@version &#x9;1.147, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@see WindowEvent&#xA;@see Window#addWindowListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_371788_7015"/>
            <generalization xmi:id="_10_5_622020d_1132928321368_254125_13237" isSubstitutable="true" general="_9_5_f720368_1110473546596_890326_7145"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_454370_13236" name="" supplier="_9_5_f720368_1110473546581_187052_7083" client="_9_5_f720368_1110473546581_371788_7015" contract="_9_5_f720368_1110473546581_187052_7083"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_523464_16996" name="AccessibleAWTFrame" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306457_207345_4205" body="This class implements accessibility support for the&#xA;&lt;code>Frame&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to frame user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547393_523464_16996"/>
              <generalization xmi:id="_10_5_622020d_1132928321368_872897_13238" isSubstitutable="true" general="_9_5_f720368_1110473547424_716093_17151"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_913575_6925" name="AlphaComposite" clientDependency="_10_5_622020d_1132928321298_730061_13131" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306306_194234_4096" body="The &lt;code>AlphaComposite&lt;/code> class implements basic alpha&#xA;compositing rules for combining source and destination colors&#xA;to achieve blending and transparency effects with graphics and&#xA;images.&#xA;The specific rules implemented by this class are the basic set&#xA;of 12 rules described in&#xA;T. Porter and T. Duff, &quot;Compositing Digital Images&quot;, SIGGRAPH 84,&#xA;253-259.&#xA;The rest of this documentation assumes some familiarity with the&#xA;definitions and concepts outlined in that paper.&#xA;&#xA;&lt;p>&#xA;This class extends the standard equations defined by Porter and&#xA;Duff to include one additional factor.&#xA;An instance of the &lt;code>AlphaComposite&lt;/code> class can contain&#xA;an alpha value that is used to modify the opacity or coverage of&#xA;every source pixel before it is used in the blending equations.&#xA;&#xA;&lt;p>&#xA;It is important to note that the equations defined by the Porter&#xA;and Duff paper are all defined to operate on color components&#xA;that are premultiplied by their corresponding alpha components.&#xA;Since the &lt;code>ColorModel&lt;/code> and &lt;code>Raster&lt;/code> classes&#xA;allow the storage of pixel data in either premultiplied or&#xA;non-premultiplied form, all input data must be normalized into&#xA;premultiplied form before applying the equations and all results&#xA;might need to be adjusted back to the form required by the destination&#xA;before the pixel values are stored.&#xA;&#xA;&lt;p>&#xA;Also note that this class defines only the equations&#xA;for combining color and alpha values in a purely mathematical&#xA;sense. The accurate application of its equations depends&#xA;on the way the data is retrieved from its sources and stored&#xA;in its destinations.&#xA;See &lt;a href=&quot;#caveats&quot;>Implementation Caveats&lt;/a>&#xA;for further information.&#xA;&#xA;&lt;p>&#xA;The following factors are used in the description of the blending&#xA;equation in the Porter and Duff paper:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;th align=left>Factor&amp;nbsp;&amp;nbsp;&lt;th align=left>Definition&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>s&lt;/sub>&lt;/em>&lt;td>the alpha component of the source pixel&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>s&lt;/sub>&lt;/em>&lt;td>a color component of the source pixel in premultiplied form&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>d&lt;/sub>&lt;/em>&lt;td>the alpha component of the destination pixel&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>d&lt;/sub>&lt;/em>&lt;td>a color component of the destination pixel in premultiplied form&#xA;&lt;tr>&lt;td>&lt;em>F&lt;sub>s&lt;/sub>&lt;/em>&lt;td>the fraction of the source pixel that contributes to the output&#xA;&lt;tr>&lt;td>&lt;em>F&lt;sub>d&lt;/sub>&lt;/em>&lt;td>the fraction of the destination pixel that contributes&#xA;to the output&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>r&lt;/sub>&lt;/em>&lt;td>the alpha component of the result&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>r&lt;/sub>&lt;/em>&lt;td>a color component of the result in premultiplied form&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Using these factors, Porter and Duff define 12 ways of choosing&#xA;the blending factors &lt;em>F&lt;sub>s&lt;/sub>&lt;/em> and &lt;em>F&lt;sub>d&lt;/sub>&lt;/em> to&#xA;produce each of 12 desirable visual effects.&#xA;The equations for determining &lt;em>F&lt;sub>s&lt;/sub>&lt;/em> and &lt;em>F&lt;sub>d&lt;/sub>&lt;/em>&#xA;are given in the descriptions of the 12 static fields&#xA;that specify visual effects.&#xA;For example,&#xA;the description for&#xA;&lt;a href=&quot;#SRC_OVER&quot;>&lt;code>SRC_OVER&lt;/code>&lt;/a>&#xA;specifies that &lt;em>F&lt;sub>s&lt;/sub>&lt;/em> = 1 and &lt;em>F&lt;sub>d&lt;/sub>&lt;/em> = (1-&lt;em>A&lt;sub>s&lt;/sub>&lt;/em>).&#xA;Once a set of equations for determining the blending factors is&#xA;known they can then be applied to each pixel to produce a result&#xA;using the following set of equations:&#xA;&#xA;&lt;pre>&#xA;&lt;em>F&lt;sub>s&lt;/sub>&lt;/em> = &lt;em>f&lt;/em>(&lt;em>A&lt;sub>d&lt;/sub>&lt;/em>)&#xA;&lt;em>F&lt;sub>d&lt;/sub>&lt;/em> = &lt;em>f&lt;/em>(&lt;em>A&lt;sub>s&lt;/sub>&lt;/em>)&#xA;&lt;em>A&lt;sub>r&lt;/sub>&lt;/em> = &lt;em>A&lt;sub>s&lt;/sub>&lt;/em>*&lt;em>F&lt;sub>s&lt;/sub>&lt;/em> + &lt;em>A&lt;sub>d&lt;/sub>&lt;/em>*&lt;em>F&lt;sub>d&lt;/sub>&lt;/em>&#xA;&lt;em>C&lt;sub>r&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>s&lt;/sub>&lt;/em>*&lt;em>F&lt;sub>s&lt;/sub>&lt;/em> + &lt;em>C&lt;sub>d&lt;/sub>&lt;/em>*&lt;em>F&lt;sub>d&lt;/sub>&lt;/em>&lt;/pre>&#xA;&#xA;&lt;p>&#xA;The following factors will be used to discuss our extensions to&#xA;the blending equation in the Porter and Duff paper:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table summary=&quot;layout&quot;>&#xA;&lt;tr>&lt;th align=left>Factor&amp;nbsp;&amp;nbsp;&lt;th align=left>Definition&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>sr&lt;/sub>&lt;/em> &lt;td>one of the raw color components of the source pixel&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>dr&lt;/sub>&lt;/em> &lt;td>one of the raw color components of the destination pixel&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>ac&lt;/sub>&lt;/em>  &lt;td>the &quot;extra&quot; alpha component from the AlphaComposite instance&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>sr&lt;/sub>&lt;/em> &lt;td>the raw alpha component of the source pixel&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>dr&lt;/sub>&lt;/em>&lt;td>the raw alpha component of the destination pixel&#xA;&lt;tr>&lt;td>&lt;em>A&lt;sub>df&lt;/sub>&lt;/em> &lt;td>the final alpha component stored in the destination&#xA;&lt;tr>&lt;td>&lt;em>C&lt;sub>df&lt;/sub>&lt;/em> &lt;td>the final raw color component stored in the destination&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;h3>Preparing Inputs&lt;/h3>&#xA;&#xA;&lt;p>&#xA;The &lt;code>AlphaComposite&lt;/code> class defines an additional alpha&#xA;value that is applied to the source alpha.&#xA;This value is applied as if an implicit SRC_IN rule were first&#xA;applied to the source pixel against a pixel with the indicated&#xA;alpha by multiplying both the raw source alpha and the raw&#xA;source colors by the alpha in the &lt;code>AlphaComposite&lt;/code>.&#xA;This leads to the following equation for producing the alpha&#xA;used in the Porter and Duff blending equation:&#xA;&#xA;&lt;pre>&#xA;&lt;em>A&lt;sub>s&lt;/sub>&lt;/em> = &lt;em>A&lt;sub>sr&lt;/sub>&lt;/em> * &lt;em>A&lt;sub>ac&lt;/sub>&lt;/em> &lt;/pre>&#xA;&#xA;All of the raw source color components need to be multiplied&#xA;by the alpha in the &lt;code>AlphaComposite&lt;/code> instance.&#xA;Additionally, if the source was not in premultiplied form&#xA;then the color components also need to be multiplied by the&#xA;source alpha.&#xA;Thus, the equation for producing the source color components&#xA;for the Porter and Duff equation depends on whether the source&#xA;pixels are premultiplied or not:&#xA;&#xA;&lt;pre>&#xA;&lt;em>C&lt;sub>s&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>sr&lt;/sub>&lt;/em> * &lt;em>A&lt;sub>sr&lt;/sub>&lt;/em> * &lt;em>A&lt;sub>ac&lt;/sub>&lt;/em>     (if source is not premultiplied)&#xA;&lt;em>C&lt;sub>s&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>sr&lt;/sub>&lt;/em> * &lt;em>A&lt;sub>ac&lt;/sub>&lt;/em>           (if source is premultiplied) &lt;/pre>&#xA;&#xA;No adjustment needs to be made to the destination alpha:&#xA;&#xA;&lt;pre>&#xA;&lt;em>A&lt;sub>d&lt;/sub>&lt;/em> = &lt;em>A&lt;sub>dr&lt;/sub>&lt;/em> &lt;/pre>&#xA;&#xA;&lt;p>&#xA;The destination color components need to be adjusted only if&#xA;they are not in premultiplied form:&#xA;&#xA;&lt;pre>&#xA;&lt;em>C&lt;sub>d&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>dr&lt;/sub>&lt;/em> * &lt;em>A&lt;sub>d&lt;/sub>&lt;/em>    (if destination is not premultiplied)&#xA;&lt;em>C&lt;sub>d&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>dr&lt;/sub>&lt;/em>         (if destination is premultiplied) &lt;/pre>&#xA;&#xA;&lt;h3>Applying the Blending Equation&lt;/h3>&#xA;&#xA;&lt;p>&#xA;The adjusted &lt;em>A&lt;sub>s&lt;/sub>&lt;/em>, &lt;em>A&lt;sub>d&lt;/sub>&lt;/em>,&#xA;&lt;em>C&lt;sub>s&lt;/sub>&lt;/em>, and &lt;em>C&lt;sub>d&lt;/sub>&lt;/em> are used in the standard&#xA;Porter and Duff equations to calculate the blending factors&#xA;&lt;em>F&lt;sub>s&lt;/sub>&lt;/em> and &lt;em>F&lt;sub>d&lt;/sub>&lt;/em> and then the resulting&#xA;premultiplied components &lt;em>A&lt;sub>r&lt;/sub>&lt;/em> and &lt;em>C&lt;sub>r&lt;/sub>&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&lt;h3>Preparing Results&lt;/h3>&#xA;&#xA;&lt;p>&#xA;The results only need to be adjusted if they are to be stored&#xA;back into a destination buffer that holds data that is not&#xA;premultiplied, using the following equations:&#xA;&#xA;&lt;pre>&#xA;&lt;em>A&lt;sub>df&lt;/sub>&lt;/em> = &lt;em>A&lt;sub>r&lt;/sub>&lt;/em>&#xA;&lt;em>C&lt;sub>df&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>r&lt;/sub>&lt;/em>                 (if dest is premultiplied)&#xA;&lt;em>C&lt;sub>df&lt;/sub>&lt;/em> = &lt;em>C&lt;sub>r&lt;/sub>&lt;/em> / &lt;em>A&lt;sub>r&lt;/sub>&lt;/em>            (if dest is not premultiplied) &lt;/pre>&#xA;&#xA;Note that since the division is undefined if the resulting alpha&#xA;is zero, the division in that case is omitted to avoid the &quot;divide&#xA;by zero&quot; and the color components are left as&#xA;all zeros.&#xA;&#xA;&lt;p>&#xA;&lt;h3>Performance Considerations&lt;/h3>&#xA;&#xA;&lt;p>&#xA;For performance reasons, it is preferrable that&#xA;&lt;code>Raster&lt;/code> objects passed to the &lt;code>compose&lt;/code>&#xA;method of a {@link CompositeContext} object created by the&#xA;&lt;code>AlphaComposite&lt;/code> class have premultiplied data.&#xA;If either the source &lt;code>Raster&lt;/code>&#xA;or the destination &lt;code>Raster&lt;/code>&#xA;is not premultiplied, however,&#xA;appropriate conversions are performed before and after the compositing&#xA;operation.&#xA;&#xA;&lt;h3>&lt;a name=&quot;caveats&quot;>Implementation Caveats&lt;/a>&lt;/h3>&#xA;&#xA;&lt;ul>&#xA;&lt;li>&#xA;Many sources, such as some of the opaque image types listed&#xA;in the &lt;code>BufferedImage&lt;/code> class, do not store alpha values&#xA;for their pixels.  Such sources supply an alpha of 1.0 for&#xA;all of their pixels.&#xA;&#xA;&lt;p>&#xA;&lt;li>&#xA;Many destinations also have no place to store the alpha values&#xA;that result from the blending calculations performed by this class.&#xA;Such destinations thus implicitly discard the resulting&#xA;alpha values that this class produces.&#xA;It is recommended that such destinations should treat their stored&#xA;color values as non-premultiplied and divide the resulting color&#xA;values by the resulting alpha value before storing the color&#xA;values and discarding the alpha value.&#xA;&#xA;&lt;p>&#xA;&lt;li>&#xA;The accuracy of the results depends on the manner in which pixels&#xA;are stored in the destination.&#xA;An image format that provides at least 8 bits of storage per color&#xA;and alpha component is at least adequate for use as a destination&#xA;for a sequence of a few to a dozen compositing operations.&#xA;An image format with fewer than 8 bits of storage per component&#xA;is of limited use for just one or two compositing operations&#xA;before the rounding errors dominate the results.&#xA;An image format&#xA;that does not separately store&#xA;color components is not a&#xA;good candidate for any type of translucent blending.&#xA;For example, &lt;code>BufferedImage.TYPE_BYTE_INDEXED&lt;/code>&#xA;should not be used as a destination for a blending operation&#xA;because every operation&#xA;can introduce large errors, due to&#xA;the need to choose a pixel from a limited palette to match the&#xA;results of the blending equations.&#xA;&#xA;&lt;p>&#xA;&lt;li>&#xA;Nearly all formats store pixels as discrete integers rather than&#xA;the floating point values used in the reference equations above.&#xA;The implementation can either scale the integer pixel&#xA;values into floating point values in the range 0.0 to 1.0 or&#xA;use slightly modified versions of the equations&#xA;that operate entirely in the integer domain and yet produce&#xA;analogous results to the reference equations.&#xA;&#xA;&lt;p>&#xA;Typically the integer values are related to the floating point&#xA;values in such a way that the integer 0 is equated&#xA;to the floating point value 0.0 and the integer&#xA;2^&lt;em>n&lt;/em>-1 (where &lt;em>n&lt;/em> is the number of bits&#xA;in the representation) is equated to 1.0.&#xA;For 8-bit representations, this means that 0x00&#xA;represents 0.0 and 0xff represents&#xA;1.0.&#xA;&#xA;&lt;p>&#xA;&lt;li>&#xA;The internal implementation can approximate some of the equations&#xA;and it can also eliminate some steps to avoid unnecessary operations.&#xA;For example, consider a discrete integer image with non-premultiplied&#xA;alpha values that uses 8 bits per component for storage.&#xA;The stored values for a&#xA;nearly transparent darkened red might be:&#xA;&#xA;&lt;pre>&#xA;(A, R, G, B) = (0x01, 0xb0, 0x00, 0x00)&lt;/pre>&#xA;&#xA;&lt;p>&#xA;If integer math were being used and this value were being&#xA;composited in&#xA;&lt;a href=&quot;#SRC&quot;>&lt;code>SRC&lt;/code>&lt;/a>&#xA;mode with no extra alpha, then the math would&#xA;indicate that the results were (in integer format):&#xA;&#xA;&lt;pre>&#xA;(A, R, G, B) = (0x01, 0x01, 0x00, 0x00)&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Note that the intermediate values, which are always in premultiplied&#xA;form, would only allow the integer red component to be either 0x00&#xA;or 0x01.  When we try to store this result back into a destination&#xA;that is not premultiplied, dividing out the alpha will give us&#xA;very few choices for the non-premultiplied red value.&#xA;In this case an implementation that performs the math in integer&#xA;space without shortcuts is likely to end up with the final pixel&#xA;values of:&#xA;&#xA;&lt;pre>&#xA;(A, R, G, B) = (0x01, 0xff, 0x00, 0x00)&lt;/pre>&#xA;&#xA;&lt;p>&#xA;(Note that 0x01 divided by 0x01 gives you 1.0, which is equivalent&#xA;to the value 0xff in an 8-bit storage format.)&#xA;&#xA;&lt;p>&#xA;Alternately, an implementation that uses floating point math&#xA;might produce more accurate results and end up returning to the&#xA;original pixel value with little, if any, roundoff error.&#xA;Or, an implementation using integer math might decide that since&#xA;the equations boil down to a virtual NOP on the color values&#xA;if performed in a floating point space, it can transfer the&#xA;pixel untouched to the destination and avoid all the math entirely.&#xA;&#xA;&lt;p>&#xA;These implementations all attempt to honor the&#xA;same equations, but use different tradeoffs of integer and&#xA;floating point math and reduced or full equations.&#xA;To account for such differences, it is probably best to&#xA;expect only that the premultiplied form of the results to&#xA;match between implementations and image formats.  In this&#xA;case both answers, expressed in premultiplied form would&#xA;equate to:&#xA;&#xA;&lt;pre>&#xA;(A, R, G, B) = (0x01, 0x01, 0x00, 0x00)&lt;/pre>&#xA;&#xA;&lt;p>&#xA;and thus they would all match.&#xA;&#xA;&lt;p>&#xA;&lt;li>&#xA;Because of the technique of simplifying the equations for&#xA;calculation efficiency, some implementations might perform&#xA;differently when encountering result alpha values of 0.0&#xA;on a non-premultiplied destination.&#xA;Note that the simplification of removing the divide by alpha&#xA;in the case of the SRC rule is technically not valid if the&#xA;denominator (alpha) is 0.&#xA;But, since the results should only be expected to be accurate&#xA;when viewed in premultiplied form, a resulting alpha of 0&#xA;essentially renders the resulting color components irrelevant&#xA;and so exact behavior in this case should not be expected.&#xA;&lt;/ul>&#xA;@see Composite&#xA;@see CompositeContext&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_913575_6925"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_730061_13131" name="" supplier="_9_5_f720368_1110473546581_157749_6969" client="_9_5_f720368_1110473546581_913575_6925" contract="_9_5_f720368_1110473546581_157749_6969"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_660863_7093" name="PaintContext" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306697_488937_4300" body="The &lt;code>PaintContext&lt;/code> interface defines the encapsulated&#xA;and optimized environment to generate color patterns in device&#xA;space for fill or stroke operations on a&#xA;{@link Graphics2D}.  The &lt;code>PaintContext&lt;/code> provides&#xA;the necessary colors for &lt;code>Graphics2D&lt;/code> operations in the&#xA;form of a {@link Raster} associated with a {@link ColorModel}.&#xA;The &lt;code>PaintContext&lt;/code> maintains state for a particular paint&#xA;operation.  In a multi-threaded environment, several&#xA;contexts can exist simultaneously for a single {@link Paint} object.&#xA;@see Paint&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_660863_7093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_755709_7027" name="GraphicsConfigTemplate" clientDependency="_10_5_622020d_1132928321368_871474_13251" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306577_358398_4217" body="The &lt;code>GraphicsConfigTemplate&lt;/code> class is used to obtain a valid&#xA;{@link GraphicsConfiguration}.  A user instantiates one of these&#xA;objects and then sets all non-default attributes as desired.  The&#xA;{@link GraphicsDevice#getBestConfiguration} method found in the&#xA;{@link GraphicsDevice} class is then called with this&#xA;&lt;code>GraphicsConfigTemplate&lt;/code>.  A valid&#xA;&lt;code>GraphicsConfiguration&lt;/code> is returned that meets or exceeds&#xA;what was requested in the &lt;code>GraphicsConfigTemplate&lt;/code>.&#xA;@see GraphicsDevice&#xA;@see GraphicsConfiguration&#xA;&#xA;@version &#x9;1.16, 12/19/03&#xA;@since       1.2&#xA;" annotatedElement="_9_5_f720368_1110473546581_755709_7027"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_871474_13251" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_755709_7027" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_414980_6971" name="CompositeContext" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306387_957855_4155" body="The &lt;code>CompositeContext&lt;/code> interface defines the encapsulated&#xA;and optimized environment for a compositing operation.&#xA;&lt;code>CompositeContext&lt;/code> objects maintain state for&#xA;compositing operations.  In a multi-threaded environment, several&#xA;contexts can exist simultaneously for a single {@link Composite}&#xA;object.&#xA;@see Composite&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_414980_6971"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_728877_7073" name="MediaEntry" visibility="package" isAbstract="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_234739_6929" name="AWTError">
            <ownedComment xmi:id="_10_5_622020d_1132928306306_443002_4099" body="Thrown when a serious Abstract Window Toolkit error has occurred.&#xA;&#xA;@version &#x9;1.15 12/19/03&#xA;@author &#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546581_234739_6929"/>
            <generalization xmi:id="_10_5_622020d_1132928321298_612283_13132" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_596295_7095" name="Panel" clientDependency="_10_5_622020d_1132928321408_238796_13316">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_89171_4303" body="&lt;code>Panel&lt;/code> is the simplest container class. A panel&#xA;provides space in which an application can attach any other&#xA;component, including other panels.&#xA;&lt;p>&#xA;The default layout manager for a panel is the&#xA;&lt;code>FlowLayout&lt;/code> layout manager.&#xA;&#xA;@version &#x9;1.35, 03/01/04&#xA;@author &#x9;Sami Shaio&#xA;@see     java.awt.FlowLayout&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_596295_7095"/>
            <generalization xmi:id="_10_5_622020d_1132928321408_22872_13317" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321408_238796_13316" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_596295_7095" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547268_360366_16330" name="AccessibleAWTPanel" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_140119_4301" body="This class implements accessibility support for the&#xA;&lt;code>Panel&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to panel user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547268_360366_16330"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_920230_13318" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547362_235630_16875" name="print">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_615911_6903" name="Pageable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_208699_4074" body="The &lt;code>Pageable&lt;/code> implementation represents a set of&#xA;pages to be printed. The &lt;code>Pageable&lt;/code> object returns&#xA;the total number of pages in the set as well as the&#xA;{@link PageFormat} and {@link Printable} for a specified page.&#xA;@see java.awt.print.PageFormat&#xA;@see java.awt.print.Printable&#xA;" annotatedElement="_9_5_f720368_1110473546581_615911_6903"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_868898_6907" name="Paper" clientDependency="_10_5_622020d_1132928321288_719460_13127">
              <ownedComment xmi:id="_10_5_622020d_1132928306196_502991_4078" body="The &lt;code>Paper&lt;/code> class describes the physical characteristics of&#xA;a piece of paper.&#xA;&lt;p>&#xA;When creating a &lt;code>Paper&lt;/code> object, it is the application's&#xA;responsibility to ensure that the paper size and the imageable area&#xA;are compatible.  For example, if the paper size is changed from&#xA;11 x 17 to 8.5 x 11, the application might need to reduce the&#xA;imageable area so that whatever is printed fits on the page.&#xA;&lt;p>&#xA;@see #setSize(double, double)&#xA;@see #setImageableArea(double, double, double, double)&#xA;" annotatedElement="_9_5_f720368_1110473546581_868898_6907"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321288_719460_13127" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_868898_6907" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_187379_6905" name="PageFormat" clientDependency="_10_5_622020d_1132928321288_587392_13126">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_470682_4076" body="The &lt;code>PageFormat&lt;/code> class describes the size and&#xA;orientation of a page to be printed.&#xA;" annotatedElement="_9_5_f720368_1110473546581_187379_6905"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321288_587392_13126" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_187379_6905" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_960962_6901" name="Book" clientDependency="_10_5_622020d_1132928321288_190668_13125">
              <ownedComment xmi:id="_10_5_622020d_1132928306186_783688_4072" body="The &lt;code>Book&lt;/code> class provides a representation of a document in&#xA;which pages may have different page formats and page painters. This&#xA;class uses the {@link Pageable} interface to interact with a&#xA;{@link PrinterJob}.&#xA;@see Pageable&#xA;@see PrinterJob&#xA;" annotatedElement="_9_5_f720368_1110473546581_960962_6901"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321288_190668_13125" name="" supplier="_9_5_f720368_1110473546581_615911_6903" client="_9_5_f720368_1110473546581_960962_6901" contract="_9_5_f720368_1110473546581_615911_6903"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547362_685866_16877" name="BookPage" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928306186_590264_4070" body="The BookPage inner class describes an individual&#xA;page in a Book through a PageFormat-Printable pair.&#xA;" annotatedElement="_9_5_f720368_1110473547362_685866_16877"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_241333_6919" name="PrinterJob" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306216_733877_4090" body="The &lt;code>PrinterJob&lt;/code> class is the principal class that controls&#xA;printing. An application calls methods in this class to set up a job,&#xA;optionally to invoke a print dialog with the user, and then to print&#xA;the pages of the job.&#xA;" annotatedElement="_9_5_f720368_1110473546581_241333_6919"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_186151_6911" name="PrinterAbortException">
              <ownedComment xmi:id="_10_5_622020d_1132928306196_595489_4082" body="The &lt;code>PrinterAbortException&lt;/code> class is a subclass of&#xA;{@link PrinterException} and is used to indicate that a user&#xA;or application has terminated the print job while it was in&#xA;the process of printing.&#xA;" annotatedElement="_9_5_f720368_1110473546581_186151_6911"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_659988_13128" isSubstitutable="true" general="_9_5_f720368_1110473546581_196783_6913"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_449391_6909" name="Printable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306196_113571_4080" body="The &lt;code>Printable&lt;/code> interface is implemented&#xA;by the &lt;code>print&lt;/code> methods of the current&#xA;page painter, which is called by the printing&#xA;system to render a page.  When building a&#xA;{@link Pageable}, pairs of {@link PageFormat}&#xA;instances and instances that implement&#xA;this interface are used to describe each page. The&#xA;instance implementing &lt;code>Printable&lt;/code> is called to&#xA;print the page's graphics.&#xA;&lt;p>&#xA;A &lt;code>Printable(..)&lt;/code> may be set on a &lt;code>PrinterJob&lt;/code>.&#xA;When the client subsequently initiates printing by calling&#xA;&lt;code>PrinterJob.print(..)&lt;/code> control&#xA;&lt;p>&#xA;is handed to the printing system until all pages have been printed.&#xA;It does this by calling &lt;code>Printable.print(..)&lt;/code> until&#xA;all pages in the document have been printed.&#xA;In using the &lt;code>Printable&lt;/code> interface the printing&#xA;commits to image the contents of a page whenever&#xA;requested by the printing system.&#xA;&lt;p>&#xA;The parameters to &lt;code>Printable.print(..)&lt;/code> include a&#xA;&lt;code>PageFormat&lt;/code> which describes the printable area of&#xA;the page, needed for calculating the contents that will fit the&#xA;page, and the page index, which specifies the zero-based print&#xA;stream index of the requested page.&#xA;&lt;p>&#xA;For correct printing behaviour, the following points should be&#xA;observed:&#xA;&lt;ul>&#xA;&lt;li> The printing system may request a page index more than once.&#xA;On each occasion equal PageFormat parameters will be supplied.&#xA;&#xA;&lt;li>The printing system will call &lt;code>Printable.print(..)&lt;/code>&#xA;with page indexes which increase monotonically, although as noted above,&#xA;the &lt;code>Printable&lt;/code> should expect multiple calls for a page index&#xA;and that page indexes may be skipped, when page ranges are specified&#xA;by the client, or by a user through a print dialog.&#xA;&#xA;&lt;li>If multiple collated copies of a document are requested, and the&#xA;printer cannot natively support this, then the document may be imaged&#xA;multiple times. Printing will start each copy from the lowest print&#xA;stream page index page.&#xA;&#xA;&lt;li>With the exception of re-imaging an entire document for multiple&#xA;collated copies, the increasing page index order means that when&#xA;page N is requested if a client needs to calculate page break position,&#xA;it may safely discard any state related to pages &lt; N, and make current&#xA;that for page N. &quot;State&quot; usually is just the calculated position in the&#xA;document that corresponds to the start of the page.&#xA;&#xA;&lt;li>When called by the printing system the &lt;code>Printable&lt;/code> must&#xA;inspect and honour the supplied PageFormat parameter as well as the&#xA;page index.&#xA;This is key to correct printing behaviour, and it has the&#xA;implication that the client has the responsibility of tracking&#xA;what content belongs on the specified page.&#xA;&#xA;&lt;li>When the &lt;code>Printable&lt;/code> is obtained from a client-supplied&#xA;&lt;code>Pageable&lt;/code> then the client may provide different PageFormats&#xA;for each page index. Calculations of page breaks must account for this.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;@see java.awt.print.Pageable&#xA;@see java.awt.print.PageFormat&#xA;@see java.awt.print.PrinterJob&#xA;" annotatedElement="_9_5_f720368_1110473546581_449391_6909"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_538714_6917" name="PrinterIOException">
              <ownedComment xmi:id="_10_5_622020d_1132928306206_226084_4088" body="The &lt;code>PrinterIOException&lt;/code> class is a subclass of&#xA;{@link PrinterException} and is used to indicate that an IO error&#xA;of some sort has occurred while printing.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The&#xA;&quot;&lt;code>IOException&lt;/code> that terminated the print job&quot;&#xA;that is provided at construction time and accessed via the&#xA;{@link #getIOException()} method is now known as the &lt;i>cause&lt;/i>,&#xA;and may be accessed via the {@link Throwable#getCause()} method,&#xA;as well as the aforementioned &quot;legacy method.&quot;&#xA;" annotatedElement="_9_5_f720368_1110473546581_538714_6917"/>
              <generalization xmi:id="_10_5_622020d_1132928321298_753334_13130" isSubstitutable="true" general="_9_5_f720368_1110473546581_196783_6913"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_196783_6913" name="PrinterException">
              <ownedComment xmi:id="_10_5_622020d_1132928306196_306049_4084" body="The &lt;code>PrinterException&lt;/code> class and its subclasses are used&#xA;to indicate that an exceptional condition has occurred in the print&#xA;system.&#xA;" annotatedElement="_9_5_f720368_1110473546581_196783_6913"/>
              <generalization xmi:id="_10_5_622020d_1132928321288_543930_13129" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_911503_6915" name="PrinterGraphics" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306196_714556_4086" body="The &lt;code>PrinterGraphics&lt;/code> interface is implemented by&#xA;{@link java.awt.Graphics} objects that are passed to&#xA;{@link Printable} objects to render a page. It allows an&#xA;application to find the {@link PrinterJob} object that is&#xA;controlling the printing.&#xA;" annotatedElement="_9_5_f720368_1110473546581_911503_6915"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_951085_7043" name="HeadlessException">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_130295_4232" body="Thrown when code that is dependent on a keyboard, display, or mouse&#xA;is called in an environment that does not support a keyboard, display,&#xA;or mouse.&#xA;&#xA;@since 1.4&#xA;@author  Michael Martak&#xA;" annotatedElement="_9_5_f720368_1110473546581_951085_7043"/>
            <generalization xmi:id="_10_5_622020d_1132928321388_905233_13260" isSubstitutable="true" general="_9_5_f720368_1110473546612_331021_7719"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_381186_6957" name="CheckboxMenuItem" clientDependency="_10_5_622020d_1132928321328_704097_13180 _10_5_622020d_1132928321328_543561_13179">
            <ownedComment xmi:id="_10_5_622020d_1132928306377_320117_4134" body="This class represents a check box that can be included in a menu.&#xA;Selecting the check box in the menu changes its state from&#xA;&quot;on&quot; to &quot;off&quot; or from &quot;off&quot; to &quot;on.&quot;&#xA;&lt;p>&#xA;The following picture depicts a menu which contains an instance&#xA;of &lt;code>CheckBoxMenuItem&lt;/code>:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/MenuBar-1.gif&quot;&#xA;alt=&quot;Menu labeled Examples, containing items Basic, Simple, Check, and More Examples. The Check item is a CheckBoxMenuItem instance, in the off state.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;The item labeled &lt;code>Check&lt;/code> shows a check box menu item&#xA;in its &quot;off&quot; state.&#xA;&lt;p>&#xA;When a check box menu item is selected, AWT sends an item event to&#xA;the item. Since the event is an instance of &lt;code>ItemEvent&lt;/code>,&#xA;the &lt;code>processEvent&lt;/code> method examines the event and passes&#xA;it along to &lt;code>processItemEvent&lt;/code>. The latter method redirects&#xA;the event to any &lt;code>ItemListener&lt;/code> objects that have&#xA;registered an interest in item events generated by this menu item.&#xA;&#xA;@version 1.69, 05/05/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.event.ItemEvent&#xA;@see         java.awt.event.ItemListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_381186_6957"/>
            <generalization xmi:id="_10_5_622020d_1132928321328_728925_13181" isSubstitutable="true" general="_9_5_f720368_1110473546581_480588_7085"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_543561_13179" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546581_381186_6957" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_704097_13180" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_381186_6957" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_144168_16923" name="AccessibleAWTCheckboxMenuItem" visibility="protected" clientDependency="_10_5_622020d_1132928321328_68380_13182 _10_5_622020d_1132928321328_79018_13183">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_432346_4132" body="Inner class of CheckboxMenuItem used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by menu component developers.&#xA;&lt;p>&#xA;This class implements accessibility support for the&#xA;&lt;code>CheckboxMenuItem&lt;/code> class.  It provides an implementation&#xA;of the Java Accessibility API appropriate to checkbox menu item&#xA;user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_144168_16923"/>
              <generalization xmi:id="_10_5_622020d_1132928321328_311210_13184" isSubstitutable="true" general="_9_5_f720368_1110473547409_51781_17077"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_68380_13182" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473547378_144168_16923" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_79018_13183" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473547378_144168_16923" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_391762_7057" name="KeyboardFocusManager" clientDependency="_10_5_622020d_1132928321388_91959_13271 _10_5_622020d_1132928321388_145689_13272" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_507772_4251" body="The KeyboardFocusManager is responsible for managing the active and focused&#xA;Windows, and the current focus owner. The focus owner is defined as the&#xA;Component in an application that will typically receive all KeyEvents&#xA;generated by the user. The focused Window is the Window that is, or&#xA;contains, the focus owner. Only a Frame or a Dialog can be the active&#xA;Window. The native windowing system may denote the active Window or its&#xA;children with special decorations, such as a highlighted title bar. The&#xA;active Window is always either the focused Window, or the first Frame or&#xA;Dialog that is an owner of the focused Window.&#xA;&lt;p>&#xA;The KeyboardFocusManager is both a centralized location for client code to&#xA;query for the focus owner and initiate focus changes, and an event&#xA;dispatcher for all FocusEvents, WindowEvents related to focus, and&#xA;KeyEvents.&#xA;&lt;p>&#xA;Some browsers partition applets in different code bases into separate&#xA;contexts, and establish walls between these contexts. In such a scenario,&#xA;there will be one KeyboardFocusManager per context. Other browsers place all&#xA;applets into the same context, implying that there will be only a single,&#xA;global KeyboardFocusManager for all applets. This behavior is&#xA;implementation-dependent. Consult your browser's documentation for more&#xA;information. No matter how many contexts there may be, however, there can&#xA;never be more than one focus owner, focused Window, or active Window, per&#xA;ClassLoader.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.58, 05/05/04&#xA;&#xA;@see Window&#xA;@see Frame&#xA;@see Dialog&#xA;@see java.awt.event.FocusEvent&#xA;@see java.awt.event.WindowEvent&#xA;@see java.awt.event.KeyEvent&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_391762_7057"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_91959_13271" name="" supplier="_9_5_f720368_1110473546581_835580_7059" client="_9_5_f720368_1110473546581_391762_7057" contract="_9_5_f720368_1110473546581_835580_7059"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_145689_13272" name="" supplier="_9_5_f720368_1110473546581_424939_7061" client="_9_5_f720368_1110473546581_391762_7057" contract="_9_5_f720368_1110473546581_424939_7061"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_432859_17049" name="LightweightFocusRequest" visibility="private" isLeaf="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_209007_17051" name="HeavyweightFocusRequest" visibility="private" isLeaf="true"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_589643_7039" name="GridBagLayout" clientDependency="_10_5_622020d_1132928321368_452766_13256 _10_5_622020d_1132928321368_880184_13257">
            <ownedComment xmi:id="_10_5_622020d_1132928306637_734868_4228" body="The &lt;code>GridBagLayout&lt;/code> class is a flexible layout&#xA;manager that aligns components vertically and horizontally,&#xA;without requiring that the components be of the same size.&#xA;Each &lt;code>GridBagLayout&lt;/code> object maintains a dynamic,&#xA;rectangular grid of cells, with each component occupying&#xA;one or more cells, called its &lt;em>display area&lt;/em>.&#xA;&lt;p>&#xA;Each component managed by a &lt;code>GridBagLayout&lt;/code> is associated with&#xA;an instance of {@link GridBagConstraints}.  The constraints object&#xA;specifies where a component's display area should be located on the grid&#xA;and how the component should be positioned within its display area.  In&#xA;addition to its constraints object, the &lt;code>GridBagLayout&lt;/code> also&#xA;considers each component's minimum and preferred sizes in order to&#xA;determine a component's size.&#xA;&lt;p>&#xA;The overall orientation of the grid depends on the container's&#xA;{@link ComponentOrientation} property.  For horizontal left-to-right&#xA;orientations, grid coordinate (0,0) is in the upper left corner of the&#xA;container with x increasing to the right and y increasing downward.  For&#xA;horizontal right-to-left orientations, grid coordinate (0,0) is in the upper&#xA;right corner of the container with x increasing to the left and y&#xA;increasing downward.&#xA;&lt;p>&#xA;To use a grid bag layout effectively, you must customize one or more&#xA;of the &lt;code>GridBagConstraints&lt;/code> objects that are associated&#xA;with its components. You customize a &lt;code>GridBagConstraints&lt;/code>&#xA;object by setting one or more of its instance variables:&#xA;&lt;p>&#xA;&lt;dl>&#xA;&lt;dt>{@link GridBagConstraints#gridx},&#xA;{@link GridBagConstraints#gridy}&#xA;&lt;dd>Specifies the cell containing the leading corner of the component's&#xA;display area, where the cell at the origin of the grid has address&#xA;&lt;code>gridx&amp;nbsp;=&amp;nbsp;0&lt;/code>,&#xA;&lt;code>gridy&amp;nbsp;=&amp;nbsp;0&lt;/code>.  For horizontal left-to-right layout,&#xA;a component's leading corner is its upper left.  For horizontal&#xA;right-to-left layout, a component's leading corner is its upper right.&#xA;Use &lt;code>GridBagConstraints.RELATIVE&lt;/code> (the default value)&#xA;to specify that the component be placed immediately following&#xA;(along the x axis for &lt;code>gridx&lt;/code> or the y axis for&#xA;&lt;code>gridy&lt;/code>) the component that was added to the container&#xA;just before this component was added.&#xA;&lt;dt>{@link GridBagConstraints#gridwidth},&#xA;{@link GridBagConstraints#gridheight}&#xA;&lt;dd>Specifies the number of cells in a row (for &lt;code>gridwidth&lt;/code>)&#xA;or column (for &lt;code>gridheight&lt;/code>)&#xA;in the component's display area.&#xA;The default value is 1.&#xA;Use &lt;code>GridBagConstraints.REMAINDER&lt;/code> to specify&#xA;that the component's display area will be from &lt;code>gridx&lt;/code>&#xA;to the last cell in the row (for &lt;code>gridwidth&lt;/code>)&#xA;or from &lt;code>gridy&lt;/code> to the last cell in the column&#xA;(for &lt;code>gridheight&lt;/code>).&#xA;&#xA;Use &lt;code>GridBagConstraints.RELATIVE&lt;/code> to specify&#xA;that the component's display area will be from &lt;code>gridx&lt;/code>&#xA;to the next to the last cell in its row (for &lt;code>gridwidth&lt;/code>&#xA;or from &lt;code>gridy&lt;/code> to the next to the last cell in its&#xA;column (for &lt;code>gridheight&lt;/code>).&#xA;&#xA;&lt;dt>{@link GridBagConstraints#fill}&#xA;&lt;dd>Used when the component's display area&#xA;is larger than the component's requested size&#xA;to determine whether (and how) to resize the component.&#xA;Possible values are&#xA;&lt;code>GridBagConstraints.NONE&lt;/code> (the default),&#xA;&lt;code>GridBagConstraints.HORIZONTAL&lt;/code>&#xA;(make the component wide enough to fill its display area&#xA;horizontally, but don't change its height),&#xA;&lt;code>GridBagConstraints.VERTICAL&lt;/code>&#xA;(make the component tall enough to fill its display area&#xA;vertically, but don't change its width), and&#xA;&lt;code>GridBagConstraints.BOTH&lt;/code>&#xA;(make the component fill its display area entirely).&#xA;&lt;dt>{@link GridBagConstraints#ipadx},&#xA;{@link GridBagConstraints#ipady}&#xA;&lt;dd>Specifies the component's internal padding within the layout,&#xA;how much to add to the minimum size of the component.&#xA;The width of the component will be at least its minimum width&#xA;plus &lt;code>ipadx&lt;/code> pixels. Similarly, the height of&#xA;the component will be at least the minimum height plus&#xA;&lt;code>ipady&lt;/code> pixels.&#xA;&lt;dt>{@link GridBagConstraints#insets}&#xA;&lt;dd>Specifies the component's external padding, the minimum&#xA;amount of space between the component and the edges of its display area.&#xA;&lt;dt>{@link GridBagConstraints#anchor}&#xA;&lt;dd>Used when the component is smaller than its display area&#xA;to determine where (within the display area) to place the component.&#xA;There are two kinds of possible values: relative and absolute.  Relative&#xA;values are interpreted relative to the container's&#xA;&lt;code>ComponentOrientation&lt;/code> property while absolute values&#xA;are not.  Valid values are:&lt;/dd>&#xA;&lt;p>&#xA;&lt;center>&lt;table BORDER=0 COLS=2 WIDTH=800 SUMMARY=&quot;absolute and relative values as described above&quot;>&#xA;&lt;tr>&#xA;&lt;th>&lt;P ALIGN=&quot;LEFT&quot;>Absolute Values&lt;/th>&#xA;&lt;th>&lt;P ALIGN=&quot;LEFT&quot;>Relative Values&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&#xA;&lt;li>&lt;code>GridBagConstraints.NORTH&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.SOUTH&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.WEST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.EAST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.NORTHWEST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.NORTHEAST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.SOUTHWEST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.SOUTHEAST&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.CENTER&lt;/code> (the default)&lt;/li>&#xA;&lt;/td>&#xA;&lt;td>&#xA;&lt;li>&lt;code>GridBagConstraints.PAGE_START&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.PAGE_END&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.LINE_START&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.LINE_END&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.FIRST_LINE_START&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.FIRST_LINE_END&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.LAST_LINE_START&lt;/code>&lt;/li>&#xA;&lt;li>&lt;code>GridBagConstraints.LAST_LINE_END&lt;/code>&lt;/li>&#xA;&lt;/ul>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&lt;/center>&lt;p>&#xA;&lt;dt>{@link GridBagConstraints#weightx},&#xA;{@link GridBagConstraints#weighty}&#xA;&lt;dd>Used to determine how to distribute space, which is&#xA;important for specifying resizing behavior.&#xA;Unless you specify a weight for at least one component&#xA;in a row (&lt;code>weightx&lt;/code>) and column (&lt;code>weighty&lt;/code>),&#xA;all the components clump together in the center of their container.&#xA;This is because when the weight is zero (the default),&#xA;the &lt;code>GridBagLayout&lt;/code> object puts any extra space&#xA;between its grid of cells and the edges of the container.&#xA;&lt;/dl>&#xA;&lt;p>&#xA;The following figures show ten components (all buttons)&#xA;managed by a grid bag layout.  Figure 1 shows the layout for a horizontal,&#xA;left-to-right container and Figure 2 shows the layout for a horizontal,&#xA;right-to-left container.&#xA;&lt;p>&#xA;&lt;center>&lt;table COLS=2 WIDTH=600 summary=&quot;layout&quot;>&#xA;&lt;tr ALIGN=CENTER>&#xA;&lt;td>&#xA;&lt;img src=&quot;doc-files/GridBagLayout-1.gif&quot; alt=&quot;The preceeding text describes this graphic (Figure 1).&quot; ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;/td>&#xA;&lt;td>&#xA;&lt;img src=&quot;doc-files/GridBagLayout-2.gif&quot; alt=&quot;The preceeding text describes this graphic (Figure 2).&quot; ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;/td>&#xA;&lt;tr ALIGN=CENTER>&#xA;&lt;td>Figure 1: Horizontal, Left-to-Right&lt;/td>&#xA;&lt;td>Figure 2: Horizontal, Right-to-Left&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&lt;/center>&#xA;&lt;p>&#xA;Each of the ten components has the &lt;code>fill&lt;/code> field&#xA;of its associated &lt;code>GridBagConstraints&lt;/code> object&#xA;set to &lt;code>GridBagConstraints.BOTH&lt;/code>.&#xA;In addition, the components have the following non-default constraints:&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>Button1, Button2, Button3: &lt;code>weightx&amp;nbsp;=&amp;nbsp;1.0&lt;/code>&#xA;&lt;li>Button4: &lt;code>weightx&amp;nbsp;=&amp;nbsp;1.0&lt;/code>,&#xA;&lt;code>gridwidth&amp;nbsp;=&amp;nbsp;GridBagConstraints.REMAINDER&lt;/code>&#xA;&lt;li>Button5: &lt;code>gridwidth&amp;nbsp;=&amp;nbsp;GridBagConstraints.REMAINDER&lt;/code>&#xA;&lt;li>Button6: &lt;code>gridwidth&amp;nbsp;=&amp;nbsp;GridBagConstraints.RELATIVE&lt;/code>&#xA;&lt;li>Button7: &lt;code>gridwidth&amp;nbsp;=&amp;nbsp;GridBagConstraints.REMAINDER&lt;/code>&#xA;&lt;li>Button8: &lt;code>gridheight&amp;nbsp;=&amp;nbsp;2&lt;/code>,&#xA;&lt;code>weighty&amp;nbsp;=&amp;nbsp;1.0&lt;/code>&#xA;&lt;li>Button9, Button 10:&#xA;&lt;code>gridwidth&amp;nbsp;=&amp;nbsp;GridBagConstraints.REMAINDER&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Here is the code that implements the example shown above:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;import java.awt.*;&#xA;import java.util.*;&#xA;import java.applet.Applet;&#xA;&#xA;public class GridBagEx1 extends Applet {&#xA;&#xA;protected void makebutton(String name,&#xA;GridBagLayout gridbag,&#xA;GridBagConstraints c) {&#xA;Button button = new Button(name);&#xA;gridbag.setConstraints(button, c);&#xA;add(button);&#xA;}&#xA;&#xA;public void init() {&#xA;GridBagLayout gridbag = new GridBagLayout();&#xA;GridBagConstraints c = new GridBagConstraints();&#xA;&#xA;setFont(new Font(&quot;SansSerif&quot;, Font.PLAIN, 14));&#xA;setLayout(gridbag);&#xA;&#xA;c.fill = GridBagConstraints.BOTH;&#xA;c.weightx = 1.0;&#xA;makebutton(&quot;Button1&quot;, gridbag, c);&#xA;makebutton(&quot;Button2&quot;, gridbag, c);&#xA;makebutton(&quot;Button3&quot;, gridbag, c);&#xA;&#xA;c.gridwidth = GridBagConstraints.REMAINDER; //end row&#xA;makebutton(&quot;Button4&quot;, gridbag, c);&#xA;&#xA;c.weightx = 0.0;&#x9;&#x9;   //reset to the default&#xA;makebutton(&quot;Button5&quot;, gridbag, c); //another row&#xA;&#xA;c.gridwidth = GridBagConstraints.RELATIVE; //next-to-last in row&#xA;makebutton(&quot;Button6&quot;, gridbag, c);&#xA;&#xA;c.gridwidth = GridBagConstraints.REMAINDER; //end row&#xA;makebutton(&quot;Button7&quot;, gridbag, c);&#xA;&#xA;c.gridwidth = 1;&#x9;   &#x9;   //reset to the default&#xA;c.gridheight = 2;&#xA;c.weighty = 1.0;&#xA;makebutton(&quot;Button8&quot;, gridbag, c);&#xA;&#xA;c.weighty = 0.0;&#x9;&#x9;   //reset to the default&#xA;c.gridwidth = GridBagConstraints.REMAINDER; //end row&#xA;c.gridheight = 1;&#x9;&#x9;   //reset to the default&#xA;makebutton(&quot;Button9&quot;, gridbag, c);&#xA;makebutton(&quot;Button10&quot;, gridbag, c);&#xA;&#xA;setSize(300, 100);&#xA;}&#xA;&#xA;public static void main(String args[]) {&#xA;Frame f = new Frame(&quot;GridBag Layout Example&quot;);&#xA;GridBagEx1 ex1 = new GridBagEx1();&#xA;&#xA;ex1.init();&#xA;&#xA;f.add(&quot;Center&quot;, ex1);&#xA;f.pack();&#xA;f.setSize(f.getPreferredSize());&#xA;f.show();&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;@version &#x9;1.64, 06/08/04&#xA;@author Doug Stein&#xA;@see       java.awt.GridBagConstraints&#xA;@see       java.awt.ComponentOrientation&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_589643_7039"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_452766_13256" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546581_589643_7039" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_880184_13257" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_589643_7039" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_350315_7037" name="GridBagLayoutInfo" visibility="package" clientDependency="_10_5_622020d_1132928321368_341771_13255">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_341771_13255" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_350315_7037" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321448_677845_13329" name="Map&lt;Object, Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928321468_992327_13330" signature="_10_5_622020d_1132928313327_733811_7386">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321478_460484_13331" formal="_10_5_622020d_1132928313327_184813_7387" actual="_9_5_f720368_1110473546612_117118_7661"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321488_468602_13332" formal="_10_5_622020d_1132928313327_22454_7389" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_370402_6937" name="AWTKeyStroke" clientDependency="_10_5_622020d_1132928321308_816552_13152">
            <ownedComment xmi:id="_10_5_622020d_1132928306316_786612_4107" body="An &lt;code>AWTKeyStroke&lt;/code> represents a key action on the&#xA;keyboard, or equivalent input device. &lt;code>AWTKeyStroke&lt;/code>s&#xA;can correspond to only a press or release of a&#xA;particular key, just as &lt;code>KEY_PRESSED&lt;/code> and&#xA;&lt;code>KEY_RELEASED&lt;/code> &lt;code>KeyEvent&lt;/code>s do;&#xA;alternately, they can correspond to typing a specific Java character, just&#xA;as &lt;code>KEY_TYPED&lt;/code> &lt;code>KeyEvent&lt;/code>s do.&#xA;In all cases, &lt;code>AWTKeyStroke&lt;/code>s can specify modifiers&#xA;(alt, shift, control, meta, or a combination thereof) which must be present&#xA;during the action for an exact match.&#xA;&lt;p>&#xA;&lt;code>AWTKeyStrokes&lt;/code> are immutable, and are intended&#xA;to be unique. Client code should never create an&#xA;&lt;code>AWTKeyStroke&lt;/code> on its own, but should instead use&#xA;a variant of &lt;code>getAWTKeyStroke&lt;/code>. Client use of these factory&#xA;methods allows the &lt;code>AWTKeyStroke&lt;/code> implementation&#xA;to cache and share instances efficiently.&#xA;&#xA;@see #getAWTKeyStroke&#xA;&#xA;@version 1.23, 05/05/04&#xA;@author Arnaud Weber&#xA;@author David Mendenhall&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_370402_6937"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_816552_13152" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_370402_6937" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_603780_7127" name="Stroke" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306747_152908_4341" body="The &lt;code>Stroke&lt;/code> interface allows a&#xA;{@link Graphics2D} object to obtain a {@link Shape} that is the&#xA;decorated outline, or stylistic representation of the outline,&#xA;of the specified &lt;code>Shape&lt;/code>.&#xA;Stroking a &lt;code>Shape&lt;/code> is like tracing its outline with a&#xA;marking pen of the appropriate size and shape.&#xA;The area where the pen would place ink is the area enclosed by the&#xA;outline &lt;code>Shape&lt;/code>.&#xA;&lt;p>&#xA;The methods of the &lt;code>Graphics2D&lt;/code> interface that use the&#xA;outline &lt;code>Shape&lt;/code> returned by a &lt;code>Stroke&lt;/code> object&#xA;include &lt;code>draw&lt;/code> and any other methods that are&#xA;implemented in terms of that method, such as&#xA;&lt;code>drawLine&lt;/code>, &lt;code>drawRect&lt;/code>,&#xA;&lt;code>drawRoundRect&lt;/code>, &lt;code>drawOval&lt;/code>,&#xA;&lt;code>drawArc&lt;/code>, &lt;code>drawPolyline&lt;/code>,&#xA;and &lt;code>drawPolygon&lt;/code>.&#xA;&lt;p>&#xA;The objects of the classes implementing &lt;code>Stroke&lt;/code>&#xA;must be read-only because &lt;code>Graphics2D&lt;/code> does not&#xA;clone these objects either when they are set as an attribute&#xA;with the &lt;code>setStroke&lt;/code> method or when the&#xA;&lt;code>Graphics2D&lt;/code> object is itself cloned.&#xA;If a &lt;code>Stroke&lt;/code> object is modified after it is set in&#xA;the &lt;code>Graphics2D&lt;/code> context then the behavior&#xA;of subsequent rendering would be undefined.&#xA;@see BasicStroke&#xA;@see Graphics2D#setStroke&#xA;@version 1.22, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546596_603780_7127"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_653823_6965" name="Component" clientDependency="_10_5_622020d_1132928321328_896103_13193 _10_5_622020d_1132928321328_946029_13194 _10_5_622020d_1132928321328_82887_13195" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306387_421506_4149" body="A &lt;em>component&lt;/em> is an object having a graphical representation&#xA;that can be displayed on the screen and that can interact with the&#xA;user. Examples of components are the buttons, checkboxes, and scrollbars&#xA;of a typical graphical user interface. &lt;p>&#xA;The &lt;code>Component&lt;/code> class is the abstract superclass of&#xA;the nonmenu-related Abstract Window Toolkit components. Class&#xA;&lt;code>Component&lt;/code> can also be extended directly to create a&#xA;lightweight component. A lightweight component is a component that is&#xA;not associated with a native opaque window.&#xA;&lt;p>&#xA;&lt;h3>Serialization&lt;/h3>&#xA;It is important to note that only AWT listeners which conform&#xA;to the &lt;code>Serializable&lt;/code> protocol will be saved when&#xA;the object is stored.  If an AWT object has listeners that&#xA;aren't marked serializable, they will be dropped at&#xA;&lt;code>writeObject&lt;/code> time.  Developers will need, as always,&#xA;to consider the implications of making an object serializable.&#xA;One situation to watch out for is this:&#xA;&lt;pre>&#xA;import java.awt.*;&#xA;import java.awt.event.*;&#xA;import java.io.Serializable;&#xA;&#xA;class MyApp implements ActionListener, Serializable&#xA;{&#xA;BigObjectThatShouldNotBeSerializedWithAButton bigOne;&#xA;Button aButton = new Button();&#xA;&#xA;MyApp()&#xA;{&#xA;Oops, now aButton has a listener with a reference&#xA;to bigOne!&#xA;aButton.addActionListener(this);&#xA;}&#xA;&#xA;public void actionPerformed(ActionEvent e)&#xA;{&#xA;System.out.println(&quot;Hello There&quot;);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;In this example, serializing &lt;code>aButton&lt;/code> by itself&#xA;will cause &lt;code>MyApp&lt;/code> and everything it refers to&#xA;to be serialized as well.  The problem is that the listener&#xA;is serializable by coincidence, not by design.  To separate&#xA;the decisions about &lt;code>MyApp&lt;/code> and the&#xA;&lt;code>ActionListener&lt;/code> being serializable one can use a&#xA;nested class, as in the following example:&#xA;&lt;pre>&#xA;import java.awt.*;&#xA;import java.awt.event.*;&#xA;import java.io.Serializable;&#xA;&#xA;class MyApp java.io.Serializable&#xA;{&#xA;BigObjectThatShouldNotBeSerializedWithAButton bigOne;&#xA;Button aButton = new Button();&#xA;&#xA;class MyActionListener implements ActionListener&#xA;{&#xA;public void actionPerformed(ActionEvent e)&#xA;{&#xA;System.out.println(&quot;Hello There&quot;);&#xA;}&#xA;}&#xA;&#xA;MyApp()&#xA;{&#xA;aButton.addActionListener(new MyActionListener());&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;b>Note&lt;/b>: For more information on the paint mechanisms utilitized&#xA;by AWT and Swing, including information on how to write the most&#xA;efficient painting code, see&#xA;&lt;a href=&quot;http://java.sun.com/products/jfc/tsc/articles/painting/index.html&quot;>Painting in AWT and Swing&lt;/a>.&#xA;&lt;p>&#xA;For details on the focus subsystem, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@version     1.387, 06/18/04&#xA;@author      Arthur van Hoff&#xA;@author      Sami Shaio&#xA;" annotatedElement="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_896103_13193" name="" supplier="_9_5_f720368_1110473546565_278383_6795" client="_9_5_f720368_1110473546581_653823_6965" contract="_9_5_f720368_1110473546565_278383_6795"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_946029_13194" name="" supplier="_9_5_f720368_1110473546581_187052_7083" client="_9_5_f720368_1110473546581_653823_6965" contract="_9_5_f720368_1110473546581_187052_7083"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_82887_13195" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_653823_6965" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_254209_16930" name="AWTTreeLock" visibility="package"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_178907_16932" name="FlipBufferStrategy" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_674351_4141" body="Inner class for flipping buffers on a component.  That component must&#xA;be a &lt;code>Canvas&lt;/code> or &lt;code>Window&lt;/code>.&#xA;@see Canvas&#xA;@see Window&#xA;@see java.awt.image.BufferStrategy&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547378_178907_16932"/>
              <generalization xmi:id="_10_5_622020d_1132928321328_794595_13196" isSubstitutable="true" general="_9_5_f720368_1110473546565_412085_6757"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_697224_16934" name="BltBufferStrategy" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_801164_4142" body="Inner class for blitting offscreen surfaces to a component.&#xA;&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547378_697224_16934"/>
              <generalization xmi:id="_10_5_622020d_1132928321338_737800_13197" isSubstitutable="true" general="_9_5_f720368_1110473546565_412085_6757"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_190538_16936" name="SingleBufferStrategy" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_954865_4143" body="Inner class for flipping buffers on a component.  That component must&#xA;be a &lt;code>Canvas&lt;/code> or &lt;code>Window&lt;/code>.&#xA;@see Canvas&#xA;@see Window&#xA;@see java.awt.image.BufferStrategy&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547378_190538_16936"/>
              <generalization xmi:id="_10_5_622020d_1132928321338_127108_13198" isSubstitutable="true" general="_9_5_f720368_1110473546565_412085_6757"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_946319_16938" name="NativeInLightFixer" visibility="package" clientDependency="_10_5_622020d_1132928321338_992061_13199 _10_5_622020d_1132928321338_783849_13200" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_849529_4144" body="This odd class is to help out a native component that has been&#xA;embedded in a lightweight component.  Moving lightweight&#xA;components around and changing their visibility is not seen&#xA;by the native window system.  This is a feature for lightweights,&#xA;but a problem for native components that depend upon the&#xA;lightweights.  An instance of this class listens to the lightweight&#xA;parents of an associated native component (the outer class).&#xA;&#xA;@author  Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473547378_946319_16938"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321338_992061_13199" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473547378_946319_16938" contract="_9_5_f720368_1110473546565_824053_6549"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321338_783849_13200" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473547378_946319_16938" contract="_9_5_f720368_1110473546565_136951_6555"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_128539_16940" name="AccessibleAWTComponent" visibility="protected" clientDependency="_10_5_622020d_1132928321338_791477_13201 _10_5_622020d_1132928321338_792499_13202" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306377_466932_4147" body="Inner class of Component used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by component developers.&#xA;&lt;p>&#xA;The class used to obtain the accessible role for this object.&#xA;" annotatedElement="_9_5_f720368_1110473547378_128539_16940"/>
              <generalization xmi:id="_10_5_622020d_1132928321338_314917_13203" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321338_791477_13201" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547378_128539_16940" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321338_792499_13202" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473547378_128539_16940" contract="_9_5_f720368_1110473546706_824207_8957"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_916987_16942" name="AccessibleAWTComponentHandler" visibility="protected" clientDependency="_10_5_622020d_1132928321338_353734_13204">
                <ownedComment xmi:id="_10_5_622020d_1132928306377_721467_4145" body="Fire PropertyChange listener, if one is registered,&#xA;when shown/hidden..&#xA;" annotatedElement="_9_5_f720368_1110473547378_916987_16942"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321338_353734_13204" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473547378_916987_16942" contract="_9_5_f720368_1110473546565_824053_6549"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_439152_16944" name="AccessibleAWTFocusHandler" visibility="protected" clientDependency="_10_5_622020d_1132928321338_292376_13205">
                <ownedComment xmi:id="_10_5_622020d_1132928306377_226298_4146" body="Fire PropertyChange listener, if one is registered,&#xA;when focus events happen&#xA;" annotatedElement="_9_5_f720368_1110473547378_439152_16944"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321338_292376_13205" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473547378_439152_16944" contract="_9_5_f720368_1110473546565_10343_6561"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_649837_6953" name="Checkbox" clientDependency="_10_5_622020d_1132928321318_760835_13171 _10_5_622020d_1132928321318_525851_13172">
            <ownedComment xmi:id="_10_5_622020d_1132928306367_561262_4129" body="A check box is a graphical component that can be in either an&#xA;&quot;on&quot; (&lt;code>true&lt;/code>) or &quot;off&quot; (&lt;code>false&lt;/code>) state.&#xA;Clicking on a check box changes its state from&#xA;&quot;on&quot; to &quot;off,&quot; or from &quot;off&quot; to &quot;on.&quot;&#xA;&lt;p>&#xA;The following code example creates a set of check boxes in&#xA;a grid layout:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;setLayout(new GridLayout(3, 1));&#xA;add(new Checkbox(&quot;one&quot;, null, true));&#xA;add(new Checkbox(&quot;two&quot;));&#xA;add(new Checkbox(&quot;three&quot;));&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;This image depicts the check boxes and grid layout&#xA;created by this code example:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Checkbox-1.gif&quot; alt=&quot;The following context describes the graphic.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;The button labeled &lt;code>one&lt;/code> is in the &quot;on&quot; state, and the&#xA;other two are in the &quot;off&quot; state. In this example, which uses the&#xA;&lt;code>GridLayout&lt;/code> class, the states of the three check&#xA;boxes are set independently.&#xA;&lt;p>&#xA;Alternatively, several check boxes can be grouped together under&#xA;the control of a single object, using the&#xA;&lt;code>CheckboxGroup&lt;/code> class.&#xA;In a check box group, at most one button can be in the &quot;on&quot;&#xA;state at any given time. Clicking on a check box to turn it on&#xA;forces any other check box in the same group that is on&#xA;into the &quot;off&quot; state.&#xA;&#xA;@version&#x9;1.84 05/05/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.GridLayout&#xA;@see         java.awt.CheckboxGroup&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_649837_6953"/>
            <generalization xmi:id="_10_5_622020d_1132928321328_888290_13173" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321318_760835_13171" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546581_649837_6953" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321318_525851_13172" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_649837_6953" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_800771_16919" name="AccessibleAWTCheckbox" visibility="protected" clientDependency="_10_5_622020d_1132928321328_107294_13176 _10_5_622020d_1132928321328_677096_13175 _10_5_622020d_1132928321328_925373_13174">
              <ownedComment xmi:id="_10_5_622020d_1132928306367_603721_4127" body="This class implements accessibility support for the&#xA;&lt;code>Checkbox&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to checkbox user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_800771_16919"/>
              <generalization xmi:id="_10_5_622020d_1132928321328_782160_13177" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_925373_13174" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473547378_800771_16919" contract="_9_5_f720368_1110473546565_919591_6581"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_677096_13175" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473547378_800771_16919" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321328_107294_13176" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473547378_800771_16919" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_480588_7085" name="MenuItem" clientDependency="_10_5_622020d_1132928321408_398764_13303">
            <ownedComment xmi:id="_10_5_622020d_1132928306687_219585_4284" body="All items in a menu must belong to the class&#xA;&lt;code>MenuItem&lt;/code>, or one of its subclasses.&#xA;&lt;p>&#xA;The default &lt;code>MenuItem&lt;/code> object embodies&#xA;a simple labeled menu item.&#xA;&lt;p>&#xA;This picture of a menu bar shows five menu items:&#xA;&lt;IMG SRC=&quot;doc-files/MenuBar-1.gif&quot; alt=&quot;The following text describes this graphic.&quot;&#xA;ALIGN=CENTER HSPACE=10 VSPACE=7>&#xA;&lt;br CLEAR=LEFT>&#xA;The first two items are simple menu items, labeled&#xA;&lt;code>&quot;Basic&quot;&lt;/code> and &lt;code>&quot;Simple&quot;&lt;/code>.&#xA;Following these two items is a separator, which is itself&#xA;a menu item, created with the label &lt;code>&quot;-&quot;&lt;/code>.&#xA;Next is an instance of &lt;code>CheckboxMenuItem&lt;/code>&#xA;labeled &lt;code>&quot;Check&quot;&lt;/code>. The final menu item is a&#xA;submenu labeled &lt;code>&quot;More&amp;nbsp;Examples&quot;&lt;/code>,&#xA;and this submenu is an instance of &lt;code>Menu&lt;/code>.&#xA;&lt;p>&#xA;When a menu item is selected, AWT sends an action event to&#xA;the menu item. Since the event is an&#xA;instance of &lt;code>ActionEvent&lt;/code>, the &lt;code>processEvent&lt;/code>&#xA;method examines the event and passes it along to&#xA;&lt;code>processActionEvent&lt;/code>. The latter method redirects the&#xA;event to any &lt;code>ActionListener&lt;/code> objects that have&#xA;registered an interest in action events generated by this&#xA;menu item.&#xA;&lt;P>&#xA;Note that the subclass &lt;code>Menu&lt;/code> overrides this behavior and&#xA;does not send any event to the frame until one of its subitems is&#xA;selected.&#xA;&#xA;@version 1.88, 05/18/04&#xA;@author Sami Shaio&#xA;" annotatedElement="_9_5_f720368_1110473546581_480588_7085"/>
            <generalization xmi:id="_10_5_622020d_1132928321408_593754_13304" isSubstitutable="true" general="_9_5_f720368_1110473546581_6748_7081"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321408_398764_13303" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_480588_7085" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_51781_17077" name="AccessibleAWTMenuItem" visibility="protected" clientDependency="_10_5_622020d_1132928321408_584851_13305 _10_5_622020d_1132928321408_354549_13306">
              <ownedComment xmi:id="_10_5_622020d_1132928306687_558067_4282" body="Inner class of MenuItem used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by menu component developers.&#xA;&lt;p>&#xA;This class implements accessibility support for the&#xA;&lt;code>MenuItem&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu item user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_51781_17077"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_392479_13307" isSubstitutable="true" general="_9_5_f720368_1110473547409_476725_17073"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321408_584851_13305" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473547409_51781_17077" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321408_354549_13306" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473547409_51781_17077" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547284_7684_16441" name="event">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_361131_6587" name="KeyListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305746_237051_3739" body="The listener interface for receiving keyboard events (keystrokes).&#xA;The class that is interested in processing a keyboard event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>KeyAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;&lt;P>&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addKeyListener&lt;/code>&#xA;method. A keyboard event is generated when a key is pressed, released,&#xA;or typed. The relevant method in the listener&#xA;object is then invoked, and the &lt;code>KeyEvent&lt;/code> is passed to it.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.18 12/19/03&#xA;&#xA;@see KeyAdapter&#xA;@see KeyEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/keylistener.html&quot;>Tutorial: Writing a Key Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_361131_6587"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_694947_12950" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_684961_6605" name="PaintEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305766_418433_3756" body="The component-level paint event.&#xA;This event is a special type which is used to ensure that&#xA;paint/update method calls are serialized along with the other&#xA;events delivered from the event queue.  This event is not&#xA;designed to be used with the Event Listener model; programs&#xA;should continue to override paint/update methods in order&#xA;render themselves properly.&#xA;&#xA;@author Amy Fowler&#xA;@version 1.20, 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_684961_6605"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_431656_12958" isSubstitutable="true" general="_9_5_f720368_1110473546565_474687_6547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_895193_6569" name="HierarchyListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305726_12747_3721" body="The listener interface for receiving hierarchy changed events.&#xA;The class that is interested in processing a hierarchy changed event&#xA;should implement this interface.&#xA;The listener object created from that class is then registered with a&#xA;Component using the Component's &lt;code>addHierarchyListener&lt;/code>&#xA;method. When the hierarchy to which the Component belongs changes, the&#xA;&lt;code>hierarchyChanged&lt;/code> method in the listener object is invoked,&#xA;and the &lt;code>HierarchyEvent&lt;/code> is passed to it.&#xA;&lt;p>&#xA;Hierarchy events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle changes to the hierarchy internally so&#xA;that GUI layout, displayability, and visibility work properly regardless&#xA;of whether a program registers a &lt;code>HierarchyListener&lt;/code> or not.&#xA;&#xA;@author&#x9;David Mendenhall&#xA;@version&#x9;1.8, 12/19/03&#xA;@see&#x9;&#x9;HierarchyEvent&#xA;@since &#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_895193_6569"/>
              <generalization xmi:id="_10_5_622020d_1132928320587_803497_12940" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_919591_6581" name="ItemListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_200686_3733" body="The listener interface for receiving item events.&#xA;The class that is interested in processing an item event&#xA;implements this interface. The object created with that&#xA;class is then registered with a component using the&#xA;component's &lt;code>addItemListener&lt;/code> method. When an&#xA;item-selection event occurs, the listener object's&#xA;&lt;code>itemStateChanged&lt;/code> method is invoked.&#xA;&#xA;@author Amy Fowler&#xA;@version 1.18 12/19/03&#xA;&#xA;@see java.awt.ItemSelectable&#xA;@see ItemEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/itemlistener.html&quot;>Tutorial: Writing an Item Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_919591_6581"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_863163_12947" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_868836_6553" name="ContainerEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305696_5337_3705" body="A low-level event which indicates that a container's contents&#xA;changed because a component was added or removed.&#xA;&lt;P>&#xA;Container events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle changes to the containers&#xA;contents internally so that the program works properly regardless of&#xA;whether the program is receiving these events or not.&#xA;&lt;P>&#xA;This low-level event is generated by a container object (such as a&#xA;Panel) when a component is added to it or removed from it.&#xA;The event is passed to every &lt;code>ContainerListener&lt;/code>&#xA;or &lt;code>ContainerAdapter&lt;/code> object which registered to receive such&#xA;events using the component's &lt;code>addContainerListener&lt;/code> method.&#xA;(&lt;code>ContainerAdapter&lt;/code> objects implement the&#xA;&lt;code>ContainerListener&lt;/code> interface.) Each such listener object&#xA;gets this &lt;code>ContainerEvent&lt;/code> when the event occurs.&#xA;&#xA;@see ContainerAdapter&#xA;@see ContainerListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/containerlistener.html&quot;>Tutorial: Writing a Container Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Tim Prinzing&#xA;@author Amy Fowler&#xA;@version 1.18 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_868836_6553"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_119033_12932" isSubstitutable="true" general="_9_5_f720368_1110473546565_474687_6547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_560128_6613" name="WindowEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_284708_3764" body="A low-level event that indicates that a window has changed its status. This&#xA;low-level event is generated by a Window object when it is opened, closed,&#xA;activated, deactivated, iconified, or deiconified, or when focus is&#xA;transfered into or out of the Window.&#xA;&lt;P>&#xA;The event is passed to every &lt;code>WindowListener&lt;/code>&#xA;or &lt;code>WindowAdapter&lt;/code> object which registered to receive such&#xA;events using the window's &lt;code>addWindowListener&lt;/code> method.&#xA;(&lt;code>WindowAdapter&lt;/code> objects implement the&#xA;&lt;code>WindowListener&lt;/code> interface.) Each such listener object&#xA;gets this &lt;code>WindowEvent&lt;/code> when the event occurs.&#xA;&#xA;@author Carl Quinn&#xA;@author Amy Fowler&#xA;@version 1.34, 12/19/03&#xA;&#xA;@see WindowAdapter&#xA;@see WindowListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/windowlistener.html&quot;>Tutorial: Writing a Window Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_560128_6613"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_397219_12964" isSubstitutable="true" general="_9_5_f720368_1110473546565_474687_6547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_648230_6577" name="InvocationEvent" clientDependency="_10_5_622020d_1132928320587_957864_12944">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_136939_3729" body="An event which executes the &lt;code>run()&lt;/code> method on a &lt;code>Runnable&#xA;&lt;/code> when dispatched by the AWT event dispatcher thread. This class can&#xA;be used as a reference implementation of &lt;code>ActiveEvent&lt;/code> rather&#xA;than declaring a new class and defining &lt;code>dispatch()&lt;/code>.&lt;p>&#xA;&#xA;Instances of this class are placed on the &lt;code>EventQueue&lt;/code> by calls&#xA;to &lt;code>invokeLater&lt;/code> and &lt;code>invokeAndWait&lt;/code>. Client code&#xA;can use this fact to write replacement functions for &lt;code>invokeLater&#xA;&lt;/code> and &lt;code>invokeAndWait&lt;/code> without writing special-case code&#xA;in any &lt;code>AWTEventListener&lt;/code> objects.&#xA;&#xA;@author&#x9;Fred Ecks&#xA;@author&#x9;David Mendenhall&#xA;@version&#x9;1.18, 02/05/04&#xA;&#xA;@see&#x9;&#x9;java.awt.ActiveEvent&#xA;@see&#x9;&#x9;java.awt.EventQueue#invokeLater&#xA;@see&#x9;&#x9;java.awt.EventQueue#invokeAndWait&#xA;@see&#x9;&#x9;AWTEventListener&#xA;&#xA;@since &#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_648230_6577"/>
              <generalization xmi:id="_10_5_622020d_1132928320587_970530_12945" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320587_957864_12944" name="" supplier="_9_5_f720368_1110473546581_362482_6921" client="_9_5_f720368_1110473546565_648230_6577" contract="_9_5_f720368_1110473546581_362482_6921"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_263933_6559" name="FocusEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305716_648565_3711" body="A low-level event which indicates that a Component has gained or lost the&#xA;input focus. This low-level event is generated by a Component (such as a&#xA;TextField). The event is passed to every &lt;code>FocusListener&lt;/code> or&#xA;&lt;code>FocusAdapter&lt;/code> object which registered to receive such events&#xA;using the Component's &lt;code>addFocusListener&lt;/code> method. (&lt;code>&#xA;FocusAdapter&lt;/code> objects implement the &lt;code>FocusListener&lt;/code>&#xA;interface.) Each such listener object gets this &lt;code>FocusEvent&lt;/code> when&#xA;the event occurs.&#xA;&lt;p>&#xA;There are two levels of focus events: permanent and temporary. Permanent&#xA;focus change events occur when focus is directly moved from one Component to&#xA;another, such as through a call to requestFocus() or as the user uses the&#xA;TAB key to traverse Components. Temporary focus change events occur when&#xA;focus is temporarily lost for a Component as the indirect result of another&#xA;operation, such as Window deactivation or a Scrollbar drag. In this case,&#xA;the original focus state will automatically be restored once that operation&#xA;is finished, or, for the case of Window deactivation, when the Window is&#xA;reactivated. Both permanent and temporary focus events are delivered using&#xA;the FOCUS_GAINED and FOCUS_LOST event ids; the level may be distinguished in&#xA;the event using the isTemporary() method.&#xA;&#xA;@see FocusAdapter&#xA;@see FocusListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/focuslistener.html&quot;>Tutorial: Writing a Focus Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@author Amy Fowler&#xA;@version 1.30 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_263933_6559"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_929896_12935" isSubstitutable="true" general="_9_5_f720368_1110473546565_474687_6547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_377073_6585" name="KeyEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305746_193048_3737" body="An event which indicates that a keystroke occurred in a component.&#xA;&lt;p>&#xA;This low-level event is generated by a component object (such as a text&#xA;field) when a key is pressed, released, or typed.&#xA;The event is passed to every &lt;code>KeyListener&lt;/code>&#xA;or &lt;code>KeyAdapter&lt;/code> object which registered to receive such&#xA;events using the component's &lt;code>addKeyListener&lt;/code> method.&#xA;(&lt;code>KeyAdapter&lt;/code> objects implement the&#xA;&lt;code>KeyListener&lt;/code> interface.)  Each such listener object&#xA;gets this &lt;code>KeyEvent&lt;/code> when the event occurs.&#xA;&lt;p>&#xA;&lt;em>&quot;Key typed&quot; events&lt;/em> are higher-level and generally do not depend on&#xA;the platform or keyboard layout.  They are generated when a Unicode character&#xA;is entered, and are the preferred way to find out about character input.&#xA;In the simplest case, a key typed event is produced by a single key press&#xA;(e.g., 'a').  Often, however, characters are produced by series of key&#xA;presses (e.g., 'shift' + 'a'), and the mapping from key pressed events to&#xA;key typed events may be many-to-one or many-to-many.  Key releases are not&#xA;usually necessary to generate a key typed event, but there are some cases&#xA;where the key typed event is not generated until a key is released (e.g.,&#xA;entering ASCII sequences via the Alt-Numpad method in Windows).&#xA;No key typed events are generated for keys that don't generate Unicode&#xA;characters (e.g., action keys, modifier keys, etc.).&#xA;&lt;p>&#xA;The getKeyChar method always returns a valid Unicode character or&#xA;CHAR_UNDEFINED.  Character input is reported by KEY_TYPED events:&#xA;KEY_PRESSED and KEY_RELEASED events are not necessarily associated&#xA;with character input.  Therefore, the result of the getKeyChar method&#xA;is guaranteed to be meaningful only for KEY_TYPED events.&#xA;&lt;p>&#xA;For key pressed and key released events, the getKeyCode method returns&#xA;the event's keyCode.  For key typed events, the getKeyCode method&#xA;always returns VK_UNDEFINED.&#xA;&#xA;&lt;p>&#xA;&lt;em>&quot;Key pressed&quot; and &quot;key released&quot; events&lt;/em> are lower-level and depend&#xA;on the platform and keyboard layout. They are generated whenever a key is&#xA;pressed or released, and are the only way to find out about keys that don't&#xA;generate character input (e.g., action keys, modifier keys, etc.). The key&#xA;being pressed or released is indicated by the getKeyCode method, which returns&#xA;a virtual key code.&#xA;&#xA;&lt;p>&#xA;&lt;em>Virtual key codes&lt;/em> are used to report which keyboard key has&#xA;been pressed, rather than a character generated by the combination&#xA;of one or more keystrokes (such as &quot;A&quot;, which comes from shift and &quot;a&quot;).&#xA;&#xA;&lt;p>&#xA;For example, pressing the Shift key will cause a KEY_PRESSED event&#xA;with a VK_SHIFT keyCode, while pressing the 'a' key will result in&#xA;a VK_A keyCode.  After the 'a' key is released, a KEY_RELEASED event&#xA;will be fired with VK_A. Separately, a KEY_TYPED event with a keyChar&#xA;value of 'A' is generated.&#xA;&#xA;&lt;p>&#xA;Notes:&#xA;&lt;ul>&#xA;&lt;li>Key combinations which do not result in Unicode characters, such as action&#xA;keys like F1 and the HELP key, do not generate KEY_TYPED events.&#xA;&lt;li>Not all keyboards or systems are capable of generating all&#xA;virtual key codes.  No attempt is made in Java to generate these keys&#xA;artificially.&#xA;&lt;li>Virtual key codes do not identify a physical key: they depend on the&#xA;platform and keyboard layout. For example, the key that generates VK_Q&#xA;when using a U.S. keyboard layout will generate VK_A when using a French&#xA;keyboard layout.&#xA;&lt;li>Not all characters have a keycode associated with them.  For example,&#xA;there is no keycode for the question mark because there is no keyboard&#xA;for which it appears on the primary layer.&#xA;&lt;li>In order to support the platform-independent handling of action keys,&#xA;the Java platform uses a few additional virtual key constants for functions&#xA;that would otherwise have to be recognized by interpreting virtual key codes&#xA;and modifiers. For example, for Japanese Windows keyboards, VK_ALL_CANDIDATES&#xA;is returned instead of VK_CONVERT with the ALT modifier.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;WARNING: Aside from those keys that are defined by the Java language&#xA;(VK_ENTER, VK_BACK_SPACE, and VK_TAB), do not rely on the values of the VK_&#xA;constants.  Sun reserves the right to change these values as needed&#xA;to accomodate a wider range of keyboards in the future.&#xA;&#xA;@author Carl Quinn&#xA;@author Amy Fowler&#xA;@author Norbert Lindenberg&#xA;@version 1.75 05/18/04&#xA;&#xA;@see KeyAdapter&#xA;@see KeyListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/keylistener.html&quot;>Tutorial: Writing a Key Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_377073_6585"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_767152_12949" isSubstitutable="true" general="_9_5_f720368_1110473546565_876618_6571"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_416292_6607" name="TextEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305766_984589_3758" body="A semantic event which indicates that an object's text changed.&#xA;This high-level event is generated by an object (such as a TextComponent)&#xA;when its text changes. The event is passed to&#xA;every &lt;code>TextListener&lt;/code> object which registered to receive such&#xA;events using the component's &lt;code>addTextListener&lt;/code> method.&#xA;&lt;P>&#xA;The object that implements the &lt;code>TextListener&lt;/code> interface gets&#xA;this &lt;code>TextEvent&lt;/code> when the event occurs. The listener is&#xA;spared the details of processing individual mouse movements and key strokes&#xA;Instead, it can process a &quot;meaningful&quot; (semantic) event like &quot;text changed&quot;.&#xA;&#xA;@author Georges Saab&#xA;@version 1.16 12/19/03&#xA;&#xA;@see java.awt.TextComponent&#xA;@see TextListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/textlistener.html&quot;>Tutorial: Writing a Text Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_416292_6607"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_912115_12959" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_21246_6591" name="MouseEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305756_674681_3743" body="An event which indicates that a mouse action occurred in a component.&#xA;A mouse action is considered to occur in a particular component if and only&#xA;if the mouse cursor is over the unobscured part of the component's bounds&#xA;when the action happens.&#xA;Component bounds can be obscurred by the visible component's children or by a&#xA;menu or by a top-level window.&#xA;This event is used both for mouse events (click, enter, exit) and mouse&#xA;motion events (moves and drags).&#xA;&lt;P>&#xA;This low-level event is generated by a component object for:&#xA;&lt;ul>&#xA;&lt;li>Mouse Events&#xA;&lt;ul>&#xA;&lt;li>a mouse button is pressed&#xA;&lt;li>a mouse button is released&#xA;&lt;li>a mouse button is clicked (pressed and released)&#xA;&lt;li>the mouse cursor enters the unobscured part of component's geometry&#xA;&lt;li>the mouse cursor exits the unobscured part of component's geometry&#xA;&lt;/ul>&#xA;&lt;li> Mouse Motion Events&#xA;&lt;ul>&#xA;&lt;li>the mouse is moved&#xA;&lt;li>the mouse is dragged&#xA;&lt;/ul>&#xA;&lt;/ul>&#xA;&lt;P>&#xA;A &lt;code>MouseEvent&lt;/code> object is passed to every&#xA;&lt;code>MouseListener&lt;/code>&#xA;or &lt;code>MouseAdapter&lt;/code> object which is registered to receive&#xA;the &quot;interesting&quot; mouse events using the component's&#xA;&lt;code>addMouseListener&lt;/code> method.&#xA;(&lt;code>MouseAdapter&lt;/code> objects implement the&#xA;&lt;code>MouseListener&lt;/code> interface.) Each such listener object&#xA;gets a &lt;code>MouseEvent&lt;/code> containing the mouse event.&#xA;&lt;P>&#xA;A &lt;code>MouseEvent&lt;/code> object is also passed to every&#xA;&lt;code>MouseMotionListener&lt;/code> or&#xA;&lt;code>MouseMotionAdapter&lt;/code> object which is registered to receive&#xA;mouse motion events using the component's&#xA;&lt;code>addMouseMotionListener&lt;/code>&#xA;method. (&lt;code>MouseMotionAdapter&lt;/code> objects implement the&#xA;&lt;code>MouseMotionListener&lt;/code> interface.) Each such listener object&#xA;gets a &lt;code>MouseEvent&lt;/code> containing the mouse motion event.&#xA;&lt;P>&#xA;When a mouse button is clicked, events are generated and sent to the&#xA;registered &lt;code>MouseListener&lt;/code>s.&#xA;The state of modal keys can be retrieved using {@link InputEvent#getModifiers}&#xA;and {@link InputEvent#getModifiersEx}.&#xA;The button mask returned by {@link InputEvent#getModifiers} reflects&#xA;only the button that changed state, not the current state of all buttons.&#xA;(Note: Due to overlap in the values of ALT_MASK/BUTTON2_MASK and&#xA;META_MASK/BUTTON3_MASK, this is not always true for mouse events involving&#xA;modifier keys).&#xA;To get the state of all buttons and modifier keys, use&#xA;{@link InputEvent#getModifiersEx}.&#xA;The button which has changed state is returned by {@link MouseEvent#getButton}&#xA;&lt;P>&#xA;For example, if the first mouse button is pressed, events are sent in the&#xA;following order:&#xA;&lt;PRE>&#xA;&lt;b   >id           &lt;/b   >   &lt;b   >modifiers   &lt;/b   > &lt;b   >button &lt;/b   >&#xA;&lt;code>MOUSE_PRESSED&lt;/code>:  &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;code>MOUSE_RELEASED&lt;/code>: &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;code>MOUSE_CLICKED&lt;/code>:  &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;/PRE>&#xA;When multiple mouse buttons are pressed, each press, release, and click&#xA;results in a separate event.&#xA;&lt;P>&#xA;For example, if the user presses &lt;b>button 1&lt;/b> followed by&#xA;&lt;b>button 2&lt;/b>, and then releases them in the same order,&#xA;the following sequence of events is generated:&#xA;&lt;PRE>&#xA;&lt;b   >id           &lt;/b   >   &lt;b   >modifiers   &lt;/b   > &lt;b   >button &lt;/b   >&#xA;&lt;code>MOUSE_PRESSED&lt;/code>:  &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;code>MOUSE_PRESSED&lt;/code>:  &lt;code>BUTTON2_MASK&lt;/code> &lt;code>BUTTON2&lt;/code>&#xA;&lt;code>MOUSE_RELEASED&lt;/code>: &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;code>MOUSE_CLICKED&lt;/code>:  &lt;code>BUTTON1_MASK&lt;/code> &lt;code>BUTTON1&lt;/code>&#xA;&lt;code>MOUSE_RELEASED&lt;/code>: &lt;code>BUTTON2_MASK&lt;/code> &lt;code>BUTTON2&lt;/code>&#xA;&lt;code>MOUSE_CLICKED&lt;/code>:  &lt;code>BUTTON2_MASK&lt;/code> &lt;code>BUTTON2&lt;/code>&#xA;&lt;/PRE>&#xA;If &lt;b>button 2&lt;/b> is released first, the&#xA;&lt;code>MOUSE_RELEASED&lt;/code>/&lt;code>MOUSE_CLICKED&lt;/code> pair&#xA;for &lt;code>BUTTON2_MASK&lt;/code> arrives first,&#xA;followed by the pair for &lt;code>BUTTON1_MASK&lt;/code>.&#xA;&lt;p>&#xA;&#xA;&lt;code>MOUSE_DRAGGED&lt;/code> events are delivered to the &lt;code>Component&lt;/code>&#xA;in which the mouse button was pressed until the mouse button is released&#xA;(regardless of whether the mouse position is within the bounds of the&#xA;&lt;code>Component&lt;/code>).  Due to platform-dependent Drag&amp;Drop implementations,&#xA;&lt;code>MOUSE_DRAGGED&lt;/code> events may not be delivered during a native&#xA;Drag&amp;Drop operation.&#xA;&#xA;In a multi-screen environment mouse drag events are delivered to the&#xA;&lt;code>Component&lt;/code> even if the mouse position is outside the bounds of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> associated with that&#xA;&lt;code>Component&lt;/code>. However, the reported position for mouse drag events&#xA;in this case may differ from the actual mouse position:&#xA;&lt;ul>&#xA;&lt;li>In a multi-screen environment without a virtual device:&#xA;&lt;br>&#xA;The reported coordinates for mouse drag events are clipped to fit within the&#xA;bounds of the &lt;code>GraphicsConfiguration&lt;/code> associated with&#xA;the &lt;code>Component&lt;/code>.&#xA;&lt;li>In a multi-screen environment with a virtual device:&#xA;&lt;br>&#xA;The reported coordinates for mouse drag events are clipped to fit within the&#xA;bounds of the virtual device associated with the &lt;code>Component&lt;/code>.&#xA;&lt;/ul>&#xA;&#xA;@author Carl Quinn&#xA;1.49, 12/19/03&#xA;&#xA;@see MouseAdapter&#xA;@see MouseListener&#xA;@see MouseMotionAdapter&#xA;@see MouseMotionListener&#xA;@see MouseWheelListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mouselistener.html&quot;>Tutorial: Writing a Mouse Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mousemotionlistener.html&quot;>Tutorial: Writing a Mouse Motion Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_21246_6591"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_729042_12952" isSubstitutable="true" general="_9_5_f720368_1110473546565_876618_6571"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_67346_6551" name="ContainerAdapter" clientDependency="_10_5_622020d_1132928320577_9186_12931" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_18020_3703" body="An abstract adapter class for receiving container events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>ContainerEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>ContainerListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a component using the component's &lt;code>addContainerListener&lt;/code>&#xA;method. When the container's contents change because a component has&#xA;been added or removed, the relevant method in the listener object is invoked,&#xA;and the &lt;code>ContainerEvent&lt;/code> is passed to it.&#xA;&#xA;@see ContainerEvent&#xA;@see ContainerListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/containerlistener.html&quot;>Tutorial: Writing a Container Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Amy Fowler&#xA;@version 1.12 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_67346_6551"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320577_9186_12931" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473546565_67346_6551" contract="_9_5_f720368_1110473546565_136951_6555"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_544576_6599" name="MouseWheelEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305766_929453_3751" body="An event which indicates that the mouse wheel was rotated in a component.&#xA;&lt;P>&#xA;A wheel mouse is a mouse which has a wheel in place of the middle button.&#xA;This wheel can be rotated towards or away from the user.  Mouse wheels are&#xA;most often used for scrolling, though other uses are possible.&#xA;&lt;P>&#xA;A MouseWheelEvent object is passed to every &lt;code>MouseWheelListener&lt;/code>&#xA;object which registered to receive the &quot;interesting&quot; mouse events using the&#xA;component's &lt;code>addMouseWheelListener&lt;/code> method.  Each such listener&#xA;object gets a &lt;code>MouseEvent&lt;/code> containing the mouse event.&#xA;&lt;P>&#xA;Due to the mouse wheel's special relationship to scrolling Components,&#xA;MouseWheelEvents are delivered somewhat differently than other MouseEvents.&#xA;This is because while other MouseEvents usually affect a change on&#xA;the Component directly under the mouse&#xA;cursor (for instance, when clicking a button), MouseWheelEvents often have&#xA;an effect away from the mouse cursor (moving the wheel while&#xA;over a Component inside a ScrollPane should scroll one of the&#xA;Scrollbars on the ScrollPane).&#xA;&lt;P>&#xA;MouseWheelEvents start delivery from the Component underneath the&#xA;mouse cursor.  If MouseWheelEvents are not enabled on the&#xA;Component, the event is delivered to the first ancestor&#xA;Container with MouseWheelEvents enabled.  This will usually be&#xA;a ScrollPane with wheel scrolling enabled.  The source&#xA;Component and x,y coordinates will be relative to the event's&#xA;final destination (the ScrollPane).  This allows a complex&#xA;GUI to be installed without modification into a ScrollPane, and&#xA;for all MouseWheelEvents to be delivered to the ScrollPane for&#xA;scrolling.&#xA;&lt;P>&#xA;Some AWT Components are implemented using native widgets which&#xA;display their own scrollbars and handle their own scrolling.&#xA;The particular Components for which this is true will vary from&#xA;platform to platform.  When the mouse wheel is&#xA;moved over one of these Components, the event is delivered straight to&#xA;the native widget, and not propagated to ancestors.&#xA;&lt;P>&#xA;Platforms offer customization of the amount of scrolling that&#xA;should take place when the mouse wheel is moved.  The two most&#xA;common settings are to scroll a certain number of &quot;units&quot;&#xA;(commonly lines of text in a text-based component) or an entire &quot;block&quot;&#xA;(similar to page-up/page-down).  The MouseWheelEvent offers&#xA;methods for conforming to the underlying platform settings.  These&#xA;platform settings can be changed at any time by the user.  MouseWheelEvents&#xA;reflect the most recent settings.&#xA;&#xA;@author Brent Christian&#xA;@version 1.9 12/19/03&#xA;@see MouseWheelListener&#xA;@see java.awt.ScrollPane&#xA;@see java.awt.ScrollPane#setWheelScrollingEnabled(boolean)&#xA;@see javax.swing.JScrollPane&#xA;@see javax.swing.JScrollPane#setWheelScrollingEnabled(boolean)&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_544576_6599"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_995906_12956" isSubstitutable="true" general="_9_5_f720368_1110473546565_21246_6591"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_24749_6583" name="KeyAdapter" clientDependency="_10_5_622020d_1132928320597_630766_12948" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_186148_3735" body="An abstract adapter class for receiving keyboard events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>KeyEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>KeyListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a component using the component's &lt;code>addKeyListener&lt;/code>&#xA;method. When a key is pressed, released, or typed,&#xA;the relevant method in the listener object is invoked,&#xA;and the &lt;code>KeyEvent&lt;/code> is passed to it.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.17 12/19/03&#xA;&#xA;@see KeyEvent&#xA;@see KeyListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/keylistener.html&quot;>Tutorial: Writing a Key Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_24749_6583"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320597_630766_12948" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_9_5_f720368_1110473546565_24749_6583" contract="_9_5_f720368_1110473546565_361131_6587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_876618_6571" name="InputEvent" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305726_398047_3723" body="The root event class for all component-level input events.&#xA;&#xA;Input events are delivered to listeners before they are&#xA;processed normally by the source where they originated.&#xA;This allows listeners and component subclasses to &quot;consume&quot;&#xA;the event so that the source will not process them in their&#xA;default manner.  For example, consuming mousePressed events&#xA;on a Button component will prevent the Button from being&#xA;activated.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.34 06/02/04&#xA;&#xA;@see KeyEvent&#xA;@see KeyAdapter&#xA;@see MouseEvent&#xA;@see MouseAdapter&#xA;@see MouseMotionAdapter&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_876618_6571"/>
              <generalization xmi:id="_10_5_622020d_1132928320587_280255_12941" isSubstitutable="true" general="_9_5_f720368_1110473546565_474687_6547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_999857_6557" name="FocusAdapter" clientDependency="_10_5_622020d_1132928320577_948303_12934" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305716_233256_3709" body="An abstract adapter class for receiving keyboard focus events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>FocusEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>FocusListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a component using the component's &lt;code>addFocusListener&lt;/code>&#xA;method. When the component gains or loses the keyboard focus,&#xA;the relevant method in the listener object is invoked,&#xA;and the &lt;code>FocusEvent&lt;/code> is passed to it.&#xA;&#xA;@see FocusEvent&#xA;@see FocusListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/focuslistener.html&quot;>Tutorial: Writing a Focus Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.16 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_999857_6557"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320577_948303_12934" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473546565_999857_6557" contract="_9_5_f720368_1110473546565_10343_6561"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_136951_6555" name="ContainerListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305716_195309_3707" body="The listener interface for receiving container events.&#xA;The class that is interested in processing a container event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>ContainerAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addContainerListener&lt;/code>&#xA;method. When the container's contents change because a component&#xA;has been added or removed, the relevant method in the listener object&#xA;is invoked, and the &lt;code>ContainerEvent&lt;/code> is passed to it.&#xA;&lt;P>&#xA;Container events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle add and remove operations&#xA;internally so the program works properly regardless of&#xA;whether the program registers a &lt;code>ComponentListener&lt;/code> or not.&#xA;&#xA;@see ContainerAdapter&#xA;@see ContainerEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/containerlistener.html&quot;>Tutorial: Writing a Container Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Tim Prinzing&#xA;@author Amy Fowler&#xA;@version 1.11 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_136951_6555"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_639630_12933" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_107028_6589" name="MouseAdapter" clientDependency="_10_5_622020d_1132928320597_217455_12951" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305746_411803_3741" body="An abstract adapter class for receiving mouse events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Mouse events let you track when a mouse is pressed, released, clicked,&#xA;when it enters a component, and when it exits.&#xA;(To track mouse moves and mouse drags, use the MouseMotionAdapter.)&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>MouseEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>MouseListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a component using the component's &lt;code>addMouseListener&lt;/code>&#xA;method. When a mouse button is pressed, released, or clicked (pressed and&#xA;released), or when the mouse cursor enters or exits the component,&#xA;the relevant method in the listener object is invoked&#xA;and the &lt;code>MouseEvent&lt;/code> is passed to it.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.8 08/02/97&#xA;&#xA;@see MouseEvent&#xA;@see MouseListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mouselistener.html&quot;>Tutorial: Writing a Mouse Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_107028_6589"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320597_217455_12951" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546565_107028_6589" contract="_9_5_f720368_1110473546565_486724_6593"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_998838_6563" name="HierarchyBoundsAdapter" clientDependency="_10_5_622020d_1132928320577_70052_12937" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305726_331161_3715" body="An abstract adapter class for receiving ancestor moved and resized events.&#xA;The methods in this class are empty. This class exists as a&#xA;convenience for creating listener objects.&#xA;&lt;p>&#xA;Extend this class and override the method for the event of interest. (If&#xA;you implement the &lt;code>HierarchyBoundsListener&lt;/code> interface, you have&#xA;to define both methods in it. This abstract class defines null methods for&#xA;them both, so you only have to define the method for the event you care&#xA;about.)&#xA;&lt;p>&#xA;Create a listener object using your class and then register it with a&#xA;Component using the Component's &lt;code>addHierarchyBoundsListener&lt;/code>&#xA;method. When the hierarchy to which the Component belongs changes by&#xA;resize or movement of an ancestor, the relevant method in the listener&#xA;object is invoked, and the &lt;code>HierarchyEvent&lt;/code> is passed to it.&#xA;&#xA;@author&#x9;David Mendenhall&#xA;@version&#x9;1.7, 12/19/03&#xA;@see&#x9;&#x9;HierarchyBoundsListener&#xA;@see&#x9;&#x9;HierarchyEvent&#xA;@since &#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_998838_6563"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320577_70052_12937" name="" supplier="_9_5_f720368_1110473546565_800273_6565" client="_9_5_f720368_1110473546565_998838_6563" contract="_9_5_f720368_1110473546565_800273_6565"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_707401_6539" name="AdjustmentListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_327665_3691" body="The listener interface for receiving adjustment events.&#xA;&#xA;@author Amy Fowler&#xA;@version 1.14 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_707401_6539"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_704496_12924" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_647609_6533" name="ActionEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_773723_3685" body="A semantic event which indicates that a component-defined action occurred.&#xA;This high-level event is generated by a component (such as a&#xA;&lt;code>Button&lt;/code>) when&#xA;the component-specific action occurs (such as being pressed).&#xA;The event is passed to every every &lt;code>ActionListener&lt;/code> object&#xA;that registered to receive such events using the component's&#xA;&lt;code>addActionListener&lt;/code> method.&#xA;&lt;p>&#xA;&lt;b>Note:&lt;/b> To invoke an &lt;code>ActionEvent&lt;/code> on a&#xA;&lt;code>Button&lt;/code> using the keyboard, use the Space bar.&#xA;&lt;P>&#xA;The object that implements the &lt;code>ActionListener&lt;/code> interface&#xA;gets this &lt;code>ActionEvent&lt;/code> when the event occurs. The listener&#xA;is therefore spared the details of processing individual mouse movements&#xA;and mouse clicks, and can instead process a &quot;meaningful&quot; (semantic)&#xA;event like &quot;button pressed&quot;.&#xA;&#xA;@see ActionListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/eventmodel.html&quot;>Tutorial: Java 1.1 Event Model&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.29 01/28/04&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_647609_6533"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_83366_12921" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_507441_6603" name="NativeLibLoader" visibility="package"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_341038_6597" name="MouseMotionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305756_556156_3749" body="The listener interface for receiving mouse motion events on a component.&#xA;(For clicks and other mouse events, use the &lt;code>MouseListener&lt;/code>.)&#xA;&lt;P>&#xA;The class that is interested in processing a mouse motion event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>MouseMotionAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;&lt;P>&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addMouseMotionListener&lt;/code>&#xA;method. A mouse motion event is generated when the mouse is moved&#xA;or dragged. (Many such events will be generated). When a mouse motion event&#xA;occurs, the relevant method in the listener object is invoked, and&#xA;the &lt;code>MouseEvent&lt;/code> is passed to it.&#xA;&#xA;@author Amy Fowler&#xA;@version 1.15, 12/19/03&#xA;&#xA;@see MouseMotionAdapter&#xA;@see MouseEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mousemotionlistener.html&quot;>Tutorial: Writing a Mouse Motion Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_341038_6597"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_849505_12955" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_206771_6615" name="WindowFocusListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_980869_3766" body="The listener interface for receiving &lt;code>WindowEvents&lt;/code>, including&#xA;&lt;code>WINDOW_GAINED_FOCUS&lt;/code> and &lt;code>WINDOW_LOST_FOCUS&lt;/code> events.&#xA;The class that is interested in processing a &lt;code>WindowEvent&lt;/code>&#xA;either implements this interface (and&#xA;all the methods it contains) or extends the abstract&#xA;&lt;code>WindowAdapter&lt;/code> class (overriding only the methods of interest).&#xA;The listener object created from that class is then registered with a&#xA;&lt;code>Window&lt;/code>&#xA;using the &lt;code>Window&lt;/code>'s &lt;code>addWindowFocusListener&lt;/code> method.&#xA;When the &lt;code>Window&lt;/code>'s&#xA;status changes by virtue of it being opened, closed, activated, deactivated,&#xA;iconified, or deiconified, or by focus being transfered into or out of the&#xA;&lt;code>Window&lt;/code>, the relevant method in the listener object is invoked,&#xA;and the &lt;code>WindowEvent&lt;/code> is passed to it.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.6, 12/19/03&#xA;&#xA;@see WindowAdapter&#xA;@see WindowEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/windowlistener.html&quot;>Tutorial: Writing a Window Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_206771_6615"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_828551_12965" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_388234_6543" name="AWTEventListenerProxy" clientDependency="_10_5_622020d_1132928320567_50980_12926">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_357213_3695" body="A class which extends the &lt;code>EventListenerProxy&lt;/code>, specifically&#xA;for adding an &lt;code>AWTEventListener&lt;/code> for a specific event mask.&#xA;Instances of this class can be added as &lt;code>AWTEventListener&lt;/code>s to&#xA;a Toolkit object.&#xA;&lt;p>&#xA;The &lt;code>getAWTEventListeners&lt;/code> method of Toolkit can&#xA;return a mixture of &lt;code>AWTEventListener&lt;/code> and&#xA;&lt;code>AWTEventListenerProxy&lt;/code> objects.&#xA;&#xA;@see java.awt.Toolkit&#xA;@see java.util.EventListenerProxy&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_388234_6543"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_657645_12927" isSubstitutable="true" general="_9_5_f720368_1110473546706_749379_8863"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320567_50980_12926" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_9_5_f720368_1110473546565_388234_6543" contract="_9_5_f720368_1110473546565_967678_6541"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_967678_6541" name="AWTEventListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_181459_3693" body="The listener interface for receiving notification of events&#xA;dispatched to objects that are instances of Component or&#xA;MenuComponent or their subclasses.  Unlike the other EventListeners&#xA;in this package, AWTEventListeners passively observe events&#xA;being dispatched in the AWT, system-wide.  Most applications&#xA;should never use this class; applications which might use&#xA;AWTEventListeners include event recorders for automated testing,&#xA;and facilities such as the Java Accessibility package.&#xA;&lt;p>&#xA;The class that is interested in monitoring AWT events&#xA;implements this interface, and the object created with that&#xA;class is registered with the Toolkit, using the Toolkit's&#xA;&lt;code>addAWTEventListener&lt;/code> method.  When an event is&#xA;dispatched anywhere in the AWT, that object's&#xA;&lt;code>eventDispatched&lt;/code> method is invoked.&#xA;&#xA;@see java.awt.AWTEvent&#xA;@see java.awt.Toolkit#addAWTEventListener&#xA;@see java.awt.Toolkit#removeAWTEventListener&#xA;&#xA;@author Fred Ecks&#xA;@version 1.10, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_967678_6541"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_112158_12925" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_348855_6617" name="WindowListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_832957_3768" body="The listener interface for receiving window events.&#xA;The class that is interested in processing a window event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>WindowAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;The listener object created from that class is then registered with a&#xA;Window using the window's &lt;code>addWindowListener&lt;/code>&#xA;method. When the window's status changes by virtue of being opened,&#xA;closed, activated or deactivated, iconified or deiconified,&#xA;the relevant method in the listener object is invoked, and the&#xA;&lt;code>WindowEvent&lt;/code> is passed to it.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.21, 12/19/03&#xA;&#xA;@see WindowAdapter&#xA;@see WindowEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/windowlistener.html&quot;>Tutorial: How to Write Window Listeners&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_348855_6617"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_540888_12966" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_858058_6619" name="WindowStateListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_717237_3770" body="The listener interface for receiving window state events.&#xA;&lt;p>&#xA;The class that is interested in processing a window state event&#xA;either implements this interface (and all the methods it contains)&#xA;or extends the abstract &lt;code>WindowAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;&lt;p>&#xA;The listener object created from that class is then registered with&#xA;a window using the &lt;code>Window&lt;/code>'s&#xA;&lt;code>addWindowStateListener&lt;/code> method.  When the window's&#xA;state changes by virtue of being iconified, maximized etc., the&#xA;&lt;code>windowStateChanged&lt;/code> method in the listener object is&#xA;invoked, and the &lt;code>WindowEvent&lt;/code> is passed to it.&#xA;&#xA;@see java.awt.event.WindowAdapter&#xA;@see java.awt.event.WindowEvent&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_858058_6619"/>
              <generalization xmi:id="_10_5_622020d_1132928320617_152093_12967" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_346656_6579" name="ItemEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_982996_3731" body="A semantic event which indicates that an item was selected or deselected.&#xA;This high-level event is generated by an ItemSelectable object (such as a&#xA;List) when an item is selected or deselected by the user.&#xA;The event is passed to every &lt;code>ItemListener&lt;/code> object which&#xA;registered to receive such events using the component's&#xA;&lt;code>addItemListener&lt;/code> method.&#xA;&lt;P>&#xA;The object that implements the &lt;code>ItemListener&lt;/code> interface gets&#xA;this &lt;code>ItemEvent&lt;/code> when the event occurs. The listener is&#xA;spared the details of processing individual mouse movements and mouse&#xA;clicks, and can instead process a &quot;meaningful&quot; (semantic) event like&#xA;&quot;item selected&quot; or &quot;item deselected&quot;.&#xA;&#xA;@version 1.28 12/19/03&#xA;@author Carl Quinn&#xA;&#xA;@see java.awt.ItemSelectable&#xA;@see ItemListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/itemlistener.html&quot;>Tutorial: Writing an Item Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_346656_6579"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_444570_12946" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_590573_6609" name="TextListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305766_758463_3760" body="The listener interface for receiving text events.&#xA;&#xA;The class that is interested in processing a text event&#xA;implements this interface. The object created with that&#xA;class is then registered with a component using the&#xA;component's &lt;code>addTextListener&lt;/code> method. When the&#xA;component's text changes, the listener object's&#xA;&lt;code>textValueChanged&lt;/code> method is invoked.&#xA;&#xA;@author Georges Saab&#xA;@version 1.12 12/19/03&#xA;&#xA;@see TextEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/textlistener.html&quot;>Tutorial: Writing a Text Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_590573_6609"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_873594_12960" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_259160_6545" name="ComponentAdapter" clientDependency="_10_5_622020d_1132928320577_71254_12928" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_984582_3697" body="An abstract adapter class for receiving component events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>ComponentEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>ComponentListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using your class and then register it with a&#xA;component using the component's &lt;code>addComponentListener&lt;/code>&#xA;method. When the component's size, location, or visibility&#xA;changes, the relevant method in the listener object is invoked,&#xA;and the &lt;code>ComponentEvent&lt;/code> is passed to it.&#xA;&#xA;@see ComponentEvent&#xA;@see ComponentListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/componentlistener.html&quot;>Tutorial: Writing a Component Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.16 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_259160_6545"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320577_71254_12928" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473546565_259160_6545" contract="_9_5_f720368_1110473546565_824053_6549"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_486724_6593" name="MouseListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305756_982683_3745" body="The listener interface for receiving &quot;interesting&quot; mouse events&#xA;(press, release, click, enter, and exit) on a component.&#xA;(To track mouse moves and mouse drags, use the&#xA;&lt;code>MouseMotionListener&lt;/code>.)&#xA;&lt;P>&#xA;The class that is interested in processing a mouse event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>MouseAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;&lt;P>&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addMouseListener&lt;/code>&#xA;method. A mouse event is generated when the mouse is pressed, released&#xA;clicked (pressed and released). A mouse event is also generated when&#xA;the mouse cursor enters or leaves a component. When a mouse event&#xA;occurs, the relevant method in the listener object is invoked, and&#xA;the &lt;code>MouseEvent&lt;/code> is passed to it.&#xA;&#xA;@author Carl Quinn&#xA;@version 1.17, 12/19/03&#xA;&#xA;@see MouseAdapter&#xA;@see MouseEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mouselistener.html&quot;>Tutorial: Writing a Mouse Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_486724_6593"/>
              <generalization xmi:id="_10_5_622020d_1132928320597_66006_12953" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_367839_6567" name="HierarchyEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305726_434547_3719" body="An event which indicates a change to the &lt;code>Component&lt;/code>&#xA;hierarchy to which a &lt;code>Component&lt;/code> belongs.&#xA;&lt;ul>&#xA;&lt;li>Hierarchy Change Events (HierarchyListener)&#xA;&lt;ul>&#xA;&lt;li> addition of an ancestor&#xA;&lt;li> removal of an ancestor&#xA;&lt;li> hierarchy made displayable&#xA;&lt;li> hierarchy made undisplayable&#xA;&lt;li> hierarchy shown on the screen (both visible and displayable)&#xA;&lt;li> hierarchy hidden on the screen (either invisible or undisplayable)&#xA;&lt;/ul>&#xA;&lt;li>Ancestor Reshape Events (HierarchyBoundsListener)&#xA;&lt;ul>&#xA;&lt;li> an ancestor was resized&#xA;&lt;li> an ancestor was moved&#xA;&lt;/ul>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Hierarchy events are provided for notification purposes ONLY.&#xA;The AWT will automatically handle changes to the hierarchy internally so&#xA;that GUI layout and displayability works properly regardless of whether a&#xA;program is receiving these events or not.&#xA;&lt;p>&#xA;This event is generated by a Container object (such as a Panel) when the&#xA;Container is added, removed, moved, or resized, and passed down the&#xA;hierarchy. It is also generated by a Component object when that object's&#xA;&lt;code>addNotify&lt;/code>, &lt;code>removeNotify&lt;/code>, &lt;code>show&lt;/code>, or&#xA;&lt;code>hide&lt;/code> method is called. ANCESTOR_MOVED and ANCESTOR_RESIZED&#xA;events are dispatched to every &lt;code>HierarchyBoundsListener&lt;/code> or&#xA;&lt;code>HierarchyBoundsAdapter&lt;/code> object which registered to receive&#xA;such events using the Component's &lt;code>addHierarchyBoundsListener&lt;/code>&#xA;method. (&lt;code>HierarchyBoundsAdapter&lt;/code> objects implement the &lt;code>&#xA;HierarchyBoundsListener&lt;/code> interface.) HIERARCHY_CHANGED events are&#xA;dispatched to every &lt;code>HierarchyListener&lt;/code> object which registered&#xA;to receive such events using the Component's &lt;code>addHierarchyListener&#xA;&lt;/code> method. Each such listener object gets this &lt;code>HierarchyEvent&#xA;&lt;/code> when the event occurs.&#xA;&#xA;@author&#x9;David Mendenhall&#xA;@version&#x9;1.12, 12/19/03&#xA;@see&#x9;&#x9;HierarchyListener&#xA;@see&#x9;&#x9;HierarchyBoundsAdapter&#xA;@see&#x9;&#x9;HierarchyBoundsListener&#xA;@since &#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_367839_6567"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_804985_12939" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_824053_6549" name="ComponentListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_110690_3701" body="The listener interface for receiving component events.&#xA;The class that is interested in processing a component event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>ComponentAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addComponentListener&lt;/code>&#xA;method. When the component's size, location, or visibility&#xA;changes, the relevant method in the listener object is invoked,&#xA;and the &lt;code>ComponentEvent&lt;/code> is passed to it.&#xA;&lt;P>&#xA;Component events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle component moves and resizes&#xA;internally so that GUI layout works properly regardless of&#xA;whether a program registers a &lt;code>ComponentListener&lt;/code> or not.&#xA;&#xA;@see ComponentAdapter&#xA;@see ComponentEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/componentlistener.html&quot;>Tutorial: Writing a Component Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.16 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_824053_6549"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_112799_12930" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_86227_6537" name="AdjustmentEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_589114_3689" body="The adjustment event emitted by Adjustable objects.&#xA;@see java.awt.Adjustable&#xA;@see AdjustmentListener&#xA;&#xA;@author Amy Fowler&#xA;@version 1.27 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_86227_6537"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_857515_12923" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_476297_6575" name="InputMethodListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_899145_3727" body="The listener interface for receiving input method events. A text editing&#xA;component has to install an input method event listener in order to work&#xA;with input methods.&#xA;&#xA;&lt;p>&#xA;The text editing component also has to provide an instance of InputMethodRequests.&#xA;&#xA;@author JavaSoft Asia/Pacific&#xA;@version 1.11 12/19/03&#xA;@see InputMethodEvent&#xA;@see java.awt.im.InputMethodRequests&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_476297_6575"/>
              <generalization xmi:id="_10_5_622020d_1132928320587_904986_12943" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_474687_6547" name="ComponentEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305686_878411_3699" body="A low-level event which indicates that a component moved, changed&#xA;size, or changed visibility (also, the root class for the other&#xA;component-level events).&#xA;&lt;P>&#xA;Component events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle component moves and resizes&#xA;internally so that GUI layout works properly regardless of&#xA;whether a program is receiving these events or not.&#xA;&lt;P>&#xA;In addition to serving as the base class for other component-related&#xA;events (InputEvent, FocusEvent, WindowEvent, ContainerEvent),&#xA;this class defines the events that indicate changes in&#xA;a component's size, position, or visibility.&#xA;&lt;P>&#xA;This low-level event is generated by a component object (such as a&#xA;List) when the component is moved, resized, rendered invisible, or made&#xA;visible again. The event is passed to every &lt;code>ComponentListener&lt;/code>&#xA;or &lt;code>ComponentAdapter&lt;/code> object which registered to receive such&#xA;events using the component's &lt;code>addComponentListener&lt;/code> method.&#xA;(&lt;code>ComponentAdapter&lt;/code> objects implement the&#xA;&lt;code>ComponentListener&lt;/code> interface.) Each such listener object&#xA;gets this &lt;code>ComponentEvent&lt;/code> when the event occurs.&#xA;&#xA;@see ComponentAdapter&#xA;@see ComponentListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/componentlistener.html&quot;>Tutorial: Writing a Component Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.27 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_474687_6547"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_782394_12929" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_462020_6601" name="MouseWheelListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305766_323880_3753" body="The listener interface for receiving mouse wheel events on a component.&#xA;(For clicks and other mouse events, use the &lt;code>MouseListener&lt;/code>.&#xA;For mouse movement and drags, use the &lt;code>MouseMotionListener&lt;/code>.)&#xA;&lt;P>&#xA;The class that is interested in processing a mouse wheel event&#xA;implements this interface (and all the methods it contains).&#xA;&lt;P>&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addMouseWheelListener&lt;/code>&#xA;method. A mouse wheel event is generated when the mouse wheel is rotated.&#xA;When a mouse wheel event occurs, that object's &lt;code>mouseWheelMoved&lt;/code>&#xA;method is invoked.&#xA;&lt;p>&#xA;For information on how mouse wheel events are dispatched, see&#xA;the class description for {@link MouseWheelEvent}.&#xA;&#xA;@author Brent Christian&#xA;@version 1.5 12/19/03&#xA;@see MouseWheelEvent&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_462020_6601"/>
              <generalization xmi:id="_10_5_622020d_1132928320607_58113_12957" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_106737_6535" name="ActionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_112496_3687" body="The listener interface for receiving action events.&#xA;The class that is interested in processing an action event&#xA;implements this interface, and the object created with that&#xA;class is registered with a component, using the component's&#xA;&lt;code>addActionListener&lt;/code> method. When the action event&#xA;occurs, that object's &lt;code>actionPerformed&lt;/code> method is&#xA;invoked.&#xA;&#xA;@see ActionEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/eventmodel.html&quot;>Tutorial: Java 1.1 Event Model&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.16 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_106737_6535"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_749465_12922" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_558736_6611" name="WindowAdapter" clientDependency="_10_5_622020d_1132928320607_357004_12961 _10_5_622020d_1132928320607_536498_12962 _10_5_622020d_1132928320607_626514_12963" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305776_529863_3762" body="An abstract adapter class for receiving window events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>WindowEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>WindowListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a Window using the window's &lt;code>addWindowListener&lt;/code>&#xA;method. When the window's status changes by virtue of being opened,&#xA;closed, activated or deactivated, iconified or deiconified,&#xA;the relevant method in the listener&#xA;object is invoked, and the &lt;code>WindowEvent&lt;/code> is passed to it.&#xA;&#xA;@see WindowEvent&#xA;@see WindowListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/windowlistener.html&quot;>Tutorial: Writing a Window Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@author Amy Fowler&#xA;@author David Mendenhall&#xA;@version 1.20, 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_558736_6611"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320607_357004_12961" name="" supplier="_9_5_f720368_1110473546565_348855_6617" client="_9_5_f720368_1110473546565_558736_6611" contract="_9_5_f720368_1110473546565_348855_6617"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320607_536498_12962" name="" supplier="_9_5_f720368_1110473546565_858058_6619" client="_9_5_f720368_1110473546565_558736_6611" contract="_9_5_f720368_1110473546565_858058_6619"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320607_626514_12963" name="" supplier="_9_5_f720368_1110473546565_206771_6615" client="_9_5_f720368_1110473546565_558736_6611" contract="_9_5_f720368_1110473546565_206771_6615"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_800273_6565" name="HierarchyBoundsListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305726_902605_3717" body="The listener interface for receiving ancestor moved and resized events.&#xA;The class that is interested in processing these events either implements&#xA;this interface (and all the methods it contains) or extends the abstract&#xA;&lt;code>HierarchyBoundsAdapter&lt;/code> class (overriding only the method of&#xA;interest).&#xA;The listener object created from that class is then registered with a&#xA;Component using the Component's &lt;code>addHierarchyBoundsListener&lt;/code>&#xA;method. When the hierarchy to which the Component belongs changes by&#xA;the resizing or movement of an ancestor, the relevant method in the listener&#xA;object is invoked, and the &lt;code>HierarchyEvent&lt;/code> is passed to it.&#xA;&lt;p>&#xA;Hierarchy events are provided for notification purposes ONLY;&#xA;The AWT will automatically handle changes to the hierarchy internally so&#xA;that GUI layout works properly regardless of whether a&#xA;program registers an &lt;code>HierarchyBoundsListener&lt;/code> or not.&#xA;&#xA;@author&#x9;David Mendenhall&#xA;@version&#x9;1.7, 12/19/03&#xA;@see&#x9;&#x9;HierarchyBoundsAdapter&#xA;@see&#x9;&#x9;HierarchyEvent&#xA;@since &#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546565_800273_6565"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_120165_12938" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_766151_6595" name="MouseMotionAdapter" clientDependency="_10_5_622020d_1132928320607_151124_12954" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305756_516643_3747" body="An abstract adapter class for receiving mouse motion events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects.&#xA;&lt;P>&#xA;Mouse motion events occur when a mouse is moved or dragged.&#xA;(Many such events will be generated in a normal program.&#xA;To track clicks and other mouse events, use the MouseAdapter.)&#xA;&lt;P>&#xA;Extend this class to create a &lt;code>MouseEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>MouseMotionListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you can only have to define methods for events you care about.)&#xA;&lt;P>&#xA;Create a listener object using the extended class and then register it with&#xA;a component using the component's &lt;code>addMouseMotionListener&lt;/code>&#xA;method. When the mouse is moved or dragged, the relevant method in the&#xA;listener object is invoked and the &lt;code>MouseEvent&lt;/code> is passed to it.&#xA;&#xA;@author Amy Fowler&#xA;@version 1.15 12/19/03&#xA;&#xA;@see MouseEvent&#xA;@see MouseMotionListener&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/mousemotionlistener.html&quot;>Tutorial: Writing a Mouse Motion Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_766151_6595"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320607_151124_12954" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546565_766151_6595" contract="_9_5_f720368_1110473546565_341038_6597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_10343_6561" name="FocusListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305716_244703_3713" body="The listener interface for receiving keyboard focus events on&#xA;a component.&#xA;The class that is interested in processing a focus event&#xA;either implements this interface (and all the methods it&#xA;contains) or extends the abstract &lt;code>FocusAdapter&lt;/code> class&#xA;(overriding only the methods of interest).&#xA;The listener object created from that class is then registered with a&#xA;component using the component's &lt;code>addFocusListener&lt;/code>&#xA;method. When the component gains or loses the keyboard focus,&#xA;the relevant method in the listener object&#xA;is invoked, and the &lt;code>FocusEvent&lt;/code> is passed to it.&#xA;&#xA;@see FocusAdapter&#xA;@see FocusEvent&#xA;@see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/post1.0/ui/focuslistener.html&quot;>Tutorial: Writing a Focus Listener&lt;/a>&#xA;@see &lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>Reference: The Java Class Libraries (update file)&lt;/a>&#xA;&#xA;@author Carl Quinn&#xA;@version 1.15 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546565_10343_6561"/>
              <generalization xmi:id="_10_5_622020d_1132928320577_892951_12936" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_874824_6573" name="InputMethodEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305736_92363_3725" body="Input method events contain information about text that is being&#xA;composed using an input method. Whenever the text changes, the&#xA;input method sends an event. If the text component that's currently&#xA;using the input method is an active client, the event is dispatched&#xA;to that component. Otherwise, it is dispatched to a separate&#xA;composition window.&#xA;&#xA;&lt;p>&#xA;The text included with the input method event consists of two parts:&#xA;committed text and composed text. Either part may be empty. The two&#xA;parts together replace any uncommitted composed text sent in previous events,&#xA;or the currently selected committed text.&#xA;Committed text should be integrated into the text component's persistent&#xA;data, it will not be sent again. Composed text may be sent repeatedly,&#xA;with changes to reflect the user's editing operations. Committed text&#xA;always precedes composed text.&#xA;&#xA;@author JavaSoft Asia/Pacific&#xA;@version 1.22 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_874824_6573"/>
              <generalization xmi:id="_10_5_622020d_1132928320587_30716_12942" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_796395_7003" name="FileDialog">
            <ownedComment xmi:id="_10_5_622020d_1132928306427_36182_4194" body="The &lt;code>FileDialog&lt;/code> class displays a dialog window&#xA;from which the user can select a file.&#xA;&lt;p>&#xA;Since it is a modal dialog, when the application calls&#xA;its &lt;code>show&lt;/code> method to display the dialog,&#xA;it blocks the rest of the application until the user has&#xA;chosen a file.&#xA;&#xA;@see Window#show&#xA;&#xA;@version &#x9;1.53, 12/19/03&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_796395_7003"/>
            <generalization xmi:id="_10_5_622020d_1132928321368_278338_13230" isSubstitutable="true" general="_9_5_f720368_1110473546581_788523_6987"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_327750_7103" name="PrintGraphics" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_647472_4315" body="An abstract class which provides a print graphics context for a page.&#xA;&#xA;@version &#x9;1.12 12/19/03&#xA;@author &#x9;Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546581_327750_7103"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_88515_7119" name="ScrollPaneAdjustable" clientDependency="_10_5_622020d_1132928321498_456488_13347 _10_5_622020d_1132928321498_342268_13348">
            <ownedComment xmi:id="_10_5_622020d_1132928306727_314112_4333" body="This class represents the state of a horizontal or vertical&#xA;scrollbar of a &lt;code>ScrollPane&lt;/code>.  Objects of this class are&#xA;returned by &lt;code>ScrollPane&lt;/code> methods.&#xA;&#xA;@version     1.9 12/19/03&#xA;@since&#x9;1.4&#xA;" annotatedElement="_9_5_f720368_1110473546596_88515_7119"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_456488_13347" name="" supplier="_9_5_f720368_1110473546581_905901_6923" client="_9_5_f720368_1110473546596_88515_7119" contract="_9_5_f720368_1110473546581_905901_6923"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_342268_13348" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_88515_7119" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_715645_7031" name="GraphicsDevice" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306587_8126_4221" body="The &lt;code>GraphicsDevice&lt;/code> class describes the graphics devices&#xA;that might be available in a particular graphics environment.  These&#xA;include screen and printer devices. Note that there can be many screens&#xA;and many printers in an instance of {@link GraphicsEnvironment}. Each&#xA;graphics device has one or more {@link GraphicsConfiguration} objects&#xA;associated with it.  These objects specify the different configurations&#xA;in which the &lt;code>GraphicsDevice&lt;/code> can be used.&#xA;&lt;p>&#xA;In a multi-screen environment, the &lt;code>GraphicsConfiguration&lt;/code>&#xA;objects can be used to render components on multiple screens.  The&#xA;following code sample demonstrates how to create a &lt;code>JFrame&lt;/code>&#xA;object for each &lt;code>GraphicsConfiguration&lt;/code> on each screen&#xA;device in the &lt;code>GraphicsEnvironment&lt;/code>:&#xA;&lt;pre>&#xA;GraphicsEnvironment ge = GraphicsEnvironment.&#xA;getLocalGraphicsEnvironment();&#xA;GraphicsDevice[] gs = ge.getScreenDevices();&#xA;for (int j = 0; j &lt; gs.length; j++) {&#xA;GraphicsDevice gd = gs[j];&#xA;GraphicsConfiguration[] gc =&#xA;gd.getConfigurations();&#xA;for (int i=0; i &lt; gc.length; i++) {&#xA;JFrame f = new&#xA;JFrame(gs[j].getDefaultConfiguration());&#xA;Canvas c = new Canvas(gc[i]);&#xA;Rectangle gcBounds = gc[i].getBounds();&#xA;int xoffs = gcBounds.x;&#xA;int yoffs = gcBounds.y;&#xA;f.getContentPane().add(c);&#xA;f.setLocation((i*50)+xoffs, (i*60)+yoffs);&#xA;f.show();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;@see GraphicsEnvironment&#xA;@see GraphicsConfiguration&#xA;@version 1.30, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546581_715645_7031"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_828559_7063" name="Label" clientDependency="_10_5_622020d_1132928321388_71638_13273">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_594595_4258" body="A &lt;code>Label&lt;/code> object is a component for placing text in a&#xA;container. A label displays a single line of read-only text.&#xA;The text can be changed by the application, but a user cannot edit it&#xA;directly.&#xA;&lt;p>&#xA;For example, the code&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));&#xA;add(new Label(&quot;Hi There!&quot;));&#xA;add(new Label(&quot;Another Label&quot;));&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;produces the following labels:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Label-1.gif&quot; alt=&quot;Two labels: 'Hi There!' and 'Another label'&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&#xA;@version&#x9;1.57, 03/16/04&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_828559_7063"/>
            <generalization xmi:id="_10_5_622020d_1132928321388_63340_13274" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_71638_13273" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_828559_7063" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_600743_17056" name="AccessibleAWTLabel" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306667_803913_4256" body="This class implements accessibility support for the&#xA;&lt;code>Label&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to label user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_600743_17056"/>
              <generalization xmi:id="_10_5_622020d_1132928321388_257303_13275" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_687015_6935" name="AWTException">
            <ownedComment xmi:id="_10_5_622020d_1132928306316_777122_4105" body="Signals that an Absract Window Toolkit exception has occurred.&#xA;&#xA;@version &#x9;1.16 12/19/03&#xA;@author &#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546581_687015_6935"/>
            <generalization xmi:id="_10_5_622020d_1132928321308_701847_13151" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547284_448561_16376" name="dnd">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_847256_6521" name="DropTargetDropEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305665_810897_3673" body="The &lt;code>DropTargetDropEvent&lt;/code> is delivered&#xA;via the &lt;code>DropTargetListener&lt;/code> drop() method.&#xA;&lt;p>&#xA;The &lt;code>DropTargetDropEvent&lt;/code> reports the &lt;i>source drop actions&lt;/i>&#xA;and the &lt;i>user drop action&lt;/i> that reflect the current state of the&#xA;drag-and-drop operation.&#xA;&lt;p>&#xA;&lt;i>Source drop actions&lt;/i> is a bitwise mask of &lt;code>DnDConstants&lt;/code>&#xA;that represents the set of drop actions supported by the drag source for&#xA;this drag-and-drop operation.&#xA;&lt;p>&#xA;&lt;i>User drop action&lt;/i> depends on the drop actions supported by the drag&#xA;source and the drop action selected by the user. The user can select a drop&#xA;action by pressing modifier keys during the drag operation:&#xA;&lt;pre>&#xA;Ctrl + Shift -> ACTION_LINK&#xA;Ctrl         -> ACTION_COPY&#xA;Shift        -> ACTION_MOVE&#xA;&lt;/pre>&#xA;If the user selects a drop action, the &lt;i>user drop action&lt;/i> is one of&#xA;&lt;code>DnDConstants&lt;/code> that represents the selected drop action if this&#xA;drop action is supported by the drag source or&#xA;&lt;code>DnDConstants.ACTION_NONE&lt;/code> if this drop action is not supported&#xA;by the drag source.&#xA;&lt;p>&#xA;If the user doesn't select a drop action, the set of&#xA;&lt;code>DnDConstants&lt;/code> that represents the set of drop actions supported&#xA;by the drag source is searched for &lt;code>DnDConstants.ACTION_MOVE&lt;/code>,&#xA;then for &lt;code>DnDConstants.ACTION_COPY&lt;/code>, then for&#xA;&lt;code>DnDConstants.ACTION_LINK&lt;/code> and the &lt;i>user drop action&lt;/i> is the&#xA;first constant found. If no constant is found the &lt;i>user drop action&lt;/i>&#xA;is &lt;code>DnDConstants.ACTION_NONE&lt;/code>.&#xA;&#xA;@version &#x9;1.28, 05/05/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_847256_6521"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_713573_12914" isSubstitutable="true" general="_9_5_f720368_1110473546565_246023_6523"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_271466_6495" name="DragGestureRecognizer" clientDependency="_10_5_622020d_1132928320547_906686_12895" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_896488_3645" body="The &lt;code>DragGestureRecognizer&lt;/code> is an&#xA;abstract base class for the specification&#xA;of a platform-dependent listener that can be associated with a particular&#xA;&lt;code>Component&lt;/code> in order to&#xA;identify platform-dependent drag initiating gestures.&#xA;&lt;p>&#xA;The appropriate &lt;code>DragGestureRecognizer&lt;/code>&#xA;subclass is obtained from the&#xA;&lt;code>DragSource&lt;/code> asssociated with&#xA;a particular &lt;code>Component&lt;/code>, or from the &lt;code>Toolkit&lt;/code>&#xA;object via its createDragGestureRecognizer() method.&#xA;&lt;p>&#xA;Once the &lt;code>DragGestureRecognizer&lt;/code>&#xA;is associated with a particular &lt;code>Component&lt;/code>&#xA;it will register the appropriate listener interfaces on that&#xA;&lt;code>Component&lt;/code>&#xA;in order to track the input events delivered to the &lt;code>Component&lt;/code>.&#xA;&lt;p>&#xA;Once the &lt;code>DragGestureRecognizer&lt;/code> identifies a sequence of events&#xA;on the &lt;code>Component&lt;/code> as a drag initiating gesture, it will notify&#xA;its unicast &lt;code>DragGestureListener&lt;/code> by&#xA;invoking its gestureRecognized() method.&#xA;&lt;P>&#xA;When a concrete &lt;code>DragGestureRecognizer&lt;/code>&#xA;instance detects a drag initiating&#xA;gesture on the &lt;code>Component&lt;/code> it is associated with,&#xA;it will fire a &lt;code>DragGestureEvent&lt;/code> to&#xA;the &lt;code>DragGestureListener&lt;/code> registered on&#xA;its unicast event source for &lt;code>DragGestureListener&lt;/code>&#xA;events. This &lt;code>DragGestureListener&lt;/code> is responsible&#xA;for causing the associated&#xA;&lt;code>DragSource&lt;/code> to start the Drag and Drop operation (if&#xA;appropriate).&#xA;&lt;P>&#xA;@author Laurence P. G. Cable&#xA;@version 1.20&#xA;@see java.awt.dnd.DragGestureListener&#xA;@see java.awt.dnd.DragGestureEvent&#xA;@see java.awt.dnd.DragSource&#xA;" annotatedElement="_9_5_f720368_1110473546549_271466_6495"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_906686_12895" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546549_271466_6495" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_788945_6517" name="DropTargetContext" clientDependency="_10_5_622020d_1132928320557_331159_12911">
              <ownedComment xmi:id="_10_5_622020d_1132928305665_391241_3669" body="A &lt;code>DropTargetContext&lt;/code> is created&#xA;whenever the logical cursor associated&#xA;with a Drag and Drop operation coincides with the visible geometry of&#xA;a &lt;code>Component&lt;/code> associated with a &lt;code>DropTarget&lt;/code>.&#xA;The &lt;code>DropTargetContext&lt;/code> provides&#xA;the mechanism for a potential receiver&#xA;of a drop operation to both provide the end user with the appropriate&#xA;drag under feedback, but also to effect the subsequent data transfer&#xA;if appropriate.&#xA;&#xA;@version &#x9;1.37, 05/05/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_788945_6517"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320557_331159_12911" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_788945_6517" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547284_812409_16401" name="TransferableProxy" visibility="protected" clientDependency="_10_5_622020d_1132928320557_567124_12912">
                <ownedComment xmi:id="_10_5_622020d_1132928305655_369183_3667" body="&lt;code>TransferableProxy&lt;/code> is a helper inner class that implements&#xA;&lt;code>Transferable&lt;/code> interface and serves as a proxy for another&#xA;&lt;code>Transferable&lt;/code> object which represents data transfer for&#xA;a particular drag-n-drop operation.&#xA;&lt;p>&#xA;The proxy forwards all requests to the encapsulated transferable&#xA;and automatically performs additional conversion on the data&#xA;returned by the encapsulated transferable in case of local transfer.&#xA;" annotatedElement="_9_5_f720368_1110473547284_812409_16401"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928320557_567124_12912" name="" supplier="_9_5_f720368_1110473546549_574486_6475" client="_9_5_f720368_1110473547284_812409_16401" contract="_9_5_f720368_1110473546549_574486_6475"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_53347_6489" name="DnDEventMulticaster" visibility="package" clientDependency="_10_5_622020d_1132928320547_741587_12890 _10_5_622020d_1132928320547_639558_12891">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_800293_3639" body="A class extends &lt;code>AWTEventMulticaster&lt;/code> to implement efficient and&#xA;thread-safe multi-cast event dispatching for the drag-and-drop events defined&#xA;in the java.awt.dnd package.&#xA;&#xA;@version &#x9;1.5, 12/19/03&#xA;@since &#x9;1.4&#xA;@see AWTEventMulticaster&#xA;" annotatedElement="_9_5_f720368_1110473546549_53347_6489"/>
              <generalization xmi:id="_10_5_622020d_1132928320547_484199_12892" isSubstitutable="true" general="_9_5_f720368_1110473546581_19052_6933"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_741587_12890" name="" supplier="_9_5_f720368_1110473546565_10050_6509" client="_9_5_f720368_1110473546549_53347_6489" contract="_9_5_f720368_1110473546565_10050_6509"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_639558_12891" name="" supplier="_9_5_f720368_1110473546565_213829_6511" client="_9_5_f720368_1110473546549_53347_6489" contract="_9_5_f720368_1110473546565_213829_6511"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_452931_6515" name="DropTargetAdapter" clientDependency="_10_5_622020d_1132928320557_365837_12910" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_855599_3666" body="An abstract adapter class for receiving drop target events. The methods in&#xA;this class are empty. This class exists only as a convenience for creating&#xA;listener objects.&#xA;&lt;p>&#xA;Extend this class to create a &lt;code>DropTargetEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>DropTargetListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines a null implementation for&#xA;every method except &lt;code>drop(DropTargetDropEvent)&lt;/code>, so you only have&#xA;to define methods for events you care about.) You must provide an&#xA;implementation for at least &lt;code>drop(DropTargetDropEvent)&lt;/code>. This&#xA;method cannot have a null implementation because its specification requires&#xA;that you either accept or reject the drop, and, if accepted, indicate&#xA;whether the drop was successful.&#xA;&lt;p>&#xA;Create a listener object using the extended class and then register it with&#xA;a &lt;code>DropTarget&lt;/code>. When the drag enters, moves over, or exits&#xA;the operable part of the drop site for that &lt;code>DropTarget&lt;/code>, when&#xA;the drop action changes, and when the drop occurs, the relevant method in&#xA;the listener object is invoked, and the &lt;code>DropTargetEvent&lt;/code> is&#xA;passed to it.&#xA;&lt;p>&#xA;The operable part of the drop site for the &lt;code>DropTarget&lt;/code> is&#xA;the part of the associated &lt;code>Component&lt;/code>'s geometry that is not&#xA;obscured by an overlapping top-level window or by another&#xA;&lt;code>Component&lt;/code> higher in the Z-order that has an associated active&#xA;&lt;code>DropTarget&lt;/code>.&#xA;&lt;p>&#xA;During the drag, the data associated with the current drag operation can be&#xA;retrieved by calling &lt;code>getTransferable()&lt;/code> on&#xA;&lt;code>DropTargetDragEvent&lt;/code> instances passed to the listener's&#xA;methods.&#xA;&lt;p>&#xA;Note that &lt;code>getTransferable()&lt;/code> on the&#xA;&lt;code>DropTargetDragEvent&lt;/code> instance should only be called within the&#xA;respective listener's method and all the necessary data should be retrieved&#xA;from the returned &lt;code>Transferable&lt;/code> before that method returns.&#xA;&#xA;@see DropTargetEvent&#xA;@see DropTargetListener&#xA;&#xA;@author David Mendenhall&#xA;@version 1.7, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_452931_6515"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320557_365837_12910" name="" supplier="_9_5_f720368_1110473546565_62805_6525" client="_9_5_f720368_1110473546565_452931_6515" contract="_9_5_f720368_1110473546565_62805_6525"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_739424_6501" name="DragSourceContext" clientDependency="_10_5_622020d_1132928320547_109187_12900 _10_5_622020d_1132928320547_575013_12901 _10_5_622020d_1132928320547_348225_12899">
              <ownedComment xmi:id="_10_5_622020d_1132928305645_119169_3651" body="The &lt;code>DragSourceContext&lt;/code> class is responsible for managing the&#xA;initiator side of the Drag and Drop protocol. In particular, it is responsible&#xA;for managing drag event notifications to the &lt;code>DragSourceListener&lt;/code>s&#xA;and &lt;code>DragSourceMotionListener&lt;/code>s, and providing the&#xA;&lt;code>Transferable&lt;/code> representing the source data for the drag operation.&#xA;&lt;p>&#xA;Note that the &lt;code>DragSourceContext&lt;/code> itself&#xA;implements the &lt;code>DragSourceListener&lt;/code> and&#xA;&lt;code>DragSourceMotionListener&lt;/code> interfaces.&#xA;This is to allow the platform peer&#xA;(the &lt;code>DragSourceContextPeer&lt;/code> instance)&#xA;created by the &lt;code>DragSource&lt;/code> to notify&#xA;the &lt;code>DragSourceContext&lt;/code> of&#xA;state changes in the ongoing operation. This allows the&#xA;&lt;code>DragSourceContext&lt;/code> to interpose&#xA;itself between the platform and the&#xA;listeners provided by the initiator of the drag operation.&#xA;&#xA;@see DragSourceListener&#xA;@see DragSourceMotionListener&#xA;@version 1.51, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_739424_6501"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_348225_12899" name="" supplier="_9_5_f720368_1110473546565_10050_6509" client="_9_5_f720368_1110473546549_739424_6501" contract="_9_5_f720368_1110473546565_10050_6509"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_109187_12900" name="" supplier="_9_5_f720368_1110473546565_213829_6511" client="_9_5_f720368_1110473546549_739424_6501" contract="_9_5_f720368_1110473546565_213829_6511"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_575013_12901" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546549_739424_6501" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_10050_6509" name="DragSourceListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_874701_3659" body="The &lt;code>DragSourceListener&lt;/code> defines the&#xA;event interface for originators of&#xA;Drag and Drop operations to track the state of the user's gesture, and to&#xA;provide appropriate &quot;drag over&quot;&#xA;feedback to the user throughout the&#xA;Drag and Drop operation.&#xA;&lt;p>&#xA;The drop site is &lt;i>associated with the previous &lt;code>dragEnter()&lt;/code>&#xA;invocation&lt;/i> if the latest invocation of &lt;code>dragEnter()&lt;/code> on this&#xA;listener:&#xA;&lt;ul>&#xA;&lt;li>corresponds to that drop site and&#xA;&lt;li> is not followed by a &lt;code>dragExit()&lt;/code> invocation on this listener.&#xA;&lt;/ul>&#xA;&#xA;@version &#x9;1.20, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_10050_6509"/>
              <generalization xmi:id="_10_5_622020d_1132928320557_392390_12905" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_875706_6531" name="SerializationTester" visibility="package" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_178382_3683" body="Tests if an object can truly be serialized by serializing it to a null&#xA;OutputStream.&#xA;&#xA;@version 1.5, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_875706_6531"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_305359_6519" name="DropTargetDragEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305665_847038_3671" body="The &lt;code>DropTargetDragEvent&lt;/code> is delivered to a&#xA;&lt;code>DropTargetListener&lt;/code> via its&#xA;dragEnter() and dragOver() methods.&#xA;&lt;p>&#xA;The &lt;code>DropTargetDragEvent&lt;/code> reports the &lt;i>source drop actions&lt;/i>&#xA;and the &lt;i>user drop action&lt;/i> that reflect the current state of&#xA;the drag operation.&#xA;&lt;p>&#xA;&lt;i>Source drop actions&lt;/i> is a bitwise mask of &lt;code>DnDConstants&lt;/code>&#xA;that represents the set of drop actions supported by the drag source for&#xA;this drag operation.&#xA;&lt;p>&#xA;&lt;i>User drop action&lt;/i> depends on the drop actions supported by the drag&#xA;source and the drop action selected by the user. The user can select a drop&#xA;action by pressing modifier keys during the drag operation:&#xA;&lt;pre>&#xA;Ctrl + Shift -> ACTION_LINK&#xA;Ctrl         -> ACTION_COPY&#xA;Shift        -> ACTION_MOVE&#xA;&lt;/pre>&#xA;If the user selects a drop action, the &lt;i>user drop action&lt;/i> is one of&#xA;&lt;code>DnDConstants&lt;/code> that represents the selected drop action if this&#xA;drop action is supported by the drag source or&#xA;&lt;code>DnDConstants.ACTION_NONE&lt;/code> if this drop action is not supported&#xA;by the drag source.&#xA;&lt;p>&#xA;If the user doesn't select a drop action, the set of&#xA;&lt;code>DnDConstants&lt;/code> that represents the set of drop actions supported&#xA;by the drag source is searched for &lt;code>DnDConstants.ACTION_MOVE&lt;/code>,&#xA;then for &lt;code>DnDConstants.ACTION_COPY&lt;/code>, then for&#xA;&lt;code>DnDConstants.ACTION_LINK&lt;/code> and the &lt;i>user drop action&lt;/i> is the&#xA;first constant found. If no constant is found the &lt;i>user drop action&lt;/i>&#xA;is &lt;code>DnDConstants.ACTION_NONE&lt;/code>.&#xA;&#xA;@version &#x9;1.24, 05/05/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_305359_6519"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_393063_12913" isSubstitutable="true" general="_9_5_f720368_1110473546565_246023_6523"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_185937_6497" name="DragSource" clientDependency="_10_5_622020d_1132928320547_847728_12896">
              <ownedComment xmi:id="_10_5_622020d_1132928305645_389330_3647" body="The &lt;code>DragSource&lt;/code> is the entity responsible&#xA;for the initiation of the Drag&#xA;and Drop operation, and may be used in a number of scenarios:&#xA;&lt;UL>&#xA;&lt;LI>1 default instance per JVM for the lifetime of that JVM.&#xA;&lt;LI>1 instance per class of potential Drag Initiator object (e.g&#xA;TextField). [implementation dependent]&#xA;&lt;LI>1 per instance of a particular&#xA;&lt;code>Component&lt;/code>, or application specific&#xA;object associated with a &lt;code>Component&lt;/code>&#xA;instance in the GUI. [implementation dependent]&#xA;&lt;LI>Some other arbitrary association. [implementation dependent]&#xA;&lt;/UL>&#xA;&#xA;Once the &lt;code>DragSource&lt;/code> is&#xA;obtained, a &lt;code>DragGestureRecognizer&lt;/code> should&#xA;also be obtained to associate the &lt;code>DragSource&lt;/code>&#xA;with a particular&#xA;&lt;code>Component&lt;/code>.&#xA;&lt;P>&#xA;The initial interpretation of the user's gesture,&#xA;and the subsequent starting of the drag operation&#xA;are the responsibility of the implementing&#xA;&lt;code>Component&lt;/code>, which is usually&#xA;implemented by a &lt;code>DragGestureRecognizer&lt;/code>.&#xA;&lt;P>&#xA;When a drag gesture occurs, the&#xA;&lt;code>DragSource&lt;/code>'s&#xA;startDrag() method shall be&#xA;invoked in order to cause processing&#xA;of the user's navigational&#xA;gestures and delivery of Drag and Drop&#xA;protocol notifications. A&#xA;&lt;code>DragSource&lt;/code> shall only&#xA;permit a single Drag and Drop operation to be&#xA;current at any one time, and shall&#xA;reject any further startDrag() requests&#xA;by throwing an &lt;code>IllegalDnDOperationException&lt;/code>&#xA;until such time as the extant operation is complete.&#xA;&lt;P>&#xA;The startDrag() method invokes the&#xA;createDragSourceContext() method to&#xA;instantiate an appropriate&#xA;&lt;code>DragSourceContext&lt;/code>&#xA;and associate the &lt;code>DragSourceContextPeer&lt;/code>&#xA;with that.&#xA;&lt;P>&#xA;If the Drag and Drop System is&#xA;unable to initiate a drag operation for&#xA;some reason, the startDrag() method throws&#xA;a &lt;code>java.awt.dnd.InvalidDnDOperationException&lt;/code>&#xA;to signal such a condition. Typically this&#xA;exception is thrown when the underlying platform&#xA;system is either not in a state to&#xA;initiate a drag, or the parameters specified are invalid.&#xA;&lt;P>&#xA;Note that during the drag, the&#xA;set of operations exposed by the source&#xA;at the start of the drag operation may not change&#xA;until the operation is complete.&#xA;The operation(s) are constant for the&#xA;duration of the operation with respect to the&#xA;&lt;code>DragSource&lt;/code>.&#xA;&#xA;@version &#x9;1.45, 05/05/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_185937_6497"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_847728_12896" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546549_185937_6497" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_368127_6507" name="DragSourceEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_63771_3657" body="This class is the base class for&#xA;&lt;code>DragSourceDragEvent&lt;/code> and&#xA;&lt;code>DragSourceDropEvent&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>DragSourceEvent&lt;/code>s are generated whenever the drag enters, moves&#xA;over, or exits a drop site, when the drop action changes, and when the drag&#xA;ends. The location for the generated &lt;code>DragSourceEvent&lt;/code> specifies&#xA;the mouse cursor location in screen coordinates at the moment this event&#xA;occured.&#xA;&lt;p>&#xA;In a multi-screen environment without a virtual device, the cursor location is&#xA;specified in the coordinate system of the &lt;i>initiator&lt;/i>&#xA;&lt;code>GraphicsConfiguration&lt;/code>. The &lt;i>initiator&lt;/i>&#xA;&lt;code>GraphicsConfiguration&lt;/code> is the &lt;code>GraphicsConfiguration&lt;/code>&#xA;of the &lt;code>Component&lt;/code> on which the drag gesture for the current drag&#xA;operation was recognized. If the cursor location is outside the bounds of&#xA;the initiator &lt;code>GraphicsConfiguration&lt;/code>, the reported coordinates are&#xA;clipped to fit within the bounds of that &lt;code>GraphicsConfiguration&lt;/code>.&#xA;&lt;p>&#xA;In a multi-screen environment with a virtual device, the location is specified&#xA;in the corresponding virtual coordinate system. If the cursor location is&#xA;outside the bounds of the virtual device the reported coordinates are&#xA;clipped to fit within the bounds of the virtual device.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_368127_6507"/>
              <generalization xmi:id="_10_5_622020d_1132928320557_967337_12904" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_114922_6487" name="DnDConstants" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_167269_3637" body="This class contains constant values representing&#xA;the type of action(s) to be performed by a Drag and Drop operation.&#xA;@version &#x9;1.19, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_114922_6487"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_793259_6503" name="DragSourceDragEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305645_224447_3653" body="The &lt;code>DragSourceDragEvent&lt;/code> is&#xA;delivered from the &lt;code>DragSourceContextPeer&lt;/code>,&#xA;via the &lt;code>DragSourceContext&lt;/code>, to the &lt;code>DragSourceListener&lt;/code>&#xA;registered with that &lt;code>DragSourceContext&lt;/code> and with its associated&#xA;&lt;code>DragSource&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>DragSourceDragEvent&lt;/code> reports the &lt;i>target drop action&lt;/i>&#xA;and the &lt;i>user drop action&lt;/i> that reflect the current state of&#xA;the drag operation.&#xA;&lt;p>&#xA;&lt;i>Target drop action&lt;/i> is one of &lt;code>DnDConstants&lt;/code> that represents&#xA;the drop action selected by the current drop target if this drop action is&#xA;supported by the drag source or &lt;code>DnDConstants.ACTION_NONE&lt;/code> if this&#xA;drop action is not supported by the drag source.&#xA;&lt;p>&#xA;&lt;i>User drop action&lt;/i> depends on the drop actions supported by the drag&#xA;source and the drop action selected by the user. The user can select a drop&#xA;action by pressing modifier keys during the drag operation:&#xA;&lt;pre>&#xA;Ctrl + Shift -> ACTION_LINK&#xA;Ctrl         -> ACTION_COPY&#xA;Shift        -> ACTION_MOVE&#xA;&lt;/pre>&#xA;If the user selects a drop action, the &lt;i>user drop action&lt;/i> is one of&#xA;&lt;code>DnDConstants&lt;/code> that represents the selected drop action if this&#xA;drop action is supported by the drag source or&#xA;&lt;code>DnDConstants.ACTION_NONE&lt;/code> if this drop action is not supported&#xA;by the drag source.&#xA;&lt;p>&#xA;If the user doesn't select a drop action, the set of&#xA;&lt;code>DnDConstants&lt;/code> that represents the set of drop actions supported&#xA;by the drag source is searched for &lt;code>DnDConstants.ACTION_MOVE&lt;/code>,&#xA;then for &lt;code>DnDConstants.ACTION_COPY&lt;/code>, then for&#xA;&lt;code>DnDConstants.ACTION_LINK&lt;/code> and the &lt;i>user drop action&lt;/i> is the&#xA;first constant found. If no constant is found the &lt;i>user drop action&lt;/i>&#xA;is &lt;code>DnDConstants.ACTION_NONE&lt;/code>.&#xA;&#xA;@version &#x9;1.29, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546549_793259_6503"/>
              <generalization xmi:id="_10_5_622020d_1132928320547_602994_12902" isSubstitutable="true" general="_9_5_f720368_1110473546565_368127_6507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_730784_6505" name="DragSourceDropEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_147076_3655" body="The &lt;code>DragSourceDropEvent&lt;/code> is delivered&#xA;from the &lt;code>DragSourceContextPeer&lt;/code>,&#xA;via the &lt;code>DragSourceContext&lt;/code>, to the &lt;code>dragDropEnd&lt;/code>&#xA;method of &lt;code>DragSourceListener&lt;/code>s registered with that&#xA;&lt;code>DragSourceContext&lt;/code> and with its associated&#xA;&lt;code>DragSource&lt;/code>.&#xA;It contains sufficient information for the&#xA;originator of the operation&#xA;to provide appropriate feedback to the end user&#xA;when the operation completes.&#xA;&lt;P>&#xA;@version &#x9;1.19, 12/19/03&#xA;&lt;P>&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_730784_6505"/>
              <generalization xmi:id="_10_5_622020d_1132928320557_610387_12903" isSubstitutable="true" general="_9_5_f720368_1110473546565_368127_6507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547284_310136_16377" name="peer">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_460916_6479" name="DragSourceContextPeer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305625_886794_3629" body="&lt;p>&#xA;This interface is supplied by the underlying window system platform to&#xA;expose the behaviors of the Drag and Drop system to an originator of&#xA;the same&#xA;&lt;/p>&#xA;&#xA;@version &#x9;1.15, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546549_460916_6479"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_873313_6481" name="DropTargetContextPeer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305625_204926_3631" body="&lt;p>&#xA;This interface is exposed by the underlying window system platform to&#xA;enable control of platform DnD operations&#xA;&lt;/p>&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546549_873313_6481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_215265_6483" name="DropTargetPeer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305635_436203_3633" body="&lt;p>&#xA;The DropTargetPeer class is the interface to the platform dependent&#xA;DnD facilities. Since the DnD system is based on the native platform's&#xA;facilities, a DropTargetPeer will be associated with a ComponentPeer&#xA;of the nearsest enclosing native Container (in the case of lightweights)&#xA;&lt;/p>&#xA;&#xA;@version &#x9;1.10, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546549_215265_6483"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_124320_6529" name="MouseDragGestureRecognizer" clientDependency="_10_5_622020d_1132928320567_579331_12918 _10_5_622020d_1132928320567_991412_12919" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_5520_3681" body="This abstract subclass of &lt;code>DragGestureRecognizer&lt;/code>&#xA;defines a &lt;code>DragGestureRecognizer&lt;/code>&#xA;for mouse-based gestures.&#xA;&#xA;Each platform implements its own concrete subclass of this class,&#xA;available via the Toolkit.createDragGestureRecognizer() method,&#xA;to encapsulate&#xA;the recognition of the platform dependent mouse gesture(s) that initiate&#xA;a Drag and Drop operation.&#xA;&lt;p>&#xA;Mouse drag gesture recognizers should honor the&#xA;drag gesture motion threshold, available through&#xA;{@link DragSource#getDragThreshold}.&#xA;A drag gesture should be recognized only when the distance&#xA;in either the horizontal or vertical direction between&#xA;the location of the latest mouse dragged event and the&#xA;location of the corresponding mouse button pressed event&#xA;is greater than the drag gesture motion threshold.&#xA;&lt;p>&#xA;Drag gesture recognizers created with&#xA;{@link DragSource#createDefaultDragGestureRecognizer}&#xA;follow this convention.&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.14&#xA;&#xA;@see java.awt.dnd.DragGestureListener&#xA;@see java.awt.dnd.DragGestureEvent&#xA;@see java.awt.dnd.DragSource&#xA;" annotatedElement="_9_5_f720368_1110473546565_124320_6529"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_903259_12920" isSubstitutable="true" general="_9_5_f720368_1110473546549_271466_6495"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320567_579331_12918" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546565_124320_6529" contract="_9_5_f720368_1110473546565_486724_6593"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320567_991412_12919" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546565_124320_6529" contract="_9_5_f720368_1110473546565_341038_6597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_968843_6527" name="InvalidDnDOperationException">
              <ownedComment xmi:id="_10_5_622020d_1132928305676_730630_3679" body="This exception is thrown by various methods in the java.awt.dnd package.&#xA;It is usually thrown to indicate that the target in question is unable&#xA;to undertake the requested operation that the present time, since the&#xA;undrelying DnD system is not in the appropriate state.&#xA;&#xA;@version &#x9;1.12, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_968843_6527"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_695037_12917" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_246023_6523" name="DropTargetEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305665_48399_3675" body="The &lt;code>DropTargetEvent&lt;/code> is the base&#xA;class for both the &lt;code>DropTargetDragEvent&lt;/code>&#xA;and the &lt;code>DropTargetDropEvent&lt;/code>.&#xA;It encapsulates the current state of the Drag and&#xA;Drop operations, in particular the current&#xA;&lt;code>DropTargetContext&lt;/code>.&#xA;&#xA;@version &#x9;1.18, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546565_246023_6523"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_682378_12915" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_213829_6511" name="DragSourceMotionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_76584_3661" body="A listener interface for receiving mouse motion events during a drag&#xA;operation.&#xA;&lt;p>&#xA;The class that is interested in processing mouse motion events during&#xA;a drag operation either implements this interface or extends the abstract&#xA;&lt;code>DragSourceAdapter&lt;/code> class (overriding only the methods of&#xA;interest).&#xA;&lt;p>&#xA;Create a listener object using that class and then register it with&#xA;a &lt;code>DragSource&lt;/code>. Whenever the mouse moves during a drag&#xA;operation initiated with this &lt;code>DragSource&lt;/code>, that object's&#xA;&lt;code>dragMouseMoved&lt;/code> method is invoked, and the&#xA;&lt;code>DragSourceDragEvent&lt;/code> is passed to it.&#xA;&#xA;@see DragSourceDragEvent&#xA;@see DragSource&#xA;@see DragSourceListener&#xA;@see DragSourceAdapter&#xA;&#xA;@version 1.4, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_213829_6511"/>
              <generalization xmi:id="_10_5_622020d_1132928320557_90387_12906" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_113103_6513" name="DropTarget" clientDependency="_10_5_622020d_1132928320557_822676_12908 _10_5_622020d_1132928320557_843356_12907">
              <ownedComment xmi:id="_10_5_622020d_1132928305655_979855_3664" body="The &lt;code>DropTarget&lt;/code> is associated&#xA;with a &lt;code>Component&lt;/code> when that &lt;code>Component&lt;/code>&#xA;wishes&#xA;to accept drops during Drag and Drop operations.&#xA;&lt;P>&#xA;Each&#xA;&lt;code>DropTarget&lt;/code> is associated with a &lt;code>FlavorMap&lt;/code>.&#xA;The default &lt;code>FlavorMap&lt;/code> hereafter designates the&#xA;&lt;code>FlavorMap&lt;/code> returned by &lt;code>SystemFlavorMap.getDefaultFlavorMap()&lt;/code>.&#xA;&#xA;@version &#x9;1.48, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_113103_6513"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320557_843356_12907" name="" supplier="_9_5_f720368_1110473546565_62805_6525" client="_9_5_f720368_1110473546565_113103_6513" contract="_9_5_f720368_1110473546565_62805_6525"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320557_822676_12908" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_113103_6513" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547284_540132_16396" name="DropTargetAutoScroller" visibility="protected" clientDependency="_10_5_622020d_1132928320557_678616_12909">
                <ownedComment xmi:id="_10_5_622020d_1132928305655_227847_3662" body="this protected nested class implements autoscrolling&#xA;" annotatedElement="_9_5_f720368_1110473547284_540132_16396"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928320557_678616_12909" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473547284_540132_16396" contract="_9_5_f720368_1110473546565_106737_6535"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_410857_6499" name="DragSourceAdapter" clientDependency="_10_5_622020d_1132928320547_203419_12897 _10_5_622020d_1132928320547_20910_12898" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305645_199167_3649" body="An abstract adapter class for receiving drag source events. The methods in&#xA;this class are empty. This class exists only as a convenience for creating&#xA;listener objects.&#xA;&lt;p>&#xA;Extend this class to create a &lt;code>DragSourceEvent&lt;/code> listener&#xA;and override the methods for the events of interest. (If you implement the&#xA;&lt;code>DragSourceListener&lt;/code> interface, you have to define all of&#xA;the methods in it. This abstract class defines null methods for them&#xA;all, so you only have to define methods for events you care about.)&#xA;&lt;p>&#xA;Create a listener object using the extended class and then register it with&#xA;a &lt;code>DragSource&lt;/code>. When the drag enters, moves over, or exits&#xA;a drop site, when the drop action changes, and when the drag ends, the&#xA;relevant method in the listener object is invoked, and the&#xA;&lt;code>DragSourceEvent&lt;/code> is passed to it.&#xA;&lt;p>&#xA;The drop site is &lt;i>associated with the previous &lt;code>dragEnter()&lt;/code>&#xA;invocation&lt;/i> if the latest invocation of &lt;code>dragEnter()&lt;/code> on this&#xA;adapter corresponds to that drop site and is not followed by a&#xA;&lt;code>dragExit()&lt;/code> invocation on this adapter.&#xA;&#xA;@see DragSourceEvent&#xA;@see DragSourceListener&#xA;@see DragSourceMotionListener&#xA;&#xA;@author David Mendenhall&#xA;@version 1.6, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546549_410857_6499"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_203419_12897" name="" supplier="_9_5_f720368_1110473546565_10050_6509" client="_9_5_f720368_1110473546549_410857_6499" contract="_9_5_f720368_1110473546565_10050_6509"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320547_20910_12898" name="" supplier="_9_5_f720368_1110473546565_213829_6511" client="_9_5_f720368_1110473546549_410857_6499" contract="_9_5_f720368_1110473546565_213829_6511"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_62805_6525" name="DropTargetListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305665_383059_3677" body="The &lt;code>DropTargetListener&lt;/code> interface&#xA;is the callback interface used by the&#xA;&lt;code>DropTarget&lt;/code> class to provide&#xA;notification of DnD operations that involve&#xA;the subject &lt;code>DropTarget&lt;/code>. Methods of&#xA;this interface may be implemented to provide&#xA;&quot;drag under&quot; visual feedback to the user throughout&#xA;the Drag and Drop operation.&#xA;&lt;p>&#xA;Create a listener object by implementing the interface and then register it&#xA;with a &lt;code>DropTarget&lt;/code>. When the drag enters, moves over, or exits&#xA;the operable part of the drop site for that &lt;code>DropTarget&lt;/code>, when&#xA;the drop action changes, and when the drop occurs, the relevant method in&#xA;the listener object is invoked, and the &lt;code>DropTargetEvent&lt;/code> is&#xA;passed to it.&#xA;&lt;p>&#xA;The operable part of the drop site for the &lt;code>DropTarget&lt;/code> is&#xA;the part of the associated &lt;code>Component&lt;/code>'s geometry that is not&#xA;obscured by an overlapping top-level window or by another&#xA;&lt;code>Component&lt;/code> higher in the Z-order that has an associated active&#xA;&lt;code>DropTarget&lt;/code>.&#xA;&lt;p>&#xA;During the drag, the data associated with the current drag operation can be&#xA;retrieved by calling &lt;code>getTransferable()&lt;/code> on&#xA;&lt;code>DropTargetDragEvent&lt;/code> instances passed to the listener's&#xA;methods.&#xA;&lt;p>&#xA;Note that &lt;code>getTransferable()&lt;/code> on the&#xA;&lt;code>DropTargetDragEvent&lt;/code> instance should only be called within the&#xA;respective listener's method and all the necessary data should be retrieved&#xA;from the returned &lt;code>Transferable&lt;/code> before that method returns.&#xA;&#xA;@version &#x9;1.22, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546565_62805_6525"/>
              <generalization xmi:id="_10_5_622020d_1132928320567_26647_12916" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_432249_6493" name="DragGestureListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_644760_3643" body="This interface is sourced from a &lt;code>DragGestureRecognizer&lt;/code>&#xA;and is invoked&#xA;when an object of that (sub)class detects a drag initiating&#xA;gesture.&#xA;&lt;p>&#xA;The implementor of this interface is responsible for starting the drag&#xA;as a result of receiving such notification.&#xA;&#xA;@see java.awt.dnd.DragGestureRecognizer&#xA;@see java.awt.dnd.DragGestureEvent&#xA;@see java.awt.dnd.DragSource&#xA;" annotatedElement="_9_5_f720368_1110473546549_432249_6493"/>
              <generalization xmi:id="_10_5_622020d_1132928320547_77313_12894" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_264660_6491" name="DragGestureEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_589988_3641" body="A &lt;code>DragGestureEvent&lt;/code> is passed&#xA;to &lt;code>DragGestureListener&lt;/code>'s&#xA;dragGestureRecognized() method&#xA;when a particular &lt;code>DragGestureRecognizer&lt;/code> detects that a&#xA;platform dependent drag initiating gesture has occurred&#xA;on the &lt;code>Component&lt;/code> that it is tracking.&#xA;&#xA;@version 1.23&#xA;@see java.awt.dnd.DragGestureRecognizer&#xA;@see java.awt.dnd.DragGestureListener&#xA;@see java.awt.dnd.DragSource&#xA;" annotatedElement="_9_5_f720368_1110473546549_264660_6491"/>
              <generalization xmi:id="_10_5_622020d_1132928320547_971111_12893" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546549_642202_6485" name="Autoscroll" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305635_670367_3635" body="During DnD operations it is possible that a user may wish to drop the&#xA;subject of the operation on a region of a scrollable GUI control that is&#xA;not currently visible to the user.&#xA;&lt;p>&#xA;In such situations it is desirable that the GUI control detect this&#xA;and institute a scroll operation in order to make obscured region(s)&#xA;visible to the user. This feature is known as autoscrolling.&#xA;&lt;p>&#xA;If a GUI control is both an active &lt;code>DropTarget&lt;/code>&#xA;and is also scrollable, it&#xA;can receive notifications of autoscrolling gestures by the user from&#xA;the DnD system by implementing this interface.&#xA;&lt;p>&#xA;An autoscrolling gesture is initiated by the user by keeping the drag&#xA;cursor motionless with a border region of the &lt;code>Component&lt;/code>,&#xA;referred to as&#xA;the &quot;autoscrolling region&quot;, for a predefined period of time, this will&#xA;result in repeated scroll requests to the &lt;code>Component&lt;/code>&#xA;until the drag &lt;code>Cursor&lt;/code> resumes its motion.&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546549_642202_6485"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_597938_6997" name="EventQueue">
            <ownedComment xmi:id="_10_5_622020d_1132928306417_227221_4189" body="&lt;code>EventQueue&lt;/code> is a platform-independent class&#xA;that queues events, both from the underlying peer classes&#xA;and from trusted application classes.&#xA;&lt;p>&#xA;It encapsulates asynchronous event dispatch machinery which&#xA;extracts events from the queue and dispatches them by calling&#xA;{@link #dispatchEvent(AWTEvent) dispatchEvent(AWTEvent)} method&#xA;on this &lt;code>EventQueue&lt;/code> with the event to be dispatched&#xA;as an argument.  The particular behavior of this machinery is&#xA;implementation-dependent.  The only requirements are that events&#xA;which were actually enqueued to this queue (note that events&#xA;being posted to the &lt;code>EventQueue&lt;/code> can be coalesced)&#xA;are dispatched:&#xA;&lt;dl>&#xA;&lt;dt> Sequentially.&#xA;&lt;dd> That is, it is not permitted that several events from&#xA;this queue are dispatched simultaneously.&#xA;&lt;dt> In the same order as they are enqueued.&#xA;&lt;dd> That is, if &lt;code>AWTEvent&lt;/code>&amp;nbsp;A is enqueued&#xA;to the &lt;code>EventQueue&lt;/code> before&#xA;&lt;code>AWTEvent&lt;/code>&amp;nbsp;B then event B will not be&#xA;dispatched before event A.&#xA;&lt;/dl>&#xA;&lt;p>&#xA;Some browsers partition applets in different code bases into&#xA;separate contexts, and establish walls between these contexts.&#xA;In such a scenario, there will be one &lt;code>EventQueue&lt;/code>&#xA;per context. Other browsers place all applets into the same&#xA;context, implying that there will be only a single, global&#xA;&lt;code>EventQueue&lt;/code> for all applets. This behavior is&#xA;implementation-dependent.  Consult your browser's documentation&#xA;for more information.&#xA;&lt;p>&#xA;For information on the threading issues of the event dispatch&#xA;machinery, see &lt;a href=&quot;doc-files/AWTThreadIssues.html&quot;>AWT Threading&#xA;Issues&lt;/a>.&#xA;&#xA;@author Thomas Ball&#xA;@author Fred Ecks&#xA;@author David Mendenhall&#xA;&#xA;@version &#x9;1.96, 06/28/04&#xA;@since &#x9;1.1&#xA;" annotatedElement="_9_5_f720368_1110473546581_597938_6997"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_187096_7137" name="TexturePaint" clientDependency="_10_5_622020d_1132928321498_144708_13364">
            <ownedComment xmi:id="_10_5_622020d_1132928306757_831401_4354" body="The &lt;code>TexturePaint&lt;/code> class provides a way to fill a&#xA;{@link Shape} with a texture that is specified as&#xA;a {@link BufferedImage}. The size of the &lt;code>BufferedImage&lt;/code>&#xA;object should be small because the &lt;code>BufferedImage&lt;/code> data&#xA;is copied by the &lt;code>TexturePaint&lt;/code> object.&#xA;At construction time, the texture is anchored to the upper&#xA;left corner of a {@link Rectangle2D} that is&#xA;specified in user space.  Texture is computed for&#xA;locations in the device space by conceptually replicating the&#xA;specified &lt;code>Rectangle2D&lt;/code> infinitely in all directions&#xA;in user space and mapping the &lt;code>BufferedImage&lt;/code> to each&#xA;replicated &lt;code>Rectangle2D&lt;/code>.&#xA;@see Paint&#xA;@see Graphics2D#setPaint&#xA;@version 1.39, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546596_187096_7137"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_144708_13364" name="" supplier="_9_5_f720368_1110473546581_558071_7091" client="_9_5_f720368_1110473546596_187096_7137" contract="_9_5_f720368_1110473546581_558071_7091"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_890326_7145" name="Window" clientDependency="_10_5_622020d_1132928321508_971898_13373">
            <ownedComment xmi:id="_10_5_622020d_1132928306767_264912_4362" body="A &lt;code>Window&lt;/code> object is a top-level window with no borders and no&#xA;menubar.&#xA;The default layout for a window is &lt;code>BorderLayout&lt;/code>.&#xA;&lt;p>&#xA;A window must have either a frame, dialog, or another window defined as its&#xA;owner when it's constructed.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>Window&lt;/code>&#xA;on a different screen device by constructing the &lt;code>Window&lt;/code>&#xA;with {@link #Window(Window, GraphicsConfiguration)}.  The&#xA;&lt;code>GraphicsConfiguration&lt;/code> object is one of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> objects of the target screen device.&#xA;&lt;p>&#xA;In a virtual device multi-screen environment in which the desktop&#xA;area could span multiple physical screen devices, the bounds of all&#xA;configurations are relative to the virtual device coordinate system.&#xA;The origin of the virtual-coordinate system is at the upper left-hand&#xA;corner of the primary physical screen.  Depending on the location of&#xA;the primary screen in the virtual device, negative coordinates are&#xA;possible, as shown in the following figure.&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/MultiScreen.gif&quot;&#xA;alt=&quot;Diagram shows virtual device containing 4 physical screens. Primary physical screen shows coords (0,0), other screen shows (-80,-100).&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;In such an environment, when calling &lt;code>setLocation&lt;/code>,&#xA;you must pass a virtual coordinate to this method.  Similarly,&#xA;calling &lt;code>getLocationOnScreen&lt;/code> on a &lt;code>Window&lt;/code> returns&#xA;virtual device coordinates.  Call the &lt;code>getBounds&lt;/code> method&#xA;of a &lt;code>GraphicsConfiguration&lt;/code> to find its origin in the virtual&#xA;coordinate system.&#xA;&lt;p>&#xA;The following code sets the location of a &lt;code>Window&lt;/code>&#xA;at (10, 10) relative to the origin of the physical screen&#xA;of the corresponding &lt;code>GraphicsConfiguration&lt;/code>.  If the&#xA;bounds of the &lt;code>GraphicsConfiguration&lt;/code> is not taken&#xA;into account, the &lt;code>Window&lt;/code> location would be set&#xA;at (10, 10) relative to the virtual-coordinate system and would appear&#xA;on the primary physical screen, which might be different from the&#xA;physical screen of the specified &lt;code>GraphicsConfiguration&lt;/code>.&#xA;&#xA;&lt;pre>&#xA;Window w = new Window(Window owner, GraphicsConfiguration gc);&#xA;Rectangle bounds = gc.getBounds();&#xA;w.setLocation(10 + bounds.x, 10 + bounds.y);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Note: the location and size of top-level windows (including&#xA;&lt;code>Window&lt;/code>s, &lt;code>Frame&lt;/code>s, and &lt;code>Dialog&lt;/code>s)&#xA;are under the control of the desktop's window management system.&#xA;Calls to &lt;code>setLocation&lt;/code>, &lt;code>setSize&lt;/code>, and&#xA;&lt;code>setBounds&lt;/code> are requests (not directives) which are&#xA;forwarded to the window management system.  Every effort will be&#xA;made to honor such requests.  However, in some cases the window&#xA;management system may ignore such requests, or modify the requested&#xA;geometry in order to place and size the &lt;code>Window&lt;/code> in a way&#xA;that more closely matches the desktop settings.&#xA;&#xA;Due to the asynchronous nature of native event handling, the results&#xA;returned by &lt;code>getBounds&lt;/code>, &lt;code>getLocation&lt;/code>,&#xA;&lt;code>getLocationOnScreen&lt;/code>, and &lt;code>getSize&lt;/code> might not&#xA;reflect the actual geometry of the Window on screen until the last&#xA;request has been processed.  During the processing of subsequent&#xA;requests these values might change accordingly while the window&#xA;management system fulfills the requests.&#xA;&#xA;&lt;p>&#xA;Windows are capable of generating the following WindowEvents:&#xA;WindowOpened, WindowClosed, WindowGainedFocus, WindowLostFocus.&#xA;&#xA;@version &#x9;1.208, 06/28/04&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@see WindowEvent&#xA;@see #addWindowListener&#xA;@see java.awt.BorderLayout&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_890326_7145"/>
            <generalization xmi:id="_10_5_622020d_1132928321508_974412_13374" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321508_971898_13373" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546596_890326_7145" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_716093_17151" name="AccessibleAWTWindow" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306767_342658_4360" body="This class implements accessibility support for the&#xA;&lt;code>Window&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to window user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_716093_17151"/>
              <generalization xmi:id="_10_5_622020d_1132928321508_781834_13375" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_501845_6977" name="LightweightDispatcher" visibility="package" clientDependency="_10_5_622020d_1132928321358_238860_13213 _10_5_622020d_1132928321358_451713_13214">
            <ownedComment xmi:id="_10_5_622020d_1132928306397_143746_4164" body="Class to manage the dispatching of MouseEvents to the lightweight descendants&#xA;and SunDropTargetEvents to both lightweight and heavyweight descendants&#xA;contained by a native container.&#xA;&#xA;NOTE: the class name is not appropriate anymore, but we cannot change it&#xA;because we must keep serialization compatibility.&#xA;&#xA;@author Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546581_501845_6977"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_238860_13213" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_501845_6977" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_451713_13214" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_9_5_f720368_1110473546581_501845_6977" contract="_9_5_f720368_1110473546565_967678_6541"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_226476_6993" name="Event" clientDependency="_10_5_622020d_1132928321358_410196_13226">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_946681_4184" body="&lt;b>NOTE:&lt;/b> The &lt;code>Event&lt;/code> class is obsolete and is&#xA;available only for backwards compatilibility.  It has been replaced&#xA;by the &lt;code>AWTEvent&lt;/code> class and its subclasses.&#xA;&lt;p>&#xA;&lt;code>Event&lt;/code> is a platform-independent class that&#xA;encapsulates events from the platform's Graphical User&#xA;Interface in the Java&amp;nbsp;1.0 event model. In Java&amp;nbsp;1.1&#xA;and later versions, the &lt;code>Event&lt;/code> class is maintained&#xA;only for backwards compatibilty. The information in this&#xA;class description is provided to assist programmers in&#xA;converting Java&amp;nbsp;1.0 programs to the new event model.&#xA;&lt;p>&#xA;In the Java&amp;nbsp;1.0 event model, an event contains an&#xA;{@link Event#id} field&#xA;that indicates what type of event it is and which other&#xA;&lt;code>Event&lt;/code> variables are relevant for the event.&#xA;&lt;p>&#xA;For keyboard events, {@link Event#key}&#xA;contains a value indicating which key was activated, and&#xA;{@link Event#modifiers} contains the&#xA;modifiers for that event.  For the KEY_PRESS and KEY_RELEASE&#xA;event ids, the value of &lt;code>key&lt;/code> is the unicode&#xA;character code for the key. For KEY_ACTION and&#xA;KEY_ACTION_RELEASE, the value of &lt;code>key&lt;/code> is&#xA;one of the defined action-key identifiers in the&#xA;&lt;code>Event&lt;/code> class (&lt;code>PGUP&lt;/code>,&#xA;&lt;code>PGDN&lt;/code>, &lt;code>F1&lt;/code>, &lt;code>F2&lt;/code>, etc).&#xA;&#xA;@version 1.75 12/19/03&#xA;@author     Sami Shaio&#xA;@since      JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_226476_6993"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_410196_13226" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_226476_6993" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_365047_6945" name="BufferCapabilities" clientDependency="_10_5_622020d_1132928321308_328878_13158">
            <ownedComment xmi:id="_10_5_622020d_1132928306356_751307_4118" body="Capabilities and properties of buffers.&#xA;&#xA;@see java.awt.image.BufferStrategy#getCapabilities()&#xA;@see GraphicsConfiguration#getBufferCapabilities&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_365047_6945"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_328878_13158" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_365047_6945" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_91177_16907" name="FlipContents" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306356_529669_4116" body="A type-safe enumeration of the possible back buffer contents after&#xA;page-flipping&#xA;" annotatedElement="_9_5_f720368_1110473547378_91177_16907"/>
              <generalization xmi:id="_10_5_622020d_1132928321308_455122_13159" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_42312_6995" name="EventDispatchThread" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_249466_4187" body="EventDispatchThread is a package-private AWT class which takes&#xA;events off the EventQueue and dispatches them to the appropriate&#xA;AWT components.&#xA;&#xA;The Thread starts a &quot;permanent&quot; event pump with a call to&#xA;pumpEvents(Conditional) in its run() method. Event handlers can choose to&#xA;block this event pump at any time, but should start a new pump (&lt;b>not&lt;/b>&#xA;a new EventDispatchThread) by again calling pumpEvents(Conditional). This&#xA;secondary event pump will exit automatically as soon as the Condtional&#xA;evaluate()s to false and an additional Event is pumped and dispatched.&#xA;&#xA;@author Tom Ball&#xA;@author Amy Fowler&#xA;@author Fred Ecks&#xA;@author David Mendenhall&#xA;&#xA;@version 1.52, 12/19/03&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546581_42312_6995"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_727959_13227" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306407_372108_4185" name="StopDispatchEvent" visibility="package" clientDependency="_10_5_622020d_1132928321368_421133_13228">
              <generalization xmi:id="_10_5_622020d_1132928321368_453131_13229" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321368_421133_13228" name="" supplier="_9_5_f720368_1110473546581_362482_6921" client="_10_5_622020d_1132928306407_372108_4185" contract="_9_5_f720368_1110473546581_362482_6921"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_961222_6955" name="CheckboxGroup" clientDependency="_10_5_622020d_1132928321328_79883_13178">
            <ownedComment xmi:id="_10_5_622020d_1132928306367_113254_4131" body="The &lt;code>CheckboxGroup&lt;/code> class is used to group together&#xA;a set of &lt;code>Checkbox&lt;/code> buttons.&#xA;&lt;p>&#xA;Exactly one check box button in a &lt;code>CheckboxGroup&lt;/code> can&#xA;be in the &quot;on&quot; state at any given time. Pushing any&#xA;button sets its state to &quot;on&quot; and forces any other button that&#xA;is in the &quot;on&quot; state into the &quot;off&quot; state.&#xA;&lt;p>&#xA;The following code example produces a new check box group,&#xA;with three check boxes:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;setLayout(new GridLayout(3, 1));&#xA;CheckboxGroup cbg = new CheckboxGroup();&#xA;add(new Checkbox(&quot;one&quot;, cbg, true));&#xA;add(new Checkbox(&quot;two&quot;, cbg, false));&#xA;add(new Checkbox(&quot;three&quot;, cbg, false));&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;This image depicts the check box group created by this example:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/CheckboxGroup-1.gif&quot;&#xA;alt=&quot;Shows three checkboxes, arranged vertically, labeled one, two, and three. Checkbox one is in the on state.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;@version &#x9;1.36 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.Checkbox&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_961222_6955"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_79883_13178" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_961222_6955" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_111478_7033" name="GraphicsEnvironment" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306587_515232_4223" body="The &lt;code>GraphicsEnvironment&lt;/code> class describes the collection&#xA;of {@link GraphicsDevice} objects and {@link java.awt.Font} objects&#xA;available to a Java(tm) application on a particular platform.&#xA;The resources in this &lt;code>GraphicsEnvironment&lt;/code> might be local&#xA;or on a remote machine.  &lt;code>GraphicsDevice&lt;/code> objects can be&#xA;screens, printers or image buffers and are the destination of&#xA;{@link Graphics2D} drawing methods.  Each &lt;code>GraphicsDevice&lt;/code>&#xA;has a number of {@link GraphicsConfiguration} objects associated with&#xA;it.  These objects specify the different configurations in which the&#xA;&lt;code>GraphicsDevice&lt;/code> can be used.&#xA;@see GraphicsDevice&#xA;@see GraphicsConfiguration&#xA;@version &#x9;1.62, 04/13/04&#xA;" annotatedElement="_9_5_f720368_1110473546581_111478_7033"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_693097_7121" name="SentEvent" visibility="package" clientDependency="_10_5_622020d_1132928321498_416578_13349">
            <ownedComment xmi:id="_10_5_622020d_1132928306727_475126_4335" body="A wrapping tag for a nested AWTEvent which indicates that the event was&#xA;sent from another AppContext. The destination AppContext should handle the&#xA;event even if it is currently blocked waiting for a SequencedEvent or&#xA;another SentEvent to be handled.&#xA;&#xA;@version 1.6, 12/19/03&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546596_693097_7121"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_285895_13350" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_416578_13349" name="" supplier="_9_5_f720368_1110473546581_362482_6921" client="_9_5_f720368_1110473546596_693097_7121" contract="_9_5_f720368_1110473546581_362482_6921"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_558071_7091" name="Paint" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306697_496529_4298" body="This &lt;code>Paint&lt;/code> interface defines how color patterns&#xA;can be generated for {@link Graphics2D} operations.  A class&#xA;implementing the &lt;code>Paint&lt;/code> interface is added to the&#xA;&lt;code>Graphics2D&lt;/code> context in order to define the color&#xA;pattern used by the &lt;code>draw&lt;/code> and &lt;code>fill&lt;/code> methods.&#xA;&lt;p>&#xA;Instances of classes implementing &lt;code>Paint&lt;/code> must be&#xA;read-only because the &lt;code>Graphics2D&lt;/code> does not clone&#xA;these objects when they are set as an attribute with the&#xA;&lt;code>setPaint&lt;/code> method or when the &lt;code>Graphics2D&lt;/code>&#xA;object is itself cloned.&#xA;@see PaintContext&#xA;@see Color&#xA;@see GradientPaint&#xA;@see TexturePaint&#xA;@see Graphics2D#setPaint&#xA;@version 1.27, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546581_558071_7091"/>
            <generalization xmi:id="_10_5_622020d_1132928321408_624175_13315" isSubstitutable="true" general="_9_5_f720368_1110473546596_59806_7143"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_998788_7089" name="PageAttributes" clientDependency="_10_5_622020d_1132928321408_667065_13309" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306697_119012_4296" body="A set of attributes which control the output of a printed page.&#xA;&lt;p>&#xA;Instances of this class control the color state, paper size (media type),&#xA;orientation, logical origin, print quality, and resolution of every&#xA;page which uses the instance. Attribute names are compliant with the&#xA;Internet Printing Protocol (IPP) 1.1 where possible. Attribute values&#xA;are partially compliant where possible.&#xA;&lt;p>&#xA;To use a method which takes an inner class type, pass a reference to&#xA;one of the constant fields of the inner class. Client code cannot create&#xA;new instances of the inner class types because none of those classes&#xA;has a public constructor. For example, to set the color state to&#xA;monochrome, use the following code:&#xA;&lt;pre>&#xA;import java.awt.PageAttributes;&#xA;&#xA;public class MonochromeExample {&#xA;public void setMonochrome(PageAttributes pageAttributes) {&#xA;pageAttributes.setColor(PageAttributes.ColorType.MONOCHROME);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Every IPP attribute which supports an &lt;i>attributeName&lt;/i>-default value&#xA;has a corresponding &lt;code>set&lt;i>attributeName&lt;/i>ToDefault&lt;/code> method.&#xA;Default value fields are not provided.&#xA;&#xA;@version&#x9;1.7, 12/19/03&#xA;@author&#x9;David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546581_998788_7089"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321408_667065_13309" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_998788_7089" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_314159_17081" name="ColorType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_739339_4290" body="A type-safe enumeration of possible color states.&#xA;" annotatedElement="_9_5_f720368_1110473547409_314159_17081"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_240868_13310" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_349965_17084" name="MediaType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_432365_4291" body="A type-safe enumeration of possible paper sizes. These sizes are in&#xA;compliance with IPP 1.1.&#xA;" annotatedElement="_9_5_f720368_1110473547409_349965_17084"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_622114_13311" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_530582_17087" name="OrientationRequestedType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_257542_4292" body="A type-safe enumeration of possible orientations. These orientations&#xA;are in partial compliance with IPP 1.1.&#xA;" annotatedElement="_9_5_f720368_1110473547409_530582_17087"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_678974_13312" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_997297_17090" name="OriginType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_964184_4293" body="A type-safe enumeration of possible origins.&#xA;" annotatedElement="_9_5_f720368_1110473547409_997297_17090"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_932579_13313" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_136713_17093" name="PrintQualityType" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306697_330409_4294" body="A type-safe enumeration of possible print qualities. These print&#xA;qualities are in compliance with IPP 1.1.&#xA;" annotatedElement="_9_5_f720368_1110473547409_136713_17093"/>
              <generalization xmi:id="_10_5_622020d_1132928321408_859806_13314" isSubstitutable="true" general="_9_5_f720368_1110473546581_963_6927"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_715876_6975" name="Container">
            <ownedComment xmi:id="_10_5_622020d_1132928306397_915187_4162" body="A generic Abstract Window Toolkit(AWT) container object is a component&#xA;that can contain other AWT components.&#xA;&lt;p>&#xA;Components added to a container are tracked in a list.  The order&#xA;of the list will define the components' front-to-back stacking order&#xA;within the container.  If no index is specified when adding a&#xA;component to a container, it will be added to the end of the list&#xA;(and hence to the bottom of the stacking order).&#xA;&lt;p>&#xA;&lt;b>Note&lt;/b>: For details on the focus subsystem, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@version &#x9;1.267, 05/18/04&#xA;@author &#x9;Arthur van Hoff&#xA;@author &#x9;Sami Shaio&#xA;@see       #add(java.awt.Component, int)&#xA;@see       #getComponent(int)&#xA;@see       LayoutManager&#xA;@since     JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_715876_6975"/>
            <generalization xmi:id="_10_5_622020d_1132928321338_121423_13207" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547378_222743_16951" name="EventTargetFilter" visibility="package" isAbstract="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_805902_16953" name="MouseEventTargetFilter" visibility="package" clientDependency="_10_5_622020d_1132928321348_640125_13208">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321348_640125_13208" name="" supplier="_9_5_f720368_1110473547378_222743_16951" client="_9_5_f720368_1110473547378_805902_16953" contract="_9_5_f720368_1110473547378_222743_16951"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_301053_16955" name="DropTargetEventTargetFilter" visibility="package" clientDependency="_10_5_622020d_1132928321348_393365_13209">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321348_393365_13209" name="" supplier="_9_5_f720368_1110473547378_222743_16951" client="_9_5_f720368_1110473547378_301053_16955" contract="_9_5_f720368_1110473547378_222743_16951"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_351073_16957" name="AccessibleAWTContainer" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306397_991781_4160" body="Inner class of Container used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by container developers.&#xA;&lt;p>&#xA;The class used to obtain the accessible role for this object,&#xA;as well as implementing many of the methods in the&#xA;AccessibleContainer interface.&#xA;" annotatedElement="_9_5_f720368_1110473547378_351073_16957"/>
              <generalization xmi:id="_10_5_622020d_1132928321348_497217_13211" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_160093_16959" name="AccessibleContainerHandler" visibility="protected" clientDependency="_10_5_622020d_1132928321348_411219_13212">
                <ownedComment xmi:id="_10_5_622020d_1132928306387_348057_4159" body="Fire &lt;code>PropertyChange&lt;/code> listener, if one is registered,&#xA;when children are added or removed.&#xA;" annotatedElement="_9_5_f720368_1110473547378_160093_16959"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321348_411219_13212" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473547378_160093_16959" contract="_9_5_f720368_1110473546565_136951_6555"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306387_890973_4158" name="WakingRunnable" visibility="package" clientDependency="_10_5_622020d_1132928321348_509993_13210" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321348_509993_13210" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_10_5_622020d_1132928306387_890973_4158" contract="_9_5_f720368_1110473546612_953158_7669"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_886528_6979" name="ContainerOrderFocusTraversalPolicy" clientDependency="_10_5_622020d_1132928321358_403257_13215">
            <ownedComment xmi:id="_10_5_622020d_1132928306397_379465_4166" body="A FocusTraversalPolicy that determines traversal order based on the order&#xA;of child Components in a Container. From a particular focus cycle root, the&#xA;policy makes a pre-order traversal of the Component hierarchy, and traverses&#xA;a Container's children according to the ordering of the array returned by&#xA;&lt;code>Container.getComponents()&lt;/code>. Portions of the hierarchy that are&#xA;not visible and displayable will not be searched.&#xA;&lt;p>&#xA;By default, ContainerOrderFocusTraversalPolicy implicitly transfers focus&#xA;down-cycle. That is, during normal forward focus traversal, the Component&#xA;traversed after a focus cycle root will be the focus-cycle-root's default&#xA;Component to focus. This behavior can be disabled using the&#xA;&lt;code>setImplicitDownCycleTraversal&lt;/code> method.&#xA;&lt;p>&#xA;By default, methods of this class with return a Component only if it is&#xA;visible, displayable, enabled, and focusable. Subclasses can modify this&#xA;behavior by overriding the &lt;code>accept&lt;/code> method.&#xA;&lt;p>&#xA;This policy takes into account &lt;a&#xA;href=&quot;doc-files/FocusSpec.html#FocusTraversalPolicyProviders&quot;>focus traversal&#xA;policy providers&lt;/a>.  When searching for first/last/next/previous Component,&#xA;if a focus traversal policy provider is encountered, its focus traversal&#xA;policy is used to perform the search operation.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.8, 12/19/03&#xA;&#xA;@see Container#getComponents&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_886528_6979"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_216374_13216" isSubstitutable="true" general="_9_5_f720368_1110473546581_371419_7007"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_403257_13215" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_886528_6979" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_32664_7071" name="MediaTracker" clientDependency="_10_5_622020d_1132928321398_811969_13286">
            <ownedComment xmi:id="_10_5_622020d_1132928306677_713753_4268" body="The &lt;code>MediaTracker&lt;/code> class is a utility class to track&#xA;the status of a number of media objects. Media objects could&#xA;include audio clips as well as images, though currently only&#xA;images are supported.&#xA;&lt;p>&#xA;To use a media tracker, create an instance of&#xA;&lt;code>MediaTracker&lt;/code> and call its &lt;code>addImage&lt;/code>&#xA;method for each image to be tracked. In addition, each image can&#xA;be assigned a unique identifier. This identifier controls the&#xA;priority order in which the images are fetched. It can also be used&#xA;to identify unique subsets of the images that can be waited on&#xA;independently. Images with a lower ID are loaded in preference to&#xA;those with a higher ID number.&#xA;&#xA;&lt;p>&#xA;&#xA;Tracking an animated image&#xA;might not always be useful&#xA;due to the multi-part nature of animated image&#xA;loading and painting,&#xA;but it is supported.&#xA;&lt;code>MediaTracker&lt;/code> treats an animated image&#xA;as completely loaded&#xA;when the first frame is completely loaded.&#xA;At that point, the &lt;code>MediaTracker&lt;/code>&#xA;signals any waiters&#xA;that the image is completely loaded.&#xA;If no &lt;code>ImageObserver&lt;/code>s are observing the image&#xA;when the first frame has finished loading,&#xA;the image might flush itself&#xA;to conserve resources&#xA;(see {@link Image#flush()}).&#xA;&#xA;&lt;p>&#xA;Here is an example of using &lt;code>MediaTracker&lt;/code>:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;import java.applet.Applet;&#xA;import java.awt.Color;&#xA;import java.awt.Image;&#xA;import java.awt.Graphics;&#xA;import java.awt.MediaTracker;&#xA;&#xA;public class ImageBlaster extends Applet implements Runnable {&#xA;MediaTracker tracker;&#xA;Image bg;&#xA;Image anim[] = new Image[5];&#xA;int index;&#xA;Thread animator;&#xA;&#xA;Get the images for the background (id == 0)&#xA;and the animation frames (id == 1)&#xA;and add them to the MediaTracker&#xA;public void init() {&#xA;tracker = new MediaTracker(this);&#xA;bg = getImage(getDocumentBase(),&#xA;&quot;images/background.gif&quot;);&#xA;tracker.addImage(bg, 0);&#xA;for (int i = 0; i &lt; 5; i++) {&#xA;anim[i] = getImage(getDocumentBase(),&#xA;&quot;images/anim&quot;+i+&quot;.gif&quot;);&#xA;tracker.addImage(anim[i], 1);&#xA;}&#xA;}&#xA;&#xA;Start the animation thread.&#xA;public void start() {&#xA;animator = new Thread(this);&#xA;animator.start();&#xA;}&#xA;&#xA;Stop the animation thread.&#xA;public void stop() {&#xA;animator = null;&#xA;}&#xA;&#xA;Run the animation thread.&#xA;First wait for the background image to fully load&#xA;and paint.  Then wait for all of the animation&#xA;frames to finish loading. Finally, loop and&#xA;increment the animation frame index.&#xA;public void run() {&#xA;try {&#xA;tracker.waitForID(0);&#xA;tracker.waitForID(1);&#xA;} catch (InterruptedException e) {&#xA;return;&#xA;}&#xA;Thread me = Thread.currentThread();&#xA;while (animator == me) {&#xA;try {&#xA;Thread.sleep(100);&#xA;} catch (InterruptedException e) {&#xA;break;&#xA;}&#xA;synchronized (this) {&#xA;index++;&#xA;if (index >= anim.length) {&#xA;index = 0;&#xA;}&#xA;}&#xA;repaint();&#xA;}&#xA;}&#xA;&#xA;The background image fills the frame so we&#xA;don't need to clear the applet on repaints.&#xA;Just call the paint method.&#xA;public void update(Graphics g) {&#xA;paint(g);&#xA;}&#xA;&#xA;Paint a large red rectangle if there are any errors&#xA;loading the images.  Otherwise always paint the&#xA;background so that it appears incrementally as it&#xA;is loading.  Finally, only paint the current animation&#xA;frame if all of the frames (id == 1) are done loading,&#xA;so that we don't get partial animations.&#xA;public void paint(Graphics g) {&#xA;if ((tracker.statusAll(false) &amp; MediaTracker.ERRORED) != 0) {&#xA;g.setColor(Color.red);&#xA;g.fillRect(0, 0, size().width, size().height);&#xA;return;&#xA;}&#xA;g.drawImage(bg, 0, 0, this);&#xA;if (tracker.statusID(1, false) == MediaTracker.COMPLETE) {&#xA;g.drawImage(anim[index], 10, 10, this);&#xA;}&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&#xA;@version &#x9;1.42, 12/19/03&#xA;@author &#x9;Jim Graham&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_32664_7071"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_811969_13286" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_32664_7071" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_461304_7035" name="GridBagConstraints" clientDependency="_10_5_622020d_1132928321368_644564_13253 _10_5_622020d_1132928321368_155358_13254">
            <ownedComment xmi:id="_10_5_622020d_1132928306587_121923_4225" body="The &lt;code>GridBagConstraints&lt;/code> class specifies constraints&#xA;for components that are laid out using the&#xA;&lt;code>GridBagLayout&lt;/code> class.&#xA;&#xA;@version &#x9;1.34, 03/15/04&#xA;@author Doug Stein&#xA;@see java.awt.GridBagLayout&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_461304_7035"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_644564_13253" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_461304_7035" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_155358_13254" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_461304_7035" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_905901_6923" name="Adjustable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306216_298124_4094" body="The interface for objects which have an adjustable numeric value&#xA;contained within a bounded range of values.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author Amy Fowler&#xA;@author Tim Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546581_905901_6923"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_384048_7067" name="LayoutManager2" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306677_729225_4262" body="Defines an interface for classes that know how to layout Containers&#xA;based on a layout constraints object.&#xA;&#xA;This interface extends the LayoutManager interface to deal with layouts&#xA;explicitly in terms of constraint objects that specify how and where&#xA;components should be added to the layout.&#xA;&lt;p>&#xA;This minimal extension to LayoutManager is intended for tool&#xA;providers who wish to the creation of constraint-based layouts.&#xA;It does not yet provide full, general support for custom&#xA;constraint-based layout managers.&#xA;&#xA;@see LayoutManager&#xA;@see Container&#xA;&#xA;@version&#x9;1.14, 12/19/03&#xA;@author &#x9;Jonni Kanerva&#xA;" annotatedElement="_9_5_f720368_1110473546581_384048_7067"/>
            <generalization xmi:id="_10_5_622020d_1132928321388_916156_13276" isSubstitutable="true" general="_9_5_f720368_1110473546581_587570_7065"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_963_6927" name="AttributeValue" visibility="package" isAbstract="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_387206_6985" name="DefaultKeyboardFocusManager">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_474760_4175" body="The default KeyboardFocusManager for AWT applications. Focus traversal is&#xA;done in response to a Component's focus traversal keys, and using a&#xA;Container's FocusTraversalPolicy.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.31, 12/19/03&#xA;&#xA;@see FocusTraversalPolicy&#xA;@see Component#setFocusTraversalKeys&#xA;@see Component#getFocusTraversalKeys&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_387206_6985"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_94728_13219" isSubstitutable="true" general="_9_5_f720368_1110473546581_391762_7057"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_809162_16968" name="TypeAheadMarker" visibility="private"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_537844_16970" name="DefaultKeyboardFocusManagerSentEvent" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928306397_464295_4173" body="A special type of SentEvent which updates a counter in the target&#xA;KeyboardFocusManager if it is an instance of&#xA;DefaultKeyboardFocusManager.&#xA;" annotatedElement="_9_5_f720368_1110473547378_537844_16970"/>
              <generalization xmi:id="_10_5_622020d_1132928321358_958738_13220" isSubstitutable="true" general="_9_5_f720368_1110473546596_693097_7121"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_542198_6947" name="Button" clientDependency="_10_5_622020d_1132928321308_834215_13160">
            <ownedComment xmi:id="_10_5_622020d_1132928306367_546079_4121" body="This class creates a labeled button. The application can cause&#xA;some action to happen when the button is pushed. This image&#xA;depicts three views of a &quot;&lt;code>Quit&lt;/code>&quot; button as it appears&#xA;under the Solaris operating system:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Button-1.gif&quot; alt=&quot;The following context describes the graphic&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;The first view shows the button as it appears normally.&#xA;The second view shows the button&#xA;when it has input focus. Its outline is darkened to let the&#xA;user know that it is an active object. The third view shows the&#xA;button when the user clicks the mouse over the button, and thus&#xA;requests that an action be performed.&#xA;&lt;p>&#xA;The gesture of clicking on a button with the mouse&#xA;is associated with one instance of &lt;code>ActionEvent&lt;/code>,&#xA;which is sent out when the mouse is both pressed and released&#xA;over the button. If an application is interested in knowing&#xA;when the button has been pressed but not released, as a separate&#xA;gesture, it can specialize &lt;code>processMouseEvent&lt;/code>,&#xA;or it can register itself as a listener for mouse events by&#xA;calling &lt;code>addMouseListener&lt;/code>. Both of these methods are&#xA;defined by &lt;code>Component&lt;/code>, the abstract superclass of&#xA;all components.&#xA;&lt;p>&#xA;When a button is pressed and released, AWT sends an instance&#xA;of &lt;code>ActionEvent&lt;/code> to the button, by calling&#xA;&lt;code>processEvent&lt;/code> on the button. The button's&#xA;&lt;code>processEvent&lt;/code> method receives all events&#xA;for the button; it passes an action event along by&#xA;calling its own &lt;code>processActionEvent&lt;/code> method.&#xA;The latter method passes the action event on to any action&#xA;listeners that have registered an interest in action&#xA;events generated by this button.&#xA;&lt;p>&#xA;If an application wants to perform some action based on&#xA;a button being pressed and released, it should implement&#xA;&lt;code>ActionListener&lt;/code> and register the new listener&#xA;to receive events from this button, by calling the button's&#xA;&lt;code>addActionListener&lt;/code> method. The application can&#xA;make use of the button's action command as a messaging protocol.&#xA;&#xA;@version &#x9;1.77 05/05/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.event.ActionEvent&#xA;@see         java.awt.event.ActionListener&#xA;@see         java.awt.Component#processMouseEvent&#xA;@see         java.awt.Component#addMouseListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_542198_6947"/>
            <generalization xmi:id="_10_5_622020d_1132928321308_925897_13161" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_834215_13160" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_542198_6947" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_987797_16911" name="AccessibleAWTButton" visibility="protected" clientDependency="_10_5_622020d_1132928321308_762595_13162 _10_5_622020d_1132928321308_859507_13163">
              <ownedComment xmi:id="_10_5_622020d_1132928306356_256495_4119" body="This class implements accessibility support for the&#xA;&lt;code>Button&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to button user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_987797_16911"/>
              <generalization xmi:id="_10_5_622020d_1132928321308_46514_13164" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321308_762595_13162" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473547378_987797_16911" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321308_859507_13163" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473547378_987797_16911" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_110545_7017" name="GradientPaint" clientDependency="_10_5_622020d_1132928321368_980224_13239">
            <ownedComment xmi:id="_10_5_622020d_1132928306457_166783_4209" body="The &lt;code>GradientPaint&lt;/code> class provides a way to fill&#xA;a {@link Shape} with a linear color gradient pattern.&#xA;If {@link Point} P1 with {@link Color} C1 and &lt;code>Point&lt;/code> P2 with&#xA;&lt;code>Color&lt;/code> C2 are specified in user space, the&#xA;&lt;code>Color&lt;/code> on the P1, P2 connecting line is proportionally&#xA;changed from C1 to C2.  Any point P not on the extended P1, P2&#xA;connecting line has the color of the point P' that is the perpendicular&#xA;projection of P on the extended P1, P2 connecting line.&#xA;Points on the extended line outside of the P1, P2 segment can be colored&#xA;in one of two ways.&#xA;&lt;ul>&#xA;&lt;li>&#xA;If the gradient is cyclic then the points on the extended P1, P2&#xA;connecting line cycle back and forth between the colors C1 and C2.&#xA;&lt;li>&#xA;If the gradient is acyclic then points on the P1 side of the segment&#xA;have the constant &lt;code>Color&lt;/code> C1 while points on the P2 side&#xA;have the constant &lt;code>Color&lt;/code> C2.&#xA;&lt;/ul>&#xA;&#xA;@see Paint&#xA;@see Graphics2D#setPaint&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_110545_7017"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_980224_13239" name="" supplier="_9_5_f720368_1110473546581_558071_7091" client="_9_5_f720368_1110473546581_110545_7017" contract="_9_5_f720368_1110473546581_558071_7091"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_835580_7059" name="KeyEventDispatcher" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306667_134252_4253" body="A KeyEventDispatcher cooperates with the current KeyboardFocusManager in the&#xA;targeting and dispatching of all KeyEvents. KeyEventDispatchers registered&#xA;with the current KeyboardFocusManager will receive KeyEvents before they are&#xA;dispatched to their targets, allowing each KeyEventDispatcher to retarget&#xA;the event, consume it, dispatch the event itself, or make other changes.&#xA;&lt;p>&#xA;Note that KeyboardFocusManager itself implements KeyEventDispatcher. By&#xA;default, the current KeyboardFocusManager will be the sink for all KeyEvents&#xA;not dispatched by the registered KeyEventDispatchers. The current&#xA;KeyboardFocusManager cannot be completely deregistered as a&#xA;KeyEventDispatcher. However, if a KeyEventDispatcher reports that it&#xA;dispatched the KeyEvent, regardless of whether it actually did so, the&#xA;KeyboardFocusManager will take no further action with regard to the&#xA;KeyEvent. (While it is possible for client code to register the current&#xA;KeyboardFocusManager as a KeyEventDispatcher one or more times, this is&#xA;usually unnecessary and not recommended.)&#xA;&#xA;@author David Mendenhall&#xA;@version 1.5, 12/19/03&#xA;&#xA;@see KeyboardFocusManager#addKeyEventDispatcher&#xA;@see KeyboardFocusManager#removeKeyEventDispatcher&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_835580_7059"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_556143_7053" name="ItemSelectable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_848242_4242" body="The interface for objects which contain a set of items for&#xA;which zero or more can be selected.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546581_556143_7053"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_433987_7069" name="List" clientDependency="_10_5_622020d_1132928321388_422302_13278 _10_5_622020d_1132928321388_445820_13277">
            <ownedComment xmi:id="_10_5_622020d_1132928306677_621710_4266" body="The &lt;code>List&lt;/code> component presents the user with a&#xA;scrolling list of text items. The list can be set up so that&#xA;the user can choose either one item or multiple items.&#xA;&lt;p>&#xA;For example, the code&amp;nbsp;.&amp;nbsp;.&amp;nbsp;.&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;List lst = new List(4, false);&#xA;lst.add(&quot;Mercury&quot;);&#xA;lst.add(&quot;Venus&quot;);&#xA;lst.add(&quot;Earth&quot;);&#xA;lst.add(&quot;JavaSoft&quot;);&#xA;lst.add(&quot;Mars&quot;);&#xA;lst.add(&quot;Jupiter&quot;);&#xA;lst.add(&quot;Saturn&quot;);&#xA;lst.add(&quot;Uranus&quot;);&#xA;lst.add(&quot;Neptune&quot;);&#xA;lst.add(&quot;Pluto&quot;);&#xA;cnt.add(lst);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;where &lt;code>cnt&lt;/code> is a container, produces the following&#xA;scrolling list:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/List-1.gif&quot;&#xA;alt=&quot;Shows a list containing: Venus, Earth, JavaSoft, and Mars. Javasoft is selected.&quot; ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;If the List allows multiple selections, then clicking on&#xA;an item that is already selected deselects it. In the preceding&#xA;example, only one item from the scrolling list can be selected&#xA;at a time, since the second argument when creating the new scrolling&#xA;list is &lt;code>false&lt;/code>. If the List does not allow multiple&#xA;selections, selecting an item causes any other selected item&#xA;to be deselected.&#xA;&lt;p>&#xA;Note that the list in the example shown was created with four visible&#xA;rows.  Once the list has been created, the number of visible rows&#xA;cannot be changed.  A default &lt;code>List&lt;/code> is created with&#xA;four rows, so that &lt;code>lst = new List()&lt;/code> is equivalent to&#xA;&lt;code>list = new List(4, false)&lt;/code>.&#xA;&lt;p>&#xA;Beginning with Java&amp;nbsp;1.1, the Abstract Window Toolkit&#xA;sends the &lt;code>List&lt;/code> object all mouse, keyboard, and focus events&#xA;that occur over it. (The old AWT event model is being maintained&#xA;only for backwards compatibility, and its use is discouraged.)&#xA;&lt;p>&#xA;When an item is selected or deselected by the user, AWT sends an instance&#xA;of &lt;code>ItemEvent&lt;/code> to the list.&#xA;When the user double-clicks on an item in a scrolling list,&#xA;AWT sends an instance of &lt;code>ActionEvent&lt;/code> to the&#xA;list following the item event. AWT also generates an action event&#xA;when the user presses the return key while an item in the&#xA;list is selected.&#xA;&lt;p>&#xA;If an application wants to perform some action based on an item&#xA;in this list being selected or activated by the user, it should implement&#xA;&lt;code>ItemListener&lt;/code> or &lt;code>ActionListener&lt;/code>&#xA;as appropriate and register the new listener to receive&#xA;events from this list.&#xA;&lt;p>&#xA;For multiple-selection scrolling lists, it is considered a better&#xA;user interface to use an external gesture (such as clicking on a&#xA;button) to trigger the action.&#xA;@version &#x9;1.106, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.event.ItemEvent&#xA;@see         java.awt.event.ItemListener&#xA;@see         java.awt.event.ActionEvent&#xA;@see         java.awt.event.ActionListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_433987_7069"/>
            <generalization xmi:id="_10_5_622020d_1132928321398_609633_13279" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_445820_13277" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546581_433987_7069" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321388_422302_13278" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_433987_7069" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_949498_17061" name="AccessibleAWTList" visibility="protected" clientDependency="_10_5_622020d_1132928321398_622566_13280 _10_5_622020d_1132928321398_683990_13282 _10_5_622020d_1132928321398_544851_13281">
              <ownedComment xmi:id="_10_5_622020d_1132928306677_162661_4264" body="This class implements accessibility support for the&#xA;&lt;code>List&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to list user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_949498_17061"/>
              <generalization xmi:id="_10_5_622020d_1132928321398_425337_13283" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321398_622566_13280" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473547409_949498_17061" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321398_544851_13281" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473547409_949498_17061" contract="_9_5_f720368_1110473546565_919591_6581"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321398_683990_13282" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473547409_949498_17061" contract="_9_5_f720368_1110473546565_106737_6535"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_96024_17063" name="AccessibleAWTListChild" visibility="protected" clientDependency="_10_5_622020d_1132928321398_18914_13284">
                <ownedComment xmi:id="_10_5_622020d_1132928306677_343160_4263" body="This class implements accessibility support for&#xA;List children.  It provides an implementation of the&#xA;Java Accessibility API appropriate to list children&#xA;user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_96024_17063"/>
                <generalization xmi:id="_10_5_622020d_1132928321398_523034_13285" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321398_18914_13284" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473547409_96024_17063" contract="_9_5_f720368_1110473546706_827345_8951"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_369940_6949" name="Canvas" clientDependency="_10_5_622020d_1132928321308_75213_13165">
            <ownedComment xmi:id="_10_5_622020d_1132928306367_440470_4124" body="A &lt;code>Canvas&lt;/code> component represents a blank rectangular&#xA;area of the screen onto which the application can draw or from&#xA;which the application can trap input events from the user.&#xA;&lt;p>&#xA;An application must subclass the &lt;code>Canvas&lt;/code> class in&#xA;order to get useful functionality such as creating a custom&#xA;component. The &lt;code>paint&lt;/code> method must be overridden&#xA;in order to perform custom graphics on the canvas.&#xA;&#xA;@version &#x9;1.35 03/16/04&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_369940_6949"/>
            <generalization xmi:id="_10_5_622020d_1132928321308_414293_13166" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_75213_13165" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_369940_6949" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_460417_16914" name="AccessibleAWTCanvas" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306367_843305_4122" body="This class implements accessibility support for the&#xA;&lt;code>Canvas&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to canvas user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_460417_16914"/>
              <generalization xmi:id="_10_5_622020d_1132928321318_55019_13167" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_13726_7123" name="SequencedEvent" visibility="package" clientDependency="_10_5_622020d_1132928321498_690694_13351">
            <ownedComment xmi:id="_10_5_622020d_1132928306727_172269_4337" body="A mechanism for ensuring that a series of AWTEvents are executed in a&#xA;precise order, even across multiple AppContexts. The nested events will be&#xA;dispatched in the order in which their wrapping SequencedEvents were&#xA;constructed. The only exception to this rule is if the peer of the target of&#xA;the nested event was destroyed (with a call to Component.removeNotify)&#xA;before the wrapping SequencedEvent was able to be dispatched. In this case,&#xA;the nested event is never dispatched.&#xA;&#xA;@version 1.10, 12/19/03&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546596_13726_7123"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_199803_13352" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_690694_13351" name="" supplier="_9_5_f720368_1110473546581_362482_6921" client="_9_5_f720368_1110473546596_13726_7123" contract="_9_5_f720368_1110473546581_362482_6921"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_362482_6921" name="ActiveEvent" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306216_727833_4092" body="An interface for events that know how to dispatch themselves.&#xA;By implementing this interface an event can be placed upon the event&#xA;queue and its &lt;code>dispatch()&lt;/code> method will be called when the event&#xA;is dispatched, using the &lt;code>EventDispatchThread&lt;/code>.&#xA;&lt;p>&#xA;This is a very useful mechanism for avoiding deadlocks. If&#xA;a thread is executing in a critical section (i.e., it has entered&#xA;one or more monitors), calling other synchronized code may&#xA;cause deadlocks. To avoid the potential deadlocks, an&#xA;&lt;code>ActiveEvent&lt;/code> can be created to run the second section of&#xA;code at later time. If there is contention on the monitor,&#xA;the second thread will simply block until the first thread&#xA;has finished its work and exited its monitors.&#xA;&lt;p>&#xA;For security reasons, it is often desirable to use an &lt;code>ActiveEvent&lt;/code>&#xA;to avoid calling untrusted code from a critical thread. For&#xA;instance, peer implementations can use this facility to avoid&#xA;making calls into user code from a system thread. Doing so avoids&#xA;potential deadlocks and denial-of-service attacks.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.13 12/19/03&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546581_362482_6921"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_370388_6943" name="BorderLayout" clientDependency="_10_5_622020d_1132928321308_773586_13156 _10_5_622020d_1132928321308_44063_13157">
            <ownedComment xmi:id="_10_5_622020d_1132928306356_805018_4115" body="A border layout lays out a container, arranging and resizing&#xA;its components to fit in five regions:&#xA;north, south, east, west, and center.&#xA;Each region may contain no more than one component, and&#xA;is identified by a corresponding constant:&#xA;&lt;code>NORTH&lt;/code>, &lt;code>SOUTH&lt;/code>, &lt;code>EAST&lt;/code>,&#xA;&lt;code>WEST&lt;/code>, and &lt;code>CENTER&lt;/code>.  When adding a&#xA;component to a container with a border layout, use one of these&#xA;five constants, for example:&#xA;&lt;pre>&#xA;Panel p = new Panel();&#xA;p.setLayout(new BorderLayout());&#xA;p.add(new Button(&quot;Okay&quot;), BorderLayout.SOUTH);&#xA;&lt;/pre>&#xA;As a convenience, &lt;code>BorderLayout&lt;/code> interprets the&#xA;absence of a string specification the same as the constant&#xA;&lt;code>CENTER&lt;/code>:&#xA;&lt;pre>&#xA;Panel p2 = new Panel();&#xA;p2.setLayout(new BorderLayout());&#xA;p2.add(new TextArea());  // Same as p.add(new TextArea(), BorderLayout.CENTER);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;In addition, &lt;code>BorderLayout&lt;/code> supports the relative&#xA;positioning constants, &lt;code>PAGE_START&lt;/code>, &lt;code>PAGE_END&lt;/code>,&#xA;&lt;code>LINE_START&lt;/code>, and &lt;code>LINE_END&lt;/code>.&#xA;In a container whose &lt;code>ComponentOrientation&lt;/code> is set to&#xA;&lt;code>ComponentOrientation.LEFT_TO_RIGHT&lt;/code>, these constants map to&#xA;&lt;code>NORTH&lt;/code>, &lt;code>SOUTH&lt;/code>, &lt;code>WEST&lt;/code>, and&#xA;&lt;code>EAST&lt;/code>, respectively.&#xA;&lt;p>&#xA;For compatibility with previous releases, &lt;code>BorderLayout&lt;/code>&#xA;also includes the relative positioning constants &lt;code>BEFORE_FIRST_LINE&lt;/code>,&#xA;&lt;code>AFTER_LAST_LINE&lt;/code>, &lt;code>BEFORE_LINE_BEGINS&lt;/code> and&#xA;&lt;code>AFTER_LINE_ENDS&lt;/code>.  These are equivalent to&#xA;&lt;code>PAGE_START&lt;/code>, &lt;code>PAGE_END&lt;/code>, &lt;code>LINE_START&lt;/code>&#xA;and &lt;code>LINE_END&lt;/code> respectively.  For&#xA;consistency with the relative positioning constants used by other&#xA;components, the latter constants are preferred.&#xA;&lt;p>&#xA;Mixing both absolute and relative positioning constants can lead to&#xA;unpredicable results.  If&#xA;you use both types, the relative constants will take precedence.&#xA;For example, if you add components using both the &lt;code>NORTH&lt;/code>&#xA;and &lt;code>PAGE_START&lt;/code> constants in a container whose&#xA;orientation is &lt;code>LEFT_TO_RIGHT&lt;/code>, only the&#xA;&lt;code>PAGE_START&lt;/code> will be layed out.&#xA;&lt;p>&#xA;NOTE: Currently (in the Java 2 platform v1.2),&#xA;&lt;code>BorderLayout&lt;/code> does not support vertical&#xA;orientations.  The &lt;code>isVertical&lt;/code> setting on the container's&#xA;&lt;code>ComponentOrientation&lt;/code> is not respected.&#xA;&lt;p>&#xA;The components are laid out according to their&#xA;preferred sizes and the constraints of the container's size.&#xA;The &lt;code>NORTH&lt;/code> and &lt;code>SOUTH&lt;/code> components may&#xA;be stretched horizontally; the &lt;code>EAST&lt;/code> and&#xA;&lt;code>WEST&lt;/code> components may be stretched vertically;&#xA;the &lt;code>CENTER&lt;/code> component may stretch both horizontally&#xA;and vertically to fill any space left over.&#xA;&lt;p>&#xA;Here is an example of five buttons in an applet laid out using&#xA;the &lt;code>BorderLayout&lt;/code> layout manager:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/BorderLayout-1.gif&quot;&#xA;alt=&quot;Diagram of an applet demonstrating BorderLayout.&#xA;Each section of the BorderLayout contains a Button corresponding to its position in the layout, one of:&#xA;North, West, Center, East, or South.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;The code for this applet is as follows:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;import java.awt.*;&#xA;import java.applet.Applet;&#xA;&#xA;public class buttonDir extends Applet {&#xA;public void init() {&#xA;setLayout(new BorderLayout());&#xA;add(new Button(&quot;North&quot;), BorderLayout.NORTH);&#xA;add(new Button(&quot;South&quot;), BorderLayout.SOUTH);&#xA;add(new Button(&quot;East&quot;), BorderLayout.EAST);&#xA;add(new Button(&quot;West&quot;), BorderLayout.WEST);&#xA;add(new Button(&quot;Center&quot;), BorderLayout.CENTER);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;@version &#x9;1.56, 05/18/04&#xA;@author &#x9;Arthur van Hoff&#xA;@see         java.awt.Container#add(String, Component)&#xA;@see         java.awt.ComponentOrientation&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_370388_6943"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_773586_13156" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546581_370388_6943" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_44063_13157" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_370388_6943" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_509119_7075" name="ImageMediaEntry" visibility="package" clientDependency="_10_5_622020d_1132928321398_905191_13288 _10_5_622020d_1132928321398_226439_13287">
            <generalization xmi:id="_10_5_622020d_1132928321398_16502_13289" isSubstitutable="true" general="_9_5_f720368_1110473546581_728877_7073"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_226439_13287" name="" supplier="_9_5_f720368_1110473546565_278383_6795" client="_9_5_f720368_1110473546581_509119_7075" contract="_9_5_f720368_1110473546565_278383_6795"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_905191_13288" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_509119_7075" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_551245_7147" name="FocusManager" visibility="package" clientDependency="_10_5_622020d_1132928321508_559720_13376">
            <ownedComment xmi:id="_10_5_622020d_1132928306767_330357_4364" body="This class is no longer used, but is maintained for Serialization&#xA;backward-compatibility.&#xA;" annotatedElement="_9_5_f720368_1110473546596_551245_7147"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321508_559720_13376" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_551245_7147" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306397_7736_4167" name="MutableBoolean" visibility="package"/>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547268_839923_16332" name="color">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_719091_6445" name="ICC_ColorSpace">
              <ownedComment xmi:id="_10_5_622020d_1132928305495_860335_3589" body="The ICC_ColorSpace class is an implementation of the abstract&#xA;ColorSpace class.  This representation of&#xA;device independent and device dependent color spaces is based on the&#xA;International Color Consortium Specification ICC.1:2001-12, File Format for&#xA;Color Profiles (see &lt;A href=&quot;http://www.color.org&quot;>http://www.color.org&lt;/A>).&#xA;&lt;p>&#xA;Typically, a Color or ColorModel would be associated with an ICC&#xA;Profile which is either an input, display, or output profile (see&#xA;the ICC specification).  There are other types of ICC Profiles, e.g.&#xA;abstract profiles, device link profiles, and named color profiles,&#xA;which do not contain information appropriate for representing the color&#xA;space of a color, image, or device (see ICC_Profile).&#xA;Attempting to create an ICC_ColorSpace object from an inappropriate ICC&#xA;Profile is an error.&#xA;&lt;p>&#xA;ICC Profiles represent transformations from the color space of&#xA;the profile (e.g. a monitor) to a Profile Connection Space (PCS).&#xA;Profiles of interest for tagging images or colors have a&#xA;PCS which is one of the device independent&#xA;spaces (one CIEXYZ space and two CIELab spaces) defined in the&#xA;ICC Profile Format Specification.  Most profiles of interest&#xA;either have invertible transformations or explicitly specify&#xA;transformations going both directions.  Should an ICC_ColorSpace&#xA;object be used in a way requiring a conversion from PCS to&#xA;the profile's native space and there is inadequate data to&#xA;correctly perform the conversion, the ICC_ColorSpace object will&#xA;produce output in the specified type of color space (e.g. TYPE_RGB,&#xA;TYPE_CMYK, etc.), but the specific color values of the output data&#xA;will be undefined.&#xA;&lt;p>&#xA;The details of this class are not important for simple applets,&#xA;which draw in a default color space or manipulate and display&#xA;imported images with a known color space.  At most, such applets&#xA;would need to get one of the default color spaces via&#xA;ColorSpace.getInstance().&#xA;&lt;p>&#xA;@see ColorSpace&#xA;@see ICC_Profile&#xA;" annotatedElement="_9_5_f720368_1110473546549_719091_6445"/>
              <generalization xmi:id="_10_5_622020d_1132928320527_391633_12870" isSubstitutable="true" general="_9_5_f720368_1110473546549_240108_6443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_855271_6449" name="ICC_ProfileGray">
              <ownedComment xmi:id="_10_5_622020d_1132928305495_513927_3593" body="A subclass of the ICC_Profile class which represents profiles&#xA;which meet the following criteria: the color space type of the&#xA;profile is TYPE_GRAY and the profile includes the grayTRCTag and&#xA;mediaWhitePointTag tags.  Examples of this kind of profile are&#xA;monochrome input profiles, monochrome display profiles, and&#xA;monochrome output profiles.  The getInstance methods in the&#xA;ICC_Profile class will&#xA;return an ICC_ProfileGray object when the above conditions are&#xA;met.  The advantage of this class is that it provides a lookup&#xA;table that Java or native methods may be able to use directly to&#xA;optimize color conversion in some cases.&#xA;&lt;p>&#xA;To transform from a GRAY device profile color space to the CIEXYZ Profile&#xA;Connection Space, the device gray component is transformed by&#xA;a lookup through the tone reproduction curve (TRC).  The result is&#xA;treated as the achromatic component of the PCS.&#xA;&lt;pre>&#xA;&amp;nbsp;               PCSY = grayTRC[deviceGray]&#xA;&lt;/pre>&#xA;The inverse transform is done by converting the PCS Y components to&#xA;device Gray via the inverse of the grayTRC.&#xA;&lt;p>&#xA;" annotatedElement="_9_5_f720368_1110473546549_855271_6449"/>
              <generalization xmi:id="_10_5_622020d_1132928320527_578080_12872" isSubstitutable="true" general="_9_5_f720368_1110473546549_402776_6447"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_240108_6443" name="ColorSpace" clientDependency="_10_5_622020d_1132928320477_302798_12869" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305495_802898_3587" body="This abstract class is used to serve as a color space tag to identify the&#xA;specific color space of a Color object or, via a ColorModel object,&#xA;of an Image, a BufferedImage, or a GraphicsDevice.  It contains&#xA;methods that transform colors in a specific color space to/from sRGB&#xA;and to/from a well-defined CIEXYZ color space.&#xA;&lt;p>&#xA;For purposes of the methods in this class, colors are represented as&#xA;arrays of color components represented as floats in a normalized range&#xA;defined by each ColorSpace.  For many ColorSpaces (e.g. sRGB), this&#xA;range is 0.0 to 1.0.  However, some ColorSpaces have components whose&#xA;values have a different range.  Methods are provided to inquire per&#xA;component minimum and maximum normalized values.&#xA;&lt;p>&#xA;Several variables are defined for purposes of referring to color&#xA;space types (e.g. TYPE_RGB, TYPE_XYZ, etc.) and to refer to specific&#xA;color spaces (e.g. CS_sRGB and CS_CIEXYZ).&#xA;sRGB is a proposed standard RGB color space.  For more information,&#xA;see &lt;A href=&quot;http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html&quot;>&#xA;http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html&#xA;&lt;/A>.&#xA;&lt;p>&#xA;The purpose of the methods to transform to/from the well-defined&#xA;CIEXYZ color space is to support conversions between any two color&#xA;spaces at a reasonably high degree of accuracy.  It is expected that&#xA;particular implementations of subclasses of ColorSpace (e.g.&#xA;ICC_ColorSpace) will support high performance conversion based on&#xA;underlying platform color management systems.&#xA;&lt;p>&#xA;The CS_CIEXYZ space used by the toCIEXYZ/fromCIEXYZ methods can be&#xA;described as follows:&#xA;&lt;pre>&#xA;&amp;nbsp;     CIEXYZ&#xA;&amp;nbsp;     viewing illuminance: 200 lux&#xA;&amp;nbsp;     viewing white point: CIE D50&#xA;&amp;nbsp;     media white point: &quot;that of a perfectly reflecting diffuser&quot; -- D50&#xA;&amp;nbsp;     media black point: 0 lux or 0 Reflectance&#xA;&amp;nbsp;     flare: 1 percent&#xA;&amp;nbsp;     surround: 20percent of the media white point&#xA;&amp;nbsp;     media description: reflection print (i.e., RLAB, Hunt viewing media)&#xA;&amp;nbsp;     note: For developers creating an ICC profile for this conversion&#xA;&amp;nbsp;           space, the following is applicable.  Use a simple Von Kries&#xA;&amp;nbsp;           white point adaptation folded into the 3X3 matrix parameters&#xA;&amp;nbsp;           and fold the flare and surround effects into the three&#xA;&amp;nbsp;           one-dimensional lookup tables (assuming one uses the minimal&#xA;&amp;nbsp;           model for monitors).&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;@see ICC_ColorSpace&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546549_240108_6443"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320477_302798_12869" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546549_240108_6443" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_907419_6451" name="ICC_ProfileRGB">
              <ownedComment xmi:id="_10_5_622020d_1132928305495_747842_3595" body="The ICC_ProfileRGB class is a subclass of the ICC_Profile class&#xA;that represents profiles which meet the following criteria:&#xA;&lt;ul>&#xA;&lt;li>The profile's color space type is RGB.&lt;/li>&#xA;&lt;li>The profile includes the &lt;code>redColorantTag&lt;/code>,&#xA;&lt;code>greenColorantTag&lt;/code>, &lt;code>blueColorantTag&lt;/code>,&#xA;&lt;code>redTRCTag&lt;/code>, &lt;code>greenTRCTag&lt;/code>,&#xA;&lt;code>blueTRCTag&lt;/code>, and &lt;code>mediaWhitePointTag&lt;/code> tags.&lt;/li>&#xA;&lt;/ul>&#xA;The &lt;code>ICC_Profile&lt;/code> &lt;code>getInstance&lt;/code> method will&#xA;return an &lt;code>ICC_ProfileRGB&lt;/code> object when these conditions are met.&#xA;Three-component, matrix-based input profiles and RGB display profiles are&#xA;examples of this type of profile.&#xA;&lt;p>&#xA;This profile class provides color transform matrices and lookup tables&#xA;that Java or native methods can use directly to&#xA;optimize color conversion in some cases.&#xA;&lt;p>&#xA;To transform from a device profile color space to the CIEXYZ Profile&#xA;Connection Space, each device color component is first linearized by&#xA;a lookup through the corresponding tone reproduction curve (TRC).&#xA;The resulting linear RGB components are converted to the CIEXYZ PCS&#xA;using a a 3x3 matrix constructed from the RGB colorants.&#xA;&lt;pre>&#xA;&#xA;&amp;nbsp;               linearR = redTRC[deviceR]&#xA;&#xA;&amp;nbsp;               linearG = greenTRC[deviceG]&#xA;&#xA;&amp;nbsp;               linearB = blueTRC[deviceB]&#xA;&#xA;&amp;nbsp; _      _       _                                             _   _         _&#xA;&amp;nbsp;[  PCSX  ]     [  redColorantX  greenColorantX  blueColorantX  ] [  linearR  ]&#xA;&amp;nbsp;[        ]     [                                               ] [           ]&#xA;&amp;nbsp;[  PCSY  ]  =  [  redColorantY  greenColorantY  blueColorantY  ] [  linearG  ]&#xA;&amp;nbsp;[        ]     [                                               ] [           ]&#xA;&amp;nbsp;[_ PCSZ _]     [_ redColorantZ  greenColorantZ  blueColorantZ _] [_ linearB _]&#xA;&#xA;&lt;/pre>&#xA;The inverse transform is performed by converting PCS XYZ components to linear&#xA;RGB components through the inverse of the above 3x3 matrix, and then converting&#xA;linear RGB to device RGB through inverses of the TRCs.&#xA;&lt;p>&#xA;" annotatedElement="_9_5_f720368_1110473546549_907419_6451"/>
              <generalization xmi:id="_10_5_622020d_1132928320527_179100_12873" isSubstitutable="true" general="_9_5_f720368_1110473546549_402776_6447"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_402776_6447" name="ICC_Profile" clientDependency="_10_5_622020d_1132928320527_832297_12871">
              <ownedComment xmi:id="_10_5_622020d_1132928305495_307660_3591" body="A representation of color profile data for device independent and&#xA;device dependent color spaces based on the International Color&#xA;Consortium Specification ICC.1:2001-12, File Format for Color Profiles,&#xA;(see &lt;A href=&quot;http://www.color.org&quot;> http://www.color.org&lt;/A>).&#xA;&lt;p>&#xA;An ICC_ColorSpace object can be constructed from an appropriate&#xA;ICC_Profile.&#xA;Typically, an ICC_ColorSpace would be associated with an ICC&#xA;Profile which is either an input, display, or output profile (see&#xA;the ICC specification).  There are also device link, abstract,&#xA;color space conversion, and named color profiles.  These are less&#xA;useful for tagging a color or image, but are useful for other&#xA;purposes (in particular device link profiles can provide improved&#xA;performance for converting from one device's color space to&#xA;another's).&#xA;&lt;p>&#xA;ICC Profiles represent transformations from the color space of&#xA;the profile (e.g. a monitor) to a Profile Connection Space (PCS).&#xA;Profiles of interest for tagging images or colors have a PCS&#xA;which is one of the two specific device independent&#xA;spaces (one CIEXYZ space and one CIELab space) defined in the&#xA;ICC Profile Format Specification.  Most profiles of interest&#xA;either have invertible transformations or explicitly specify&#xA;transformations going both directions.&#xA;&lt;p>&#xA;@version 10 Feb 1997&#xA;@see ICC_ColorSpace&#xA;" annotatedElement="_9_5_f720368_1110473546549_402776_6447"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928320527_832297_12871" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546549_402776_6447" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_171724_6453" name="ProfileDataException">
              <ownedComment xmi:id="_10_5_622020d_1132928305505_555469_3597" body="This exception is thrown when an error occurs in accessing or&#xA;processing an ICC_Profile object.&#xA;" annotatedElement="_9_5_f720368_1110473546549_171724_6453"/>
              <generalization xmi:id="_10_5_622020d_1132928320537_383899_12874" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546549_878098_6441" name="CMMException">
              <ownedComment xmi:id="_10_5_622020d_1132928305485_710786_3585" body="This exception is thrown if the native CMM returns an error.&#xA;" annotatedElement="_9_5_f720368_1110473546549_878098_6441"/>
              <generalization xmi:id="_10_5_622020d_1132928318524_373124_12868" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_527752_7111" name="Robot">
            <ownedComment xmi:id="_10_5_622020d_1132928306717_55469_4324" body="This class is used to generate native system input events&#xA;for the purposes of test automation, self-running demos, and&#xA;other applications where control of the mouse and keyboard&#xA;is needed. The primary purpose of Robot is to facilitate&#xA;automated testing of Java platform implementations.&#xA;&lt;p>&#xA;Using the class to generate input events differs from posting&#xA;events to the AWT event queue or AWT components in that the&#xA;events are generated in the platform's native input&#xA;queue. For example, &lt;code>Robot.mouseMove&lt;/code> will actually move&#xA;the mouse cursor instead of just generating mouse move events.&#xA;&lt;p>&#xA;Note that some platforms require special privileges or extensions&#xA;to access low-level input control. If the current platform configuration&#xA;does not allow input control, an &lt;code>AWTException&lt;/code> will be thrown&#xA;when trying to construct Robot objects. For example, X-Window systems&#xA;will throw the exception if the XTEST 2.2 standard extension is not supported&#xA;(or not enabled) by the X server.&#xA;&lt;p>&#xA;Applications that use Robot for purposes other than self-testing should&#xA;handle these error conditions gracefully.&#xA;&#xA;@version &#x9;1.27, 12/19/03&#xA;@author &#x9;Robi Khan&#xA;@since   &#x9;1.3&#xA;" annotatedElement="_9_5_f720368_1110473546581_527752_7111"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_175096_7021" name="Graphics" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306477_434766_4212" body="The &lt;code>Graphics&lt;/code> class is the abstract base class for&#xA;all graphics contexts that allow an application to draw onto&#xA;components that are realized on various devices, as well as&#xA;onto off-screen images.&#xA;&lt;p>&#xA;A &lt;code>Graphics&lt;/code> object encapsulates state information needed&#xA;for the basic rendering operations that Java supports.  This&#xA;state information includes the following properties:&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>The &lt;code>Component&lt;/code> object on which to draw.&#xA;&lt;li>A translation origin for rendering and clipping coordinates.&#xA;&lt;li>The current clip.&#xA;&lt;li>The current color.&#xA;&lt;li>The current font.&#xA;&lt;li>The current logical pixel operation function (XOR or Paint).&#xA;&lt;li>The current XOR alternation color&#xA;(see {@link Graphics#setXORMode}).&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Coordinates are infinitely thin and lie between the pixels of the&#xA;output device.&#xA;Operations that draw the outline of a figure operate by traversing&#xA;an infinitely thin path between pixels with a pixel-sized pen that hangs&#xA;down and to the right of the anchor point on the path.&#xA;Operations that fill a figure operate by filling the interior&#xA;of that infinitely thin path.&#xA;Operations that render horizontal text render the ascending&#xA;portion of character glyphs entirely above the baseline coordinate.&#xA;&lt;p>&#xA;The graphics pen hangs down and to the right from the path it traverses.&#xA;This has the following implications:&#xA;&lt;p>&lt;ul>&#xA;&lt;li>If you draw a figure that covers a given rectangle, that&#xA;figure occupies one extra row of pixels on the right and bottom edges&#xA;as compared to filling a figure that is bounded by that same rectangle.&#xA;&lt;li>If you draw a horizontal line along the same &lt;i>y&lt;/i> coordinate as&#xA;the baseline of a line of text, that line is drawn entirely below&#xA;the text, except for any descenders.&#xA;&lt;/ul>&lt;p>&#xA;All coordinates that appear as arguments to the methods of this&#xA;&lt;code>Graphics&lt;/code> object are considered relative to the&#xA;translation origin of this &lt;code>Graphics&lt;/code> object prior to&#xA;the invocation of the method.&#xA;&lt;p>&#xA;All rendering operations modify only pixels which lie within the&#xA;area bounded by the current clip, which is specified by a {@link Shape}&#xA;in user space and is controlled by the program using the&#xA;&lt;code>Graphics&lt;/code> object.  This &lt;i>user clip&lt;/i>&#xA;is transformed into device space and combined with the&#xA;&lt;i>device clip&lt;/i>, which is defined by the visibility of windows and&#xA;device extents.  The combination of the user clip and device clip&#xA;defines the &lt;i>composite clip&lt;/i>, which determines the final clipping&#xA;region.  The user clip cannot be modified by the rendering&#xA;system to reflect the resulting composite clip. The user clip can only&#xA;be changed through the &lt;code>setClip&lt;/code> or &lt;code>clipRect&lt;/code>&#xA;methods.&#xA;All drawing or writing is done in the current color,&#xA;using the current paint mode, and in the current font.&#xA;&#xA;@version &#x9;1.69, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@see     java.awt.Component&#xA;@see     java.awt.Graphics#clipRect(int, int, int, int)&#xA;@see     java.awt.Graphics#setColor(java.awt.Color)&#xA;@see     java.awt.Graphics#setPaintMode()&#xA;@see     java.awt.Graphics#setXORMode(java.awt.Color)&#xA;@see     java.awt.Graphics#setFont(java.awt.Font)&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_175096_7021"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_657642_7109" name="RenderingHints" clientDependency="_10_5_622020d_1132928321488_353384_13334 _10_5_622020d_1132928321488_958674_13333">
            <ownedComment xmi:id="_10_5_622020d_1132928306717_10991_4322" body="The &lt;code>RenderingHints&lt;/code> class contains rendering hints that can&#xA;be used by the {@link java.awt.Graphics2D} class, and classes that&#xA;implement {@link java.awt.image.BufferedImageOp} and&#xA;{@link java.awt.image.Raster}.&#xA;" annotatedElement="_9_5_f720368_1110473546581_657642_7109"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321488_958674_13333" name="" supplier="_10_5_622020d_1132928321448_677845_13329" client="_9_5_f720368_1110473546581_657642_7109" contract="_10_5_622020d_1132928321448_677845_13329"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321488_353384_13334" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546581_657642_7109" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_526946_17110" name="Key" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306717_375452_4320" body="Defines the base type of all keys used to control various&#xA;aspects of the rendering and imaging pipelines.  Instances&#xA;of this class are immutable and unique which means that&#xA;tests for matches can be made using the == operator instead&#xA;of the more expensive equals() method.&#xA;" annotatedElement="_9_5_f720368_1110473547409_526946_17110"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_969768_7139" name="TexturePaintContext" visibility="package" clientDependency="_10_5_622020d_1132928321498_675174_13365" isAbstract="true">
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_675174_13365" name="" supplier="_9_5_f720368_1110473546581_660863_7093" client="_9_5_f720368_1110473546596_969768_7139" contract="_9_5_f720368_1110473546581_660863_7093"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_861820_17137" name="Int" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928321498_114243_13366" isSubstitutable="true" general="_9_5_f720368_1110473546596_969768_7139"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_717597_17139" name="Byte" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928321498_359084_13367" isSubstitutable="true" general="_9_5_f720368_1110473546596_969768_7139"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_585434_17141" name="ByteFilter" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928321498_547415_13368" isSubstitutable="true" general="_9_5_f720368_1110473546596_969768_7139"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_370836_17143" name="Any" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928321498_639174_13369" isSubstitutable="true" general="_9_5_f720368_1110473546596_969768_7139"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_922318_7129" name="SystemColor" clientDependency="_10_5_622020d_1132928321498_452326_13353" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306747_605053_4343" body="A class to encapsulate symbolic colors representing the color of&#xA;native GUI objects on a system.  For systems which support the dynamic&#xA;update of the system colors (when the user changes the colors)&#xA;the actual RGB values of these symbolic colors will also change&#xA;dynamically.  In order to compare the &quot;current&quot; RGB value of a&#xA;&lt;code>SystemColor&lt;/code> object with a non-symbolic Color object,&#xA;&lt;code>getRGB&lt;/code> should be used rather than &lt;code>equals&lt;/code>.&#xA;&lt;p>&#xA;Note that the way in which these system colors are applied to GUI objects&#xA;may vary slightly from platform to platform since GUI objects may be&#xA;rendered differently on each platform.&#xA;&lt;p>&#xA;System color values may also be available through the &lt;code>getDesktopProperty&lt;/code>&#xA;method on &lt;code>java.awt.Toolkit&lt;/code>.&#xA;&#xA;@see Toolkit#getDesktopProperty&#xA;&#xA;@version &#x9;1.24, 12/19/03&#xA;@author &#x9;Carl Quinn&#xA;@author      Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546596_922318_7129"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_771093_13354" isSubstitutable="true" general="_9_5_f720368_1110473546581_525736_6961"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_452326_13353" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_922318_7129" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_76647_7001" name="EventQueueItem" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_525736_6961" name="Color" clientDependency="_10_5_622020d_1132928321328_719436_13190 _10_5_622020d_1132928321328_288837_13191">
            <ownedComment xmi:id="_10_5_622020d_1132928306377_808695_4139" body="The &lt;code>Color&lt;/code> class is used to encapsulate colors in the default&#xA;sRGB color space or colors in arbitrary color spaces identified by a&#xA;{@link ColorSpace}.  Every color has an implicit alpha value of 1.0 or&#xA;an explicit one provided in the constructor.  The alpha value&#xA;defines the transparency of a color and can be represented by&#xA;a float value in the range 0.0&amp;nbsp;-&amp;nbsp;1.0 or 0&amp;nbsp;-&amp;nbsp;255.&#xA;An alpha value of 1.0 or 255 means that the color is completely&#xA;opaque and an alpha value of 0 or 0.0 means that the color is&#xA;completely transparent.&#xA;When constructing a &lt;code>Color&lt;/code> with an explicit alpha or&#xA;getting the color/alpha components of a &lt;code>Color&lt;/code>, the color&#xA;components are never premultiplied by the alpha component.&#xA;&lt;p>&#xA;The default color space for the Java 2D(tm) API is sRGB, a proposed&#xA;standard RGB color space.  For further information on sRGB,&#xA;see &lt;A href=&quot;http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html&quot;>&#xA;http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html&#xA;&lt;/A>.&#xA;&lt;p>&#xA;@version &#x9;10 Feb 1997&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@see&#x9;&#x9;ColorSpace&#xA;@see         AlphaComposite&#xA;" annotatedElement="_9_5_f720368_1110473546581_525736_6961"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_719436_13190" name="" supplier="_9_5_f720368_1110473546581_558071_7091" client="_9_5_f720368_1110473546581_525736_6961" contract="_9_5_f720368_1110473546581_558071_7091"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321328_288837_13191" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_525736_6961" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_302274_7133" name="TextComponent" clientDependency="_10_5_622020d_1132928321498_143430_13357">
            <ownedComment xmi:id="_10_5_622020d_1132928306757_625060_4349" body="The &lt;code>TextComponent&lt;/code> class is the superclass of&#xA;any component that allows the editing of some text.&#xA;&lt;p>&#xA;A text component embodies a string of text.  The&#xA;&lt;code>TextComponent&lt;/code> class defines a set of methods&#xA;that determine whether or not this text is editable. If the&#xA;component is editable, it defines another set of methods&#xA;that supports a text insertion caret.&#xA;&lt;p>&#xA;In addition, the class defines methods that are used&#xA;to maintain a current &lt;em>selection&lt;/em> from the text.&#xA;The text selection, a substring of the component's text,&#xA;is the target of editing operations. It is also referred&#xA;to as the &lt;em>selected text&lt;/em>.&#xA;&#xA;@version&#x9;1.83, 05/05/04&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_302274_7133"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_715260_13358" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321498_143430_13357" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546596_302274_7133" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_416672_17131" name="AccessibleAWTTextComponent" visibility="protected" clientDependency="_10_5_622020d_1132928321498_614867_13360 _10_5_622020d_1132928321498_444206_13359">
              <ownedComment xmi:id="_10_5_622020d_1132928306757_54321_4347" body="This class implements accessibility support for the&#xA;&lt;code>TextComponent&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to text component user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_416672_17131"/>
              <generalization xmi:id="_10_5_622020d_1132928321498_343744_13361" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321498_444206_13359" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_9_5_f720368_1110473547424_416672_17131" contract="_9_5_f720368_1110473546706_466273_8993"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321498_614867_13360" name="" supplier="_9_5_f720368_1110473546565_590573_6609" client="_9_5_f720368_1110473547424_416672_17131" contract="_9_5_f720368_1110473546565_590573_6609"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_380235_7107" name="Rectangle" clientDependency="_10_5_622020d_1132928321418_613046_13326 _10_5_622020d_1132928321418_78125_13327">
            <ownedComment xmi:id="_10_5_622020d_1132928306717_826517_4319" body="A &lt;code>Rectangle&lt;/code> specifies an area in a coordinate space that is&#xA;enclosed by the &lt;code>Rectangle&lt;/code> object's top-left point&#xA;(&lt;i>x&lt;/i>,&amp;nbsp;&lt;i>y&lt;/i>)&#xA;in the coordinate space, its width, and its height.&#xA;&lt;p>&#xA;A &lt;code>Rectangle&lt;/code> object's &lt;code>width&lt;/code> and&#xA;&lt;code>height&lt;/code> are &lt;code>public&lt;/code> fields. The constructors&#xA;that create a &lt;code>Rectangle&lt;/code>, and the methods that can modify&#xA;one, do not prevent setting a negative value for width or height.&#xA;&lt;p>&#xA;A &lt;code>Rectangle&lt;/code> whose width or height is negative is considered&#xA;empty. If the &lt;code>Rectangle&lt;/code> is empty, then the&#xA;&lt;code>isEmpty&lt;/code> method returns &lt;code>true&lt;/code>. No point can be&#xA;contained by or inside an empty &lt;code>Rectangle&lt;/code>.  The&#xA;values of &lt;code>width&lt;/code> and &lt;code>height&lt;/code>, however, are still&#xA;valid.  An empty &lt;code>Rectangle&lt;/code> still has a location in the&#xA;coordinate space, and methods that change its size or location remain&#xA;valid. The behavior of methods that operate on more than one&#xA;&lt;code>Rectangle&lt;/code> is undefined if any of the participating&#xA;&lt;code>Rectangle&lt;/code> objects has a negative&#xA;&lt;code>width&lt;/code> or &lt;code>height&lt;/code>. These methods include&#xA;&lt;code>intersects&lt;/code>, &lt;code>intersection&lt;/code>, and&#xA;&lt;code>union&lt;/code>.&#xA;&#xA;@version &#x9;1.70, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_380235_7107"/>
            <generalization xmi:id="_10_5_622020d_1132928321418_32816_13328" isSubstitutable="true" general="_9_5_f720368_1110473546565_189623_6705"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321418_613046_13326" name="" supplier="_9_5_f720368_1110473546596_367284_7125" client="_9_5_f720368_1110473546581_380235_7107" contract="_9_5_f720368_1110473546596_367284_7125"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321418_78125_13327" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_380235_7107" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_940315_6989" name="Dimension" clientDependency="_10_5_622020d_1132928321358_62372_13224">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_570489_4180" body="The &lt;code>Dimension&lt;/code> class encapsulates the width and&#xA;height of a component (in integer precision) in a single object.&#xA;The class is&#xA;associated with certain properties of components. Several methods&#xA;defined by the &lt;code>Component&lt;/code> class and the&#xA;&lt;code>LayoutManager&lt;/code> interface return a&#xA;&lt;code>Dimension&lt;/code> object.&#xA;&lt;p>&#xA;Normally the values of &lt;code>width&lt;/code>&#xA;and &lt;code>height&lt;/code> are non-negative integers.&#xA;The constructors that allow you to create a dimension do&#xA;not prevent you from setting a negative value for these properties.&#xA;If the value of &lt;code>width&lt;/code> or &lt;code>height&lt;/code> is&#xA;negative, the behavior of some methods defined by other objects is&#xA;undefined.&#xA;&#xA;@version &#x9;1.32, 12/19/03&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@see         java.awt.Component&#xA;@see         java.awt.LayoutManager&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_940315_6989"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_410462_13225" isSubstitutable="true" general="_9_5_f720368_1110473546565_842229_6677"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321358_62372_13224" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_940315_6989" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306316_511170_4108" name="VKCollection" visibility="package"/>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547331_114238_16707" name="image">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_12097_6765" name="ComponentColorModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306036_382655_3930" body="A &lt;CODE>ColorModel&lt;/CODE> class that works with pixel values that&#xA;represent color and alpha information as separate samples and that&#xA;store each sample in a separate data element.  This class can be&#xA;used with an arbitrary &lt;CODE>ColorSpace&lt;/CODE>.  The number of&#xA;color samples in the pixel values must be same as the number of&#xA;color components in the &lt;CODE>ColorSpace&lt;/CODE>. There may be a&#xA;single alpha sample.&#xA;&lt;p>&#xA;For those methods that use&#xA;a primitive array pixel representation of type &lt;CODE>transferType&lt;/CODE>,&#xA;the array length is the same as the number of color and alpha samples.&#xA;Color samples are stored first in the array followed by the alpha&#xA;sample, if present.  The order of the color samples is specified&#xA;by the &lt;CODE>ColorSpace&lt;/CODE>.  Typically, this order reflects the&#xA;name of the color space type. For example, for &lt;CODE>TYPE_RGB&lt;/CODE>,&#xA;index 0 corresponds to red, index 1 to green, and index 2 to blue.&#xA;&lt;p>&#xA;The translation from pixel sample values to color/alpha components for&#xA;display or processing purposes is based on a one-to-one correspondence of&#xA;samples to components.&#xA;Depending on the transfer type used to create an instance of&#xA;&lt;code>ComponentColorModel&lt;/code>, the pixel sample values&#xA;represented by that instance may be signed or unsigned and may&#xA;be of integral type or float or double (see below for details).&#xA;The translation from sample values to normalized color/alpha components&#xA;must follow certain rules.  For float and double samples, the translation&#xA;is an identity, i.e. normalized component values are equal to the&#xA;corresponding sample values.  For integral samples, the translation&#xA;should be only a simple scale and offset, where the scale and offset&#xA;constants may be different for each component.  The result of&#xA;applying the scale and offset constants is a set of color/alpha&#xA;component values, which are guaranteed to fall within a certain&#xA;range.  Typically, the range for a color component will be the range&#xA;defined by the &lt;code>getMinValue&lt;/code> and &lt;code>getMaxValue&lt;/code>&#xA;methods of the &lt;code>ColorSpace&lt;/code> class.  The range for an&#xA;alpha component should be 0.0 to 1.0.&#xA;&lt;p>&#xA;Instances of &lt;code>ComponentColorModel&lt;/code> created with transfer types&#xA;&lt;CODE>DataBuffer.TYPE_BYTE&lt;/CODE>, &lt;CODE>DataBuffer.TYPE_USHORT&lt;/CODE>,&#xA;and &lt;CODE>DataBuffer.TYPE_INT&lt;/CODE> have pixel sample values which&#xA;are treated as unsigned integral values.&#xA;The number of bits in a color or alpha sample of a pixel value might not&#xA;be the same as the number of bits for the corresponding color or alpha&#xA;sample passed to the&#xA;&lt;code>ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)&lt;/code>&#xA;constructor.  In&#xA;that case, this class assumes that the least significant n bits of a sample&#xA;value hold the component value, where n is the number of significant bits&#xA;for the component passed to the constructor.  It also assumes that&#xA;any higher-order bits in a sample value are zero.  Thus, sample values&#xA;range from 0 to 2&lt;sup>n&lt;/sup> - 1.  This class maps these sample values&#xA;to normalized color component values such that 0 maps to the value&#xA;obtained from the &lt;code>ColorSpace's&lt;/code> &lt;code>getMinValue&lt;/code>&#xA;method for each component and 2&lt;sup>n&lt;/sup> - 1 maps to the value&#xA;obtained from &lt;code>getMaxValue&lt;/code>.  To create a&#xA;&lt;code>ComponentColorModel&lt;/code> with a different color sample mapping&#xA;requires subclassing this class and overriding the&#xA;&lt;code>getNormalizedComponents(Object, float[], int)&lt;/code> method.&#xA;The mapping for an alpha sample always maps 0 to 0.0 and&#xA;2&lt;sup>n&lt;/sup> - 1 to 1.0.&#xA;&lt;p>&#xA;For instances with unsigned sample values,&#xA;the unnormalized color/alpha component representation is only&#xA;supported if two conditions hold.  First, sample value value 0 must&#xA;map to normalized component value 0.0 and sample value 2&lt;sup>n&lt;/sup> - 1&#xA;to 1.0.  Second the min/max range of all color components of the&#xA;&lt;code>ColorSpace&lt;/code> must be 0.0 to 1.0.  In this case, the&#xA;component representation is the n least&#xA;significant bits of the corresponding sample.  Thus each component is&#xA;an unsigned integral value between 0 and 2&lt;sup>n&lt;/sup> - 1, where&#xA;n is the number of significant bits for a particular component.&#xA;If these conditions are not met, any method taking an unnormalized&#xA;component argument will throw an &lt;code>IllegalArgumentException&lt;/code>.&#xA;&lt;p>&#xA;Instances of &lt;code>ComponentColorModel&lt;/code> created with transfer types&#xA;&lt;CODE>DataBuffer.TYPE_SHORT&lt;/CODE>, &lt;CODE>DataBuffer.TYPE_FLOAT&lt;/CODE>, and&#xA;&lt;CODE>DataBuffer.TYPE_DOUBLE&lt;/CODE> have pixel sample values which&#xA;are treated as signed short, float, or double values.&#xA;Such instances do not support the unnormalized color/alpha component&#xA;representation, so any methods taking such a representation as an argument&#xA;will throw an &lt;code>IllegalArgumentException&lt;/code> when called on one&#xA;of these instances.  The normalized component values of instances&#xA;of this class have a range which depends on the transfer&#xA;type as follows: for float samples, the full range of the float data&#xA;type; for double samples, the full range of the float data type&#xA;(resulting from casting double to float); for short samples,&#xA;from approximately -maxVal to +maxVal, where maxVal is the per&#xA;component maximum value for the &lt;code>ColorSpace&lt;/code>&#xA;(-32767 maps to -maxVal, 0 maps to 0.0, and 32767 maps&#xA;to +maxVal).  A subclass may override the scaling for short sample&#xA;values to normalized component values by overriding the&#xA;&lt;code>getNormalizedComponents(Object, float[], int)&lt;/code> method.&#xA;For float and double samples, the normalized component values are&#xA;taken to be equal to the corresponding sample values, and subclasses&#xA;should not attempt to add any non-identity scaling for these transfer&#xA;types.&#xA;&lt;p>&#xA;Instances of &lt;code>ComponentColorModel&lt;/code> created with transfer types&#xA;&lt;CODE>DataBuffer.TYPE_SHORT&lt;/CODE>, &lt;CODE>DataBuffer.TYPE_FLOAT&lt;/CODE>, and&#xA;&lt;CODE>DataBuffer.TYPE_DOUBLE&lt;/CODE>&#xA;use all the bits of all sample values.  Thus all color/alpha components&#xA;have 16 bits when using &lt;CODE>DataBuffer.TYPE_SHORT&lt;/CODE>, 32 bits when&#xA;using &lt;CODE>DataBuffer.TYPE_FLOAT&lt;/CODE>, and 64 bits when using&#xA;&lt;CODE>DataBuffer.TYPE_DOUBLE&lt;/CODE>.  When the&#xA;&lt;code>ComponentColorModel(ColorSpace, int[], boolean, boolean, int, int)&lt;/code>&#xA;form of constructor is used with one of these transfer types, the&#xA;bits array argument is ignored.&#xA;&lt;p>&#xA;It is possible to have color/alpha sample values&#xA;which cannot be reasonably interpreted as component values for rendering.&#xA;This can happen when &lt;code>ComponentColorModel&lt;/code> is subclassed to&#xA;override the mapping of unsigned sample values to normalized color&#xA;component values or when signed sample values outside a certain range&#xA;are used.  (As an example, specifying an alpha component as a signed&#xA;short value outside the range 0 to 32767, normalized range 0.0 to 1.0, can&#xA;lead to unexpected results.) It is the&#xA;responsibility of applications to appropriately scale pixel data before&#xA;rendering such that color components fall within the normalized range&#xA;of the &lt;code>ColorSpace&lt;/code> (obtained using the &lt;code>getMinValue&lt;/code>&#xA;and &lt;code>getMaxValue&lt;/code> methods of the &lt;code>ColorSpace&lt;/code> class)&#xA;and the alpha component is between 0.0 and 1.0.  If color or alpha&#xA;component values fall outside these ranges, rendering results are&#xA;indeterminate.&#xA;&lt;p>&#xA;Methods that use a single int pixel representation throw&#xA;an &lt;CODE>IllegalArgumentException&lt;/CODE>, unless the number of components&#xA;for the &lt;CODE>ComponentColorModel&lt;/CODE> is one and the component&#xA;value is unsigned -- in other words,  a single color component using&#xA;a transfer type of &lt;CODE>DataBuffer.TYPE_BYTE&lt;/CODE>,&#xA;&lt;CODE>DataBuffer.TYPE_USHORT&lt;/CODE>, or &lt;CODE>DataBuffer.TYPE_INT&lt;/CODE>&#xA;and no alpha.&#xA;&lt;p>&#xA;A &lt;CODE>ComponentColorModel&lt;/CODE> can be used in conjunction with a&#xA;&lt;CODE>ComponentSampleModel&lt;/CODE>, a &lt;CODE>BandedSampleModel&lt;/CODE>,&#xA;or a &lt;CODE>PixelInterleavedSampleModel&lt;/CODE> to construct a&#xA;&lt;CODE>BufferedImage&lt;/CODE>.&#xA;&#xA;@see ColorModel&#xA;@see ColorSpace&#xA;@see ComponentSampleModel&#xA;@see BandedSampleModel&#xA;@see PixelInterleavedSampleModel&#xA;@see BufferedImage&#xA;&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_12097_6765"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_679170_13065" isSubstitutable="true" general="_9_5_f720368_1110473546565_334923_6763"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_278383_6795" name="ImageObserver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_892183_3960" body="An asynchronous update interface for receiving notifications about&#xA;Image information as the Image is constructed.&#xA;&#xA;@version &#x9;1.27 12/19/03&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_278383_6795"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_692826_6749" name="BandedSampleModel" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305986_110993_3914" body="This class represents image data which is stored in a band interleaved&#xA;fashion and for&#xA;which each sample of a pixel occupies one data element of the DataBuffer.&#xA;It subclasses ComponentSampleModel but provides a more efficent&#xA;implementation for accessing band interleaved image data than is provided&#xA;by ComponentSampleModel.  This class should typically be used when working&#xA;with images which store sample data for each band in a different bank of the&#xA;DataBuffer. Accessor methods are provided so that image data can be&#xA;manipulated directly. Pixel stride is the number of&#xA;data array elements between two samples for the same band on the same&#xA;scanline. The pixel stride for a BandedSampleModel is one.&#xA;Scanline stride is the number of data array elements between&#xA;a given sample and the corresponding sample in the same column of the next&#xA;scanline.  Band offsets denote the number&#xA;of data array elements from the first data array element of the bank&#xA;of the DataBuffer holding each band to the first sample of the band.&#xA;The bands are numbered from 0 to N-1.&#xA;Bank indices denote the correspondence between a bank of the data buffer&#xA;and a band of image data.  This class supports&#xA;{@link DataBuffer#TYPE_BYTE TYPE_BYTE},&#xA;{@link DataBuffer#TYPE_USHORT TYPE_USHORT},&#xA;{@link DataBuffer#TYPE_SHORT TYPE_SHORT},&#xA;{@link DataBuffer#TYPE_INT TYPE_INT},&#xA;{@link DataBuffer#TYPE_FLOAT TYPE_FLOAT}, and&#xA;{@link DataBuffer#TYPE_DOUBLE TYPE_DOUBLE} datatypes&#xA;" annotatedElement="_9_5_f720368_1110473546565_692826_6749"/>
              <generalization xmi:id="_10_5_622020d_1132928321228_400148_13055" isSubstitutable="true" general="_9_5_f720368_1110473546565_226234_6767"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_569133_6743" name="AffineTransformOp" clientDependency="_10_5_622020d_1132928321228_301224_13051 _10_5_622020d_1132928321228_334845_13052">
              <ownedComment xmi:id="_10_5_622020d_1132928305976_199675_3908" body="This class uses an affine transform to perform a linear mapping from&#xA;2D coordinates in the source image or &lt;CODE>Raster&lt;/CODE> to 2D coordinates&#xA;in the destination image or &lt;CODE>Raster&lt;/CODE>.&#xA;The type of interpolation that is used is specified through a constructor,&#xA;either by a &lt;CODE>RenderingHints&lt;/CODE> object or by one of the integer&#xA;interpolation types defined in this class.&#xA;&lt;p>&#xA;If a &lt;CODE>RenderingHints&lt;/CODE> object is specified in the constructor, the&#xA;interpolation hint and the rendering quality hint are used to set&#xA;the interpolation type for this operation.  The color rendering hint&#xA;and the dithering hint can be used when color conversion is required.&#xA;&lt;p>&#xA;Note that the following constraints have to be met:&#xA;&lt;ul>&#xA;&lt;li>The source and destination must be different.&#xA;&lt;li>For &lt;CODE>Raster&lt;/CODE> objects, the number of bands in the source must&#xA;be equal to the number of bands in the destination.&#xA;&lt;/ul>&#xA;@see AffineTransform&#xA;@see BufferedImageFilter&#xA;@see java.awt.RenderingHints#KEY_INTERPOLATION&#xA;@see java.awt.RenderingHints#KEY_RENDERING&#xA;@see java.awt.RenderingHints#KEY_COLOR_RENDERING&#xA;@see java.awt.RenderingHints#KEY_DITHERING&#xA;@version 16 Apr 1998&#xA;" annotatedElement="_9_5_f720368_1110473546565_569133_6743"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_301224_13051" name="" supplier="_9_5_f720368_1110473546565_282435_6755" client="_9_5_f720368_1110473546565_569133_6743" contract="_9_5_f720368_1110473546565_282435_6755"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_334845_13052" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546565_569133_6743" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_258457_6841" name="VolatileImage" clientDependency="_10_5_622020d_1132928321258_228070_13098" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_687576_4006" body="VolatileImage is an image which can lose its&#xA;contents at any time due to circumstances beyond the control of the&#xA;application (e.g., situations caused by the operating system or by&#xA;other applications). Because of the potential for hardware acceleration,&#xA;a VolatileImage object can have significant performance benefits on&#xA;some platforms.&#xA;&lt;p>&#xA;The drawing surface of an image (the memory where the image contents&#xA;actually reside) can be lost or invalidated, causing the contents of that&#xA;memory to go away.  The drawing surface thus needs to be restored&#xA;or recreated and the contents of that surface need to be&#xA;re-rendered.  VolatileImage provides an interface for&#xA;allowing the user to detect these problems and fix them&#xA;when they occur.&#xA;&lt;p>&#xA;This image should not be subclassed directly but should be created&#xA;by using the {@link java.awt.Component#createVolatileImage(int, int)&#xA;Component.createVolatileImage} or&#xA;{@link java.awt.GraphicsConfiguration#createCompatibleVolatileImage(int, int)&#xA;GraphicsConfiguration.createCompatibleVolatileImage(int, int)} methods.&#xA;&lt;P>&#xA;An example of using a VolatileImage object follows:&#xA;&lt;pre>&#xA;image creation&#xA;VolatileImage vImg = createVolatileImage(w, h);&#xA;&#xA;&#xA;rendering to the image&#xA;void renderOffscreen() {&#xA;do {&#xA;if (vImg.validate(getGraphicsConfiguration()) ==&#xA;VolatileImage.IMAGE_INCOMPATIBLE)&#xA;{&#xA;old vImg doesn't work with new GraphicsConfig; re-create it&#xA;vImg = createVolatileImage(w, h);&#xA;}&#xA;Graphics2D g = vImg.createGraphics();&#xA;&#xA;miscellaneous rendering commands...&#xA;&#xA;g.dispose();&#xA;} while (vImg.contentsLost());&#xA;}&#xA;&#xA;&#xA;copying from the image (here, gScreen is the Graphics&#xA;object for the onscreen window)&#xA;do {&#xA;int returnCode = vImg.validate(getGraphicsConfiguration());&#xA;if (returnCode == VolatileImage.IMAGE_RESTORED) {&#xA;Contents need to be restored&#xA;renderOffscreen();&#x9;    // restore contents&#xA;} else if (returnCode == VolatileImage.IMAGE_INCOMPATIBLE) {&#xA;old vImg doesn't work with new GraphicsConfig; re-create it&#xA;vImg = createVolatileImage(w, h);&#xA;renderOffscreen();&#xA;}&#xA;gScreen.drawImage(vImg, 0, 0, this);&#xA;} while (vImg.contentsLost());&#xA;&lt;/pre>&#xA;&lt;P>&#xA;Note that this class subclasses from the {@link Image} class, which&#xA;includes methods that take an {@link ImageObserver} parameter for&#xA;asynchronous notifications as information is received from&#xA;a potential {@link ImageProducer}.  Since this &lt;code>VolatileImage&lt;/code>&#xA;is not loaded from an asynchronous source, the various methods that take&#xA;an &lt;code>ImageObserver&lt;/code> parameter will behave as if the data has&#xA;already been obtained from the &lt;code>ImageProducer&lt;/code>.&#xA;Specifically, this means that the return values from such methods&#xA;will never indicate that the information is not yet available and&#xA;the &lt;code>ImageObserver&lt;/code> used in such methods will never&#xA;need to be recorded for an asynchronous callback notification.&#xA;" annotatedElement="_9_5_f720368_1110473546581_258457_6841"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_34553_13099" isSubstitutable="true" general="_9_5_f720368_1110473546581_642816_7047"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321258_228070_13098" name="" supplier="_9_5_f720368_1110473546596_59806_7143" client="_9_5_f720368_1110473546581_258457_6841" contract="_9_5_f720368_1110473546596_59806_7143"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_365575_6801" name="IndexColorModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_551857_3966" body="The &lt;code>IndexColorModel&lt;/code> class is a &lt;code>ColorModel&lt;/code>&#xA;class that works with pixel values consisting of a&#xA;single sample that is an index into a fixed colormap in the default&#xA;sRGB color space.  The colormap specifies red, green, blue, and&#xA;optional alpha components corresponding to each index.  All components&#xA;are represented in the colormap as 8-bit unsigned integral values.&#xA;Some constructors allow the caller to specify &quot;holes&quot; in the colormap&#xA;by indicating which colormap entries are valid and which represent&#xA;unusable colors via the bits set in a &lt;code>BigInteger&lt;/code> object.&#xA;This color model is similar to an X11 PseudoColor visual.&#xA;&lt;p>&#xA;Some constructors provide a means to specify an alpha component&#xA;for each pixel in the colormap, while others either provide no&#xA;such means or, in some cases, a flag to indicate whether the&#xA;colormap data contains alpha values.  If no alpha is supplied to&#xA;the constructor, an opaque alpha component (alpha = 1.0) is&#xA;assumed for each entry.&#xA;An optional transparent pixel value can be supplied that indicates a&#xA;pixel to be made completely transparent, regardless of any alpha&#xA;component supplied or assumed for that pixel value.&#xA;Note that the color components in the colormap of an&#xA;&lt;code>IndexColorModel&lt;/code> objects are never pre-multiplied with&#xA;the alpha components.&#xA;&lt;p>&#xA;&lt;a name=&quot;transparency&quot;>&#xA;The transparency of an &lt;code>IndexColorModel&lt;/code> object is&#xA;determined by examining the alpha components of the colors in the&#xA;colormap and choosing the most specific value after considering&#xA;the optional alpha values and any transparent index specified.&#xA;The transparency value is &lt;code>Transparency.OPAQUE&lt;/code>&#xA;only if all valid colors in&#xA;the colormap are opaque and there is no valid transparent pixel.&#xA;If all valid colors&#xA;in the colormap are either completely opaque (alpha = 1.0) or&#xA;completely transparent (alpha = 0.0), which typically occurs when&#xA;a valid transparent pixel is specified,&#xA;the value is &lt;code>Transparency.BITMASK&lt;/code>.&#xA;Otherwise, the value is &lt;code>Transparency.TRANSLUCENT&lt;/code>, indicating&#xA;that some valid color has an alpha component that is&#xA;neither completely transparent nor completely opaque (0.0 &lt; alpha &lt; 1.0).&#xA;&lt;/a>&#xA;&#xA;&lt;p>&#xA;If an &lt;code>IndexColorModel&lt;/code> object has&#xA;a transparency value of &lt;code>Transparency.OPAQUE&lt;/code>,&#xA;then the &lt;code>hasAlpha&lt;/code>&#xA;and &lt;code>getNumComponents&lt;/code> methods&#xA;(both inherited from &lt;code>ColorModel&lt;/code>)&#xA;return false and 3, respectively.&#xA;For any other transparency value,&#xA;&lt;code>hasAlpha&lt;/code> returns true&#xA;and &lt;code>getNumComponents&lt;/code> returns 4.&#xA;&#xA;&lt;p>&#xA;The index represented by a pixel value is stored in the least&#xA;significant &lt;em>n&lt;/em> bits of the pixel representations passed to the&#xA;methods of this class, where &lt;em>n&lt;/em> is the pixel size specified to the&#xA;constructor for a particular &lt;code>IndexColorModel&lt;/code> object;&#xA;&lt;em>n&lt;/em> must be between 1 and 16, inclusive.&#xA;Higher order bits in pixel representations are assumed to be zero.&#xA;For those methods that use a primitive array pixel representation of&#xA;type &lt;code>transferType&lt;/code>, the array length is always one.&#xA;The transfer types supported are &lt;code>DataBuffer.TYPE_BYTE&lt;/code> and&#xA;&lt;code>DataBuffer.TYPE_USHORT&lt;/code>.  A single int pixel&#xA;representation is valid for all objects of this class, since it is&#xA;always possible to represent pixel values used with this class in a&#xA;single int.  Therefore, methods that use this representation do&#xA;not throw an &lt;code>IllegalArgumentException&lt;/code> due to an invalid&#xA;pixel value.&#xA;&lt;p>&#xA;Many of the methods in this class are final.  The reason for&#xA;this is that the underlying native graphics code makes assumptions&#xA;about the layout and operation of this class and those assumptions&#xA;are reflected in the implementations of the methods here that are&#xA;marked final.  You can subclass this class for other reasons, but&#xA;you cannot override or modify the behaviour of those methods.&#xA;&#xA;@see ColorModel&#xA;@see ColorSpace&#xA;@see DataBuffer&#xA;&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_365575_6801"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_957972_13081" isSubstitutable="true" general="_9_5_f720368_1110473546565_334923_6763"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_282435_6755" name="BufferedImageOp" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305986_533079_3920" body="This interface describes single-input/single-output&#xA;operations performed on &lt;CODE>BufferedImage&lt;/CODE> objects.&#xA;It is implemented by &lt;CODE>AffineTransformOp&lt;/CODE>,&#xA;&lt;CODE>ConvolveOp&lt;/CODE>, &lt;CODE>ColorConvertOp&lt;/CODE>, &lt;CODE>RescaleOp&lt;/CODE>,&#xA;and &lt;CODE>LookupOp&lt;/CODE>.  These objects can be passed into&#xA;a &lt;CODE>BufferedImageFilter&lt;/CODE> to operate on a&#xA;&lt;CODE>BufferedImage&lt;/CODE> in the&#xA;ImageProducer-ImageFilter-ImageConsumer paradigm.&#xA;&lt;p>&#xA;Classes that implement this&#xA;interface must specify whether or not they allow in-place filtering--&#xA;filter operations where the source object is equal to the destination&#xA;object.&#xA;&lt;p>&#xA;This interface cannot be used to describe more sophisticated operations&#xA;such as those that take multiple sources. Note that this restriction also&#xA;means that the values of the destination pixels prior to the operation are&#xA;not used as input to the filter operation.&#xA;@see BufferedImage&#xA;@see BufferedImageFilter&#xA;@see AffineTransformOp&#xA;@see BandCombineOp&#xA;@see ColorConvertOp&#xA;@see ConvolveOp&#xA;@see LookupOp&#xA;@see RescaleOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_282435_6755"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_850797_6823" name="RasterOp" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306106_102891_3988" body="This interface describes single-input/single-output&#xA;operations performed on Raster objects.  It is implemented by such&#xA;classes as AffineTransformOp, ConvolveOp, and LookupOp.  The Source&#xA;and Destination objects must contain the appropriate number&#xA;of bands for the particular classes implementing this interface.&#xA;Otherwise, an exception is thrown.  This interface cannot be used to&#xA;describe more sophisticated Ops such as ones that take multiple sources.&#xA;Each class implementing this interface will specify whether or not it&#xA;will allow an in-place filtering operation (i.e. source object equal&#xA;to the destination object).  Note that the restriction to single-input&#xA;operations means that the values of destination pixels prior to the&#xA;operation are not used as input to the filter operation.&#xA;@see AffineTransformOp&#xA;@see BandCombineOp&#xA;@see ColorConvertOp&#xA;@see ConvolveOp&#xA;@see LookupOp&#xA;@see RescaleOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_602347_6783" name="DataBufferShort" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_824447_3948" body="This class extends &lt;CODE>DataBuffer&lt;/CODE> and stores data internally as shorts.&#xA;" annotatedElement="_9_5_f720368_1110473546565_602347_6783"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_660448_13074" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_607390_6759" name="ByteLookupTable">
              <ownedComment xmi:id="_10_5_622020d_1132928305996_462567_3924" body="This class defines a lookup table object.  The output of a&#xA;lookup operation using an object of this class is interpreted&#xA;as an unsigned byte quantity.  The lookup table contains byte&#xA;data arrays for one or more bands (or components) of an image,&#xA;and it contains an offset which will be subtracted from the&#xA;input values before indexing the arrays.  This allows an array&#xA;smaller than the native data size to be provided for a&#xA;constrained input.  If there is only one array in the lookup&#xA;table, it will be applied to all bands.&#xA;&#xA;@see ShortLookupTable&#xA;@see LookupOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_607390_6759"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_529954_13061" isSubstitutable="true" general="_9_5_f720368_1110473546581_501232_6807"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_20618_6775" name="DataBufferByte" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_409021_3940" body="This class extends &lt;CODE>DataBuffer&lt;/CODE> and stores data internally as bytes.&#xA;Values stored in the byte array(s) of this &lt;CODE>DataBuffer&lt;/CODE> are treated as&#xA;unsigned values.&#xA;" annotatedElement="_9_5_f720368_1110473546565_20618_6775"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_251589_13070" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_705176_6803" name="Kernel" clientDependency="_10_5_622020d_1132928321248_438946_13082">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_237703_3968" body="The &lt;code>Kernel&lt;/code> class defines a matrix that describes how a&#xA;specified pixel and its surrounding pixels affect the value&#xA;computed for the pixel's position in the output image of a filtering&#xA;operation.  The X origin and Y origin indicate the kernel matrix element&#xA;that corresponds to the pixel position for which an output value is&#xA;being computed.&#xA;&#xA;@see ConvolveOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_705176_6803"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_438946_13082" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_705176_6803" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_588906_6769" name="ConvolveOp" clientDependency="_10_5_622020d_1132928321238_170391_13067 _10_5_622020d_1132928321238_727919_13068">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_651541_3934" body="This class implements a convolution from the source&#xA;to the destination.&#xA;Convolution using a convolution kernel is a spatial operation that&#xA;computes the output pixel from an input pixel by multiplying the kernel&#xA;with the surround of the input pixel.&#xA;This allows the output pixel to be affected by the immediate neighborhood&#xA;in a way that can be mathematically specified with a kernel.&#xA;&lt;p>&#xA;This class operates with BufferedImage data in which color components are&#xA;premultiplied with the alpha component.  If the Source BufferedImage has&#xA;an alpha component, and the color components are not premultiplied with&#xA;the alpha component, then the data are premultiplied before being&#xA;convolved.  If the Destination has color components which are not&#xA;premultiplied, then alpha is divided out before storing into the&#xA;Destination (if alpha is 0, the color components are set to 0).  If the&#xA;Destination has no alpha component, then the resulting alpha is discarded&#xA;after first dividing it out of the color components.&#xA;&lt;p>&#xA;Rasters are treated as having no alpha channel.  If the above treatment&#xA;of the alpha channel in BufferedImages is not desired, it may be avoided&#xA;by getting the Raster of a source BufferedImage and using the filter method&#xA;of this class which works with Rasters.&#xA;&lt;p>&#xA;If a RenderingHints object is specified in the constructor, the&#xA;color rendering hint and the dithering hint may be used when color&#xA;conversion is required.&#xA;&lt;p>&#xA;Note that the Source and the Destination may not be the same object.&#xA;@version 10 Feb 1997&#xA;@see Kernel&#xA;@see java.awt.RenderingHints#KEY_COLOR_RENDERING&#xA;@see java.awt.RenderingHints#KEY_DITHERING&#xA;" annotatedElement="_9_5_f720368_1110473546565_588906_6769"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321238_170391_13067" name="" supplier="_9_5_f720368_1110473546565_282435_6755" client="_9_5_f720368_1110473546565_588906_6769" contract="_9_5_f720368_1110473546565_282435_6755"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321238_727919_13068" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546565_588906_6769" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_322390_6819" name="Raster">
              <ownedComment xmi:id="_10_5_622020d_1132928306096_955444_3984" body="A class representing a rectangular array of pixels.  A Raster&#xA;encapsulates a DataBuffer that stores the sample values and a&#xA;SampleModel that describes how to locate a given sample value in a&#xA;DataBuffer.&#xA;&lt;p>&#xA;A Raster defines values for pixels occupying a particular&#xA;rectangular area of the plane, not necessarily including (0, 0).&#xA;The rectangle, known as the Raster's bounding rectangle and&#xA;available by means of the getBounds method, is defined by minX,&#xA;minY, width, and height values.  The minX and minY values define&#xA;the coordinate of the upper left corner of the Raster.  References&#xA;to pixels outside of the bounding rectangle may result in an&#xA;exception being thrown, or may result in references to unintended&#xA;elements of the Raster's associated DataBuffer.  It is the user's&#xA;responsibility to avoid accessing such pixels.&#xA;&lt;p>&#xA;A SampleModel describes how samples of a Raster&#xA;are stored in the primitive array elements of a DataBuffer.&#xA;Samples may be stored one per data element, as in a&#xA;PixelInterleavedSampleModel or BandedSampleModel, or packed several to&#xA;an element, as in a SinglePixelPackedSampleModel or&#xA;MultiPixelPackedSampleModel.  The SampleModel is also&#xA;controls whether samples are sign extended, allowing unsigned&#xA;data to be stored in signed Java data types such as byte, short, and&#xA;int.&#xA;&lt;p>&#xA;Although a Raster may live anywhere in the plane, a SampleModel&#xA;makes use of a simple coordinate system that starts at (0, 0).  A&#xA;Raster therefore contains a translation factor that allows pixel&#xA;locations to be mapped between the Raster's coordinate system and&#xA;that of the SampleModel.  The translation from the SampleModel&#xA;coordinate system to that of the Raster may be obtained by the&#xA;getSampleModelTranslateX and getSampleModelTranslateY methods.&#xA;&lt;p>&#xA;A Raster may share a DataBuffer with another Raster either by&#xA;explicit construction or by the use of the createChild and&#xA;createTranslatedChild methods.  Rasters created by these methods&#xA;can return a reference to the Raster they were created from by&#xA;means of the getParent method.  For a Raster that was not&#xA;constructed by means of a call to createTranslatedChild or&#xA;createChild, getParent will return null.&#xA;&lt;p>&#xA;The createTranslatedChild method returns a new Raster that&#xA;shares all of the data of the current Raster, but occupies a&#xA;bounding rectangle of the same width and height but with a&#xA;different starting point.  For example, if the parent Raster&#xA;occupied the region (10, 10) to (100, 100), and the translated&#xA;Raster was defined to start at (50, 50), then pixel (20, 20) of the&#xA;parent and pixel (60, 60) of the child occupy the same location in&#xA;the DataBuffer shared by the two Rasters.  In the first case, (-10,&#xA;-10) should be added to a pixel coordinate to obtain the&#xA;corresponding SampleModel coordinate, and in the second case (-50,&#xA;-50) should be added.&#xA;&lt;p>&#xA;The translation between a parent and child Raster may be&#xA;determined by subtracting the child's sampleModelTranslateX and&#xA;sampleModelTranslateY values from those of the parent.&#xA;&lt;p>&#xA;The createChild method may be used to create a new Raster&#xA;occupying only a subset of its parent's bounding rectangle&#xA;(with the same or a translated coordinate system) or&#xA;with a subset of the bands of its parent.&#xA;&lt;p>&#xA;All constructors are protected.  The correct way to create a&#xA;Raster is to use one of the static create methods defined in this&#xA;class.  These methods create instances of Raster that use the&#xA;standard Interleaved, Banded, and Packed SampleModels and that may&#xA;be processed more efficiently than a Raster created by combining&#xA;an externally generated SampleModel and DataBuffer.&#xA;@see java.awt.image.DataBuffer&#xA;@see java.awt.image.SampleModel&#xA;@see java.awt.image.PixelInterleavedSampleModel&#xA;@see java.awt.image.BandedSampleModel&#xA;@see java.awt.image.SinglePixelPackedSampleModel&#xA;@see java.awt.image.MultiPixelPackedSampleModel&#xA;" annotatedElement="_9_5_f720368_1110473546581_322390_6819"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547331_524502_16708" name="renderable">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_804695_6731" name="ParameterBlock" clientDependency="_10_5_622020d_1132928321218_645928_13045 _10_5_622020d_1132928321218_434928_13046">
                <ownedComment xmi:id="_10_5_622020d_1132928305966_736570_3896" body="A &lt;code>ParameterBlock&lt;/code> encapsulates all the information about sources and&#xA;parameters (Objects) required by a RenderableImageOp, or other&#xA;classes that process images.&#xA;&#xA;&lt;p> Although it is possible to place arbitrary objects in the&#xA;source Vector, users of this class may impose semantic constraints&#xA;such as requiring all sources to be RenderedImages or&#xA;RenderableImage.  &lt;code>ParameterBlock&lt;/code> itself is merely a container and&#xA;performs no checking on source or parameter types.&#xA;&#xA;&lt;p> All parameters in a &lt;code>ParameterBlock&lt;/code> are objects; convenience&#xA;add and set methods are available that take arguments of base type and&#xA;construct the appropriate subclass of Number (such as&#xA;Integer or Float).  Corresponding get methods perform a&#xA;downward cast and have return values of base type; an exception&#xA;will be thrown if the stored values do not have the correct type.&#xA;There is no way to distinguish between the results of&#xA;&quot;short s; add(s)&quot; and &quot;add(new Short(s))&quot;.&#xA;&#xA;&lt;p> Note that the get and set methods operate on references.&#xA;Therefore, one must be careful not to share references between&#xA;&lt;code>ParameterBlock&lt;/code>s when this is inappropriate.  For example, to create&#xA;a new &lt;code>ParameterBlock&lt;/code> that is equal to an old one except for an&#xA;added source, one might be tempted to write:&#xA;&#xA;&lt;pre>&#xA;ParameterBlock addSource(ParameterBlock pb, RenderableImage im) {&#xA;ParameterBlock pb1 = new ParameterBlock(pb.getSources());&#xA;pb1.addSource(im);&#xA;return pb1;&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> This code will have the side effect of altering the original&#xA;&lt;code>ParameterBlock&lt;/code>, since the getSources operation returned a reference&#xA;to its source Vector.  Both pb and pb1 share their source Vector,&#xA;and a change in either is visible to both.&#xA;&#xA;&lt;p> A correct way to write the addSource function is to clone&#xA;the source Vector:&#xA;&#xA;&lt;pre>&#xA;ParameterBlock addSource (ParameterBlock pb, RenderableImage im) {&#xA;ParameterBlock pb1 = new ParameterBlock(pb.getSources().clone());&#xA;pb1.addSource(im);&#xA;return pb1;&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> The clone method of &lt;code>ParameterBlock&lt;/code> has been defined to&#xA;perform a clone of both the source and parameter Vectors for&#xA;this reason.  A standard, shallow clone is available as&#xA;shallowClone.&#xA;&#xA;&lt;p> The addSource, setSource, add, and set methods are&#xA;defined to return 'this' after adding their argument.  This allows&#xA;use of syntax like:&#xA;&#xA;&lt;pre>&#xA;ParameterBlock pb = new ParameterBlock();&#xA;op = new RenderableImageOp(&quot;operation&quot;, pb.add(arg1).add(arg2));&#xA;&lt;/pre>&#xA;" annotatedElement="_9_5_f720368_1110473546565_804695_6731"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321218_645928_13045" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_804695_6731" contract="_9_5_f720368_1110473546612_888397_7587"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321218_434928_13046" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546565_804695_6731" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_424612_6733" name="RenderableImage" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305966_513455_3898" body="A RenderableImage is a common interface for rendering-independent&#xA;images (a notion which subsumes resolution independence).  That is,&#xA;images which are described and have operations applied to them&#xA;independent of any specific rendering of the image.  For example, a&#xA;RenderableImage can be rotated and cropped in&#xA;resolution-independent terms.  Then, it can be rendered for various&#xA;specific contexts, such as a draft preview, a high-quality screen&#xA;display, or a printer, each in an optimal fashion.&#xA;&#xA;&lt;p> A RenderedImage is returned from a RenderableImage via the&#xA;createRendering() method, which takes a RenderContext.  The&#xA;RenderContext specifies how the RenderedImage should be&#xA;constructed.  Note that it is not possible to extract pixels&#xA;directly from a RenderableImage.&#xA;&#xA;&lt;p> The createDefaultRendering() and createScaledRendering() methods are&#xA;convenience methods that construct an appropriate RenderContext&#xA;internally.  All of the rendering methods may return a reference to a&#xA;previously produced rendering.&#xA;" annotatedElement="_9_5_f720368_1110473546565_424612_6733"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_943468_6741" name="RenderedImageFactory" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305976_724008_3906" body="The RenderedImageFactory interface (often abbreviated RIF) is&#xA;intended to be implemented by classes that wish to act as factories&#xA;to produce different renderings, for example by executing a series&#xA;of BufferedImageOps on a set of sources, depending on a specific&#xA;set of parameters, properties, and rendering hints.&#xA;" annotatedElement="_9_5_f720368_1110473546565_943468_6741"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_703315_6729" name="ContextualRenderedImageFactory" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928305966_580339_3894" body="ContextualRenderedImageFactory provides an interface for the&#xA;functionality that may differ between instances of&#xA;RenderableImageOp.  Thus different operations on RenderableImages&#xA;may be performed by a single class such as RenderedImageOp through&#xA;the use of multiple instances of ContextualRenderedImageFactory.&#xA;The name ContextualRenderedImageFactory is commonly shortened to&#xA;&quot;CRIF.&quot;&#xA;&#xA;&lt;p> All operations that are to be used in a rendering-independent&#xA;chain must implement ContextualRenderedImageFactory.&#xA;&#xA;&lt;p> Classes that implement this interface must provide a&#xA;constructor with no arguments.&#xA;" annotatedElement="_9_5_f720368_1110473546565_703315_6729"/>
                <generalization xmi:id="_10_5_622020d_1132928321218_270801_13044" isSubstitutable="true" general="_9_5_f720368_1110473546565_943468_6741"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_305243_6739" name="RenderContext" clientDependency="_10_5_622020d_1132928321228_424756_13050">
                <ownedComment xmi:id="_10_5_622020d_1132928305976_16530_3904" body="A RenderContext encapsulates the information needed to produce a&#xA;specific rendering from a RenderableImage.  It contains the area to&#xA;be rendered specified in rendering-independent terms, the&#xA;resolution at which the rendering is to be performed, and hints&#xA;used to control the rendering process.&#xA;&#xA;&lt;p> Users create RenderContexts and pass them to the&#xA;RenderableImage via the createRendering method.  Most of the methods of&#xA;RenderContexts are not meant to be used directly by applications,&#xA;but by the RenderableImage and operator classes to which it is&#xA;passed.&#xA;&#xA;&lt;p> The AffineTransform parameter passed into and out of this class&#xA;are cloned.  The RenderingHints and Shape parameters are not&#xA;necessarily cloneable and are therefore only reference copied.&#xA;Altering RenderingHints or Shape instances that are in use by&#xA;instances of RenderContext may have undesired side effects.&#xA;" annotatedElement="_9_5_f720368_1110473546565_305243_6739"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321228_424756_13050" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_305243_6739" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_192126_6735" name="RenderableImageOp" clientDependency="_10_5_622020d_1132928321228_474113_13047">
                <ownedComment xmi:id="_10_5_622020d_1132928305976_594479_3900" body="This class handles the renderable aspects of an operation with help&#xA;from its associated instance of a ContextualRenderedImageFactory.&#xA;" annotatedElement="_9_5_f720368_1110473546565_192126_6735"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321228_474113_13047" name="" supplier="_9_5_f720368_1110473546565_424612_6733" client="_9_5_f720368_1110473546565_192126_6735" contract="_9_5_f720368_1110473546565_424612_6733"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_163061_6737" name="RenderableImageProducer" clientDependency="_10_5_622020d_1132928321228_100131_13049 _10_5_622020d_1132928321228_124091_13048">
                <ownedComment xmi:id="_10_5_622020d_1132928305976_835063_3902" body="An adapter class that implements ImageProducer to allow the&#xA;asynchronous production of a RenderableImage.  The size of the&#xA;ImageConsumer is determined by the scale factor of the usr2dev&#xA;transform in the RenderContext.  If the RenderContext is null, the&#xA;default rendering of the RenderableImage is used.  This class&#xA;implements an asynchronous production that produces the image in&#xA;one thread at one resolution.  This class may be subclassed to&#xA;implement versions that will render the image using several&#xA;threads.  These threads could render either the same image at&#xA;progressively better quality, or different sections of the image at&#xA;a single resolution.&#xA;" annotatedElement="_9_5_f720368_1110473546565_163061_6737"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321228_124091_13048" name="" supplier="_9_5_f720368_1110473546565_60145_6797" client="_9_5_f720368_1110473546565_163061_6737" contract="_9_5_f720368_1110473546565_60145_6797"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321228_100131_13049" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473546565_163061_6737" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_692903_6773" name="DataBuffer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_662518_3938" body="This class exists to wrap one or more data arrays.  Each data array in&#xA;the DataBuffer is referred to as a bank.  Accessor methods for getting&#xA;and setting elements of the DataBuffer's banks exist with and without&#xA;a bank specifier.  The methods without a bank specifier use the default 0th&#xA;bank.  The DataBuffer can optionally take an offset per bank, so that&#xA;data in an existing array can be used even if the interesting data&#xA;doesn't start at array location zero.  Getting or setting the 0th&#xA;element of a bank, uses the (0+offset)th element of the array.  The&#xA;size field specifies how much of the data array is available for&#xA;use.  Size + offset for a given bank should never be greater&#xA;than the length of the associated data array.  The data type of&#xA;a data buffer indicates the type of the data array(s) and may also&#xA;indicate additional semantics, e.g. storing unsigned 8-bit data&#xA;in elements of a byte array.  The data type may be TYPE_UNDEFINED&#xA;or one of the types defined below.  Other types may be added in&#xA;the future.  Generally, an object of class DataBuffer will be cast down&#xA;to one of its data type specific subclasses to access data type specific&#xA;methods for improved performance.  Currently, the Java 2D(tm) API&#xA;image classes use TYPE_BYTE, TYPE_USHORT, TYPE_INT, TYPE_SHORT,&#xA;TYPE_FLOAT, and TYPE_DOUBLE DataBuffers to store image data.&#xA;@see java.awt.image.Raster&#xA;@see java.awt.image.SampleModel&#xA;" annotatedElement="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_499324_6779" name="DataBufferFloat" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_80679_3944" body="This class extends &lt;code>DataBuffer&lt;/code> and stores data internally&#xA;in &lt;code>float&lt;/code> form.&#xA;&#xA;@see DataBuffer&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_499324_6779"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_894233_13072" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_164879_6753" name="BufferedImageFilter" clientDependency="_10_5_622020d_1132928321228_908151_13059">
              <ownedComment xmi:id="_10_5_622020d_1132928305986_510287_3918" body="The &lt;code>BufferedImageFilter&lt;/code> class subclasses an&#xA;&lt;code>ImageFilter&lt;/code> to provide a simple means of&#xA;using a single-source/single-destination image operator&#xA;({@link BufferedImageOp}) to filter a &lt;code>BufferedImage&lt;/code>&#xA;in the Image Producer/Consumer/Observer&#xA;paradigm. Examples of these image operators are: {@link ConvolveOp},&#xA;{@link AffineTransformOp} and {@link LookupOp}.&#xA;&#xA;@see ImageFilter&#xA;@see BufferedImage&#xA;@see BufferedImageOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_164879_6753"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_481569_13060" isSubstitutable="true" general="_9_5_f720368_1110473546565_874967_6793"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_908151_13059" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_164879_6753" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_699518_6805" name="LookupOp" clientDependency="_10_5_622020d_1132928321248_203335_13084 _10_5_622020d_1132928321248_508426_13083">
              <ownedComment xmi:id="_10_5_622020d_1132928306086_168182_3970" body="This class implements a lookup operation from the source&#xA;to the destination.  The LookupTable object may contain a single array&#xA;or multiple arrays, subject to the restrictions below.&#xA;&lt;p>&#xA;For Rasters, the lookup operates on bands.  The number of&#xA;lookup arrays may be one, in which case the same array is&#xA;applied to all bands, or it must equal the number of Source&#xA;Raster bands.&#xA;&lt;p>&#xA;For BufferedImages, the lookup operates on color and alpha components.&#xA;The number of lookup arrays may be one, in which case the&#xA;same array is applied to all color (but not alpha) components.&#xA;Otherwise, the number of lookup arrays may&#xA;equal the number of Source color components, in which case no&#xA;lookup of the alpha component (if present) is performed.&#xA;If neither of these cases apply, the number of lookup arrays&#xA;must equal the number of Source color components plus alpha components,&#xA;in which case lookup is performed for all color and alpha components.&#xA;This allows non-uniform rescaling of multi-band BufferedImages.&#xA;&lt;p>&#xA;BufferedImage sources with premultiplied alpha data are treated in the same&#xA;manner as non-premultiplied images for purposes of the lookup.  That is,&#xA;the lookup is done per band on the raw data of the BufferedImage source&#xA;without regard to whether the data is premultiplied.  If a color conversion&#xA;is required to the destination ColorModel, the premultiplied state of&#xA;both source and destination will be taken into account for this step.&#xA;&lt;p>&#xA;Images with an IndexColorModel cannot be used.&#xA;&lt;p>&#xA;If a RenderingHints object is specified in the constructor, the&#xA;color rendering hint and the dithering hint may be used when color&#xA;conversion is required.&#xA;&lt;p>&#xA;This class allows the Source to be the same as the Destination.&#xA;&#xA;@version 10 Feb 1997&#xA;@see LookupTable&#xA;@see java.awt.RenderingHints#KEY_COLOR_RENDERING&#xA;@see java.awt.RenderingHints#KEY_DITHERING&#xA;" annotatedElement="_9_5_f720368_1110473546565_699518_6805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_508426_13083" name="" supplier="_9_5_f720368_1110473546565_282435_6755" client="_9_5_f720368_1110473546565_699518_6805" contract="_9_5_f720368_1110473546565_282435_6755"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_203335_13084" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546565_699518_6805" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_674842_6829" name="RescaleOp" clientDependency="_10_5_622020d_1132928321258_239172_13093 _10_5_622020d_1132928321258_949252_13094">
              <ownedComment xmi:id="_10_5_622020d_1132928306106_50544_3994" body="This class performs a pixel-by-pixel rescaling of the data in the&#xA;source image by multiplying the sample values for each pixel by a scale&#xA;factor and then adding an offset. The scaled sample values are clipped&#xA;to the minimum/maximum representable in the destination image.&#xA;&lt;p>&#xA;The pseudo code for the rescaling operation is as follows:&#xA;&lt;pre>&#xA;for each pixel from Source object {&#xA;for each band/component of the pixel {&#xA;dstElement = (srcElement*scaleFactor) + offset&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;For Rasters, rescaling operates on bands.  The number of&#xA;sets of scaling constants may be one, in which case the same constants&#xA;are applied to all bands, or it must equal the number of Source&#xA;Raster bands.&#xA;&lt;p>&#xA;For BufferedImages, rescaling operates on color and alpha components.&#xA;The number of sets of scaling constants may be one, in which case the&#xA;same constants are applied to all color (but not alpha) components.&#xA;Otherwise, the  number of sets of scaling constants may&#xA;equal the number of Source color components, in which case no&#xA;rescaling of the alpha component (if present) is performed.&#xA;If neither of these cases apply, the number of sets of scaling constants&#xA;must equal the number of Source color components plus alpha components,&#xA;in which case all color and alpha components are rescaled.&#xA;&lt;p>&#xA;BufferedImage sources with premultiplied alpha data are treated in the same&#xA;manner as non-premultiplied images for purposes of rescaling.  That is,&#xA;the rescaling is done per band on the raw data of the BufferedImage source&#xA;without regard to whether the data is premultiplied.  If a color conversion&#xA;is required to the destination ColorModel, the premultiplied state of&#xA;both source and destination will be taken into account for this step.&#xA;&lt;p>&#xA;Images with an IndexColorModel cannot be rescaled.&#xA;&lt;p>&#xA;If a RenderingHints object is specified in the constructor, the&#xA;color rendering hint and the dithering hint may be used when color&#xA;conversion is required.&#xA;&lt;p>&#xA;Note that in-place operation is allowed (i.e. the source and destination can&#xA;be the same object).&#xA;@version 10 Feb 1997&#xA;@see java.awt.RenderingHints#KEY_COLOR_RENDERING&#xA;@see java.awt.RenderingHints#KEY_DITHERING&#xA;" annotatedElement="_9_5_f720368_1110473546581_674842_6829"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321258_239172_13093" name="" supplier="_9_5_f720368_1110473546565_282435_6755" client="_9_5_f720368_1110473546581_674842_6829" contract="_9_5_f720368_1110473546565_282435_6755"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321258_949252_13094" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546581_674842_6829" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_732278_6771" name="CropImageFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_764924_3936" body="An ImageFilter class for cropping images.&#xA;This class extends the basic ImageFilter Class to extract a given&#xA;rectangular region of an existing Image and provide a source for a&#xA;new image containing just the extracted region.  It is meant to&#xA;be used in conjunction with a FilteredImageSource object to produce&#xA;cropped versions of existing images.&#xA;&#xA;@see FilteredImageSource&#xA;@see ImageFilter&#xA;&#xA;@version&#x9;1.18 07/16/04&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_732278_6771"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_265188_13069" isSubstitutable="true" general="_9_5_f720368_1110473546565_874967_6793"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_342162_6813" name="PackedColorModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306096_85745_3978" body="The &lt;code>PackedColorModel&lt;/code> class is an abstract&#xA;{@link ColorModel} class that works with pixel values which represent&#xA;color and alpha information as separate samples and which pack all&#xA;samples for a single pixel into a single int, short, or byte quantity.&#xA;This class can be used with an arbitrary {@link ColorSpace}.  The number of&#xA;color samples in the pixel values must be the same as the number of color&#xA;components in the &lt;code>ColorSpace&lt;/code>.  There can be a single alpha&#xA;sample.  The array length is always 1 for those methods that use a&#xA;primitive array pixel representation of type &lt;code>transferType&lt;/code>.&#xA;The transfer types supported are DataBuffer.TYPE_BYTE,&#xA;DataBuffer.TYPE_USHORT, and DataBuffer.TYPE_INT.&#xA;Color and alpha samples are stored in the single element of the array&#xA;in bits indicated by bit masks.  Each bit mask must be contiguous and&#xA;masks must not overlap.  The same masks apply to the single int&#xA;pixel representation used by other methods.  The correspondence of&#xA;masks and color/alpha samples is as follows:&#xA;&lt;ul>&#xA;&lt;li> Masks are identified by indices running from 0 through&#xA;{@link ColorModel#getNumComponents() getNumComponents}&amp;nbsp;-&amp;nbsp;1.&#xA;&lt;li> The first&#xA;{@link ColorModel#getNumColorComponents() getNumColorComponents}&#xA;indices refer to color samples.&#xA;&lt;li> If an alpha sample is present, it corresponds the last index.&#xA;&lt;li> The order of the color indices is specified&#xA;by the &lt;code>ColorSpace&lt;/code>.  Typically, this reflects the name of&#xA;the color space type (for example, TYPE_RGB), index 0&#xA;corresponds to red, index 1 to green, and index 2 to blue.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The translation from pixel values to color/alpha components for&#xA;display or processing purposes is a one-to-one correspondence of&#xA;samples to components.&#xA;A &lt;code>PackedColorModel&lt;/code> is typically used with image data&#xA;that uses masks to define packed samples.  For example, a&#xA;&lt;code>PackedColorModel&lt;/code> can be used in conjunction with a&#xA;{@link SinglePixelPackedSampleModel} to construct a&#xA;{@link BufferedImage}.  Normally the masks used by the&#xA;{@link SampleModel} and the &lt;code>ColorModel&lt;/code> would be the same.&#xA;However, if they are different, the color interpretation of pixel data is&#xA;done according to the masks of the &lt;code>ColorModel&lt;/code>.&#xA;&lt;p>&#xA;A single &lt;code>int&lt;/code> pixel representation is valid for all objects&#xA;of this class since it is always possible to represent pixel values&#xA;used with this class in a single &lt;code>int&lt;/code>.  Therefore, methods&#xA;that use this representation do not throw an&#xA;&lt;code>IllegalArgumentException&lt;/code> due to an invalid pixel value.&#xA;&lt;p>&#xA;A subclass of &lt;code>PackedColorModel&lt;/code> is {@link DirectColorModel},&#xA;which is similar to an X11 TrueColor visual.&#xA;&#xA;@see DirectColorModel&#xA;@see SinglePixelPackedSampleModel&#xA;@see BufferedImage&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_342162_6813"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_497535_13088" isSubstitutable="true" general="_9_5_f720368_1110473546565_334923_6763"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_132837_6781" name="DataBufferInt" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_992454_3946" body="This class extends &lt;CODE>DataBuffer&lt;/CODE> and stores data internally&#xA;as integers.&#xA;" annotatedElement="_9_5_f720368_1110473546565_132837_6781"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_646531_13073" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_686139_6839" name="TileObserver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306116_768662_4004" body="An interface for objects that wish to be informed when tiles&#xA;of a WritableRenderedImage become modifiable by some writer via&#xA;a call to getWritableTile, and when they become unmodifiable via&#xA;the last call to releaseWritableTile.&#xA;&#xA;@see WritableRenderedImage&#xA;&#xA;@author Thomas DeWeese&#xA;@author Daniel Rice&#xA;" annotatedElement="_9_5_f720368_1110473546581_686139_6839"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_614024_6833" name="SampleModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306116_249191_3998" body="This abstract class defines an interface for extracting samples of pixels&#xA;in an image.  All image data is expressed as a collection of pixels.&#xA;Each pixel consists of a number of samples. A sample is a datum&#xA;for one band of an image and a band consists of all samples of a&#xA;particular type in an image.  For example, a pixel might contain&#xA;three samples representing its red, green and blue components.&#xA;There are three bands in the image containing this pixel.  One band&#xA;consists of all the red samples from all pixels in the&#xA;image.  The second band consists of all the green samples and&#xA;the remaining band consists of all of the blue samples.  The pixel&#xA;can be stored in various formats.  For example, all samples from&#xA;a particular band can be stored contiguously or all samples from a&#xA;single pixel can be stored contiguously.&#xA;&lt;p>&#xA;Subclasses of SampleModel specify the types of samples they can&#xA;represent (e.g. unsigned 8-bit byte, signed 16-bit short, etc.)&#xA;and may specify how the samples are organized in memory.&#xA;In the Java 2D(tm) API, built-in image processing operators may&#xA;not operate on all possible sample types, but generally will work&#xA;for unsigned integral samples of 16 bits or less.  Some operators&#xA;support a wider variety of sample types.&#xA;&lt;p>&#xA;A collection of pixels is represented as a Raster, which consists of&#xA;a DataBuffer and a SampleModel.  The SampleModel allows access to&#xA;samples in the DataBuffer and may provide low-level information that&#xA;a programmer can use to directly manipulate samples and pixels in the&#xA;DataBuffer.&#xA;&lt;p>&#xA;This class is generally a fall back method for dealing with&#xA;images.  More efficient code will cast the SampleModel to the&#xA;appropriate subclass and extract the information needed to directly&#xA;manipulate pixels in the DataBuffer.&#xA;&#xA;@see java.awt.image.DataBuffer&#xA;@see java.awt.image.Raster&#xA;@see java.awt.image.ComponentSampleModel&#xA;@see java.awt.image.PixelInterleavedSampleModel&#xA;@see java.awt.image.BandedSampleModel&#xA;@see java.awt.image.MultiPixelPackedSampleModel&#xA;@see java.awt.image.SinglePixelPackedSampleModel&#xA;" annotatedElement="_9_5_f720368_1110473546581_614024_6833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_334923_6763" name="ColorModel" clientDependency="_10_5_622020d_1132928321238_206391_13064" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306026_53028_3928" body="The &lt;code>ColorModel&lt;/code> abstract class encapsulates the&#xA;methods for translating a pixel value to color components&#xA;(for example, red, green, and blue) and an alpha component.&#xA;In order to render an image to the screen, a printer, or another&#xA;image, pixel values must be converted to color and alpha components.&#xA;As arguments to or return values from methods of this class,&#xA;pixels are represented as 32-bit ints or as arrays of primitive types.&#xA;The number, order, and interpretation of color components for a&#xA;&lt;code>ColorModel&lt;/code> is specified by its &lt;code>ColorSpace&lt;/code>.&#xA;A &lt;code>ColorModel&lt;/code> used with pixel data that does not include&#xA;alpha information treats all pixels as opaque, which is an alpha&#xA;value of 1.0.&#xA;&lt;p>&#xA;This &lt;code>ColorModel&lt;/code> class supports two representations of&#xA;pixel values.  A pixel value can be a single 32-bit int or an&#xA;array of primitive types.  The Java(tm) Platform 1.0 and 1.1 APIs&#xA;represented pixels as single &lt;code>byte&lt;/code> or single&#xA;&lt;code>int&lt;/code> values.  For purposes of the &lt;code>ColorModel&lt;/code>&#xA;class, pixel value arguments were passed as ints.  The Java(tm) 2&#xA;Platform API introduced additional classes for representing images.&#xA;With {@link BufferedImage} or {@link RenderedImage}&#xA;objects, based on {@link Raster} and {@link SampleModel} classes, pixel&#xA;values might not be conveniently representable as a single int.&#xA;Consequently, &lt;code>ColorModel&lt;/code> now has methods that accept&#xA;pixel values represented as arrays of primitive types.  The primitive&#xA;type used by a particular &lt;code>ColorModel&lt;/code> object is called its&#xA;transfer type.&#xA;&lt;p>&#xA;&lt;code>ColorModel&lt;/code> objects used with images for which pixel values&#xA;are not conveniently representable as a single int throw an&#xA;{@link IllegalArgumentException} when methods taking a single int pixel&#xA;argument are called.  Subclasses of &lt;code>ColorModel&lt;/code> must&#xA;specify the conditions under which this occurs.  This does not&#xA;occur with {@link DirectColorModel} or {@link IndexColorModel} objects.&#xA;&lt;p>&#xA;Currently, the transfer types supported by the Java 2D(tm) API are&#xA;DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT,&#xA;DataBuffer.TYPE_SHORT, DataBuffer.TYPE_FLOAT, and DataBuffer.TYPE_DOUBLE.&#xA;Most rendering operations will perform much faster when using ColorModels&#xA;and images based on the first three of these types.  In addition, some&#xA;image filtering operations are not supported for ColorModels and&#xA;images based on the latter three types.&#xA;The transfer type for a particular &lt;code>ColorModel&lt;/code> object is&#xA;specified when the object is created, either explicitly or by default.&#xA;All subclasses of &lt;code>ColorModel&lt;/code> must specify what the&#xA;possible transfer types are and how the number of elements in the&#xA;primitive arrays representing pixels is determined.&#xA;&lt;p>&#xA;For &lt;code>BufferedImages&lt;/code>, the transfer type of its&#xA;&lt;code>Raster&lt;/code> and of the &lt;code>Raster&lt;/code> object's&#xA;&lt;code>SampleModel&lt;/code> (available from the&#xA;&lt;code>getTransferType&lt;/code> methods of these classes) must match that&#xA;of the &lt;code>ColorModel&lt;/code>.  The number of elements in an array&#xA;representing a pixel for the &lt;code>Raster&lt;/code> and&#xA;&lt;code>SampleModel&lt;/code> (available from the&#xA;&lt;code>getNumDataElements&lt;/code> methods of these classes) must match&#xA;that of the &lt;code>ColorModel&lt;/code>.&#xA;&lt;p>&#xA;The algorithm used to convert from pixel values to color and alpha&#xA;components varies by subclass.  For example, there is not necessarily&#xA;a one-to-one correspondence between samples obtained from the&#xA;&lt;code>SampleModel&lt;/code> of a &lt;code>BufferedImage&lt;/code> object's&#xA;&lt;code>Raster&lt;/code> and color/alpha components.  Even when&#xA;there is such a correspondence, the number of bits in a sample is not&#xA;necessarily the same as the number of bits in the corresponding color/alpha&#xA;component.  Each subclass must specify how the translation from&#xA;pixel values to color/alpha components is done.&#xA;&lt;p>&#xA;Methods in the &lt;code>ColorModel&lt;/code> class use two different&#xA;representations of color and alpha components - a normalized form&#xA;and an unnormalized form.  In the normalized form, each component is a&#xA;&lt;code>float&lt;/code> value between some minimum and maximum values.  For&#xA;the alpha component, the minimum is 0.0 and the maximum is 1.0.  For&#xA;color components the minimum and maximum values for each component can&#xA;be obtained from the &lt;code>ColorSpace&lt;/code> object.  These values&#xA;will often be 0.0 and 1.0 (e.g. normalized component values for the&#xA;default sRGB color space range from 0.0 to 1.0), but some color spaces&#xA;have component values with different upper and lower limits.  These&#xA;limits can be obtained using the &lt;code>getMinValue&lt;/code> and&#xA;&lt;code>getMaxValue&lt;/code> methods of the &lt;code>ColorSpace&lt;/code>&#xA;class.  Normalized color component values are not premultiplied.&#xA;All &lt;code>ColorModels&lt;/code> must support the normalized form.&#xA;&lt;p>&#xA;In the unnormalized&#xA;form, each component is an unsigned integral value between 0 and&#xA;2&lt;sup>n&lt;/sup> - 1, where n is the number of significant bits for a&#xA;particular component.  If pixel values for a particular&#xA;&lt;code>ColorModel&lt;/code> represent color samples premultiplied by&#xA;the alpha sample, unnormalized color component values are&#xA;also premultiplied.  The unnormalized form is used only with instances&#xA;of &lt;code>ColorModel&lt;/code> whose &lt;code>ColorSpace&lt;/code> has minimum&#xA;component values of 0.0 for all components and maximum values of&#xA;1.0 for all components.&#xA;The unnormalized form for color and alpha components can be a convenient&#xA;representation for &lt;code>ColorModels&lt;/code> whose normalized component&#xA;values all lie&#xA;between 0.0 and 1.0.  In such cases the integral value 0 maps to 0.0 and&#xA;the value 2&lt;sup>n&lt;/sup> - 1 maps to 1.0.  In other cases, such as&#xA;when the normalized component values can be either negative or positive,&#xA;the unnormalized form is not convenient.  Such &lt;code>ColorModel&lt;/code>&#xA;objects throw an {@link IllegalArgumentException} when methods involving&#xA;an unnormalized argument are called.  Subclasses of &lt;code>ColorModel&lt;/code>&#xA;must specify the conditions under which this occurs.&#xA;&#xA;@see IndexColorModel&#xA;@see ComponentColorModel&#xA;@see PackedColorModel&#xA;@see DirectColorModel&#xA;@see java.awt.Image&#xA;@see BufferedImage&#xA;@see RenderedImage&#xA;@see java.awt.color.ColorSpace&#xA;@see SampleModel&#xA;@see Raster&#xA;@see DataBuffer&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_334923_6763"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321238_206391_13064" name="" supplier="_9_5_f720368_1110473546596_59806_7143" client="_9_5_f720368_1110473546565_334923_6763" contract="_9_5_f720368_1110473546596_59806_7143"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_613821_6835" name="ShortLookupTable">
              <ownedComment xmi:id="_10_5_622020d_1132928306116_169794_4000" body="This class defines a lookup table object.  The output of a&#xA;lookup operation using an object of this class is interpreted&#xA;as an unsigned short quantity.  The lookup table contains short&#xA;data arrays for one or more bands (or components) of an image,&#xA;and it contains an offset which will be subtracted from the&#xA;input values before indexing the arrays.  This allows an array&#xA;smaller than the native data size to be provided for a&#xA;constrained input.  If there is only one array in the lookup&#xA;table, it will be applied to all bands.&#xA;&#xA;@see ByteLookupTable&#xA;@see LookupOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_613821_6835"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_13532_13096" isSubstitutable="true" general="_9_5_f720368_1110473546581_501232_6807"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_251351_6815" name="PixelGrabber" clientDependency="_10_5_622020d_1132928321248_966838_13089">
              <ownedComment xmi:id="_10_5_622020d_1132928306096_579776_3980" body="The PixelGrabber class implements an ImageConsumer which can be attached&#xA;to an Image or ImageProducer object to retrieve a subset of the pixels&#xA;in that image.  Here is an example:&#xA;&lt;pre>&#xA;&#xA;public void handlesinglepixel(int x, int y, int pixel) {&#xA;int alpha = (pixel >> 24) &amp; 0xff;&#xA;int red   = (pixel >> 16) &amp; 0xff;&#xA;int green = (pixel >>  8) &amp; 0xff;&#xA;int blue  = (pixel      ) &amp; 0xff;&#xA;Deal with the pixel as necessary...&#xA;}&#xA;&#xA;public void handlepixels(Image img, int x, int y, int w, int h) {&#xA;int[] pixels = new int[w * h];&#xA;PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);&#xA;try {&#xA;pg.grabPixels();&#xA;} catch (InterruptedException e) {&#xA;System.err.println(&quot;interrupted waiting for pixels!&quot;);&#xA;return;&#xA;}&#xA;if ((pg.getStatus() &amp; ImageObserver.ABORT) != 0) {&#xA;System.err.println(&quot;image fetch aborted or errored&quot;);&#xA;return;&#xA;}&#xA;for (int j = 0; j &lt; h; j++) {&#xA;for (int i = 0; i &lt; w; i++) {&#xA;handlesinglepixel(x+i, y+j, pixels[j * w + i]);&#xA;}&#xA;}&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@see ColorModel#getRGBdefault&#xA;&#xA;@version &#x9;1.25, 07/16/04&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546581_251351_6815"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_966838_13089" name="" supplier="_9_5_f720368_1110473546565_635250_6791" client="_9_5_f720368_1110473546581_251351_6815" contract="_9_5_f720368_1110473546565_635250_6791"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_991059_6843" name="WritableRaster">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_216514_4008" body="This class extends Raster to provide pixel writing capabilities.&#xA;Refer to the class comment for Raster for descriptions of how&#xA;a Raster stores pixels.&#xA;&#xA;&lt;p> The constructors of this class are protected.  To instantiate&#xA;a WritableRaster, use one of the createWritableRaster factory methods&#xA;in the Raster class.&#xA;" annotatedElement="_9_5_f720368_1110473546581_991059_6843"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_504873_13100" isSubstitutable="true" general="_9_5_f720368_1110473546581_322390_6819"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_729710_6751" name="BufferedImage" clientDependency="_10_5_622020d_1132928321228_688626_13056 _10_5_622020d_1132928321228_617487_13057">
              <ownedComment xmi:id="_10_5_622020d_1132928305986_495936_3916" body="The &lt;code>BufferedImage&lt;/code> subclass describes an {@link&#xA;java.awt.Image Image} with an accessible buffer of image data.&#xA;A &lt;code>BufferedImage&lt;/code> is comprised of a {@link ColorModel} and a&#xA;{@link Raster} of image data.&#xA;The number and types of bands in the {@link SampleModel} of the&#xA;&lt;code>Raster&lt;/code> must match the number and types required by the&#xA;&lt;code>ColorModel&lt;/code> to represent its color and alpha components.&#xA;All &lt;code>BufferedImage&lt;/code> objects have an upper left corner&#xA;coordinate of (0,&amp;nbsp;0).  Any &lt;code>Raster&lt;/code> used to construct a&#xA;&lt;code>BufferedImage&lt;/code> must therefore have minX=0 and minY=0.&#xA;&#xA;&lt;p>&#xA;This class relies on the data fetching and setting methods&#xA;of &lt;code>Raster&lt;/code>,&#xA;and on the color characterization methods of &lt;code>ColorModel&lt;/code>.&#xA;&#xA;@see ColorModel&#xA;@see Raster&#xA;@see WritableRaster&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_729710_6751"/>
              <generalization xmi:id="_10_5_622020d_1132928321228_709996_13058" isSubstitutable="true" general="_9_5_f720368_1110473546581_642816_7047"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_688626_13056" name="" supplier="_9_5_f720368_1110473546581_323126_6845" client="_9_5_f720368_1110473546565_729710_6751" contract="_9_5_f720368_1110473546581_323126_6845"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_617487_13057" name="" supplier="_9_5_f720368_1110473546596_59806_7143" client="_9_5_f720368_1110473546565_729710_6751" contract="_9_5_f720368_1110473546596_59806_7143"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_815313_6831" name="RGBImageFilter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306116_733133_3996" body="This class provides an easy way to create an ImageFilter which modifies&#xA;the pixels of an image in the default RGB ColorModel.  It is meant to&#xA;be used in conjunction with a FilteredImageSource object to produce&#xA;filtered versions of existing images.  It is an abstract class that&#xA;provides the calls needed to channel all of the pixel data through a&#xA;single method which converts pixels one at a time in the default RGB&#xA;ColorModel regardless of the ColorModel being used by the ImageProducer.&#xA;The only method which needs to be defined to create a useable image&#xA;filter is the filterRGB method.  Here is an example of a definition&#xA;of a filter which swaps the red and blue components of an image:&#xA;&lt;pre>&#xA;&#xA;class RedBlueSwapFilter extends RGBImageFilter {&#xA;public RedBlueSwapFilter() {&#xA;The filter's operation does not depend on the&#xA;pixel's location, so IndexColorModels can be&#xA;filtered directly.&#xA;canFilterIndexColorModel = true;&#xA;}&#xA;&#xA;public int filterRGB(int x, int y, int rgb) {&#xA;return ((rgb &amp; 0xff00ff00)&#xA;| ((rgb &amp; 0xff0000) >> 16)&#xA;| ((rgb &amp; 0xff) &lt;&lt; 16));&#xA;}&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@see FilteredImageSource&#xA;@see ImageFilter&#xA;@see ColorModel#getRGBdefault&#xA;&#xA;@version&#x9;1.24 12/19/03&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546581_815313_6831"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_375249_13095" isSubstitutable="true" general="_9_5_f720368_1110473546565_874967_6793"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_227480_6821" name="RasterFormatException">
              <ownedComment xmi:id="_10_5_622020d_1132928306106_928053_3986" body="The &lt;code>RasterFormatException&lt;/code> is thrown if there is&#xA;invalid layout information in the {@link Raster}.&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_227480_6821"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_944423_13091" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_27824_6745" name="AreaAveragingScaleFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928305976_163475_3910" body="An ImageFilter class for scaling images using a simple area averaging&#xA;algorithm that produces smoother results than the nearest neighbor&#xA;algorithm.&#xA;&lt;p>This class extends the basic ImageFilter Class to scale an existing&#xA;image and provide a source for a new image containing the resampled&#xA;image.  The pixels in the source image are blended to produce pixels&#xA;for an image of the specified size.  The blending process is analogous&#xA;to scaling up the source image to a multiple of the destination size&#xA;using pixel replication and then scaling it back down to the destination&#xA;size by simply averaging all the pixels in the supersized image that&#xA;fall within a given pixel of the destination image.  If the data from&#xA;the source is not delivered in TopDownLeftRight order then the filter&#xA;will back off to a simple pixel replication behavior and utilize the&#xA;requestTopDownLeftRightResend() method to refilter the pixels in a&#xA;better way at the end.&#xA;&lt;p>It is meant to be used in conjunction with a FilteredImageSource&#xA;object to produce scaled versions of existing images.  Due to&#xA;implementation dependencies, there may be differences in pixel values&#xA;of an image filtered on different platforms.&#xA;&#xA;@see FilteredImageSource&#xA;@see ReplicateScaleFilter&#xA;@see ImageFilter&#xA;&#xA;@version&#x9;1.15 12/19/03&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_27824_6745"/>
              <generalization xmi:id="_10_5_622020d_1132928321228_518112_13053" isSubstitutable="true" general="_9_5_f720368_1110473546581_881819_6827"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_783798_6747" name="BandCombineOp" clientDependency="_10_5_622020d_1132928321228_466864_13054">
              <ownedComment xmi:id="_10_5_622020d_1132928305976_47747_3912" body="This class performs an arbitrary linear combination of the bands&#xA;in a &lt;CODE>Raster&lt;/CODE>, using a specified matrix.&#xA;&lt;p>&#xA;The width of the matrix must be equal to the number of bands in the&#xA;source &lt;CODE>Raster&lt;/CODE>, optionally plus one.  If there is one more&#xA;column in the matrix than the number of bands, there is an implied 1 at the&#xA;end of the vector of band samples representing a pixel.  The height&#xA;of the matrix must be equal to the number of bands in the destination.&#xA;&lt;p>&#xA;For example, a 3-banded &lt;CODE>Raster&lt;/CODE> might have the following&#xA;transformation applied to each pixel in order to invert the second band of&#xA;the &lt;CODE>Raster&lt;/CODE>.&#xA;&lt;pre>&#xA;[ 1.0   0.0   0.0    0.0  ]     [ b1 ]&#xA;[ 0.0  -1.0   0.0  255.0  ]  x  [ b2 ]&#xA;[ 0.0   0.0   1.0    0.0  ]     [ b3 ]&#xA;[ 1 ]&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Note that the source and destination can be the same object.&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_783798_6747"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321228_466864_13054" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546565_783798_6747" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_727417_6799" name="ImagingOpException">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_719771_3964" body="The &lt;code>ImagingOpException&lt;/code> is thrown if one of the&#xA;{@link BufferedImageOp} or {@link RasterOp} filter methods cannot&#xA;process the image.&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_727417_6799"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_997698_13080" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_56176_6761" name="ColorConvertOp" clientDependency="_10_5_622020d_1132928321238_925620_13062 _10_5_622020d_1132928321238_323955_13063">
              <ownedComment xmi:id="_10_5_622020d_1132928305996_407563_3926" body="This class performs a pixel-by-pixel color conversion of the data in&#xA;the source image.  The resulting color values are scaled to the precision&#xA;of the destination image.  Color conversion can be specified&#xA;via an array of ColorSpace objects or an array of ICC_Profile objects.&#xA;&lt;p>&#xA;If the source is a BufferedImage with premultiplied alpha, the&#xA;color components are divided by the alpha component before color conversion.&#xA;If the destination is a BufferedImage with premultiplied alpha, the&#xA;color components are multiplied by the alpha component after conversion.&#xA;Rasters are treated as having no alpha channel, i.e. all bands are&#xA;color bands.&#xA;&lt;p>&#xA;If a RenderingHints object is specified in the constructor, the&#xA;color rendering hint and the dithering hint may be used to control&#xA;color conversion.&#xA;&lt;p>&#xA;Note that Source and Destination may be the same object.&#xA;&lt;p>&#xA;@see java.awt.RenderingHints#KEY_COLOR_RENDERING&#xA;@see java.awt.RenderingHints#KEY_DITHERING&#xA;" annotatedElement="_9_5_f720368_1110473546565_56176_6761"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321238_925620_13062" name="" supplier="_9_5_f720368_1110473546565_282435_6755" client="_9_5_f720368_1110473546565_56176_6761" contract="_9_5_f720368_1110473546565_282435_6755"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321238_323955_13063" name="" supplier="_9_5_f720368_1110473546581_850797_6823" client="_9_5_f720368_1110473546565_56176_6761" contract="_9_5_f720368_1110473546581_850797_6823"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_846625_6789" name="FilteredImageSource" clientDependency="_10_5_622020d_1132928321248_966588_13077">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_476364_3954" body="This class is an implementation of the ImageProducer interface which&#xA;takes an existing image and a filter object and uses them to produce&#xA;image data for a new filtered version of the original image.&#xA;Here is an example which filters an image by swapping the red and&#xA;blue compents:&#xA;&lt;pre>&#xA;&#xA;Image src = getImage(&quot;doc:///demo/images/duke/T1.gif&quot;);&#xA;ImageFilter colorfilter = new RedBlueSwapFilter();&#xA;Image img = createImage(new FilteredImageSource(src.getSource(),&#xA;colorfilter));&#xA;&#xA;&lt;/pre>&#xA;&#xA;@see ImageProducer&#xA;&#xA;@version&#x9;1.28 12/19/03&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_846625_6789"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_966588_13077" name="" supplier="_9_5_f720368_1110473546565_60145_6797" client="_9_5_f720368_1110473546565_846625_6789" contract="_9_5_f720368_1110473546565_60145_6797"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_412085_6757" name="BufferStrategy" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928305986_798565_3922" body="The &lt;code>BufferStrategy&lt;/code> class represents the mechanism with which&#xA;to organize complex memory on a particular &lt;code>Canvas&lt;/code> or&#xA;&lt;code>Window&lt;/code>.  Hardware and software limitations determine whether and&#xA;how a particular buffer strategy can be implemented.  These limitations&#xA;are detectible through the capabilities of the&#xA;&lt;code>GraphicsConfiguration&lt;/code> used when creating the&#xA;&lt;code>Canvas&lt;/code> or &lt;code>Window&lt;/code>.&#xA;&lt;p>&#xA;It is worth noting that the terms &lt;i>buffer&lt;/i> and &lt;i>surface&lt;/i> are meant&#xA;to be synonymous: an area of contiguous memory, either in video device&#xA;memory or in system memory.&#xA;&lt;p>&#xA;There are several types of complex buffer strategies;&#xA;sequential ring buffering, blit buffering, and stereo buffering are&#xA;common types.  Sequential ring buffering (i.e., double or triple&#xA;buffering) is the most common; an application draws to a single &lt;i>back&#xA;buffer&lt;/i> and then moves the contents to the front (display) in a single&#xA;step, either by copying the data or moving the video pointer.&#xA;Moving the video pointer exchanges the buffers so that the first buffer&#xA;drawn becomes the &lt;i>front buffer&lt;/i>, or what is currently displayed on the&#xA;device; this is called &lt;i>page flipping&lt;/i>.&#xA;&lt;p>&#xA;Alternatively, the contents of the back buffer can be copied, or&#xA;&lt;i>blitted&lt;/i> forward in a chain instead of moving the video pointer.&#xA;&lt;p>&#xA;&lt;pre>&#xA;Double buffering:&#xA;&#xA;&#xA;------>&#xA;[To display] &lt;---- * Front B *   Show  * Back B. * &lt;---- Rendering&#xA;&lt;------&#xA;&#xA;&#xA;Triple buffering:&#xA;&#xA;[To&#xA;display] *         * --------+---------+------>&#xA;&lt;---- * Front B *   Show  * Mid. B. *        * Back B. * &lt;---- Rendering&#xA;&lt;------ *         * &lt;-----&#xA;&#xA;&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Stereo buffering is for hardware that supports rendering separate images for&#xA;a left and right eye.  It is similar to sequential ring buffering, but&#xA;there are two buffer chains, one for each eye.  Both buffer chains flip&#xA;simultaneously:&#xA;&#xA;&lt;pre>&#xA;Stereo buffering:&#xA;&#xA;&#xA;------>&#xA;[To left eye] &lt;---- * Front B *         * Back B. * &lt;---- Rendering&#xA;&lt;------&#xA;&#xA;Show&#xA;&#xA;------>&#xA;[To right eye] &lt;--- * Front B *         * Back B. * &lt;---- Rendering&#xA;&lt;------&#xA;&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Here is an example of how buffer strategies can be created and used:&#xA;&lt;pre>&lt;code>&#xA;&#xA;Check the capabilities of the GraphicsConfiguration&#xA;...&#xA;&#xA;Create our component&#xA;Window w = new Window(gc);&#xA;&#xA;Show our window&#xA;w.setVisible(true);&#xA;&#xA;Create a general double-buffering strategy&#xA;w.createBufferStrategy(2);&#xA;BufferStrategy strategy = w.getBufferStrategy();&#xA;&#xA;Render loop&#xA;while (!done) {&#xA;Graphics g = strategy.getDrawGraphics();&#xA;Draw to graphics&#xA;...&#xA;strategy.show();&#xA;}&#xA;&#xA;Dispose the window&#xA;w.setVisible(false);&#xA;w.dispose();&#xA;&lt;/code>&lt;/pre>&#xA;&#xA;@see java.awt.Component&#xA;@see java.awt.GraphicsConfiguration&#xA;@author Michael Martak&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_412085_6757"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_874967_6793" name="ImageFilter" clientDependency="_10_5_622020d_1132928321248_715281_13079 _10_5_622020d_1132928321248_577792_13078">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_506181_3958" body="This class implements a filter for the set of interface methods that&#xA;are used to deliver data from an ImageProducer to an ImageConsumer.&#xA;It is meant to be used in conjunction with a FilteredImageSource&#xA;object to produce filtered versions of existing images.  It is a&#xA;base class that provides the calls needed to implement a &quot;Null filter&quot;&#xA;which has no effect on the data being passed through.  Filters should&#xA;subclass this class and override the methods which deal with the&#xA;data that needs to be filtered and modify it as necessary.&#xA;&#xA;@see FilteredImageSource&#xA;@see ImageConsumer&#xA;&#xA;@version&#x9;1.31 07/16/04&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_874967_6793"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_577792_13078" name="" supplier="_9_5_f720368_1110473546565_635250_6791" client="_9_5_f720368_1110473546565_874967_6793" contract="_9_5_f720368_1110473546565_635250_6791"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_715281_13079" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546565_874967_6793" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_323126_6845" name="WritableRenderedImage" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306126_812735_4010" body="WriteableRenderedImage is a common interface for objects which&#xA;contain or can produce image data in the form of Rasters and&#xA;which can be modified and/or written over.  The image&#xA;data may be stored/produced as a single tile or a regular array&#xA;of tiles.&#xA;&lt;p>&#xA;WritableRenderedImage provides notification to other interested&#xA;objects when a tile is checked out for writing (via the&#xA;getWritableTile method) and when the last writer of a particular&#xA;tile relinquishes its access (via a call to releaseWritableTile).&#xA;Additionally, it allows any caller to determine whether any tiles&#xA;are currently checked out (via hasTileWriters), and to obtain a&#xA;list of such tiles (via getWritableTileIndices, in the form of a Vector&#xA;of Point objects).&#xA;&lt;p>&#xA;Objects wishing to be notified of changes in tile writability must&#xA;implement the TileObserver interface, and are added by a&#xA;call to addTileObserver.  Multiple calls to&#xA;addTileObserver for the same object will result in multiple&#xA;notifications.  An existing observer may reduce its notifications&#xA;by calling removeTileObserver; if the observer had no&#xA;notifications the operation is a no-op.&#xA;&lt;p>&#xA;It is necessary for a WritableRenderedImage to ensure that&#xA;notifications occur only when the first writer acquires a tile and&#xA;the last writer releases it.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546581_323126_6845"/>
              <generalization xmi:id="_10_5_622020d_1132928321268_53807_13101" isSubstitutable="true" general="_9_5_f720368_1110473546581_673403_6825"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_506504_6837" name="SinglePixelPackedSampleModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306116_393883_4002" body="This class represents pixel data packed such that the N samples which make&#xA;up a single pixel are stored in a single data array element, and each data&#xA;data array element holds samples for only one pixel.&#xA;This class supports&#xA;{@link DataBuffer#TYPE_BYTE TYPE_BYTE},&#xA;{@link DataBuffer#TYPE_USHORT TYPE_USHORT},&#xA;{@link DataBuffer#TYPE_INT TYPE_INT} data types.&#xA;All data array elements reside&#xA;in the first bank of a DataBuffer.  Accessor methods are provided so&#xA;that the image data can be manipulated directly. Scanline stride is the&#xA;number of data array elements between a given sample and the corresponding&#xA;sample in the same column of the next scanline. Bit masks are the masks&#xA;required to extract the samples representing the bands of the pixel.&#xA;Bit offsets are the offsets in bits into the data array&#xA;element of the samples representing the bands of the pixel.&#xA;&lt;p>&#xA;The following code illustrates extracting the bits of the sample&#xA;representing band &lt;code>b&lt;/code> for pixel &lt;code>x,y&lt;/code>&#xA;from DataBuffer &lt;code>data&lt;/code>:&#xA;&lt;pre>&#xA;int sample = data.getElem(y * scanlineStride + x);&#xA;sample = (sample &amp; bitMasks[b]) >>> bitOffsets[b];&#xA;&lt;/pre>&#xA;" annotatedElement="_9_5_f720368_1110473546581_506504_6837"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_654855_13097" isSubstitutable="true" general="_9_5_f720368_1110473546581_614024_6833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_226234_6767" name="ComponentSampleModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_621530_3932" body="This class represents image data which is stored such that each sample&#xA;of a pixel occupies one data element of the DataBuffer.  It stores the&#xA;N samples which make up a pixel in N separate data array elements.&#xA;Different bands may be in different banks of the DataBuffer.&#xA;Accessor methods are provided so that image data can be manipulated&#xA;directly. This class can support different kinds of interleaving, e.g.&#xA;band interleaving, scanline interleaving, and pixel interleaving.&#xA;Pixel stride is the number of data array elements between two samples&#xA;for the same band on the same scanline. Scanline stride is the number&#xA;of data array elements between a given sample and the corresponding sample&#xA;in the same column of the next scanline.  Band offsets denote the number&#xA;of data array elements from the first data array element of the bank&#xA;of the DataBuffer holding each band to the first sample of the band.&#xA;The bands are numbered from 0 to N-1.  This class can represent image&#xA;data for which each sample is an unsigned integral number which can be&#xA;stored in 8, 16, or 32 bits (using &lt;code>DataBuffer.TYPE_BYTE&lt;/code>,&#xA;&lt;code>DataBuffer.TYPE_USHORT&lt;/code>, or &lt;code>DataBuffer.TYPE_INT&lt;/code>,&#xA;respectively), data for which each sample is a signed integral number&#xA;which can be stored in 16 bits (using &lt;code>DataBuffer.TYPE_SHORT&lt;/code>),&#xA;or data for which each sample is a signed float or double quantity&#xA;(using &lt;code>DataBuffer.TYPE_FLOAT&lt;/code> or&#xA;&lt;code>DataBuffer.TYPE_DOUBLE&lt;/code>, respectively).&#xA;All samples of a given ComponentSampleModel&#xA;are stored with the same precision.  All strides and offsets must be&#xA;non-negative.  This class supports&#xA;{@link DataBuffer#TYPE_BYTE TYPE_BYTE},&#xA;{@link DataBuffer#TYPE_USHORT TYPE_USHORT},&#xA;{@link DataBuffer#TYPE_SHORT TYPE_SHORT},&#xA;{@link DataBuffer#TYPE_INT TYPE_INT},&#xA;{@link DataBuffer#TYPE_FLOAT TYPE_FLOAT},&#xA;{@link DataBuffer#TYPE_DOUBLE TYPE_DOUBLE},&#xA;@see java.awt.image.PixelInterleavedSampleModel&#xA;@see java.awt.image.BandedSampleModel&#xA;" annotatedElement="_9_5_f720368_1110473546565_226234_6767"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_216726_13066" isSubstitutable="true" general="_9_5_f720368_1110473546581_614024_6833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_462339_6777" name="DataBufferDouble" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306046_82067_3942" body="This class extends &lt;code>DataBuffer&lt;/code> and stores data internally&#xA;in &lt;code>double&lt;/code> form.&#xA;&#xA;@see DataBuffer&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546565_462339_6777"/>
              <generalization xmi:id="_10_5_622020d_1132928321238_646343_13071" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_617401_6787" name="DirectColorModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_983284_3952" body="The &lt;code>DirectColorModel&lt;/code> class is a &lt;code>ColorModel&lt;/code>&#xA;class that works with pixel values that represent RGB&#xA;color and alpha information as separate samples and that pack all&#xA;samples for a single pixel into a single int, short, or byte quantity.&#xA;This class can be used only with ColorSpaces of type ColorSpace.TYPE_RGB.&#xA;In addition, for each component of the ColorSpace, the minimum&#xA;normalized component value obtained via the &lt;code>getMinValue()&lt;/code>&#xA;method of ColorSpace must be 0.0, and the maximum value obtained via&#xA;the &lt;code>getMaxValue()&lt;/code> method must be 1.0 (these min/max&#xA;values are typical for RGB spaces).&#xA;There must be three color samples in the pixel values and there can&#xA;be a single alpha sample.  For those methods that use a primitive array&#xA;pixel representation of type &lt;code>transferType&lt;/code>, the array&#xA;length is always one.  The transfer&#xA;types supported are DataBuffer.TYPE_BYTE,&#xA;DataBuffer.TYPE_USHORT, and DataBuffer.TYPE_INT.&#xA;Color and alpha samples are stored in the single&#xA;element of the array in bits indicated by bit masks.  Each bit mask&#xA;must be contiguous and masks must not overlap.  The same masks apply to&#xA;the single int pixel representation used by other methods.  The&#xA;correspondence of masks and color/alpha samples is as follows:&#xA;&lt;ul>&#xA;&lt;li> Masks are identified by indices running from 0 through 2&#xA;if no alpha is present, or 3 if an alpha is present.&#xA;&lt;li> The first three indices refer to color samples;&#xA;index 0 corresponds to red, index 1 to green, and index 2 to blue.&#xA;&lt;li> Index 3 corresponds to the alpha sample, if present.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The translation from pixel values to color/alpha components for&#xA;display or processing purposes is a one-to-one correspondence of&#xA;samples to components.  A &lt;code>DirectColorModel&lt;/code> is&#xA;typically used with image data which uses masks to define packed&#xA;samples.  For example, a &lt;code>DirectColorModel&lt;/code> can be used in&#xA;conjunction with a &lt;code>SinglePixelPackedSampleModel&lt;/code> to&#xA;construct a {@link BufferedImage}.  Normally the masks used by the&#xA;{@link SampleModel} and the &lt;code>ColorModel&lt;/code> would be the&#xA;same.  However, if they are different, the color interpretation&#xA;of pixel data will be done according to the masks of the&#xA;&lt;code>ColorModel&lt;/code>.&#xA;&lt;p>&#xA;A single int pixel representation is valid for all objects of this&#xA;class, since it is always possible to represent pixel values used with&#xA;this class in a single int.  Therefore, methods which use this&#xA;representation will not throw an &lt;code>IllegalArgumentException&lt;/code>&#xA;due to an invalid pixel value.&#xA;&lt;p>&#xA;This color model is similar to an X11 TrueColor visual.&#xA;The default RGB ColorModel specified by the&#xA;{@link ColorModel#getRGBdefault() getRGBdefault} method is a&#xA;&lt;code>DirectColorModel&lt;/code> with the following parameters:&#xA;&lt;pre>&#xA;Number of bits:        32&#xA;Red mask:              0x00ff0000&#xA;Green mask:            0x0000ff00&#xA;Blue mask:             0x000000ff&#xA;Alpha mask:            0xff000000&#xA;Color space:           sRGB&#xA;isAlphaPremultiplied:  False&#xA;Transparency:          Transparency.TRANSLUCENT&#xA;transferType:          DataBuffer.TYPE_INT&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Many of the methods in this class are final. This is because the&#xA;underlying native graphics code makes assumptions about the layout&#xA;and operation of this class and those assumptions are reflected in&#xA;the implementations of the methods here that are marked final.  You&#xA;can subclass this class for other reasons, but you cannot override&#xA;or modify the behavior of those methods.&#xA;&#xA;@see ColorModel&#xA;@see ColorSpace&#xA;@see SinglePixelPackedSampleModel&#xA;@see BufferedImage&#xA;@see ColorModel#getRGBdefault&#xA;&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546565_617401_6787"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_858597_13076" isSubstitutable="true" general="_9_5_f720368_1110473546581_342162_6813"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546565_183588_6785" name="DataBufferUShort" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_562275_3950" body="This class extends &lt;CODE>DataBuffer&lt;/CODE> and stores data internally as&#xA;shorts.  Values stored in the short array(s) of this &lt;CODE>DataBuffer&lt;/CODE>&#xA;are treated as unsigned values.&#xA;" annotatedElement="_9_5_f720368_1110473546565_183588_6785"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_457943_13075" isSubstitutable="true" general="_9_5_f720368_1110473546565_692903_6773"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_501232_6807" name="LookupTable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306086_192163_3972" body="This abstract class defines a lookup table object.  ByteLookupTable&#xA;and ShortLookupTable are subclasses, which&#xA;contain byte and short data, respectively.  A lookup table&#xA;contains data arrays for one or more bands (or components) of an image&#xA;(for example, separate arrays for R, G, and B),&#xA;and it contains an offset which will be subtracted from the&#xA;input values before indexing into the arrays.  This allows an array&#xA;smaller than the native data size to be provided for a&#xA;constrained input.  If there is only one array in the lookup&#xA;table, it will be applied to all bands.  All arrays must be the&#xA;same size.&#xA;&#xA;@see ByteLookupTable&#xA;@see ShortLookupTable&#xA;@see LookupOp&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_501232_6807"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_976620_13085" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_60145_6797" name="ImageProducer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306066_477805_3962" body="The interface for objects which can produce the image data for Images.&#xA;Each image contains an ImageProducer which is used to reconstruct&#xA;the image whenever it is needed, for example, when a new size of the&#xA;Image is scaled, or when the width or height of the Image is being&#xA;requested.&#xA;&#xA;@see ImageConsumer&#xA;&#xA;@version&#x9;1.20 12/19/03&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_60145_6797"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_673403_6825" name="RenderedImage" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306106_18971_3990" body="RenderedImage is a common interface for objects which contain&#xA;or can produce image data in the form of Rasters.  The image&#xA;data may be stored/produced as a single tile or a regular array&#xA;of tiles.&#xA;" annotatedElement="_9_5_f720368_1110473546581_673403_6825"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_881819_6827" name="ReplicateScaleFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928306106_292320_3992" body="An ImageFilter class for scaling images using the simplest algorithm.&#xA;This class extends the basic ImageFilter Class to scale an existing&#xA;image and provide a source for a new image containing the resampled&#xA;image.  The pixels in the source image are sampled to produce pixels&#xA;for an image of the specified size by replicating rows and columns of&#xA;pixels to scale up or omitting rows and columns of pixels to scale&#xA;down.&#xA;&lt;p>It is meant to be used in conjunction with a FilteredImageSource&#xA;object to produce scaled versions of existing images.  Due to&#xA;implementation dependencies, there may be differences in pixel values&#xA;of an image filtered on different platforms.&#xA;&#xA;@see FilteredImageSource&#xA;@see ImageFilter&#xA;&#xA;@version&#x9;1.20 07/16/04&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546581_881819_6827"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_375170_13092" isSubstitutable="true" general="_9_5_f720368_1110473546565_874967_6793"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_165311_6817" name="PixelInterleavedSampleModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306096_710268_3982" body="This class represents image data which is stored in a pixel interleaved&#xA;fashion and for&#xA;which each sample of a pixel occupies one data element of the DataBuffer.&#xA;It subclasses ComponentSampleModel but provides a more efficent&#xA;implementation for accessing pixel interleaved image data than is provided&#xA;by ComponentSampleModel.  This class&#xA;stores sample data for all bands in a single bank of the&#xA;DataBuffer. Accessor methods are provided so that image data can be&#xA;manipulated directly. Pixel stride is the number of&#xA;data array elements between two samples for the same band on the same&#xA;scanline. Scanline stride is the number of data array elements between&#xA;a given sample and the corresponding sample in the same column of the next&#xA;scanline.  Band offsets denote the number&#xA;of data array elements from the first data array element of the bank&#xA;of the DataBuffer holding each band to the first sample of the band.&#xA;The bands are numbered from 0 to N-1.&#xA;Bank indices denote the correspondence between a bank of the data buffer&#xA;and a band of image data.&#xA;This class supports&#xA;{@link DataBuffer#TYPE_BYTE TYPE_BYTE},&#xA;{@link DataBuffer#TYPE_USHORT TYPE_USHORT},&#xA;{@link DataBuffer#TYPE_SHORT TYPE_SHORT},&#xA;{@link DataBuffer#TYPE_INT TYPE_INT},&#xA;{@link DataBuffer#TYPE_FLOAT TYPE_FLOAT} and&#xA;{@link DataBuffer#TYPE_DOUBLE TYPE_DOUBLE} datatypes.&#xA;" annotatedElement="_9_5_f720368_1110473546581_165311_6817"/>
              <generalization xmi:id="_10_5_622020d_1132928321258_613340_13090" isSubstitutable="true" general="_9_5_f720368_1110473546565_226234_6767"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_823820_6811" name="MultiPixelPackedSampleModel">
              <ownedComment xmi:id="_10_5_622020d_1132928306086_154680_3976" body="The &lt;code>MultiPixelPackedSampleModel&lt;/code> class represents&#xA;one-banded images and can pack multiple one-sample&#xA;pixels into one data element.  Pixels are not allowed to span data elements.&#xA;The data type can be DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT,&#xA;or DataBuffer.TYPE_INT.  Each pixel must be a power of 2 number of bits&#xA;and a power of 2 number of pixels must fit exactly in one data element.&#xA;Pixel bit stride is equal to the number of bits per pixel.  Scanline&#xA;stride is in data elements and the last several data elements might be&#xA;padded with unused pixels.  Data bit offset is the offset in bits from&#xA;the beginning of the {@link DataBuffer} to the first pixel and must be&#xA;a multiple of pixel bit stride.&#xA;&lt;p>&#xA;The following code illustrates extracting the bits for pixel&#xA;&lt;code>x,&amp;nbsp;y&lt;/code> from &lt;code>DataBuffer&lt;/code> &lt;code>data&lt;/code>&#xA;and storing the pixel data in data elements of type&#xA;&lt;code>dataType&lt;/code>:&#xA;&lt;pre>&#xA;int dataElementSize = DataBuffer.getDataTypeSize(dataType);&#xA;int bitnum = dataBitOffset + x*pixelBitStride;&#xA;int element = data.getElem(y*scanlineStride + bitnum/dataElementSize);&#xA;int shift = dataElementSize - (bitnum &amp; (dataElementSize-1))&#xA;- pixelBitStride;&#xA;int pixel = (element >> shift) &amp; ((1 &lt;&lt; pixelBitStride) - 1);&#xA;&lt;/pre>&#xA;" annotatedElement="_9_5_f720368_1110473546581_823820_6811"/>
              <generalization xmi:id="_10_5_622020d_1132928321248_535357_13087" isSubstitutable="true" general="_9_5_f720368_1110473546581_614024_6833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546565_635250_6791" name="ImageConsumer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306056_141972_3956" body="The interface for objects expressing interest in image data through&#xA;the ImageProducer interfaces.  When a consumer is added to an image&#xA;producer, the producer delivers all of the data about the image&#xA;using the method calls defined in this interface.&#xA;&#xA;@see ImageProducer&#xA;&#xA;@version&#x9;1.23 07/16/04&#xA;@author &#x9;Jim Graham&#xA;" annotatedElement="_9_5_f720368_1110473546565_635250_6791"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_289791_6809" name="MemoryImageSource" clientDependency="_10_5_622020d_1132928321248_46840_13086">
              <ownedComment xmi:id="_10_5_622020d_1132928306086_227812_3974" body="This class is an implementation of the ImageProducer interface which&#xA;uses an array to produce pixel values for an Image.  Here is an example&#xA;which calculates a 100x100 image representing a fade from black to blue&#xA;along the X axis and a fade from black to red along the Y axis:&#xA;&lt;pre>&#xA;&#xA;int w = 100;&#xA;int h = 100;&#xA;int pix[] = new int[w * h];&#xA;int index = 0;&#xA;for (int y = 0; y &lt; h; y++) {&#xA;int red = (y * 255) / (h - 1);&#xA;for (int x = 0; x &lt; w; x++) {&#xA;int blue = (x * 255) / (w - 1);&#xA;pix[index++] = (255 &lt;&lt; 24) | (red &lt;&lt; 16) | blue;&#xA;}&#xA;}&#xA;Image img = createImage(new MemoryImageSource(w, h, pix, 0, w));&#xA;&#xA;&lt;/pre>&#xA;The MemoryImageSource is also capable of managing a memory image which&#xA;varies over time to allow animation or custom rendering.  Here is an&#xA;example showing how to set up the animation source and signal changes&#xA;in the data (adapted from the MemoryAnimationSourceDemo by Garth Dickie):&#xA;&lt;pre>&#xA;&#xA;int pixels[];&#xA;MemoryImageSource source;&#xA;&#xA;public void init() {&#xA;int width = 50;&#xA;int height = 50;&#xA;int size = width * height;&#xA;pixels = new int[size];&#xA;&#xA;int value = getBackground().getRGB();&#xA;for (int i = 0; i &lt; size; i++) {&#xA;pixels[i] = value;&#xA;}&#xA;&#xA;source = new MemoryImageSource(width, height, pixels, 0, width);&#xA;source.setAnimated(true);&#xA;image = createImage(source);&#xA;}&#xA;&#xA;public void run() {&#xA;Thread me = Thread.currentThread( );&#xA;me.setPriority(Thread.MIN_PRIORITY);&#xA;&#xA;while (true) {&#xA;try {&#xA;thread.sleep(10);&#xA;} catch( InterruptedException e ) {&#xA;return;&#xA;}&#xA;&#xA;Modify the values in the pixels array at (x, y, w, h)&#xA;&#xA;Send the new data to the interested ImageConsumers&#xA;source.newPixels(x, y, w, h);&#xA;}&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@see ImageProducer&#xA;&#xA;@version&#x9;1.33 07/16/04&#xA;@author &#x9;Jim Graham&#xA;@author&#x9;Animation capabilities inspired by the&#xA;MemoryAnimationSource class written by Garth Dickie&#xA;" annotatedElement="_9_5_f720368_1110473546581_289791_6809"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321248_46840_13086" name="" supplier="_9_5_f720368_1110473546565_60145_6797" client="_9_5_f720368_1110473546581_289791_6809" contract="_9_5_f720368_1110473546565_60145_6797"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_660844_6931" name="AWTEvent" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306306_117659_4101" body="The root event class for all AWT events.&#xA;This class and its subclasses supercede the original&#xA;java.awt.Event class.&#xA;Subclasses of this root AWTEvent class defined outside of the&#xA;java.awt.event package should define event ID values greater than&#xA;the value defined by RESERVED_ID_MAX.&#xA;&lt;p>&#xA;The event masks defined in this class are needed by Component subclasses&#xA;which are using Component.enableEvents() to select for event types not&#xA;selected by registered listeners. If a listener is registered on a&#xA;component, the appropriate event mask is already set internally by the&#xA;component.&#xA;&lt;p>&#xA;The masks are also used to specify to which types of events an&#xA;AWTEventListener should listen. The masks are bitwise-ORed together&#xA;and passed to Toolkit.addAWTEventListener.&#xA;&#xA;@see Component#enableEvents&#xA;@see Toolkit#addAWTEventListener&#xA;&#xA;@see java.awt.event.ActionEvent&#xA;@see java.awt.event.AdjustmentEvent&#xA;@see java.awt.event.ComponentEvent&#xA;@see java.awt.event.ContainerEvent&#xA;@see java.awt.event.FocusEvent&#xA;@see java.awt.event.InputMethodEvent&#xA;@see java.awt.event.InvocationEvent&#xA;@see java.awt.event.ItemEvent&#xA;@see java.awt.event.HierarchyEvent&#xA;@see java.awt.event.KeyEvent&#xA;@see java.awt.event.MouseEvent&#xA;@see java.awt.event.MouseWheelEvent&#xA;@see java.awt.event.PaintEvent&#xA;@see java.awt.event.TextEvent&#xA;@see java.awt.event.WindowEvent&#xA;&#xA;@author Carl Quinn&#xA;@author Amy Fowler&#xA;@version 1.55 06/02/04&#xA;@since 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546581_660844_6931"/>
            <generalization xmi:id="_10_5_622020d_1132928321298_939413_13133" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_875688_7113" name="Scrollbar" clientDependency="_10_5_622020d_1132928321488_229482_13336 _10_5_622020d_1132928321488_150545_13335">
            <ownedComment xmi:id="_10_5_622020d_1132928306727_989197_4327" body="The &lt;code>Scrollbar&lt;/code> class embodies a scroll bar, a&#xA;familiar user-interface object. A scroll bar provides a&#xA;convenient means for allowing a user to select from a&#xA;range of values. The following three vertical&#xA;scroll bars could be used as slider controls to pick&#xA;the red, green, and blue components of a color:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Scrollbar-1.gif&quot; alt=&quot;Image shows 3 vertical sliders, side-by-side.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;Each scroll bar in this example could be created with&#xA;code similar to the following:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255);&#xA;add(redSlider);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;Alternatively, a scroll bar can represent a range of values. For&#xA;example, if a scroll bar is used for scrolling through text, the&#xA;width of the &quot;bubble&quot; (also called the &quot;thumb&quot; or &quot;scroll box&quot;)&#xA;can be used to represent the amount of text that is visible.&#xA;Here is an example of a scroll bar that represents a range:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/Scrollbar-2.gif&quot;&#xA;alt=&quot;Image shows horizontal slider with starting range of 0 and ending range of 300. The slider thumb is labeled 60.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;The value range represented by the bubble in this example&#xA;is the &lt;em>visible amount&lt;/em>. The horizontal scroll bar&#xA;in this example could be created with code like the following:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300);&#xA;add(ranger);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;Note that the actual maximum value of the scroll bar is the&#xA;&lt;code>maximum&lt;/code> minus the &lt;code>visible amount&lt;/code>.&#xA;In the previous example, because the &lt;code>maximum&lt;/code> is&#xA;300 and the &lt;code>visible amount&lt;/code> is 60, the actual maximum&#xA;value is 240.  The range of the scrollbar track is 0 - 300.&#xA;The left side of the bubble indicates the value of the&#xA;scroll bar.&#xA;&lt;p>&#xA;Normally, the user changes the value of the scroll bar by&#xA;making a gesture with the mouse. For example, the user can&#xA;drag the scroll bar's bubble up and down, or click in the&#xA;scroll bar's unit increment or block increment areas. Keyboard&#xA;gestures can also be mapped to the scroll bar. By convention,&#xA;the &lt;b>Page&amp;nbsp;Up&lt;/b> and &lt;b>Page&amp;nbsp;Down&lt;/b>&#xA;keys are equivalent to clicking in the scroll bar's block&#xA;increment and block decrement areas.&#xA;&lt;p>&#xA;When the user changes the value of the scroll bar, the scroll bar&#xA;receives an instance of &lt;code>AdjustmentEvent&lt;/code>.&#xA;The scroll bar processes this event, passing it along to&#xA;any registered listeners.&#xA;&lt;p>&#xA;Any object that wishes to be notified of changes to the&#xA;scroll bar's value should implement&#xA;&lt;code>AdjustmentListener&lt;/code>, an interface defined in&#xA;the package &lt;code>java.awt.event&lt;/code>.&#xA;Listeners can be added and removed dynamically by calling&#xA;the methods &lt;code>addAdjustmentListener&lt;/code> and&#xA;&lt;code>removeAdjustmentListener&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>AdjustmentEvent&lt;/code> class defines five types&#xA;of adjustment event, listed here:&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>&lt;code>AdjustmentEvent.TRACK&lt;/code> is sent out when the&#xA;user drags the scroll bar's bubble.&#xA;&lt;li>&lt;code>AdjustmentEvent.UNIT_INCREMENT&lt;/code> is sent out&#xA;when the user clicks in the left arrow of a horizontal scroll&#xA;bar, or the top arrow of a vertical scroll bar, or makes the&#xA;equivalent gesture from the keyboard.&#xA;&lt;li>&lt;code>AdjustmentEvent.UNIT_DECREMENT&lt;/code> is sent out&#xA;when the user clicks in the right arrow of a horizontal scroll&#xA;bar, or the bottom arrow of a vertical scroll bar, or makes the&#xA;equivalent gesture from the keyboard.&#xA;&lt;li>&lt;code>AdjustmentEvent.BLOCK_INCREMENT&lt;/code> is sent out&#xA;when the user clicks in the track, to the left of the bubble&#xA;on a horizontal scroll bar, or above the bubble on a vertical&#xA;scroll bar. By convention, the &lt;b>Page&amp;nbsp;Up&lt;/b>&#xA;key is equivalent, if the user is using a keyboard that&#xA;defines a &lt;b>Page&amp;nbsp;Up&lt;/b> key.&#xA;&lt;li>&lt;code>AdjustmentEvent.BLOCK_DECREMENT&lt;/code> is sent out&#xA;when the user clicks in the track, to the right of the bubble&#xA;on a horizontal scroll bar, or below the bubble on a vertical&#xA;scroll bar. By convention, the &lt;b>Page&amp;nbsp;Down&lt;/b>&#xA;key is equivalent, if the user is using a keyboard that&#xA;defines a &lt;b>Page&amp;nbsp;Down&lt;/b> key.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The JDK&amp;nbsp;1.0 event system is supported for backwards&#xA;compatibility, but its use with newer versions of the platform is&#xA;discouraged. The five types of adjustment events introduced&#xA;with JDK&amp;nbsp;1.1 correspond to the five event types&#xA;that are associated with scroll bars in previous platform versions.&#xA;The following list gives the adjustment event type,&#xA;and the corresponding JDK&amp;nbsp;1.0 event type it replaces.&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>&lt;code>AdjustmentEvent.TRACK&lt;/code> replaces&#xA;&lt;code>Event.SCROLL_ABSOLUTE&lt;/code>&#xA;&lt;li>&lt;code>AdjustmentEvent.UNIT_INCREMENT&lt;/code> replaces&#xA;&lt;code>Event.SCROLL_LINE_UP&lt;/code>&#xA;&lt;li>&lt;code>AdjustmentEvent.UNIT_DECREMENT&lt;/code> replaces&#xA;&lt;code>Event.SCROLL_LINE_DOWN&lt;/code>&#xA;&lt;li>&lt;code>AdjustmentEvent.BLOCK_INCREMENT&lt;/code> replaces&#xA;&lt;code>Event.SCROLL_PAGE_UP&lt;/code>&#xA;&lt;li>&lt;code>AdjustmentEvent.BLOCK_DECREMENT&lt;/code> replaces&#xA;&lt;code>Event.SCROLL_PAGE_DOWN&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;b>Note&lt;/b>: We recommend using a &lt;code>Scrollbar&lt;/code>&#xA;for value selection only.  If you want to implement&#xA;a scrollable component inside a container, we recommend you use&#xA;a {@link ScrollPane ScrollPane}. If you use a&#xA;&lt;code>Scrollbar&lt;/code> for this purpose, you are likely to&#xA;encounter issues with painting, key handling, sizing and&#xA;positioning.&#xA;&#xA;@version &#x9;1.108, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.event.AdjustmentEvent&#xA;@see         java.awt.event.AdjustmentListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_875688_7113"/>
            <generalization xmi:id="_10_5_622020d_1132928321488_841500_13337" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321488_150545_13335" name="" supplier="_9_5_f720368_1110473546581_905901_6923" client="_9_5_f720368_1110473546581_875688_7113" contract="_9_5_f720368_1110473546581_905901_6923"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321488_229482_13336" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_875688_7113" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_518484_17115" name="AccessibleAWTScrollBar" visibility="protected" clientDependency="_10_5_622020d_1132928321488_90147_13338">
              <ownedComment xmi:id="_10_5_622020d_1132928306717_944930_4325" body="This class implements accessibility support for the&#xA;&lt;code>Scrollbar&lt;/code> class.  It provides an implementation of&#xA;the Java Accessibility API appropriate to scrollbar&#xA;user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_518484_17115"/>
              <generalization xmi:id="_10_5_622020d_1132928321488_297905_13339" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321488_90147_13338" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473547424_518484_17115" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_872987_7135" name="TextField">
            <ownedComment xmi:id="_10_5_622020d_1132928306757_322098_4352" body="A &lt;code>TextField&lt;/code> object is a text component&#xA;that allows for the editing of a single line of text.&#xA;&lt;p>&#xA;For example, the following image depicts a frame with four&#xA;text fields of varying widths. Two of these text fields&#xA;display the predefined text &lt;code>&quot;Hello&quot;&lt;/code>.&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/TextField-1.gif&quot; alt=&quot;The preceding text describes this image.&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;Here is the code that produces these four text fields:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;TextField tf1, tf2, tf3, tf4;&#xA;a blank text field&#xA;tf1 = new TextField();&#xA;blank field of 20 columns&#xA;tf2 = new TextField(&quot;&quot;, 20);&#xA;predefined text displayed&#xA;tf3 = new TextField(&quot;Hello!&quot;);&#xA;predefined text in 30 columns&#xA;tf4 = new TextField(&quot;Hello&quot;, 30);&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;Every time the user types a key in the text field, one or&#xA;more key events are sent to the text field.  A &lt;code>KeyEvent&lt;/code>&#xA;may be one of three types: keyPressed, keyReleased, or keyTyped.&#xA;The properties of a key event indicate which of these types&#xA;it is, as well as additional information about the event,&#xA;such as what modifiers are applied to the key event and the&#xA;time at which the event occurred.&#xA;&lt;p>&#xA;The key event is passed to every &lt;code>KeyListener&lt;/code>&#xA;or &lt;code>KeyAdapter&lt;/code> object which registered to receive such&#xA;events using the component's &lt;code>addKeyListener&lt;/code> method.&#xA;(&lt;code>KeyAdapter&lt;/code> objects implement the&#xA;&lt;code>KeyListener&lt;/code> interface.)&#xA;&lt;p>&#xA;It is also possible to fire an &lt;code>ActionEvent&lt;/code>.&#xA;If action events are enabled for the text field, they may&#xA;be fired by pressing the &lt;code>Return&lt;/code> key.&#xA;&lt;p>&#xA;The &lt;code>TextField&lt;/code> class's &lt;code>processEvent&lt;/code>&#xA;method examines the action event and passes it along to&#xA;&lt;code>processActionEvent&lt;/code>. The latter method redirects the&#xA;event to any &lt;code>ActionListener&lt;/code> objects that have&#xA;registered to receive action events generated by this&#xA;text field.&#xA;&#xA;@version&#x9;1.80, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@see         java.awt.event.KeyEvent&#xA;@see         java.awt.event.KeyAdapter&#xA;@see         java.awt.event.KeyListener&#xA;@see         java.awt.event.ActionEvent&#xA;@see         java.awt.Component#addKeyListener&#xA;@see         java.awt.TextField#processEvent&#xA;@see         java.awt.TextField#processActionEvent&#xA;@see         java.awt.TextField#addActionListener&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_872987_7135"/>
            <generalization xmi:id="_10_5_622020d_1132928321498_102456_13362" isSubstitutable="true" general="_9_5_f720368_1110473546596_302274_7133"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_766740_17134" name="AccessibleAWTTextField" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306757_523666_4350" body="This class implements accessibility support for the&#xA;&lt;code>TextField&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to text field user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547424_766740_17134"/>
              <generalization xmi:id="_10_5_622020d_1132928321498_944091_13363" isSubstitutable="true" general="_9_5_f720368_1110473547424_416672_17131"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_632722_7087" name="MenuShortcut" clientDependency="_10_5_622020d_1132928321408_9219_13308">
            <ownedComment xmi:id="_10_5_622020d_1132928306697_143748_4286" body="The &lt;code>MenuShortcut&lt;/code>class represents a keyboard accelerator&#xA;for a MenuItem.&#xA;&lt;p>&#xA;Menu shortcuts are created using virtual keycodes, not characters.&#xA;For example, a menu shortcut for Ctrl-a (assuming that Control is&#xA;the accelerator key) would be created with code like the following:&#xA;&lt;p>&#xA;MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A, false);&#xA;&lt;p>&#xA;The accelerator key is platform-dependent and may be obtained&#xA;via {@link Toolkit#getMenuShortcutKeyMask}.&#xA;&#xA;@author Thomas Ball&#xA;@version 1.25, 12/19/03&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546581_632722_7087"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321408_9219_13308" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_632722_7087" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_371419_7007" name="FocusTraversalPolicy" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306427_20463_4198" body="A FocusTraversalPolicy defines the order in which Components with a&#xA;particular focus cycle root are traversed. Instances can apply the policy to&#xA;arbitrary focus cycle roots, allowing themselves to be shared across&#xA;Containers. They do not need to be reinitialized when the focus cycle roots&#xA;of a Component hierarchy change.&#xA;&lt;p>&#xA;The core responsibility of a FocusTraversalPolicy is to provide algorithms&#xA;determining the next and previous Components to focus when traversing&#xA;forward or backward in a UI. Each FocusTraversalPolicy must also provide&#xA;algorithms for determining the first, last, and default Components in a&#xA;traversal cycle. First and last Components are used when normal forward and&#xA;backward traversal, respectively, wraps. The default Component is the first&#xA;to receive focus when traversing down into a new focus traversal cycle.&#xA;A FocusTraversalPolicy can optionally provide an algorithm for determining&#xA;a Window's initial Component. The initial Component is the first to receive&#xA;focus when a Window is first made visible.&#xA;&lt;p>&#xA;FocusTraversalPolicy takes into account &lt;a&#xA;href=&quot;doc-files/FocusSpec.html#FocusTraversalPolicyProviders&quot;>focus traversal&#xA;policy providers&lt;/a>.  When searching for first/last/next/previous Component,&#xA;if a focus traversal policy provider is encountered, its focus traversal&#xA;policy is used to perform the search operation.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.7, 12/19/03&#xA;&#xA;@see Container#setFocusTraversalPolicy&#xA;@see Container#getFocusTraversalPolicy&#xA;@see Container#setFocusCycleRoot&#xA;@see Container#isFocusCycleRoot&#xA;@see Container#setFocusTraversalPolicyProvider&#xA;@see Container#isFocusTraversalPolicyProvider&#xA;@see KeyboardFocusManager#setDefaultFocusTraversalPolicy&#xA;@see KeyboardFocusManager#getDefaultFocusTraversalPolicy&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_371419_7007"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_788523_6987" name="Dialog">
            <ownedComment xmi:id="_10_5_622020d_1132928306407_625904_4178" body="A Dialog is a top-level window with a title and a border&#xA;that is typically used to take some form of input from the user.&#xA;&#xA;The size of the dialog includes any area designated for the&#xA;border.  The dimensions of the border area can be obtained&#xA;using the &lt;code>getInsets&lt;/code> method, however, since&#xA;these dimensions are platform-dependent, a valid insets&#xA;value cannot be obtained until the dialog is made displayable&#xA;by either calling &lt;code>pack&lt;/code> or &lt;code>show&lt;/code>.&#xA;Since the border area is included in the overall size of the&#xA;dialog, the border effectively obscures a portion of the dialog,&#xA;constraining the area available for rendering and/or displaying&#xA;subcomponents to the rectangle which has an upper-left corner&#xA;location of &lt;code>(insets.left, insets.top)&lt;/code>, and has a size of&#xA;&lt;code>width - (insets.left + insets.right)&lt;/code> by&#xA;&lt;code>height - (insets.top + insets.bottom)&lt;/code>.&#xA;&lt;p>&#xA;The default layout for a dialog is &lt;code>BorderLayout&lt;/code>.&#xA;&lt;p>&#xA;A dialog may have its native decorations (i.e. Frame &amp; Titlebar) turned off&#xA;with &lt;code>setUndecorated&lt;/code>.  This can only be done while the dialog&#xA;is not {@link Component#isDisplayable() displayable}.&#xA;&lt;p>&#xA;A dialog must have either a frame or another dialog defined as its&#xA;owner when it's constructed.  When the owner window of a visible dialog&#xA;is minimized, the dialog will automatically be hidden&#xA;from the user. When the owner window is subsequently restored,&#xA;the dialog is made visible to the user again.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>Dialog&lt;/code>&#xA;on a different screen device than its owner.  See {@link java.awt.Frame} for&#xA;more information.&#xA;&lt;p>&#xA;A dialog can be either modeless (the default) or modal.  A modal&#xA;dialog is one which blocks input to all other toplevel windows&#xA;in the application, except for any windows created with the dialog&#xA;as their owner.&#xA;&lt;p>&#xA;Dialogs are capable of generating the following&#xA;&lt;code>WindowEvents&lt;/code>:&#xA;&lt;code>WindowOpened&lt;/code>, &lt;code>WindowClosing&lt;/code>,&#xA;&lt;code>WindowClosed&lt;/code>, &lt;code>WindowActivated&lt;/code>,&#xA;&lt;code>WindowDeactivated&lt;/code>, &lt;code>WindowGainedFocus&lt;/code>,&#xA;&lt;code>WindowLostFocus&lt;/code>.&#xA;&#xA;@see WindowEvent&#xA;@see Window#addWindowListener&#xA;&#xA;@version &#x9;1.99, 05/18/04&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_788523_6987"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_125799_13221" isSubstitutable="true" general="_9_5_f720368_1110473546596_890326_7145"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_457605_16974" name="WakingRunnable" visibility="package" clientDependency="_10_5_622020d_1132928321358_26722_13222" isLeaf="true">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321358_26722_13222" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473547378_457605_16974" contract="_9_5_f720368_1110473546612_953158_7669"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547378_132383_16976" name="AccessibleAWTDialog" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306407_323772_4176" body="This class implements accessibility support for the&#xA;&lt;code>Dialog&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to dialog user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547378_132383_16976"/>
              <generalization xmi:id="_10_5_622020d_1132928321358_864373_13223" isSubstitutable="true" general="_9_5_f720368_1110473547424_716093_17151"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_157749_6969" name="Composite" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306387_236444_4153" body="The &lt;code>Composite&lt;/code> interface, along with&#xA;{@link CompositeContext}, defines the methods to compose a draw&#xA;primitive with the underlying graphics area.&#xA;After the &lt;code>Composite&lt;/code> is set in the&#xA;{@link Graphics2D} context, it combines a shape, text, or an image&#xA;being rendered with the colors that have already been rendered&#xA;according to pre-defined rules. The classes&#xA;implementing this interface provide the rules and a method to create&#xA;the context for a particular operation.&#xA;&lt;code>CompositeContext&lt;/code> is an environment used by the&#xA;compositing operation, which is created by the &lt;code>Graphics2D&lt;/code>&#xA;prior to the start of the operation.  &lt;code>CompositeContext&lt;/code>&#xA;contains private information and resources needed for a compositing&#xA;operation.  When the &lt;code>CompositeContext&lt;/code> is no longer needed,&#xA;the &lt;code>Graphics2D&lt;/code> object disposes of it in order to reclaim&#xA;resources allocated for the operation.&#xA;&lt;p>&#xA;Instances of classes implementing &lt;code>Composite&lt;/code> must be&#xA;immutable because the &lt;code>Graphics2D&lt;/code> does not clone&#xA;these objects when they are set as an attribute with the&#xA;&lt;code>setComposite&lt;/code> method or when the &lt;code>Graphics2D&lt;/code>&#xA;object is cloned.  This is to avoid undefined rendering behavior of&#xA;&lt;code>Graphics2D&lt;/code>, resulting from the modification of&#xA;the &lt;code>Composite&lt;/code> object after it has been set in the&#xA;&lt;code>Graphics2D&lt;/code> context.&#xA;&lt;p>&#xA;Since this interface must expose the contents of pixels on the&#xA;target device or image to potentially arbitrary code, the use of&#xA;custom objects which implement this interface when rendering directly&#xA;to a screen device is governed by the &lt;code>readDisplayPixels&lt;/code>&#xA;{@link AWTPermission}.  The permission check will occur when such&#xA;a custom object is passed to the &lt;code>setComposite&lt;/code> method&#xA;of a &lt;code>Graphics2D&lt;/code> retrieved from a {@link Component}.&#xA;@see AlphaComposite&#xA;@see CompositeContext&#xA;@see Graphics2D#setComposite&#xA;@version 10 Feb 1997&#xA;" annotatedElement="_9_5_f720368_1110473546581_157749_6969"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_3616_6983" name="DefaultFocusTraversalPolicy">
            <ownedComment xmi:id="_10_5_622020d_1132928306397_310095_4172" body="A FocusTraversalPolicy that determines traversal order based on the order&#xA;of child Components in a Container. From a particular focus cycle root, the&#xA;policy makes a pre-order traversal of the Component hierarchy, and traverses&#xA;a Container's children according to the ordering of the array returned by&#xA;&lt;code>Container.getComponents()&lt;/code>. Portions of the hierarchy that are&#xA;not visible and displayable will not be searched.&#xA;&lt;p>&#xA;If client code has explicitly set the focusability of a Component by either&#xA;overriding &lt;code>Component.isFocusTraversable()&lt;/code> or&#xA;&lt;code>Component.isFocusable()&lt;/code>, or by calling&#xA;&lt;code>Component.setFocusable()&lt;/code>, then a DefaultFocusTraversalPolicy&#xA;behaves exactly like a ContainerOrderFocusTraversalPolicy. If, however, the&#xA;Component is relying on default focusability, then a&#xA;DefaultFocusTraversalPolicy will reject all Components with non-focusable&#xA;peers. This is the default FocusTraversalPolicy for all AWT Containers.&#xA;&lt;p>&#xA;The focusability of a peer is implementation-dependent. Sun recommends that&#xA;all implementations for a particular native platform construct peers with&#xA;the same focusability. The recommendations for Windows and Unix are that&#xA;Canvases, Labels, Panels, Scrollbars, ScrollPanes, Windows, and lightweight&#xA;Components have non-focusable peers, and all other Components have focusable&#xA;peers. These recommendations are used in the Sun AWT implementations. Note&#xA;that the focusability of a Component's peer is different from, and does not&#xA;impact, the focusability of the Component itself.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.5, 12/19/03&#xA;&#xA;@see Container#getComponents&#xA;@see Component#isFocusable&#xA;@see Component#setFocusable&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546581_3616_6983"/>
            <generalization xmi:id="_10_5_622020d_1132928321358_90340_13218" isSubstitutable="true" general="_9_5_f720368_1110473546581_886528_6979"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306697_770441_4287" name="MouseInfo">
            <ownedComment xmi:id="_10_5_622020d_1132928306697_452171_4289" body="&lt;code>MouseInfo&lt;/code>  provides methods for getting information about the mouse,&#xA;such as mouse pointer location and the number of mouse buttons.&#xA;&#xA;@version    1.2, 12/19/03&#xA;@author     Roman Poborchiy&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928306697_770441_4287"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_23258_7009" name="Font" clientDependency="_10_5_622020d_1132928321368_944602_13233">
            <ownedComment xmi:id="_10_5_622020d_1132928306437_624128_4200" body="The &lt;code>Font&lt;/code> class represents fonts, which are used to&#xA;render text in a visible way.&#xA;A font provides the information needed to map sequences of&#xA;&lt;em>characters&lt;/em> to sequences of &lt;em>glyphs&lt;/em>&#xA;and to render sequences of glyphs on &lt;code>Graphics&lt;/code> and&#xA;&lt;code>Component&lt;/code> objects.&#xA;&#xA;&lt;h4>Characters and Glyphs&lt;/h4>&#xA;&#xA;A &lt;em>character&lt;/em> is a symbol that represents an item such as a letter,&#xA;a digit, or punctuation in an abstract way. For example, &lt;code>'g'&lt;/code>,&#xA;&lt;font size=-1>LATIN SMALL LETTER G&lt;/font>, is a character.&#xA;&lt;p>&#xA;A &lt;em>glyph&lt;/em> is a shape used to render a character or a sequence of&#xA;characters. In simple writing systems, such as Latin, typically one glyph&#xA;represents one character. In general, however, characters and glyphs do not&#xA;have one-to-one correspondence. For example, the character '&amp;aacute;'&#xA;&lt;font size=-1>LATIN SMALL LETTER A WITH ACUTE&lt;/font>, can be represented by&#xA;two glyphs: one for 'a' and one for '&amp;acute;'. On the other hand, the&#xA;two-character string &quot;fi&quot; can be represented by a single glyph, an&#xA;&quot;fi&quot; ligature. In complex writing systems, such as Arabic or the South&#xA;and South-East Asian writing systems, the relationship between characters&#xA;and glyphs can be more complicated and involve context-dependent selection&#xA;of glyphs as well as glyph reordering.&#xA;&#xA;A font encapsulates the collection of glyphs needed to render a selected set&#xA;of characters as well as the tables needed to map sequences of characters to&#xA;corresponding sequences of glyphs.&#xA;&#xA;&lt;h4>Physical and Logical Fonts&lt;/h4>&#xA;&#xA;The Java 2 platform distinguishes between two kinds of fonts:&#xA;&lt;em>physical&lt;/em> fonts and &lt;em>logical&lt;/em> fonts.&#xA;&lt;p>&#xA;&lt;em>Physical&lt;/em> fonts are the actual font libraries containing glyph data&#xA;and tables to map from character sequences to glyph sequences, using a font&#xA;technology such as TrueType or PostScript Type 1.&#xA;All implementations of the Java 2 platform must support TrueType fonts;&#xA;support for other font technologies is implementation dependent.&#xA;Physical fonts may use names such as Helvetica, Palatino, HonMincho, or&#xA;any number of other font names.&#xA;Typically, each physical font supports only a limited set of writing&#xA;systems, for example, only Latin characters or only Japanese and Basic&#xA;Latin.&#xA;The set of available physical fonts varies between configurations.&#xA;Applications that require specific fonts can bundle them and instantiate&#xA;them using the {@link #createFont createFont} method.&#xA;&lt;p>&#xA;&lt;em>Logical&lt;/em> fonts are the five font families defined by the Java&#xA;platform which must be supported by any Java runtime environment:&#xA;Serif, SansSerif, Monospaced, Dialog, and DialogInput.&#xA;These logical fonts are not actual font libraries. Instead, the logical&#xA;font names are mapped to physical fonts by the Java runtime environment.&#xA;The mapping is implementation and usually locale dependent, so the look&#xA;and the metrics provided by them vary.&#xA;Typically, each logical font name maps to several physical fonts in order to&#xA;cover a large range of characters.&#xA;&lt;p>&#xA;Peered AWT components, such as {@link Label Label} and&#xA;{@link TextField TextField}, can only use logical fonts.&#xA;&lt;p>&#xA;For a discussion of the relative advantages and disadvantages of using&#xA;physical or logical fonts, see the&#xA;&lt;a href=&quot;http://java.sun.com/j2se/corejava/intl/reference/faqs/index.html#desktop-rendering&quot;>Internationalization FAQ&lt;/a>&#xA;document.&#xA;&#xA;&lt;h4>Font Faces and Names&lt;/h4>&#xA;&#xA;A &lt;code>Font&lt;/code>&#xA;can have many faces, such as heavy, medium, oblique, gothic and&#xA;regular. All of these faces have similar typographic design.&#xA;&lt;p>&#xA;There are three different names that you can get from a&#xA;&lt;code>Font&lt;/code> object.  The &lt;em>logical font name&lt;/em> is simply the&#xA;name that was used to construct the font.&#xA;The &lt;em>font face name&lt;/em>, or just &lt;em>font name&lt;/em> for&#xA;short, is the name of a particular font face, like Helvetica Bold. The&#xA;&lt;em>family name&lt;/em> is the name of the font family that determines the&#xA;typographic design across several faces, like Helvetica.&#xA;&lt;p>&#xA;The &lt;code>Font&lt;/code> class represents an instance of a font face from&#xA;a collection of  font faces that are present in the system resources&#xA;of the host system.  As examples, Arial Bold and Courier Bold Italic&#xA;are font faces.  There can be several &lt;code>Font&lt;/code> objects&#xA;associated with a font face, each differing in size, style, transform&#xA;and font features.&#xA;The {@link GraphicsEnvironment#getAllFonts() getAllFonts} method&#xA;of the &lt;code>GraphicsEnvironment&lt;/code> class returns an&#xA;array of all font faces available in the system. These font faces are&#xA;returned as &lt;code>Font&lt;/code> objects with a size of 1, identity&#xA;transform and default font features. These&#xA;base fonts can then be used to derive new &lt;code>Font&lt;/code> objects&#xA;with varying sizes, styles, transforms and font features via the&#xA;&lt;code>deriveFont&lt;/code> methods in this class.&#xA;&#xA;@version &#x9;1.200, 07/20/04&#xA;" annotatedElement="_9_5_f720368_1110473546581_23258_7009"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_944602_13233" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_23258_7009" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_151374_16989" name="Key" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_946202_7023" name="Graphics2D" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306577_347125_4214" body="This &lt;code>Graphics2D&lt;/code> class extends the&#xA;{@link Graphics} class to provide more sophisticated&#xA;control over geometry, coordinate transformations, color management,&#xA;and text layout.  This is the fundamental class for rendering&#xA;2-dimensional shapes, text and images on the  Java(tm) platform.&#xA;&lt;p>&#xA;&lt;h2>Coordinate Spaces&lt;/h2>&#xA;All coordinates passed to a &lt;code>Graphics2D&lt;/code> object are specified&#xA;in a device-independent coordinate system called User Space, which is&#xA;used by applications.  The &lt;code>Graphics2D&lt;/code> object contains&#xA;an {@link AffineTransform} object as part of its rendering state&#xA;that defines how to convert coordinates from user space to&#xA;device-dependent coordinates in Device Space.&#xA;&lt;p>&#xA;Coordinates in device space usually refer to individual device pixels&#xA;and are aligned on the infinitely thin gaps between these pixels.&#xA;Some &lt;code>Graphics2D&lt;/code> objects can be used to capture rendering&#xA;operations for storage into a graphics metafile for playback on a&#xA;concrete device of unknown physical resolution at a later time.  Since&#xA;the resolution might not be known when the rendering operations are&#xA;captured, the &lt;code>Graphics2D&lt;/code> &lt;code>Transform&lt;/code> is set up&#xA;to transform user coordinates to a virtual device space that&#xA;approximates the expected resolution of the target device. Further&#xA;transformations might need to be applied at playback time if the&#xA;estimate is incorrect.&#xA;&lt;p>&#xA;Some of the operations performed by the rendering attribute objects&#xA;occur in the device space, but all &lt;code>Graphics2D&lt;/code> methods take&#xA;user space coordinates.&#xA;&lt;p>&#xA;Every &lt;code>Graphics2D&lt;/code> object is associated with a target that&#xA;defines where rendering takes place. A&#xA;{@link GraphicsConfiguration} object defines the characteristics&#xA;of the rendering target, such as pixel format and resolution.&#xA;The same rendering target is used throughout the life of a&#xA;&lt;code>Graphics2D&lt;/code> object.&#xA;&lt;p>&#xA;When creating a &lt;code>Graphics2D&lt;/code> object,  the&#xA;&lt;code>GraphicsConfiguration&lt;/code>&#xA;specifies the &lt;a name=&quot;#deftransform&quot;>default transform&lt;/a> for&#xA;the target of the &lt;code>Graphics2D&lt;/code> (a&#xA;{@link Component} or {@link Image}).  This default transform maps the&#xA;user space coordinate system to screen and printer device coordinates&#xA;such that the origin maps to the upper left hand corner of the&#xA;target region of the device with increasing X coordinates extending&#xA;to the right and increasing Y coordinates extending downward.&#xA;The scaling of the default transform is set to identity for those devices&#xA;that are close to 72 dpi, such as screen devices.&#xA;The scaling of the default transform is set to approximately 72 user&#xA;space coordinates per square inch for high resolution devices, such as&#xA;printers.  For image buffers, the default transform is the&#xA;&lt;code>Identity&lt;/code> transform.&#xA;&#xA;&lt;h2>Rendering Process&lt;/h2>&#xA;The Rendering Process can be broken down into four phases that are&#xA;controlled by the &lt;code>Graphics2D&lt;/code> rendering attributes.&#xA;The renderer can optimize many of these steps, either by caching the&#xA;results for future calls, by collapsing multiple virtual steps into&#xA;a single operation, or by recognizing various attributes as common&#xA;simple cases that can be eliminated by modifying other parts of the&#xA;operation.&#xA;&lt;p>&#xA;The steps in the rendering process are:&#xA;&lt;ol>&#xA;&lt;li>&#xA;Determine what to render.&#xA;&lt;li>&#xA;Constrain the rendering operation to the current &lt;code>Clip&lt;/code>.&#xA;The &lt;code>Clip&lt;/code> is specified by a {@link Shape} in user&#xA;space and is controlled by the program using the various clip&#xA;manipulation methods of &lt;code>Graphics&lt;/code> and&#xA;&lt;code>Graphics2D&lt;/code>.  This &lt;i>user clip&lt;/i>&#xA;is transformed into device space by the current&#xA;&lt;code>Transform&lt;/code> and combined with the&#xA;&lt;i>device clip&lt;/i>, which is defined by the visibility of windows and&#xA;device extents.  The combination of the user clip and device clip&#xA;defines the &lt;i>composite clip&lt;/i>, which determines the final clipping&#xA;region.  The user clip is not modified by the rendering&#xA;system to reflect the resulting composite clip.&#xA;&lt;li>&#xA;Determine what colors to render.&#xA;&lt;li>&#xA;Apply the colors to the destination drawing surface using the current&#xA;{@link Composite} attribute in the &lt;code>Graphics2D&lt;/code> context.&#xA;&lt;/ol>&#xA;&lt;br>&#xA;The three types of rendering operations, along with details of each&#xA;of their particular rendering processes are:&#xA;&lt;ol>&#xA;&lt;li>&#xA;&lt;b>&lt;a name=&quot;rendershape&quot;>&lt;code>Shape&lt;/code> operations&lt;/a>&lt;/b>&#xA;&lt;ol>&#xA;&lt;li>&#xA;If the operation is a &lt;code>draw(Shape)&lt;/code> operation, then&#xA;the  {@link Stroke#createStrokedShape(Shape) createStrokedShape}&#xA;method on the current {@link Stroke} attribute in the&#xA;&lt;code>Graphics2D&lt;/code> context is used to construct a new&#xA;&lt;code>Shape&lt;/code> object that contains the outline of the specified&#xA;&lt;code>Shape&lt;/code>.&#xA;&lt;li>&#xA;The &lt;code>Shape&lt;/code> is transformed from user space to device space&#xA;using the current &lt;code>Transform&lt;/code>&#xA;in the &lt;code>Graphics2D&lt;/code> context.&#xA;&lt;li>&#xA;The outline of the &lt;code>Shape&lt;/code> is extracted using the&#xA;{@link Shape#getPathIterator(AffineTransform) getPathIterator} method of&#xA;&lt;code>Shape&lt;/code>, which returns a&#xA;{@link java.awt.geom.PathIterator PathIterator}&#xA;object that iterates along the boundary of the &lt;code>Shape&lt;/code>.&#xA;&lt;li>&#xA;If the &lt;code>Graphics2D&lt;/code> object cannot handle the curved segments&#xA;that the &lt;code>PathIterator&lt;/code> object returns then it can call the&#xA;alternate&#xA;{@link Shape#getPathIterator(AffineTransform, double) getPathIterator}&#xA;method of &lt;code>Shape&lt;/code>, which flattens the &lt;code>Shape&lt;/code>.&#xA;&lt;li>&#xA;The current {@link Paint} in the &lt;code>Graphics2D&lt;/code> context&#xA;is queried for a {@link PaintContext}, which specifies the&#xA;colors to render in device space.&#xA;&lt;/ol>&#xA;&lt;li>&#xA;&lt;b>&lt;a name=rendertext>Text operations&lt;/a>&lt;/b>&#xA;&lt;ol>&#xA;&lt;li>&#xA;The following steps are used to determine the set of glyphs required&#xA;to render the indicated &lt;code>String&lt;/code>:&#xA;&lt;ol>&#xA;&lt;li>&#xA;If the argument is a &lt;code>String&lt;/code>, then the current&#xA;&lt;code>Font&lt;/code> in the &lt;code>Graphics2D&lt;/code> context is asked to&#xA;convert the Unicode characters in the &lt;code>String&lt;/code> into a set of&#xA;glyphs for presentation with whatever basic layout and shaping&#xA;algorithms the font implements.&#xA;&lt;li>&#xA;If the argument is an&#xA;{@link AttributedCharacterIterator},&#xA;the iterator is asked to convert itself to a&#xA;{@link java.awt.font.TextLayout TextLayout}&#xA;using its embedded font attributes. The &lt;code>TextLayout&lt;/code>&#xA;implements more sophisticated glyph layout algorithms that&#xA;perform Unicode bi-directional layout adjustments automatically&#xA;for multiple fonts of differing writing directions.&#xA;&lt;li>&#xA;If the argument is a&#xA;{@link GlyphVector}, then the&#xA;&lt;code>GlyphVector&lt;/code> object already contains the appropriate&#xA;font-specific glyph codes with explicit coordinates for the position of&#xA;each glyph.&#xA;&lt;/ol>&#xA;&lt;li>&#xA;The current &lt;code>Font&lt;/code> is queried to obtain outlines for the&#xA;indicated glyphs.  These outlines are treated as shapes in user space&#xA;relative to the position of each glyph that was determined in step 1.&#xA;&lt;li>&#xA;The character outlines are filled as indicated above&#xA;under &lt;a href=&quot;#rendershape&quot;>&lt;code>Shape&lt;/code> operations&lt;/a>.&#xA;&lt;li>&#xA;The current &lt;code>Paint&lt;/code> is queried for a&#xA;&lt;code>PaintContext&lt;/code>, which specifies&#xA;the colors to render in device space.&#xA;&lt;/ol>&#xA;&lt;li>&#xA;&lt;b>&lt;a name= renderingimage>&lt;code>Image&lt;/code> Operations&lt;/a>&lt;/b>&#xA;&lt;ol>&#xA;&lt;li>&#xA;The region of interest is defined by the bounding box of the source&#xA;&lt;code>Image&lt;/code>.&#xA;This bounding box is specified in Image Space, which is the&#xA;&lt;code>Image&lt;/code> object's local coordinate system.&#xA;&lt;li>&#xA;If an &lt;code>AffineTransform&lt;/code> is passed to&#xA;{@link #drawImage(java.awt.Image, java.awt.geom.AffineTransform, java.awt.image.ImageObserver) drawImage(Image, AffineTransform, ImageObserver)},&#xA;the &lt;code>AffineTransform&lt;/code> is used to transform the bounding&#xA;box from image space to user space. If no &lt;code>AffineTransform&lt;/code>&#xA;is supplied, the bounding box is treated as if it is already in user space.&#xA;&lt;li>&#xA;The bounding box of the source &lt;code>Image&lt;/code> is transformed from user&#xA;space into device space using the current &lt;code>Transform&lt;/code>.&#xA;Note that the result of transforming the bounding box does not&#xA;necessarily result in a rectangular region in device space.&#xA;&lt;li>&#xA;The &lt;code>Image&lt;/code> object determines what colors to render,&#xA;sampled according to the source to destination&#xA;coordinate mapping specified by the current &lt;code>Transform&lt;/code> and the&#xA;optional image transform.&#xA;&lt;/ol>&#xA;&lt;/ol>&#xA;&#xA;&lt;h2>Default Rendering Attributes&lt;/h2>&#xA;The default values for the &lt;code>Graphics2D&lt;/code> rendering attributes are:&#xA;&lt;dl compact>&#xA;&lt;dt>&lt;i>&lt;code>Paint&lt;/code>&lt;/i>&#xA;&lt;dd>The color of the &lt;code>Component&lt;/code>.&#xA;&lt;dt>&lt;i>&lt;code>Font&lt;/code>&lt;/i>&#xA;&lt;dd>The &lt;code>Font&lt;/code> of the &lt;code>Component&lt;/code>.&#xA;&lt;dt>&lt;i>&lt;code>Stroke&lt;/code>&lt;/i>&#xA;&lt;dd>A square pen with a linewidth of 1, no dashing, miter segment joins&#xA;and square end caps.&#xA;&lt;dt>&lt;i>&lt;code>Transform&lt;/code>&lt;/i>&#xA;&lt;dd>The&#xA;{@link GraphicsConfiguration#getDefaultTransform() getDefaultTransform}&#xA;for the &lt;code>GraphicsConfiguration&lt;/code> of the &lt;code>Component&lt;/code>.&#xA;&lt;dt>&lt;i>&lt;code>Composite&lt;/code>&lt;/i>&#xA;&lt;dd>The {@link AlphaComposite#SRC_OVER} rule.&#xA;&lt;dt>&lt;i>&lt;code>Clip&lt;/code>&lt;/i>&#xA;&lt;dd>No rendering &lt;code>Clip&lt;/code>, the output is clipped to the&#xA;&lt;code>Component&lt;/code>.&#xA;&lt;/dl>&#xA;&#xA;&lt;h2>Rendering Compatibility Issues&lt;/h2>&#xA;The JDK(tm) 1.1 rendering model is based on a pixelization model&#xA;that specifies that coordinates&#xA;are infinitely thin, lying between the pixels.  Drawing operations are&#xA;performed using a one-pixel wide pen that fills the&#xA;pixel below and to the right of the anchor point on the path.&#xA;The JDK 1.1 rendering model is consistent with the&#xA;capabilities of most of the existing class of platform&#xA;renderers that need  to resolve integer coordinates to a&#xA;discrete pen that must fall completely on a specified number of pixels.&#xA;&lt;p>&#xA;The Java 2D(tm) (Java(tm) 2 platform) API supports antialiasing renderers.&#xA;A pen with a width of one pixel does not need to fall&#xA;completely on pixel N as opposed to pixel N+1.  The pen can fall&#xA;partially on both pixels. It is not necessary to choose a bias&#xA;direction for a wide pen since the blending that occurs along the&#xA;pen traversal edges makes the sub-pixel position of the pen&#xA;visible to the user.  On the other hand, when antialiasing is&#xA;turned off by setting the&#xA;{@link RenderingHints#KEY_ANTIALIASING KEY_ANTIALIASING} hint key&#xA;to the&#xA;{@link RenderingHints#VALUE_ANTIALIAS_OFF VALUE_ANTIALIAS_OFF}&#xA;hint value, the renderer might need&#xA;to apply a bias to determine which pixel to modify when the pen&#xA;is straddling a pixel boundary, such as when it is drawn&#xA;along an integer coordinate in device space.  While the capabilities&#xA;of an antialiasing renderer make it no longer necessary for the&#xA;rendering model to specify a bias for the pen, it is desirable for the&#xA;antialiasing and non-antialiasing renderers to perform similarly for&#xA;the common cases of drawing one-pixel wide horizontal and vertical&#xA;lines on the screen.  To ensure that turning on antialiasing by&#xA;setting the&#xA;{@link RenderingHints#KEY_ANTIALIASING KEY_ANTIALIASING} hint&#xA;key to&#xA;{@link RenderingHints#VALUE_ANTIALIAS_ON VALUE_ANTIALIAS_ON}&#xA;does not cause such lines to suddenly become twice as wide and half&#xA;as opaque, it is desirable to have the model specify a path for such&#xA;lines so that they completely cover a particular set of pixels to help&#xA;increase their crispness.&#xA;&lt;p>&#xA;Java 2D API maintains compatibility with JDK 1.1 rendering&#xA;behavior, such that legacy operations and existing renderer&#xA;behavior is unchanged under Java 2D API.  Legacy&#xA;methods that map onto general &lt;code>draw&lt;/code> and&#xA;&lt;code>fill&lt;/code> methods are defined, which clearly indicates&#xA;how &lt;code>Graphics2D&lt;/code> extends &lt;code>Graphics&lt;/code> based&#xA;on settings of &lt;code>Stroke&lt;/code> and &lt;code>Transform&lt;/code>&#xA;attributes and rendering hints.  The definition&#xA;performs identically under default attribute settings.&#xA;For example, the default &lt;code>Stroke&lt;/code> is a&#xA;&lt;code>BasicStroke&lt;/code> with a width of 1 and no dashing and the&#xA;default Transform for screen drawing is an Identity transform.&#xA;&lt;p>&#xA;The following two rules provide predictable rendering behavior whether&#xA;aliasing or antialiasing is being used.&#xA;&lt;ul>&#xA;&lt;li> Device coordinates are defined to be between device pixels which&#xA;avoids any inconsistent results between aliased and antaliased&#xA;rendering.  If coordinates were defined to be at a pixel's center, some&#xA;of the pixels covered by a shape, such as a rectangle, would only be&#xA;half covered.&#xA;With aliased rendering, the half covered pixels would either be&#xA;rendered inside the shape or outside the shape.  With anti-aliased&#xA;rendering, the pixels on the entire edge of the shape would be half&#xA;covered.  On the other hand, since coordinates are defined to be&#xA;between pixels, a shape like a rectangle would have no half covered&#xA;pixels, whether or not it is rendered using antialiasing.&#xA;&lt;li> Lines and paths stroked using the &lt;code>BasicStroke&lt;/code>&#xA;object may be &quot;normalized&quot; to provide consistent rendering of the&#xA;outlines when positioned at various points on the drawable and&#xA;whether drawn with aliased or antialiased rendering.  This&#xA;normalization process is controlled by the&#xA;{@link RenderingHints#KEY_STROKE_CONTROL KEY_STROKE_CONTROL} hint.&#xA;The exact normalization algorithm is not specified, but the goals&#xA;of this normalization are to ensure that lines are rendered with&#xA;consistent visual appearance regardless of how they fall on the&#xA;pixel grid and to promote more solid horizontal and vertical&#xA;lines in antialiased mode so that they resemble their non-antialiased&#xA;counterparts more closely.  A typical normalization step might&#xA;promote antialiased line endpoints to pixel centers to reduce the&#xA;amount of blending or adjust the subpixel positioning of&#xA;non-antialiased lines so that the floating point line widths&#xA;round to even or odd pixel counts with equal likelihood.  This&#xA;process can move endpoints by up to half a pixel (usually towards&#xA;positive infinity along both axes) to promote these consistent&#xA;results.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The following definitions of general legacy methods&#xA;perform identically to previously specified behavior under default&#xA;attribute settings:&#xA;&lt;ul>&#xA;&lt;li>&#xA;For &lt;code>fill&lt;/code> operations, including &lt;code>fillRect&lt;/code>,&#xA;&lt;code>fillRoundRect&lt;/code>, &lt;code>fillOval&lt;/code>,&#xA;&lt;code>fillArc&lt;/code>, &lt;code>fillPolygon&lt;/code>, and&#xA;&lt;code>clearRect&lt;/code>, {@link #fill(Shape) fill} can now be called&#xA;with the desired &lt;code>Shape&lt;/code>.  For example, when filling a&#xA;rectangle:&#xA;&lt;pre>&#xA;fill(new Rectangle(x, y, w, h));&#xA;&lt;/pre>&#xA;is called.&#xA;&lt;p>&#xA;&lt;li>&#xA;Similarly, for draw operations, including &lt;code>drawLine&lt;/code>,&#xA;&lt;code>drawRect&lt;/code>, &lt;code>drawRoundRect&lt;/code>,&#xA;&lt;code>drawOval&lt;/code>, &lt;code>drawArc&lt;/code>, &lt;code>drawPolyline&lt;/code>,&#xA;and &lt;code>drawPolygon&lt;/code>, {@link #draw(Shape) draw} can now be&#xA;called with the desired &lt;code>Shape&lt;/code>.  For example, when drawing a&#xA;rectangle:&#xA;&lt;pre>&#xA;draw(new Rectangle(x, y, w, h));&#xA;&lt;/pre>&#xA;is called.&#xA;&lt;p>&#xA;&lt;li>&#xA;The &lt;code>draw3DRect&lt;/code> and &lt;code>fill3DRect&lt;/code> methods were&#xA;implemented in terms of the &lt;code>drawLine&lt;/code> and&#xA;&lt;code>fillRect&lt;/code> methods in the &lt;code>Graphics&lt;/code> class which&#xA;would predicate their behavior upon the current &lt;code>Stroke&lt;/code>&#xA;and &lt;code>Paint&lt;/code> objects in a &lt;code>Graphics2D&lt;/code> context.&#xA;This class overrides those implementations with versions that use&#xA;the current &lt;code>Color&lt;/code> exclusively, overriding the current&#xA;&lt;code>Paint&lt;/code> and which uses &lt;code>fillRect&lt;/code> to describe&#xA;the exact same behavior as the preexisting methods regardless of the&#xA;setting of the current &lt;code>Stroke&lt;/code>.&#xA;&lt;/ul>&#xA;The &lt;code>Graphics&lt;/code> class defines only the &lt;code>setColor&lt;/code>&#xA;method to control the color to be painted.  Since the Java 2D API extends&#xA;the &lt;code>Color&lt;/code> object to implement the new &lt;code>Paint&lt;/code>&#xA;interface, the existing&#xA;&lt;code>setColor&lt;/code> method is now a convenience method for setting the&#xA;current &lt;code>Paint&lt;/code> attribute to a &lt;code>Color&lt;/code> object.&#xA;&lt;code>setColor(c)&lt;/code> is equivalent to &lt;code>setPaint(c)&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>Graphics&lt;/code> class defines two methods for controlling&#xA;how colors are applied to the destination.&#xA;&lt;ol>&#xA;&lt;li>&#xA;The &lt;code>setPaintMode&lt;/code> method is implemented as a convenience&#xA;method to set the default &lt;code>Composite&lt;/code>, equivalent to&#xA;&lt;code>setComposite(new AlphaComposite.SrcOver)&lt;/code>.&#xA;&lt;li>&#xA;The &lt;code>setXORMode(Color xorcolor)&lt;/code> method is implemented&#xA;as a convenience method to set a special &lt;code>Composite&lt;/code> object that&#xA;ignores the &lt;code>Alpha&lt;/code> components of source colors and sets the&#xA;destination color to the value:&#xA;&lt;pre>&#xA;dstpixel = (PixelOf(srccolor) ^ PixelOf(xorcolor) ^ dstpixel);&#xA;&lt;/pre>&#xA;&lt;/ol>&#xA;&#xA;@version &#x9;1.81, 05/05/04&#xA;@author Jim Graham&#xA;@see java.awt.RenderingHints&#xA;" annotatedElement="_9_5_f720368_1110473546581_946202_7023"/>
            <generalization xmi:id="_10_5_622020d_1132928321368_259856_13241" isSubstitutable="true" general="_9_5_f720368_1110473546581_175096_7021"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_177251_7141" name="Toolkit" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306767_475413_4357" body="This class is the abstract superclass of all actual&#xA;implementations of the Abstract Window Toolkit. Subclasses of&#xA;&lt;code>Toolkit&lt;/code> are used to bind the various components&#xA;to particular native toolkit implementations.&#xA;&lt;p>&#xA;Many GUI operations may be performed asynchronously.  This&#xA;means that if you set the state of a component, and then&#xA;immediately query the state, the returned value may not yet&#xA;reflect the requested change.  This includes, but is not&#xA;limited to:&#xA;&lt;ul>&#xA;&lt;li>Scrolling to a specified position.&#xA;&lt;br>For example, calling &lt;code>ScrollPane.setScrollPosition&lt;/code>&#xA;and then &lt;code>getScrollPosition&lt;/code> may return an incorrect&#xA;value if the original request has not yet been processed.&#xA;&lt;p>&#xA;&lt;li>Moving the focus from one component to another.&#xA;&lt;br>For more information, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html#transferTiming&quot;>Timing&#xA;Focus Transfers&lt;/a>, a section in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/&quot;>The Swing&#xA;Tutorial&lt;/a>.&#xA;&lt;p>&#xA;&lt;li>Making a top-level container visible.&#xA;&lt;br>Calling &lt;code>setVisible(true)&lt;/code> on a &lt;code>Window&lt;/code>,&#xA;&lt;code>Frame&lt;/code> or &lt;code>Dialog&lt;/code> may occur&#xA;asynchronously.&#xA;&lt;p>&#xA;&lt;li>Setting the size or location of a top-level container.&#xA;&lt;br>Calls to &lt;code>setSize&lt;/code>, &lt;code>setBounds&lt;/code> or&#xA;&lt;code>setLocation&lt;/code> on a &lt;code>Window&lt;/code>,&#xA;&lt;code>Frame&lt;/code> or &lt;code>Dialog&lt;/code> are forwarded&#xA;to the underlying window management system and may be&#xA;ignored or modified.  See {@link java.awt.Window} for&#xA;more information.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Most applications should not call any of the methods in this&#xA;class directly. The methods defined by &lt;code>Toolkit&lt;/code> are&#xA;the &quot;glue&quot; that joins the platform-independent classes in the&#xA;&lt;code>java.awt&lt;/code> package with their counterparts in&#xA;&lt;code>java.awt.peer&lt;/code>. Some methods defined by&#xA;&lt;code>Toolkit&lt;/code> query the native operating system directly.&#xA;&#xA;@version &#x9;1.203, 12/19/03&#xA;@author&#x9;Sami Shaio&#xA;@author&#x9;Arthur van Hoff&#xA;@author&#x9;Fred Ecks&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_177251_7141"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_2946_17146" name="ToolkitEventMulticaster" visibility="private" clientDependency="_10_5_622020d_1132928321498_445134_13370">
              <generalization xmi:id="_10_5_622020d_1132928321498_687478_13371" isSubstitutable="true" general="_9_5_f720368_1110473546581_19052_6933"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321498_445134_13370" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_9_5_f720368_1110473547424_2946_17146" contract="_9_5_f720368_1110473546565_967678_6541"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547424_539049_17148" name="SelectiveAWTEventListener" visibility="private" clientDependency="_10_5_622020d_1132928321508_175748_13372">
              <interfaceRealization xmi:id="_10_5_622020d_1132928321508_175748_13372" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_9_5_f720368_1110473547424_539049_17148" contract="_9_5_f720368_1110473546565_967678_6541"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_19052_6933" name="AWTEventMulticaster" clientDependency="_10_5_622020d_1132928321298_958350_13143 _10_5_622020d_1132928321298_763962_13141 _10_5_622020d_1132928321308_981960_13147 _10_5_622020d_1132928321298_782296_13142 _10_5_622020d_1132928321298_684151_13136 _10_5_622020d_1132928321308_832643_13145 _10_5_622020d_1132928321298_514365_13138 _10_5_622020d_1132928321308_21021_13150 _10_5_622020d_1132928321298_52375_13137 _10_5_622020d_1132928321298_871047_13134 _10_5_622020d_1132928321298_924084_13135 _10_5_622020d_1132928321298_283853_13139 _10_5_622020d_1132928321298_421964_13140 _10_5_622020d_1132928321298_200136_13144 _10_5_622020d_1132928321308_865645_13146 _10_5_622020d_1132928321308_849483_13148 _10_5_622020d_1132928321308_194321_13149">
            <ownedComment xmi:id="_10_5_622020d_1132928306316_142686_4103" body="A class which implements efficient and thread-safe multi-cast event&#xA;dispatching for the AWT events defined in the java.awt.event package.&#xA;This class will manage an immutable structure consisting of a chain of&#xA;event listeners and will dispatch events to those listeners.  Because&#xA;the structure is immutable, it is safe to use this API to add/remove&#xA;listeners during the process of an event dispatch operation.&#xA;However, event listeners added during the process of an event dispatch&#xA;operation will not be notified of the event currently being dispatched.&#xA;&#xA;An example of how this class could be used to implement a new&#xA;component which fires &quot;action&quot; events:&#xA;&#xA;&lt;pre>&lt;code>&#xA;public myComponent extends Component {&#xA;ActionListener actionListener = null;&#xA;&#xA;public synchronized void addActionListener(ActionListener l) {&#xA;actionListener = AWTEventMulticaster.add(actionListener, l);&#xA;}&#xA;public synchronized void removeActionListener(ActionListener l) {&#xA;actionListener = AWTEventMulticaster.remove(actionListener, l);&#xA;}&#xA;public void processEvent(AWTEvent e) {&#xA;when event occurs which causes &quot;action&quot; semantic&#xA;ActionListener listener = actionListener;&#xA;if (listener != null) {&#xA;listener.actionPerformed(new ActionEvent());&#xA;}&#xA;}&#xA;}&#xA;&lt;/code>&lt;/pre>&#xA;&#xA;@author      John Rose&#xA;@author &#x9;Amy Fowler&#xA;@version &#x9;1.37, 05/05/04&#xA;@since &#x9;1.1&#xA;" annotatedElement="_9_5_f720368_1110473546581_19052_6933"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_871047_13134" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_824053_6549"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_924084_13135" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_136951_6555"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_684151_13136" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_10343_6561"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_52375_13137" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_361131_6587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_514365_13138" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_486724_6593"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_283853_13139" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_341038_6597"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_421964_13140" name="" supplier="_9_5_f720368_1110473546565_348855_6617" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_348855_6617"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_763962_13141" name="" supplier="_9_5_f720368_1110473546565_206771_6615" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_206771_6615"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_782296_13142" name="" supplier="_9_5_f720368_1110473546565_858058_6619" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_858058_6619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_958350_13143" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_106737_6535"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321298_200136_13144" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_919591_6581"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_832643_13145" name="" supplier="_9_5_f720368_1110473546565_707401_6539" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_707401_6539"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_865645_13146" name="" supplier="_9_5_f720368_1110473546565_590573_6609" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_590573_6609"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_981960_13147" name="" supplier="_9_5_f720368_1110473546565_476297_6575" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_476297_6575"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_849483_13148" name="" supplier="_9_5_f720368_1110473546565_895193_6569" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_895193_6569"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_194321_13149" name="" supplier="_9_5_f720368_1110473546565_800273_6565" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_800273_6565"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321308_21021_13150" name="" supplier="_9_5_f720368_1110473546565_462020_6601" client="_9_5_f720368_1110473546581_19052_6933" contract="_9_5_f720368_1110473546565_462020_6601"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_187052_7083" name="MenuContainer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306687_891474_4281" body="The super class of all menu related containers.&#xA;&#xA;@version &#x9;1.16, 05/18/04&#xA;@author &#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546581_187052_7083"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_577142_7005" name="FlowLayout" clientDependency="_10_5_622020d_1132928321368_614471_13232 _10_5_622020d_1132928321368_553365_13231">
            <ownedComment xmi:id="_10_5_622020d_1132928306427_232486_4196" body="A flow layout arranges components in a directional flow, much&#xA;like lines of text in a paragraph. The flow direction is&#xA;determined by the container's &lt;code>componentOrientation&lt;/code>&#xA;property and may be one of two values:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>ComponentOrientation.LEFT_TO_RIGHT&lt;/code>&#xA;&lt;li>&lt;code>ComponentOrientation.RIGHT_TO_LEFT&lt;/code>&#xA;&lt;/ul>&#xA;Flow layouts are typically used&#xA;to arrange buttons in a panel. It arranges buttons&#xA;horizontally until no more buttons fit on the same line.&#xA;The line alignment is determined by the &lt;code>align&lt;/code>&#xA;property. The possible values are:&#xA;&lt;ul>&#xA;&lt;li>{@link #LEFT LEFT}&#xA;&lt;li>{@link #RIGHT RIGHT}&#xA;&lt;li>{@link #CENTER CENTER}&#xA;&lt;li>{@link #LEADING LEADING}&#xA;&lt;li>{@link #TRAILING TRAILING}&#xA;&lt;/ul>&#xA;&lt;p>&#xA;For example, the following picture shows an applet using the flow&#xA;layout manager (its default layout manager) to position three buttons:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/FlowLayout-1.gif&quot;&#xA;ALT=&quot;Graphic of Layout for Three Buttons&quot;&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;Here is the code for this applet:&#xA;&lt;p>&#xA;&lt;hr>&lt;blockquote>&lt;pre>&#xA;import java.awt.*;&#xA;import java.applet.Applet;&#xA;&#xA;public class myButtons extends Applet {&#xA;Button button1, button2, button3;&#xA;public void init() {&#xA;button1 = new Button(&quot;Ok&quot;);&#xA;button2 = new Button(&quot;Open&quot;);&#xA;button3 = new Button(&quot;Close&quot;);&#xA;add(button1);&#xA;add(button2);&#xA;add(button3);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&lt;hr>&#xA;&lt;p>&#xA;A flow layout lets each component assume its natural (preferred) size.&#xA;&#xA;@version &#x9;1.52, 12/19/03&#xA;@author &#x9;Arthur van Hoff&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;@see ComponentOrientation&#xA;" annotatedElement="_9_5_f720368_1110473546581_577142_7005"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_553365_13231" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546581_577142_7005" contract="_9_5_f720368_1110473546581_587570_7065"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321368_614471_13232" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_577142_7005" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_304987_7097" name="Point" clientDependency="_10_5_622020d_1132928321408_448261_13319">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_382665_4305" body="A point representing a location in (x, y) coordinate space, specified&#xA;in integer precision.&#xA;&#xA;@version &#x9;1.38, 12/19/03&#xA;@author &#x9;Sami Shaio&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_304987_7097"/>
            <generalization xmi:id="_10_5_622020d_1132928321408_651639_13320" isSubstitutable="true" general="_9_5_f720368_1110473546565_834212_6699"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321408_448261_13319" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546581_304987_7097" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_642816_7047" name="Image" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306657_601916_4236" body="The abstract class &lt;code>Image&lt;/code> is the superclass of all&#xA;classes that represent graphical images. The image must be&#xA;obtained in a platform-specific manner.&#xA;&#xA;@version &#x9;1.39, 12/19/03&#xA;@author &#x9;Sami Shaio&#xA;@author &#x9;Arthur van Hoff&#xA;@since       JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_642816_7047"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546581_951225_6973" name="Conditional" visibility="package" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306387_837009_4157" body="Conditional is used by the EventDispatchThread's message pumps to&#xA;determine if a given pump should continue to run, or should instead exit&#xA;and yield control to the parent pump.&#xA;&#xA;@version 1.6 12/19/03&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546581_951225_6973"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_1996_7079" name="MenuBar" clientDependency="_10_5_622020d_1132928321398_847910_13294 _10_5_622020d_1132928321398_651020_13295">
            <ownedComment xmi:id="_10_5_622020d_1132928306687_954770_4276" body="The &lt;code>MenuBar&lt;/code> class encapsulates the platform's&#xA;concept of a menu bar bound to a frame. In order to associate&#xA;the menu bar with a &lt;code>Frame&lt;/code> object, call the&#xA;frame's &lt;code>setMenuBar&lt;/code> method.&#xA;&lt;p>&#xA;&lt;A NAME=&quot;mbexample&quot;>&lt;/A>&lt;!-- target for cross references -->&#xA;This is what a menu bar might look like:&#xA;&lt;p>&#xA;&lt;img src=&quot;doc-files/MenuBar-1.gif&quot;&#xA;&lt;alt=&quot;Diagram of MenuBar containing 2 menus: Examples and Options.&#xA;Examples menu is expanded showing items: Basic, Simple, Check, and More Examples.&quot;>&#xA;ALIGN=center HSPACE=10 VSPACE=7>&#xA;&lt;p>&#xA;A menu bar handles keyboard shortcuts for menu items, passing them&#xA;along to its child menus.&#xA;(Keyboard shortcuts, which are optional, provide the user with&#xA;an alternative to the mouse for invoking a menu item and the&#xA;action that is associated with it.)&#xA;Each menu item can maintain an instance of &lt;code>MenuShortcut&lt;/code>.&#xA;The &lt;code>MenuBar&lt;/code> class defines several methods,&#xA;{@link MenuBar#shortcuts} and&#xA;{@link MenuBar#getShortcutMenuItem}&#xA;that retrieve information about the shortcuts a given&#xA;menu bar is managing.&#xA;&#xA;@version 1.69, 05/18/04&#xA;@author Sami Shaio&#xA;@see        java.awt.Frame&#xA;@see        java.awt.Frame#setMenuBar(java.awt.MenuBar)&#xA;@see        java.awt.Menu&#xA;@see        java.awt.MenuItem&#xA;@see        java.awt.MenuShortcut&#xA;@since      JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546581_1996_7079"/>
            <generalization xmi:id="_10_5_622020d_1132928321398_214528_13296" isSubstitutable="true" general="_9_5_f720368_1110473546581_6748_7081"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_847910_13294" name="" supplier="_9_5_f720368_1110473546581_187052_7083" client="_9_5_f720368_1110473546581_1996_7079" contract="_9_5_f720368_1110473546581_187052_7083"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321398_651020_13295" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546581_1996_7079" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547409_764857_17070" name="AccessibleAWTMenuBar" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928306687_832520_4274" body="Inner class of MenuBar used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by menu component developers.&#xA;&lt;p>&#xA;This class implements accessibility support for the&#xA;&lt;code>MenuBar&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu bar user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473547409_764857_17070"/>
              <generalization xmi:id="_10_5_622020d_1132928321398_445892_13297" isSubstitutable="true" general="_9_5_f720368_1110473547409_476725_17073"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546581_290213_7025" name="GraphicsCallback" visibility="package" isAbstract="true">
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_786193_17001" name="PaintCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_936572_13243" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_354011_17003" name="PrintCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_622467_13244" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_554135_17005" name="PaintAllCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_125131_13245" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_301692_17007" name="PrintAllCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_441943_13246" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_67557_17009" name="PeerPaintCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_28198_13247" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_128995_17011" name="PeerPrintCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_60126_13248" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_792519_17013" name="PaintHeavyweightComponentsCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_323298_13249" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547393_841118_17015" name="PrintHeavyweightComponentsCallback" visibility="package" isLeaf="true">
              <generalization xmi:id="_10_5_622020d_1132928321368_857210_13250" isSubstitutable="true" general="_9_5_f720368_1110473546581_290213_7025"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306707_837993_4306" name="PointerInfo">
            <ownedComment xmi:id="_10_5_622020d_1132928306707_773929_4308" body="A class that describes the pointer position.&#xA;It provides the &lt;code>GraphicsDevice&lt;/code> where the&#xA;pointer is and the &lt;code>Point&lt;/code> that represents&#xA;the coordinates of the pointer.&#xA;&lt;p>&#xA;Instances of this class should be obtained via&#xA;{@link MouseInfo#getPointerInfo}.&#xA;The &lt;code>PointerInfo&lt;/code> instance is not updated dynamically&#xA;as the mouse moves. To get the updated location, you must call&#xA;{@link MouseInfo#getPointerInfo} again.&#xA;&#xA;@see MouseInfo#getPointerInfo&#xA;@version     1.2, 12/19/03&#xA;@author      Roman Poborchiy&#xA;@since       1.5&#xA;" annotatedElement="_10_5_622020d_1132928306707_837993_4306"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547799_165814_19031" name="util">
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322640_574367_15122" name="PrivateEntryIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322640_143924_15123" signature="_10_5_622020d_1132928313487_277119_7503">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322640_474456_15124" formal="_10_5_622020d_1132928313487_508706_7504" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_970212_8937" name="TimerTask" clientDependency="_10_5_622020d_1132928322630_947116_15109" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313487_787466_7492" body="A task that can be scheduled for one-time or repeated execution by a Timer.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.10, 02/19/04&#xA;@see&#x9;    Timer&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546706_970212_8937"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_947116_15109" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473546706_970212_8937" contract="_9_5_f720368_1110473546612_953158_7669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_596882_8905" name="PropertyPermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313347_681155_7424" body="This class is for property permissions.&#xA;&#xA;&lt;P>&#xA;The name is the name of the property (&quot;java.home&quot;,&#xA;&quot;os.name&quot;, etc). The naming&#xA;convention follows the  hierarchical property naming convention.&#xA;Also, an asterisk&#xA;may appear at the end of the name, following a &quot;.&quot;, or by itself, to&#xA;signify a wildcard match. For example: &quot;java.*&quot; or &quot;*&quot; is valid,&#xA;&quot;*java&quot; or &quot;a*b&quot; is not valid.&#xA;&lt;P>&#xA;&lt;P>&#xA;The actions to be granted are passed to the constructor in a string containing&#xA;a list of zero or more comma-separated keywords. The possible keywords are&#xA;&quot;read&quot; and &quot;write&quot;. Their meaning is defined as follows:&#xA;&lt;P>&#xA;&lt;DL>&#xA;&lt;DT> read&#xA;&lt;DD> read permission. Allows &lt;code>System.getProperty&lt;/code> to&#xA;be called.&#xA;&lt;DT> write&#xA;&lt;DD> write permission. Allows &lt;code>System.setProperty&lt;/code> to&#xA;be called.&#xA;&lt;/DL>&#xA;&lt;P>&#xA;The actions string is converted to lowercase before processing.&#xA;&lt;P>&#xA;Care should be taken before granting code permission to access&#xA;certain system properties.  For example, granting permission to&#xA;access the &quot;java.home&quot; system property gives potentially malevolent&#xA;code sensitive information about the system environment (the Java&#xA;installation directory).  Also, granting permission to access&#xA;the &quot;user.name&quot; and &quot;user.home&quot; system properties gives potentially&#xA;malevolent code sensitive information about the user environment&#xA;(the user's account name and home directory).&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.33 03/12/19&#xA;&#xA;@author Roland Schemers&#xA;@since 1.2&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546706_596882_8905"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_783916_15081" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_235636_8821" name="AbstractList" clientDependency="_10_5_622020d_1132928322460_486477_14704" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310793_495411_6941" body="This class provides a skeletal implementation of the &lt;tt>List&lt;/tt>&#xA;interface to minimize the effort required to implement this interface&#xA;backed by a &quot;random access&quot; data store (such as an array).  For sequential&#xA;access data (such as a linked list), &lt;tt>AbstractSequentialList&lt;/tt> should&#xA;be used in preference to this class.&lt;p>&#xA;&#xA;To implement an unmodifiable list, the programmer needs only to extend this&#xA;class and provide implementations for the &lt;tt>get(int index)&lt;/tt> and&#xA;&lt;tt>size()&lt;/tt> methods.&lt;p>&#xA;&#xA;To implement a modifiable list, the programmer must additionally override&#xA;the &lt;tt>set(int index, Object element)&lt;/tt> method (which otherwise throws&#xA;an &lt;tt>UnsupportedOperationException&lt;/tt>.  If the list is variable-size&#xA;the programmer must additionally override the &lt;tt>add(int index, Object&#xA;element)&lt;/tt> and &lt;tt>remove(int index)&lt;/tt> methods.&lt;p>&#xA;&#xA;The programmer should generally provide a void (no argument) and collection&#xA;constructor, as per the recommendation in the &lt;tt>Collection&lt;/tt> interface&#xA;specification.&lt;p>&#xA;&#xA;Unlike the other abstract collection implementations, the programmer does&#xA;&lt;i>not&lt;/i> have to provide an iterator implementation; the iterator and&#xA;list iterator are implemented by this class, on top the &quot;random access&quot;&#xA;methods: &lt;tt>get(int index)&lt;/tt>, &lt;tt>set(int index, Object element)&lt;/tt>,&#xA;&lt;tt>set(int index, Object element)&lt;/tt>, &lt;tt>add(int index, Object&#xA;element)&lt;/tt> and &lt;tt>remove(int index)&lt;/tt>.&lt;p>&#xA;&#xA;The documentation for each non-abstract methods in this class describes its&#xA;implementation in detail.  Each of these methods may be overridden if the&#xA;collection being implemented admits a more efficient implementation.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.37, 01/18/03&#xA;@see Collection&#xA;@see List&#xA;@see AbstractSequentialList&#xA;@see AbstractCollection&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_235636_8821"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310783_392472_6937" name="" parameter="_10_5_622020d_1132928310783_432973_6938">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310783_432973_6938" parameteredElement="_10_5_622020d_1132928310783_995970_6939">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310783_995970_6939" name="E" templateParameter="_10_5_622020d_1132928310783_432973_6938"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322460_992314_14708" isSubstitutable="true" general="_10_5_622020d_1132928322460_639101_14705"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322460_486477_14704" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473546706_235636_8821" contract="_10_5_622020d_1132928322259_732594_14433"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_364869_19402" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322460_858147_14709">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322460_858147_14709" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_9_5_f720368_1110473547846_364869_19402" contract="_10_5_622020d_1132928321989_283025_14359"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_318599_19403" name="ListItr" visibility="private" clientDependency="_10_5_622020d_1132928322460_717203_14710">
              <generalization xmi:id="_10_5_622020d_1132928322460_666681_14711" isSubstitutable="true" general="_9_5_f720368_1110473547846_364869_19402"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322460_717203_14710" name="" supplier="_10_5_622020d_1132928322259_938209_14440" client="_9_5_f720368_1110473547846_318599_19403" contract="_10_5_622020d_1132928322259_938209_14440"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_801277_7319" name="IllegalFormatWidthException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_247063_7321" body="Unchecked exception thrown when the format width is a negative value other&#xA;than &lt;tt>-1&lt;/tt> or is otherwise unsupported.&#xA;&#xA;@version &#x9;1.4, 06/07/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_801277_7319"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_961957_15016" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_491640_8885" name="List" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313286_508422_7376" body="An ordered collection (also known as a &lt;i>sequence&lt;/i>).  The user of this&#xA;interface has precise control over where in the list each element is&#xA;inserted.  The user can access elements by their integer index (position in&#xA;the list), and search for elements in the list.&lt;p>&#xA;&#xA;Unlike sets, lists typically allow duplicate elements.  More formally,&#xA;lists typically allow pairs of elements &lt;tt>e1&lt;/tt> and &lt;tt>e2&lt;/tt>&#xA;such that &lt;tt>e1.equals(e2)&lt;/tt>, and they typically allow multiple&#xA;null elements if they allow null elements at all.  It is not inconceivable&#xA;that someone might wish to implement a list that prohibits duplicates, by&#xA;throwing runtime exceptions when the user attempts to insert them, but we&#xA;expect this usage to be rare.&lt;p>&#xA;&#xA;The &lt;tt>List&lt;/tt> interface places additional stipulations, beyond those&#xA;specified in the &lt;tt>Collection&lt;/tt> interface, on the contracts of the&#xA;&lt;tt>iterator&lt;/tt>, &lt;tt>add&lt;/tt>, &lt;tt>remove&lt;/tt>, &lt;tt>equals&lt;/tt>, and&#xA;&lt;tt>hashCode&lt;/tt> methods.  Declarations for other inherited methods are&#xA;also included here for convenience.&lt;p>&#xA;&#xA;The &lt;tt>List&lt;/tt> interface provides four methods for positional (indexed)&#xA;access to list elements.  Lists (like Java arrays) are zero based.  Note&#xA;that these operations may execute in time proportional to the index value&#xA;for some implementations (the &lt;tt>LinkedList&lt;/tt> class, for&#xA;example). Thus, iterating over the elements in a list is typically&#xA;preferable to indexing through it if the caller does not know the&#xA;implementation.&lt;p>&#xA;&#xA;The &lt;tt>List&lt;/tt> interface provides a special iterator, called a&#xA;&lt;tt>ListIterator&lt;/tt>, that allows element insertion and replacement, and&#xA;bidirectional access in addition to the normal operations that the&#xA;&lt;tt>Iterator&lt;/tt> interface provides.  A method is provided to obtain a&#xA;list iterator that starts at a specified position in the list.&lt;p>&#xA;&#xA;The &lt;tt>List&lt;/tt> interface provides two methods to search for a specified&#xA;object.  From a performance standpoint, these methods should be used with&#xA;caution.  In many implementations they will perform costly linear&#xA;searches.&lt;p>&#xA;&#xA;The &lt;tt>List&lt;/tt> interface provides two methods to efficiently insert and&#xA;remove multiple elements at an arbitrary point in the list.&lt;p>&#xA;&#xA;Note: While it is permissible for lists to contain themselves as elements,&#xA;extreme caution is advised: the &lt;tt>equals&lt;/tt> and &lt;tt>hashCode&lt;/tt>&#xA;methods are no longer well defined on a such a list.&#xA;&#xA;&lt;p>Some list implementations have restrictions on the elements that&#xA;they may contain.  For example, some implementations prohibit null elements,&#xA;and some have restrictions on the types of their elements.  Attempting to&#xA;add an ineligible element throws an unchecked exception, typically&#xA;&lt;tt>NullPointerException&lt;/tt> or &lt;tt>ClassCastException&lt;/tt>.  Attempting&#xA;to query the presence of an ineligible element may throw an exception,&#xA;or it may simply return false; some implementations will exhibit the former&#xA;behavior and some will exhibit the latter.  More generally, attempting an&#xA;operation on an ineligible element whose completion would not result in&#xA;the insertion of an ineligible element into the list may throw an&#xA;exception or it may succeed, at the option of the implementation.&#xA;Such exceptions are marked as &quot;optional&quot; in the specification for this&#xA;interface.&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.44, 12/19/03&#xA;@see Collection&#xA;@see Set&#xA;@see ArrayList&#xA;@see LinkedList&#xA;@see Vector&#xA;@see Arrays#asList(Object[])&#xA;@see Collections#nCopies(int, Object)&#xA;@see Collections#EMPTY_LIST&#xA;@see AbstractList&#xA;@see AbstractSequentialList&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_491640_8885"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313286_849883_7372" name="" parameter="_10_5_622020d_1132928313286_818209_7373">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313286_818209_7373" parameteredElement="_10_5_622020d_1132928313286_325712_7374">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313286_325712_7374" name="E" templateParameter="_10_5_622020d_1132928313286_818209_7373"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322610_917073_15064" isSubstitutable="true" general="_10_5_622020d_1132928322460_511299_14700"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_493573_8847" name="ConcurrentModificationException">
            <ownedComment xmi:id="_10_5_622020d_1132928310923_561753_7169" body="This exception may be thrown by methods that have detected concurrent&#xA;modification of an object when such modification is not permissible.&#xA;&lt;p>&#xA;For example, it is not generally permissible for one thread to modify a Collection&#xA;while another thread is iterating over it.  In general, the results of the&#xA;iteration are undefined under these circumstances.  Some Iterator&#xA;implementations (including those of all the general purpose collection implementations&#xA;provided by the JRE) may choose to throw this exception if this behavior is&#xA;detected.  Iterators that do this are known as &lt;i>fail-fast&lt;/i> iterators,&#xA;as they fail quickly and cleanly, rather that risking arbitrary,&#xA;non-deterministic behavior at an undetermined time in the future.&#xA;&lt;p>&#xA;Note that this exception does not always indicate that an object has&#xA;been concurrently modified by a &lt;i>different&lt;/i> thread.  If a single&#xA;thread issues a sequence of method invocations that violates the&#xA;contract of an object, the object may throw this exception.  For&#xA;example, if a thread modifies a collection directly while it is&#xA;iterating over the collection with a fail-fast iterator, the iterator&#xA;will throw this exception.&#xA;&#xA;&lt;p>Note that fail-fast behavior cannot be guaranteed as it is, generally&#xA;speaking, impossible to make any hard guarantees in the presence of&#xA;unsynchronized concurrent modification.  Fail-fast operations&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>&lt;tt>ConcurrentModificationException&lt;/tt>&#xA;should be used only to detect bugs.&lt;/i>&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.18, 06/22/04&#xA;@see&#x9;    Collection&#xA;@see     Iterator&#xA;@see     ListIterator&#xA;@see&#x9;    Vector&#xA;@see&#x9;    LinkedList&#xA;@see&#x9;    HashSet&#xA;@see&#x9;    Hashtable&#xA;@see&#x9;    TreeMap&#xA;@see&#x9;    AbstractList&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_493573_8847"/>
            <generalization xmi:id="_10_5_622020d_1132928322540_868232_14894" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310973_44006_7234" name="FormattableFlags">
            <ownedComment xmi:id="_10_5_622020d_1132928310983_350581_7236" body="FomattableFlags are passed to the {@link Formattable#formatTo&#xA;Formattable.formatTo()} method and modify the output format for {@linkplain&#xA;Formattable Formattables}.  Implementations of {@link Formattable} are&#xA;responsible for interpreting and validating any flags.&#xA;&#xA;@version &#x9;1.1, 04/21/04&#xA;@since  1.5&#xA;" annotatedElement="_10_5_622020d_1132928310973_44006_7234"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_778448_8883" name="LinkedList" clientDependency="_10_5_622020d_1132928322610_704368_15057 _10_5_622020d_1132928322610_638396_15055 _10_5_622020d_1132928322610_684780_15056 _10_5_622020d_1132928322610_949273_15058">
            <ownedComment xmi:id="_10_5_622020d_1132928313286_49963_7371" body="Linked list implementation of the &lt;tt>List&lt;/tt> interface.  Implements all&#xA;optional list operations, and permits all elements (including&#xA;&lt;tt>null&lt;/tt>).  In addition to implementing the &lt;tt>List&lt;/tt> interface,&#xA;the &lt;tt>LinkedList&lt;/tt> class provides uniformly named methods to&#xA;&lt;tt>get&lt;/tt>, &lt;tt>remove&lt;/tt> and &lt;tt>insert&lt;/tt> an element at the&#xA;beginning and end of the list.  These operations allow linked lists to be&#xA;used as a stack, queue, or double-ended queue (deque).&lt;p>&#xA;&#xA;The class implements the &lt;tt>Queue&lt;/tt> interface, providing&#xA;first-in-first-out queue operations for &lt;tt>add&lt;/tt>,&#xA;&lt;tt>poll&lt;/tt>, etc. Other stack and deque operations could be&#xA;easily recast in terms of the standard list operations.  They're&#xA;included here primarily for convenience, though they may run&#xA;slightly faster than the equivalent List operations.&lt;p>&#xA;&#xA;All of the operations perform as could be expected for a doubly-linked&#xA;list.  Operations that index into the list will traverse the list from&#xA;the beginning or the end, whichever is closer to the specified index.&lt;p>&#xA;&#xA;&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access a list concurrently, and at least one of the threads&#xA;modifies the list structurally, it &lt;i>must&lt;/i> be synchronized&#xA;externally.  (A structural modification is any operation that adds or&#xA;deletes one or more elements; merely setting the value of an element is not&#xA;a structural modification.)  This is typically accomplished by&#xA;synchronizing on some object that naturally encapsulates the list.  If no&#xA;such object exists, the list should be &quot;wrapped&quot; using the&#xA;Collections.synchronizedList method.  This is best done at creation time,&#xA;to prevent accidental unsynchronized access to the list: &lt;pre>&#xA;List list = Collections.synchronizedList(new LinkedList(...));&#xA;&lt;/pre>&lt;p>&#xA;&#xA;The iterators returned by the this class's &lt;tt>iterator&lt;/tt> and&#xA;&lt;tt>listIterator&lt;/tt> methods are &lt;i>fail-fast&lt;/i>: if the list is&#xA;structurally modified at any time after the iterator is created, in any way&#xA;except through the Iterator's own &lt;tt>remove&lt;/tt> or &lt;tt>add&lt;/tt> methods,&#xA;the iterator will throw a &lt;tt>ConcurrentModificationException&lt;/tt>.  Thus,&#xA;in the face of concurrent modification, the iterator fails quickly and&#xA;cleanly, rather than risking arbitrary, non-deterministic behavior at an&#xA;undetermined time in the future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:   &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.61, 02/19/04&#xA;@see&#x9;    List&#xA;@see&#x9;    ArrayList&#xA;@see&#x9;    Vector&#xA;@see&#x9;    Collections#synchronizedList(List)&#xA;@since 1.2&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_9_5_f720368_1110473546706_778448_8883"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313276_146335_7364" name="" parameter="_10_5_622020d_1132928313276_312796_7365">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313276_312796_7365" parameteredElement="_10_5_622020d_1132928313276_783284_7366">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313276_783284_7366" name="E" templateParameter="_10_5_622020d_1132928313276_312796_7365"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322610_456385_15062" isSubstitutable="true" general="_10_5_622020d_1132928322610_734122_15059"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_638396_15055" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473546706_778448_8883" contract="_10_5_622020d_1132928322259_732594_14433"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_684780_15056" name="" supplier="_10_5_622020d_1132928321999_800194_14363" client="_9_5_f720368_1110473546706_778448_8883" contract="_10_5_622020d_1132928321999_800194_14363"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_704368_15057" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_778448_8883" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_949273_15058" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_778448_8883" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_310408_19547" name="ListItr" visibility="private" clientDependency="_10_5_622020d_1132928322610_309454_15063">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322610_309454_15063" name="" supplier="_10_5_622020d_1132928322259_938209_14440" client="_9_5_f720368_1110473547878_310408_19547" contract="_10_5_622020d_1132928322259_938209_14440"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_406845_19548" name="Entry" visibility="private">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313276_615743_7367" name="" parameter="_10_5_622020d_1132928313276_715205_7368">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313276_715205_7368" parameteredElement="_10_5_622020d_1132928313276_189555_7369">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313276_189555_7369" name="E" templateParameter="_10_5_622020d_1132928313276_715205_7368"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322660_595171_15155" name="WeakReference&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322660_914073_15156" signature="_10_5_622020d_1132928307779_589855_4860">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322660_883734_15157" formal="_10_5_622020d_1132928307779_297685_4861" actual="_10_5_622020d_1132928313507_179611_7541"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_180147_8891" name="Locale" clientDependency="_10_5_622020d_1132928322620_399417_15067 _10_5_622020d_1132928322620_617145_15068" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313327_716766_7385" body="A &lt;code>Locale&lt;/code> object represents a specific geographical, political,&#xA;or cultural region. An operation that requires a &lt;code>Locale&lt;/code> to perform&#xA;its task is called &lt;em>locale-sensitive&lt;/em> and uses the &lt;code>Locale&lt;/code>&#xA;to tailor information for the user. For example, displaying a number&#xA;is a locale-sensitive operation--the number should be formatted&#xA;according to the customs/conventions of the user's native country,&#xA;region, or culture.&#xA;&#xA;&lt;P>&#xA;Create a &lt;code>Locale&lt;/code> object using the constructors in this class:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Locale(String language)&#xA;Locale(String language, String country)&#xA;Locale(String language, String country, String variant)&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;The language argument is a valid &lt;STRONG>ISO Language Code.&lt;/STRONG>&#xA;These codes are the lower-case, two-letter codes as defined by ISO-639.&#xA;You can find a full list of these codes at a number of sites, such as:&#xA;&lt;BR>&lt;a href =&quot;http://www.loc.gov/standards/iso639-2/englangn.html&quot;>&#xA;&lt;code>http://www.loc.gov/standards/iso639-2/englangn.html&lt;/code>&lt;/a>&#xA;&#xA;&lt;P>&#xA;The country argument is a valid &lt;STRONG>ISO Country Code.&lt;/STRONG> These&#xA;codes are the upper-case, two-letter codes as defined by ISO-3166.&#xA;You can find a full list of these codes at a number of sites, such as:&#xA;&lt;BR>&lt;a href=&quot;http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html&quot;>&#xA;&lt;code>http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html&lt;/code>&lt;/a>&#xA;&#xA;&lt;P>&#xA;The variant argument is a vendor or browser-specific code.&#xA;For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX.&#xA;Where there are two variants, separate them with an underscore, and&#xA;put the most important one first. For example, a Traditional Spanish collation&#xA;might construct a locale with parameters for language, country and variant as:&#xA;&quot;es&quot;, &quot;ES&quot;, &quot;Traditional_WIN&quot;.&#xA;&#xA;&lt;P>&#xA;Because a &lt;code>Locale&lt;/code> object is just an identifier for a region,&#xA;no validity check is performed when you construct a &lt;code>Locale&lt;/code>.&#xA;If you want to see whether particular resources are available for the&#xA;&lt;code>Locale&lt;/code> you construct, you must query those resources. For&#xA;example, ask the &lt;code>NumberFormat&lt;/code> for the locales it supports&#xA;using its &lt;code>getAvailableLocales&lt;/code> method.&#xA;&lt;BR>&lt;STRONG>Note:&lt;/STRONG> When you ask for a resource for a particular&#xA;locale, you get back the best available match, not necessarily&#xA;precisely what you asked for. For more information, look at&#xA;{@link ResourceBundle}.&#xA;&#xA;&lt;P>&#xA;The &lt;code>Locale&lt;/code> class provides a number of convenient constants&#xA;that you can use to create &lt;code>Locale&lt;/code> objects for commonly used&#xA;locales. For example, the following creates a &lt;code>Locale&lt;/code> object&#xA;for the United States:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Locale.US&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;P>&#xA;Once you've created a &lt;code>Locale&lt;/code> you can query it for information about&#xA;itself. Use &lt;code>getCountry&lt;/code> to get the ISO Country Code and&#xA;&lt;code>getLanguage&lt;/code> to get the ISO Language Code. You can&#xA;use &lt;code>getDisplayCountry&lt;/code> to get the&#xA;name of the country suitable for displaying to the user. Similarly,&#xA;you can use &lt;code>getDisplayLanguage&lt;/code> to get the name of&#xA;the language suitable for displaying to the user. Interestingly,&#xA;the &lt;code>getDisplayXXX&lt;/code> methods are themselves locale-sensitive&#xA;and have two versions: one that uses the default locale and one&#xA;that uses the locale specified as an argument.&#xA;&#xA;&lt;P>&#xA;The Java 2 platform provides a number of classes that perform locale-sensitive&#xA;operations. For example, the &lt;code>NumberFormat&lt;/code> class formats&#xA;numbers, currency, or percentages in a locale-sensitive manner. Classes&#xA;such as &lt;code>NumberFormat&lt;/code> have a number of convenience methods&#xA;for creating a default object of that type. For example, the&#xA;&lt;code>NumberFormat&lt;/code> class provides these three convenience methods&#xA;for creating a default &lt;code>NumberFormat&lt;/code> object:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;NumberFormat.getInstance()&#xA;NumberFormat.getCurrencyInstance()&#xA;NumberFormat.getPercentInstance()&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;These methods have two variants; one with an explicit locale&#xA;and one without; the latter using the default locale.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;NumberFormat.getInstance(myLocale)&#xA;NumberFormat.getCurrencyInstance(myLocale)&#xA;NumberFormat.getPercentInstance(myLocale)&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;A &lt;code>Locale&lt;/code> is the mechanism for identifying the kind of object&#xA;(&lt;code>NumberFormat&lt;/code>) that you would like to get. The locale is&#xA;&lt;STRONG>just&lt;/STRONG> a mechanism for identifying objects,&#xA;&lt;STRONG>not&lt;/STRONG> a container for the objects themselves.&#xA;&#xA;@see         ResourceBundle&#xA;@see         java.text.Format&#xA;@see         java.text.NumberFormat&#xA;@see         java.text.Collator&#xA;@author      Mark Davis&#xA;@since       1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_180147_8891"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_399417_15067" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_180147_8891" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_617145_15068" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_180147_8891" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310973_710744_7231" name="Formattable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310973_225233_7233" body="The &lt;tt>Formattable&lt;/tt> interface must be implemented by any class that&#xA;needs to perform custom formatting using the &lt;tt>'s'&lt;/tt> conversion&#xA;specifier of {@link java.util.Formatter}.  This interface allows basic&#xA;control for formatting arbitrary objects.&#xA;&#xA;For example, the following class prints out different representations of a&#xA;stock's name depending on the flags and length constraints:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;import java.nio.CharBuffer;&#xA;import java.util.Formatter;&#xA;import java.util.Formattable;&#xA;import java.util.Locale;&#xA;import static java.util.FormattableFlags.*;&#xA;&#xA;...&#xA;&#xA;public class StockName implements Formattable {&#xA;private String symbol, companyName, frenchCompanyName;&#xA;public StockName(String symbol, String companyName,&#xA;String frenchCompanyName) {&#xA;...&#xA;}&#xA;&#xA;...&#xA;&#xA;public void formatTo(Formatter fmt, int f, int width, int precision) {&#xA;StringBuilder sb = new StringBuilder();&#xA;&#xA;decide form of name&#xA;String name = companyName;&#xA;if (fmt.locale().equals(Locale.FRANCE))&#xA;name = frenchCompanyName;&#xA;boolean alternate = (f &amp; ALTERNATE) == ALTERNATE;&#xA;boolean usesymbol = alternate || (precision != -1 &amp;&amp; precision &lt; 10);&#xA;String out = (usesymbol ? symbol : name);&#xA;&#xA;apply precision&#xA;if (precision == -1 || out.length() &lt; precision) {&#xA;write it all&#xA;sb.append(out);&#xA;} else {&#xA;sb.append(out.substring(0, precision - 1)).append('*');&#xA;}&#xA;&#xA;apply width and justification&#xA;int len = sb.length();&#xA;if (len &lt; width)&#xA;for (int i = 0; i &lt; width - len; i++)&#xA;if ((f &amp; LEFT_JUSTIFY) == LEFT_JUSTIFY)&#xA;sb.append(' ');&#xA;else&#xA;sb.insert(0, ' ');&#xA;&#xA;fmt.format(sb.toString());&#xA;}&#xA;&#xA;public String toString() {&#xA;return String.format(&quot;%s - %s&quot;, symbol, companyName);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> When used in conjunction with the {@link java.util.Formatter}, the above&#xA;class produces the following output for various format strings.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Formatter fmt = new Formatter();&#xA;StockName sn = new StockName(&quot;HUGE&quot;, &quot;Huge Fruit, Inc.&quot;,&#xA;&quot;Fruit Titanesque, Inc.&quot;);&#xA;fmt.format(&quot;%s&quot;, sn);                   //   -> &quot;Huge Fruit, Inc.&quot;&#xA;fmt.format(&quot;%s&quot;, sn.toString());        //   -> &quot;HUGE - Huge Fruit, Inc.&quot;&#xA;fmt.format(&quot;%#s&quot;, sn);                  //   -> &quot;HUGE&quot;&#xA;fmt.format(&quot;%-10.8s&quot;, sn);              //   -> &quot;HUGE      &quot;&#xA;fmt.format(&quot;%.12s&quot;, sn);                //   -> &quot;Huge Fruit,*&quot;&#xA;fmt.format(Locale.FRANCE, &quot;%25s&quot;, sn);  //   -> &quot;   Fruit Titanesque, Inc.&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> Formattables are not necessarily safe for multithreaded access.  Thread&#xA;safety is optional and may be enforced by classes that extend and implement&#xA;this interface.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to&#xA;any method in this interface will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.3, 04/21/04&#xA;@since  1.5&#xA;" annotatedElement="_10_5_622020d_1132928310973_710744_7231"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322600_275131_15025" name="HashMap&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322600_229717_15026" signature="_10_5_622020d_1132928313206_982769_7254">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_587212_15027" formal="_10_5_622020d_1132928313206_544830_7255" actual="_10_5_622020d_1132928313266_148305_7345"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_618493_15028" formal="_10_5_622020d_1132928313206_88358_7257" actual="_10_5_622020d_1132928313266_822990_7347"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_614519_8861" name="EventListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310963_369962_7223" body="A tagging interface that all event listener interfaces must extend.&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322600_396674_15030" name="Entry&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322600_389947_15031" signature="_10_5_622020d_1132928313206_360731_7259">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_988660_15032" formal="_10_5_622020d_1132928313206_624355_7260" actual="_10_5_622020d_1132928313266_729304_7350"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_935619_15033" formal="_10_5_622020d_1132928313206_131615_7262" actual="_10_5_622020d_1132928313266_701822_7352"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_790209_8949" name="WeakHashMap" clientDependency="_10_5_622020d_1132928322660_659700_15152">
            <ownedComment xmi:id="_10_5_622020d_1132928313507_27651_7549" body="A hashtable-based &lt;tt>Map&lt;/tt> implementation with &lt;em>weak keys&lt;/em>.&#xA;An entry in a &lt;tt>WeakHashMap&lt;/tt> will automatically be removed when&#xA;its key is no longer in ordinary use.  More precisely, the presence of a&#xA;mapping for a given key will not prevent the key from being discarded by the&#xA;garbage collector, that is, made finalizable, finalized, and then reclaimed.&#xA;When a key has been discarded its entry is effectively removed from the map,&#xA;so this class behaves somewhat differently than other &lt;tt>Map&lt;/tt>&#xA;implementations.&#xA;&#xA;&lt;p> Both null values and the null key are supported. This class has&#xA;performance characteristics similar to those of the &lt;tt>HashMap&lt;/tt>&#xA;class, and has the same efficiency parameters of &lt;em>initial capacity&lt;/em>&#xA;and &lt;em>load factor&lt;/em>.&#xA;&#xA;&lt;p> Like most collection classes, this class is not synchronized.  A&#xA;synchronized &lt;tt>WeakHashMap&lt;/tt> may be constructed using the&#xA;&lt;tt>Collections.synchronizedMap&lt;/tt> method.&#xA;&#xA;&lt;p> This class is intended primarily for use with key objects whose&#xA;&lt;tt>equals&lt;/tt> methods test for object identity using the&#xA;&lt;tt>==&lt;/tt> operator.  Once such a key is discarded it can never be&#xA;recreated, so it is impossible to do a lookup of that key in a&#xA;&lt;tt>WeakHashMap&lt;/tt> at some later time and be surprised that its entry&#xA;has been removed.  This class will work perfectly well with key objects&#xA;whose &lt;tt>equals&lt;/tt> methods are not based upon object identity, such&#xA;as &lt;tt>String&lt;/tt> instances.  With such recreatable key objects,&#xA;however, the automatic removal of &lt;tt>WeakHashMap&lt;/tt> entries whose&#xA;keys have been discarded may prove to be confusing.&#xA;&#xA;&lt;p> The behavior of the &lt;tt>WeakHashMap&lt;/tt> class depends in part upon&#xA;the actions of the garbage collector, so several familiar (though not&#xA;required) &lt;tt>Map&lt;/tt> invariants do not hold for this class.  Because&#xA;the garbage collector may discard keys at any time, a&#xA;&lt;tt>WeakHashMap&lt;/tt> may behave as though an unknown thread is silently&#xA;removing entries.  In particular, even if you synchronize on a&#xA;&lt;tt>WeakHashMap&lt;/tt> instance and invoke none of its mutator methods, it&#xA;is possible for the &lt;tt>size&lt;/tt> method to return smaller values over&#xA;time, for the &lt;tt>isEmpty&lt;/tt> method to return &lt;tt>false&lt;/tt> and&#xA;then &lt;tt>true&lt;/tt>, for the &lt;tt>containsKey&lt;/tt> method to return&#xA;&lt;tt>true&lt;/tt> and later &lt;tt>false&lt;/tt> for a given key, for the&#xA;&lt;tt>get&lt;/tt> method to return a value for a given key but later return&#xA;&lt;tt>null&lt;/tt>, for the &lt;tt>put&lt;/tt> method to return&#xA;&lt;tt>null&lt;/tt> and the &lt;tt>remove&lt;/tt> method to return&#xA;&lt;tt>false&lt;/tt> for a key that previously appeared to be in the map, and&#xA;for successive examinations of the key set, the value set, and the entry set&#xA;to yield successively smaller numbers of elements.&#xA;&#xA;&lt;p> Each key object in a &lt;tt>WeakHashMap&lt;/tt> is stored indirectly as&#xA;the referent of a weak reference.  Therefore a key will automatically be&#xA;removed only after the weak references to it, both inside and outside of the&#xA;map, have been cleared by the garbage collector.&#xA;&#xA;&lt;p> &lt;strong>Implementation note:&lt;/strong> The value objects in a&#xA;&lt;tt>WeakHashMap&lt;/tt> are held by ordinary strong references.  Thus care&#xA;should be taken to ensure that value objects do not strongly refer to their&#xA;own keys, either directly or indirectly, since that will prevent the keys&#xA;from being discarded.  Note that a value object may refer indirectly to its&#xA;key via the &lt;tt>WeakHashMap&lt;/tt> itself; that is, a value object may&#xA;strongly refer to some other key object whose associated value object, in&#xA;turn, strongly refers to the key of the first value object.  One way&#xA;to deal with this is to wrap values themselves within&#xA;&lt;tt>WeakReferences&lt;/tt> before&#xA;inserting, as in: &lt;tt>m.put(key, new WeakReference(value))&lt;/tt>,&#xA;and then unwrapping upon each &lt;tt>get&lt;/tt>.&#xA;&#xA;&lt;p>The iterators returned by all of this class's &quot;collection view methods&quot;&#xA;are &lt;i>fail-fast&lt;/i>: if the map is structurally modified at any time after&#xA;the iterator is created, in any way except through the iterator's own&#xA;&lt;tt>remove&lt;/tt> or &lt;tt>add&lt;/tt> methods, the iterator will throw a&#xA;&lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in the face of concurrent&#xA;modification, the iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:  &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@version&#x9;1.30, 02/19/04&#xA;@author      Doug Lea&#xA;@author      Josh Bloch&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;1.2&#xA;@see&#x9;&#x9;java.util.HashMap&#xA;@see&#x9;&#x9;java.lang.ref.WeakReference&#xA;" annotatedElement="_9_5_f720368_1110473546706_790209_8949"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313507_525030_7534" name="" parameter="_10_5_622020d_1132928313507_764224_7535 _10_5_622020d_1132928313507_214297_7537">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313507_764224_7535" parameteredElement="_10_5_622020d_1132928313507_729539_7536">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_729539_7536" name="K" templateParameter="_10_5_622020d_1132928313507_764224_7535"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313507_214297_7537" parameteredElement="_10_5_622020d_1132928313507_494341_7538">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_494341_7538" name="V" templateParameter="_10_5_622020d_1132928313507_214297_7537"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322660_482853_15153" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322660_659700_15152" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_790209_8949" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_12781_19597" name="Entry" visibility="private" clientDependency="_10_5_622020d_1132928322660_59267_15154">
              <ownedComment xmi:id="_10_5_622020d_1132928313507_397329_7544" body="The entries in this hash table extend WeakReference, using its main ref&#xA;field as the key.&#xA;" annotatedElement="_9_5_f720368_1110473547893_12781_19597"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313507_163078_7539" name="" parameter="_10_5_622020d_1132928313507_291249_7540 _10_5_622020d_1132928313507_554508_7542">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313507_291249_7540" parameteredElement="_10_5_622020d_1132928313507_179611_7541">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_179611_7541" name="K" templateParameter="_10_5_622020d_1132928313507_291249_7540"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313507_554508_7542" parameteredElement="_10_5_622020d_1132928313507_719511_7543">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_719511_7543" name="V" templateParameter="_10_5_622020d_1132928313507_554508_7542"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322660_512743_15158" isSubstitutable="true" general="_10_5_622020d_1132928322660_595171_15155"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322660_59267_15154" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547893_12781_19597" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_398565_19600" name="HashIterator" visibility="private" clientDependency="_10_5_622020d_1132928322660_331455_15159" isAbstract="true">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313507_592960_7545" name="" parameter="_10_5_622020d_1132928313507_613984_7546">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313507_613984_7546" parameteredElement="_10_5_622020d_1132928313507_555695_7547">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_555695_7547" name="T" templateParameter="_10_5_622020d_1132928313507_613984_7546"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322660_331455_15159" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_9_5_f720368_1110473547893_398565_19600" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_669424_19601" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322660_412117_15163" isSubstitutable="true" general="_10_5_622020d_1132928322660_511354_15160"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_368826_19602" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322660_57191_15167" isSubstitutable="true" general="_10_5_622020d_1132928322660_992969_15164"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_76828_19603" name="EntryIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322660_812560_15171" isSubstitutable="true" general="_10_5_622020d_1132928322660_70883_15168"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_380186_19604" name="KeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322670_658069_15172" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_646393_19605" name="Values" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322670_495168_15173" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_639815_19606" name="EntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322670_796539_15174" isSubstitutable="true" general="_10_5_622020d_1132928322239_614900_14420"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310933_303899_7182" name="DuplicateFormatFlagsException">
            <ownedComment xmi:id="_10_5_622020d_1132928310943_254177_7184" body="Unchecked exception thrown when duplicate flags are provided in the format&#xA;specifier.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310933_303899_7182"/>
            <generalization xmi:id="_10_5_622020d_1132928322550_87934_14902" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322570_511185_14954" name="HashIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322570_15400_14955" signature="_10_5_622020d_1132928313206_456184_7264">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322570_278146_14956" formal="_10_5_622020d_1132928313206_388419_7265" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_328213_8819" name="AbstractCollection" clientDependency="_10_5_622020d_1132928322460_733399_14703" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310783_420471_6936" body="This class provides a skeletal implementation of the &lt;tt>Collection&lt;/tt>&#xA;interface, to minimize the effort required to implement this interface. &lt;p>&#xA;&#xA;To implement an unmodifiable collection, the programmer needs only to&#xA;extend this class and provide implementations for the &lt;tt>iterator&lt;/tt> and&#xA;&lt;tt>size&lt;/tt> methods.  (The iterator returned by the &lt;tt>iterator&lt;/tt>&#xA;method must implement &lt;tt>hasNext&lt;/tt> and &lt;tt>next&lt;/tt>.)&lt;p>&#xA;&#xA;To implement a modifiable collection, the programmer must additionally&#xA;override this class's &lt;tt>add&lt;/tt> method (which otherwise throws an&#xA;&lt;tt>UnsupportedOperationException&lt;/tt>), and the iterator returned by the&#xA;&lt;tt>iterator&lt;/tt> method must additionally implement its &lt;tt>remove&lt;/tt>&#xA;method.&lt;p>&#xA;&#xA;The programmer should generally provide a void (no argument) and&#xA;&lt;tt>Collection&lt;/tt> constructor, as per the recommendation in the&#xA;&lt;tt>Collection&lt;/tt> interface specification.&lt;p>&#xA;&#xA;The documentation for each non-abstract methods in this class describes its&#xA;implementation in detail.  Each of these methods may be overridden if&#xA;the collection being implemented admits a more efficient implementation.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.24, 01/18/03&#xA;@see Collection&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_328213_8819"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310783_69936_6932" name="" parameter="_10_5_622020d_1132928310783_329056_6933">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310783_329056_6933" parameteredElement="_10_5_622020d_1132928310783_46763_6934">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310783_46763_6934" name="E" templateParameter="_10_5_622020d_1132928310783_329056_6933"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322460_733399_14703" name="" supplier="_10_5_622020d_1132928322460_511299_14700" client="_9_5_f720368_1110473546706_328213_8819" contract="_10_5_622020d_1132928322460_511299_14700"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322520_653475_14851" name="CheckedMap&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322520_847754_14852" signature="_10_5_622020d_1132928310913_788370_7102">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322520_878821_14853" formal="_10_5_622020d_1132928310913_614664_7103" actual="_10_5_622020d_1132928310913_456418_7125"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322520_576935_14854" formal="_10_5_622020d_1132928310913_901510_7105" actual="_10_5_622020d_1132928310913_205511_7127"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_877571_8923" name="SortedMap" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313477_720801_7472" body="A map that further guarantees that it will be in ascending key order,&#xA;sorted according to the &lt;i>natural ordering&lt;/i> of its keys (see the&#xA;&lt;tt>Comparable&lt;/tt> interface), or by a comparator provided at sorted map&#xA;creation time.  This order is reflected when iterating over the sorted&#xA;map's collection views (returned by the &lt;tt>entrySet&lt;/tt>, &lt;tt>keySet&lt;/tt>&#xA;and &lt;tt>values&lt;/tt> methods).  Several additional operations are provided&#xA;to take advantage of the ordering.  (This interface is the map analogue of&#xA;the &lt;tt>SortedSet&lt;/tt> interface.)&lt;p>&#xA;&#xA;All keys inserted into a sorted map must implement the &lt;tt>Comparable&lt;/tt>&#xA;interface (or be accepted by the specified comparator).  Furthermore, all&#xA;such keys must be &lt;i>mutually comparable&lt;/i>: &lt;tt>k1.compareTo(k2)&lt;/tt> (or&#xA;&lt;tt>comparator.compare(k1, k2)&lt;/tt>) must not throw a&#xA;&lt;tt>ClassCastException&lt;/tt> for any elements &lt;tt>k1&lt;/tt> and &lt;tt>k2&lt;/tt> in&#xA;the sorted map.  Attempts to violate this restriction will cause the&#xA;offending method or constructor invocation to throw a&#xA;&lt;tt>ClassCastException&lt;/tt>.&lt;p>&#xA;&#xA;Note that the ordering maintained by a sorted map (whether or not an&#xA;explicit comparator is provided) must be &lt;i>consistent with equals&lt;/i> if&#xA;the sorted map is to correctly implement the &lt;tt>Map&lt;/tt> interface.  (See&#xA;the &lt;tt>Comparable&lt;/tt> interface or &lt;tt>Comparator&lt;/tt> interface for a&#xA;precise definition of &lt;i>consistent with equals&lt;/i>.)  This is so because&#xA;the &lt;tt>Map&lt;/tt> interface is defined in terms of the &lt;tt>equals&lt;/tt>&#xA;operation, but a sorted map performs all key comparisons using its&#xA;&lt;tt>compareTo&lt;/tt> (or &lt;tt>compare&lt;/tt>) method, so two keys that are&#xA;deemed equal by this method are, from the standpoint of the sorted map,&#xA;equal.  The behavior of a tree map &lt;i>is&lt;/i> well-defined even if its&#xA;ordering is inconsistent with equals; it just fails to obey the general&#xA;contract of the &lt;tt>Map&lt;/tt> interface.&lt;p>&#xA;&#xA;All general-purpose sorted map implementation classes should provide four&#xA;&quot;standard&quot; constructors: 1) A void (no arguments) constructor, which&#xA;creates an empty sorted map sorted according to the &lt;i>natural order&lt;/i> of&#xA;its keys.  2) A constructor with a single argument of type&#xA;&lt;tt>Comparator&lt;/tt>, which creates an empty sorted map sorted according to&#xA;the specified comparator.  3) A constructor with a single argument of type&#xA;&lt;tt>Map&lt;/tt>, which creates a new map with the same key-value mappings as&#xA;its argument, sorted according to the keys' natural ordering.  4) A&#xA;constructor with a single argument of type sorted map, which creates a new&#xA;sorted map with the same key-value mappings and the same ordering as the&#xA;input sorted map.  There is no way to enforce this recommendation (as&#xA;interfaces cannot contain constructors) but the JDK implementation&#xA;(TreeMap) complies.&lt;p>&#xA;&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.21, 06/28/04&#xA;@see Map&#xA;@see TreeMap&#xA;@see SortedSet&#xA;@see Comparator&#xA;@see Comparable&#xA;@see Collection&#xA;@see ClassCastException&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_877571_8923"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313447_75632_7466" name="" parameter="_10_5_622020d_1132928313447_627529_7467 _10_5_622020d_1132928313447_470338_7469">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313447_627529_7467" parameteredElement="_10_5_622020d_1132928313447_342478_7468">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313447_342478_7468" name="K" templateParameter="_10_5_622020d_1132928313447_627529_7467"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313447_470338_7469" parameteredElement="_10_5_622020d_1132928313447_992514_7470">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313447_992514_7470" name="V" templateParameter="_10_5_622020d_1132928313447_470338_7469"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322630_965637_15101" isSubstitutable="true" general="_10_5_622020d_1132928322259_617753_14428"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322590_480921_14995" name="IdentityHashMapIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322590_262292_14996" signature="_10_5_622020d_1132928313226_914453_7298">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322590_314076_14997" formal="_10_5_622020d_1132928313226_198737_7299" actual="_10_5_622020d_1132928313226_496617_7295"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_231577_7322" name="InputMismatchException">
            <ownedComment xmi:id="_10_5_622020d_1132928313266_526956_7324" body="Thrown by a &lt;code>Scanner&lt;/code> to indicate that the token&#xA;retrieved does not match the pattern for the expected type, or&#xA;that the token is out of range for the expected type.&#xA;&#xA;@author  unascribed&#xA;@version 1.3 12/19/03&#xA;@see     java.util.Scanner&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_231577_7322"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_735143_15017" isSubstitutable="true" general="_9_5_f720368_1110473546706_769999_8897"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_397401_8915" name="ResourceBundle" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313407_488604_7453" body="Resource bundles contain locale-specific objects.&#xA;When your program needs a locale-specific resource,&#xA;a &lt;code>String&lt;/code> for example, your program can load it&#xA;from the resource bundle that is appropriate for the&#xA;current user's locale. In this way, you can write&#xA;program code that is largely independent of the user's&#xA;locale isolating most, if not all, of the locale-specific&#xA;information in resource bundles.&#xA;&#xA;&lt;p>&#xA;This allows you to write programs that can:&#xA;&lt;UL type=SQUARE>&#xA;&lt;LI> be easily localized, or translated, into different languages&#xA;&lt;LI> handle multiple locales at once&#xA;&lt;LI> be easily modified later to support even more locales&#xA;&lt;/UL>&#xA;&#xA;&lt;P>&#xA;Resource bundles belong to families whose members share a common base&#xA;name, but whose names also have additional components that identify&#xA;their locales. For example, the base name of a family of resource&#xA;bundles might be &quot;MyResources&quot;. The family should have a default&#xA;resource bundle which simply has the same name as its family -&#xA;&quot;MyResources&quot; - and will be used as the bundle of last resort if a&#xA;specific locale is not supported. The family can then provide as&#xA;many locale-specific members as needed, for example a German one&#xA;named &quot;MyResources_de&quot;.&#xA;&#xA;&lt;P>&#xA;Each resource bundle in a family contains the same items, but the items have&#xA;been translated for the locale represented by that resource bundle.&#xA;For example, both &quot;MyResources&quot; and &quot;MyResources_de&quot; may have a&#xA;&lt;code>String&lt;/code> that's used on a button for canceling operations.&#xA;In &quot;MyResources&quot; the &lt;code>String&lt;/code> may contain &quot;Cancel&quot; and in&#xA;&quot;MyResources_de&quot; it may contain &quot;Abbrechen&quot;.&#xA;&#xA;&lt;P>&#xA;If there are different resources for different countries, you&#xA;can make specializations: for example, &quot;MyResources_de_CH&quot; contains objects for&#xA;the German language (de) in Switzerland (CH). If you want to only&#xA;modify some of the resources&#xA;in the specialization, you can do so.&#xA;&#xA;&lt;P>&#xA;When your program needs a locale-specific object, it loads&#xA;the &lt;code>ResourceBundle&lt;/code> class using the&#xA;{@link #getBundle(java.lang.String, java.util.Locale) getBundle}&#xA;method:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;ResourceBundle myResources =&#xA;ResourceBundle.getBundle(&quot;MyResources&quot;, currentLocale);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;P>&#xA;Resource bundles contain key/value pairs. The keys uniquely&#xA;identify a locale-specific object in the bundle. Here's an&#xA;example of a &lt;code>ListResourceBundle&lt;/code> that contains&#xA;two key/value pairs:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;public class MyResources extends ListResourceBundle {&#xA;public Object[][] getContents() {&#xA;return contents;&#xA;}&#xA;static final Object[][] contents = {&#xA;LOCALIZE THIS&#xA;{&quot;OkKey&quot;, &quot;OK&quot;},&#xA;{&quot;CancelKey&quot;, &quot;Cancel&quot;},&#xA;END OF MATERIAL TO LOCALIZE&#xA;};&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;Keys are always &lt;code>String&lt;/code>s.&#xA;In this example, the keys are &quot;OkKey&quot; and &quot;CancelKey&quot;.&#xA;In the above example, the values&#xA;are also &lt;code>String&lt;/code>s--&quot;OK&quot; and &quot;Cancel&quot;--but&#xA;they don't have to be. The values can be any type of object.&#xA;&#xA;&lt;P>&#xA;You retrieve an object from resource bundle using the appropriate&#xA;getter method. Because &quot;OkKey&quot; and &quot;CancelKey&quot;&#xA;are both strings, you would use &lt;code>getString&lt;/code> to retrieve them:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;button1 = new Button(myResources.getString(&quot;OkKey&quot;));&#xA;button2 = new Button(myResources.getString(&quot;CancelKey&quot;));&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;The getter methods all require the key as an argument and return&#xA;the object if found. If the object is not found, the getter method&#xA;throws a &lt;code>MissingResourceException&lt;/code>.&#xA;&#xA;&lt;P>&#xA;Besides &lt;code>getString&lt;/code>, ResourceBundle also provides&#xA;a method for getting string arrays, &lt;code>getStringArray&lt;/code>,&#xA;as well as a generic &lt;code>getObject&lt;/code> method for any other&#xA;type of object. When using &lt;code>getObject&lt;/code>, you'll&#xA;have to cast the result to the appropriate type. For example:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;int[] myIntegers = (int[]) myResources.getObject(&quot;intList&quot;);&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;P>&#xA;The Java 2 platform provides two subclasses of &lt;code>ResourceBundle&lt;/code>,&#xA;&lt;code>ListResourceBundle&lt;/code> and &lt;code>PropertyResourceBundle&lt;/code>,&#xA;that provide a fairly simple way to create resources.&#xA;As you saw briefly in a previous example, &lt;code>ListResourceBundle&lt;/code>&#xA;manages its resource as a List of key/value pairs.&#xA;&lt;code>PropertyResourceBundle&lt;/code> uses a properties file to manage&#xA;its resources.&#xA;&#xA;&lt;p>&#xA;If &lt;code>ListResourceBundle&lt;/code> or &lt;code>PropertyResourceBundle&lt;/code>&#xA;do not suit your needs, you can write your own &lt;code>ResourceBundle&lt;/code>&#xA;subclass.  Your subclasses must override two methods: &lt;code>handleGetObject&lt;/code>&#xA;and &lt;code>getKeys()&lt;/code>.&#xA;&#xA;&lt;P>&#xA;The following is a very simple example of a &lt;code>ResourceBundle&lt;/code>&#xA;subclass, MyResources, that manages two resources (for a larger number of&#xA;resources you would probably use a &lt;code>Hashtable&lt;/code>).&#xA;Notice that you don't need to supply a value if&#xA;a &quot;parent-level&quot; &lt;code>ResourceBundle&lt;/code> handles the same&#xA;key with the same value (as for the okKey below).&#xA;&lt;p>&lt;strong>Example:&lt;/strong>&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;default (English language, United States)&#xA;public class MyResources extends ResourceBundle {&#xA;public Object handleGetObject(String key) {&#xA;if (key.equals(&quot;okKey&quot;)) return &quot;Ok&quot;;&#xA;if (key.equals(&quot;cancelKey&quot;)) return &quot;Cancel&quot;;&#xA;return null;&#xA;}&#xA;}&#xA;&#xA;German language&#xA;public class MyResources_de extends MyResources {&#xA;public Object handleGetObject(String key) {&#xA;don't need okKey, since parent level handles it.&#xA;if (key.equals(&quot;cancelKey&quot;)) return &quot;Abbrechen&quot;;&#xA;return null;&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;You do not have to restrict yourself to using a single family of&#xA;&lt;code>ResourceBundle&lt;/code>s. For example, you could have a set of bundles for&#xA;exception messages, &lt;code>ExceptionResources&lt;/code>&#xA;(&lt;code>ExceptionResources_fr&lt;/code>, &lt;code>ExceptionResources_de&lt;/code>, ...),&#xA;and one for widgets, &lt;code>WidgetResource&lt;/code> (&lt;code>WidgetResources_fr&lt;/code>,&#xA;&lt;code>WidgetResources_de&lt;/code>, ...); breaking up the resources however you like.&#xA;&#xA;@see ListResourceBundle&#xA;@see PropertyResourceBundle&#xA;@see MissingResourceException&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_397401_8915"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_819105_19567" name="ResourceCacheKey" visibility="private" clientDependency="_10_5_622020d_1132928322620_560360_15089" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928313357_370188_7449" body="Key used for cached resource bundles.  The key checks&#xA;the resource name, the class loader, and the default&#xA;locale to determine if the resource is a match to the&#xA;requested one. The loader may be null, but the&#xA;searchName and the default locale must have a non-null value.&#xA;Note that the default locale may change over time, and&#xA;lookup should always be based on the current default&#xA;locale (if at all).&#xA;" annotatedElement="_9_5_f720368_1110473547878_819105_19567"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322620_560360_15089" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473547878_819105_19567" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_233904_7450" name="LoaderReference" visibility="private" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928313357_178365_7451" body="References to class loaders are weak references, so that they can be&#xA;garbage collected when nobody else is using them. The ResourceBundle&#xA;class has no reason to keep class loaders alive.&#xA;" annotatedElement="_10_5_622020d_1132928313357_233904_7450"/>
              <generalization xmi:id="_10_5_622020d_1132928322620_582765_15090" isSubstitutable="true" general="_9_5_f720368_1110473546612_633971_7521"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313246_255927_7304" name="IllegalFormatCodePointException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_476977_7306" body="Unchecked exception thrown when a character with an invalid Unicode code&#xA;point as defined by {@link Character#isValidCodePoint} is passed to the&#xA;{@link Formatter}.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313246_255927_7304"/>
            <generalization xmi:id="_10_5_622020d_1132928322590_949096_15011" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322570_168554_14950" name="HashIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322570_473561_14951" signature="_10_5_622020d_1132928313206_456184_7264">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322570_800776_14952" formal="_10_5_622020d_1132928313206_388419_7265" actual="_10_5_622020d_1132928313206_235255_7256"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322510_697143_14831" name="CheckedSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322510_935371_14832" signature="_10_5_622020d_1132928310903_693634_7082">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322510_435861_14833" formal="_10_5_622020d_1132928310903_242357_7083" actual="_10_5_622020d_1132928310903_452915_7089"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322550_990582_14914" name="EnumMapIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322550_426455_14915" signature="_10_5_622020d_1132928310953_414898_7202">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322550_308053_14916" formal="_10_5_622020d_1132928310953_71256_7203" actual="_10_5_622020d_1132928310953_986231_7195"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_136303_8831" name="AbstractSet" clientDependency="_10_5_622020d_1132928322470_583076_14726" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310803_112760_6978" body="This class provides a skeletal implementation of the &lt;tt>Set&lt;/tt>&#xA;interface to minimize the effort required to implement this&#xA;interface. &lt;p>&#xA;&#xA;The process of implementing a set by extending this class is identical&#xA;to that of implementing a Collection by extending AbstractCollection,&#xA;except that all of the methods and constructors in subclasses of this&#xA;class must obey the additional constraints imposed by the &lt;tt>Set&lt;/tt>&#xA;interface (for instance, the add method must not permit addition of&#xA;multiple instances of an object to a set).&lt;p>&#xA;&#xA;Note that this class does not override any of the implementations from&#xA;the &lt;tt>AbstractCollection&lt;/tt> class.  It merely adds implementations&#xA;for &lt;tt>equals&lt;/tt> and &lt;tt>hashCode&lt;/tt>.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.26, 02/19/04&#xA;@see Collection&#xA;@see AbstractCollection&#xA;@see Set&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_136303_8831"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310803_326819_6974" name="" parameter="_10_5_622020d_1132928310803_863661_6975">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310803_863661_6975" parameteredElement="_10_5_622020d_1132928310803_80597_6976">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310803_80597_6976" name="E" templateParameter="_10_5_622020d_1132928310803_863661_6975"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322470_566041_14727" isSubstitutable="true" general="_10_5_622020d_1132928322460_639101_14705"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_583076_14726" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_9_5_f720368_1110473546706_136303_8831" contract="_10_5_622020d_1132928322470_406203_14723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928324302_758275_18747" name="Enum&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928324302_32358_18748" signature="_10_5_622020d_1132928307949_365894_5018">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928324302_2620_18749" formal="_10_5_622020d_1132928307949_644246_5019" actual="_10_5_622020d_1132928310953_986231_7195"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_233936_8823" name="SubList" visibility="package">
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_459252_6942" name="" parameter="_10_5_622020d_1132928310793_449260_6943">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_449260_6943" parameteredElement="_10_5_622020d_1132928310793_40661_6944">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_40661_6944" name="E" templateParameter="_10_5_622020d_1132928310793_449260_6943"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322460_200096_14712" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_456221_8835" name="Arrays">
            <ownedComment xmi:id="_10_5_622020d_1132928310813_166667_6989" body="This class contains various methods for manipulating arrays (such as&#xA;sorting and searching).  This class also contains a static factory&#xA;that allows arrays to be viewed as lists.&#xA;&#xA;&lt;p>The methods in this class all throw a &lt;tt>NullPointerException&lt;/tt> if&#xA;the specified array reference is null, except where noted.&#xA;&#xA;&lt;p>The documentation for the methods contained in this class includes&#xA;briefs description of the &lt;i>implementations&lt;/i>.  Such descriptions should&#xA;be regarded as &lt;i>implementation notes&lt;/i>, rather than parts of the&#xA;&lt;i>specification&lt;/i>.  Implementors should feel free to substitute other&#xA;algorithms, so long as the specification itself is adhered to.  (For&#xA;example, the algorithm used by &lt;tt>sort(Object[])&lt;/tt> does not have to be&#xA;a mergesort, but it does have to be &lt;i>stable&lt;/i>.)&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.59, 04/01/04&#xA;@see     Comparable&#xA;@see     Comparator&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_456221_8835"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_141183_19412" name="ArrayList" visibility="private" clientDependency="_10_5_622020d_1132928322470_628165_14733 _10_5_622020d_1132928322470_72446_14734">
              <ownedComment xmi:id="_10_5_622020d_1132928310813_527433_6987" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547846_141183_19412"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310813_402707_6984" name="" parameter="_10_5_622020d_1132928310813_404141_6985">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310813_404141_6985" parameteredElement="_10_5_622020d_1132928310813_69397_6986">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310813_69397_6986" name="E" templateParameter="_10_5_622020d_1132928310813_404141_6985"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322470_656458_14735" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322470_628165_14733" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547846_141183_19412" contract="_9_5_f720368_1110473546706_6812_8913"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322470_72446_14734" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547846_141183_19412" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_414385_8877" name="Iterator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313266_572652_7332" body="An iterator over a collection.  Iterator takes the place of Enumeration in&#xA;the Java collections framework.  Iterators differ from enumerations in two&#xA;ways: &lt;ul>&#xA;&lt;li> Iterators allow the caller to remove elements from the&#xA;underlying collection during the iteration with well-defined&#xA;semantics.&#xA;&lt;li> Method names have been improved.&#xA;&lt;/ul>&lt;p>&#xA;&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.24, 01/17/04&#xA;@see Collection&#xA;@see ListIterator&#xA;@see Enumeration&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_414385_8877"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_660412_7328" name="" parameter="_10_5_622020d_1132928313266_876300_7329">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_876300_7329" parameteredElement="_10_5_622020d_1132928313266_737621_7330">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_737621_7330" name="E" templateParameter="_10_5_622020d_1132928313266_876300_7329"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_973459_8839" name="Calendar" clientDependency="_10_5_622020d_1132928322480_372267_14743 _10_5_622020d_1132928322470_338940_14739 _10_5_622020d_1132928322470_574287_14738" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310873_528210_6993" body="The &lt;code>Calendar&lt;/code> class is an abstract class that provides methods&#xA;for converting between a specific instant in time and a set of {@link&#xA;#fields calendar fields} such as &lt;code>YEAR&lt;/code>, &lt;code>MONTH&lt;/code>,&#xA;&lt;code>DAY_OF_MONTH&lt;/code>, &lt;code>HOUR&lt;/code>, and so on, and for&#xA;manipulating the calendar fields, such as getting the date of the next&#xA;week. An instant in time can be represented by a millisecond value that is&#xA;an offset from the &lt;a name=&quot;Epoch&quot;>&lt;em>Epoch&lt;/em>&lt;/a>, January 1, 1970&#xA;00:00:00.000 GMT (Gregorian).&#xA;&#xA;&lt;p>The class also provides additional fields and methods for&#xA;implementing a concrete calendar system outside the package. Those&#xA;fields and methods are defined as &lt;code>protected&lt;/code>.&#xA;&#xA;&lt;p>&#xA;Like other locale-sensitive classes, &lt;code>Calendar&lt;/code> provides a&#xA;class method, &lt;code>getInstance&lt;/code>, for getting a generally useful&#xA;object of this type. &lt;code>Calendar&lt;/code>'s &lt;code>getInstance&lt;/code> method&#xA;returns a &lt;code>Calendar&lt;/code> object whose&#xA;calendar fields have been initialized with the current date and time:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Calendar rightNow = Calendar.getInstance();&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>A &lt;code>Calendar&lt;/code> object can produce all the calendar field values&#xA;needed to implement the date-time formatting for a particular language and&#xA;calendar style (for example, Japanese-Gregorian, Japanese-Traditional).&#xA;&lt;code>Calendar&lt;/code> defines the range of values returned by&#xA;certain calendar fields, as well as their meaning.  For example,&#xA;the first month of the calendar system has value &lt;code>MONTH ==&#xA;JANUARY&lt;/code> for all calendars.  Other values are defined by the&#xA;concrete subclass, such as &lt;code>ERA&lt;/code>.  See individual field&#xA;documentation and subclass documentation for details.&#xA;&#xA;&lt;h4>Getting and Setting Calendar Field Values&lt;/h4>&#xA;&#xA;&lt;p>The calendar field values can be set by calling the &lt;code>set&lt;/code>&#xA;methods. Any field values set in a &lt;code>Calendar&lt;/code> will not be&#xA;interpreted until it needs to calculate its time value (milliseconds from&#xA;the Epoch) or values of the calendar fields. Calling the&#xA;&lt;code>get&lt;/code>, &lt;code>getTimeInMillis&lt;/code>, &lt;code>getTime&lt;/code>,&#xA;&lt;code>add&lt;/code> and &lt;code>roll&lt;/code> involves such calculation.&#xA;&#xA;&lt;h4>Leniency&lt;/h4>&#xA;&#xA;&lt;p>&lt;code>Calendar&lt;/code> has two modes for interpreting the calendar&#xA;fields, &lt;em>lenient&lt;/em> and &lt;em>non-lenient&lt;/em>.  When a&#xA;&lt;code>Calendar&lt;/code> is in lenient mode, it accepts a wider range of&#xA;calendar field values than it produces.  When a &lt;code>Calendar&lt;/code>&#xA;recomputes calendar field values for return by &lt;code>get()&lt;/code>, all of&#xA;the calendar fields are normalized. For example, a lenient&#xA;&lt;code>GregorianCalendar&lt;/code> interprets &lt;code>MONTH == JANUARY&lt;/code>,&#xA;&lt;code>DAY_OF_MONTH == 32&lt;/code> as February 1.&#xA;&lt;p>When a &lt;code>Calendar&lt;/code> is in non-lenient mode, it throws an&#xA;exception if there is any inconsistency in its calendar fields. For&#xA;example, a &lt;code>GregorianCalendar&lt;/code> always produces&#xA;&lt;code>DAY_OF_MONTH&lt;/code> values between 1 and the length of the month. A&#xA;non-lenient &lt;code>GregorianCalendar&lt;/code> throws an exception upon&#xA;calculating its time or calendar field values if any out-of-range field&#xA;value has been set.&#xA;&#xA;&lt;h4>First Week&lt;/h4>&#xA;&#xA;&lt;code>Calendar&lt;/code> defines a locale-specific seven day week using two&#xA;parameters: the first day of the week and the minimal days in first week&#xA;(from 1 to 7).  These numbers are taken from the locale resource data when a&#xA;&lt;code>Calendar&lt;/code> is constructed.  They may also be specified explicitly&#xA;through the methods for setting their values.&#xA;&#xA;&lt;p>When setting or getting the &lt;code>WEEK_OF_MONTH&lt;/code> or&#xA;&lt;code>WEEK_OF_YEAR&lt;/code> fields, &lt;code>Calendar&lt;/code> must determine the&#xA;first week of the month or year as a reference point.  The first week of a&#xA;month or year is defined as the earliest seven day period beginning on&#xA;&lt;code>getFirstDayOfWeek()&lt;/code> and containing at least&#xA;&lt;code>getMinimalDaysInFirstWeek()&lt;/code> days of that month or year.  Weeks&#xA;numbered ..., -1, 0 precede the first week; weeks numbered 2, 3,... follow&#xA;it.  Note that the normalized numbering returned by &lt;code>get()&lt;/code> may be&#xA;different.  For example, a specific &lt;code>Calendar&lt;/code> subclass may&#xA;designate the week before week 1 of a year as week &lt;code>&lt;i>n&lt;/i>&lt;/code> of&#xA;the previous year.&#xA;&#xA;&lt;h4>Calendar Fields Resolution&lt;/h4>&#xA;&#xA;When computing a date and time from the calendar fields, there&#xA;may be insufficient information for the computation (such as only&#xA;year and month with no day of month), or there may be inconsistent&#xA;information (such as Tuesday, July 15, 1996 (Gregorian) -- July 15,&#xA;1996 is actually a Monday). &lt;code>Calendar&lt;/code> will resolve&#xA;calendar field values to determine the date and time in the&#xA;following way.&#xA;&#xA;&lt;p>If there is any conflict in calendar field values,&#xA;&lt;code>Calendar&lt;/code> gives priorities to calendar fields that have been set&#xA;more recently. The following are the default combinations of the&#xA;calendar fields. The most recent combination, as determined by the&#xA;most recently set single field, will be used.&#xA;&#xA;&lt;p>&lt;a name=&quot;date_resolution&quot;>For the date fields&lt;/a>:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;YEAR + MONTH + DAY_OF_MONTH&#xA;YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK&#xA;YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK&#xA;YEAR + DAY_OF_YEAR&#xA;YEAR + DAY_OF_WEEK + WEEK_OF_YEAR&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;a name=&quot;time_resolution&quot;>For the time of day fields&lt;/a>:&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;HOUR_OF_DAY&#xA;AM_PM + HOUR&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>If there are any calendar fields whose values haven't been set in the selected&#xA;field combination, &lt;code>Calendar&lt;/code> uses their default values. The default&#xA;value of each field may vary by concrete calendar systems. For example, in&#xA;&lt;code>GregorianCalendar&lt;/code>, the default of a field is the same as that&#xA;of the start of the Epoch: i.e., &lt;code>YEAR = 1970&lt;/code>, &lt;code>MONTH =&#xA;JANUARY&lt;/code>, &lt;code>DAY_OF_MONTH = 1&lt;/code>, etc.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Note:&lt;/strong> There are certain possible ambiguities in&#xA;interpretation of certain singular times, which are resolved in the&#xA;following ways:&#xA;&lt;ol>&#xA;&lt;li> 23:59 is the last minute of the day and 00:00 is the first&#xA;minute of the next day. Thus, 23:59 on Dec 31, 1999 &lt; 00:00 on&#xA;Jan 1, 2000 &lt; 00:01 on Jan 1, 2000.&#xA;&#xA;&lt;li> Although historically not precise, midnight also belongs to &quot;am&quot;,&#xA;and noon belongs to &quot;pm&quot;, so on the same day,&#xA;12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm&#xA;&lt;/ol>&#xA;&#xA;&lt;p>&#xA;The date or time format strings are not part of the definition of a&#xA;calendar, as those must be modifiable or overridable by the user at&#xA;runtime. Use {@link DateFormat}&#xA;to format dates.&#xA;&#xA;&lt;h4>Field Manipulation&lt;/h4>&#xA;&#xA;The calendar fields can be changed using three methods:&#xA;&lt;code>set()&lt;/code>, &lt;code>add()&lt;/code>, and &lt;code>roll()&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>&lt;strong>&lt;code>set(f, value)&lt;/code>&lt;/strong> changes calendar field&#xA;&lt;code>f&lt;/code> to &lt;code>value&lt;/code>.  In addition, it sets an&#xA;internal member variable to indicate that calendar field &lt;code>f&lt;/code> has&#xA;been changed. Although calendar field &lt;code>f&lt;/code> is changed immediately,&#xA;the calendar's time value in milliseconds is not recomputed until the next call to&#xA;&lt;code>get()&lt;/code>, &lt;code>getTime()&lt;/code>, &lt;code>getTimeInMillis()&lt;/code>,&#xA;&lt;code>add()&lt;/code>, or &lt;code>roll()&lt;/code> is made. Thus, multiple calls to&#xA;&lt;code>set()&lt;/code> do not trigger multiple, unnecessary&#xA;computations. As a result of changing a calendar field using&#xA;&lt;code>set()&lt;/code>, other calendar fields may also change, depending on the&#xA;calendar field, the calendar field value, and the calendar system. In addition,&#xA;&lt;code>get(f)&lt;/code> will not necessarily return &lt;code>value&lt;/code> set by&#xA;the call to the &lt;code>set&lt;/code> method&#xA;after the calendar fields have been recomputed. The specifics are determined by&#xA;the concrete calendar class.&lt;/p>&#xA;&#xA;&lt;p>&lt;em>Example&lt;/em>: Consider a &lt;code>GregorianCalendar&lt;/code>&#xA;originally set to August 31, 1999. Calling &lt;code>set(Calendar.MONTH,&#xA;Calendar.SEPTEMBER)&lt;/code> sets the date to September 31,&#xA;1999. This is a temporary internal representation that resolves to&#xA;October 1, 1999 if &lt;code>getTime()&lt;/code>is then called. However, a&#xA;call to &lt;code>set(Calendar.DAY_OF_MONTH, 30)&lt;/code> before the call to&#xA;&lt;code>getTime()&lt;/code> sets the date to September 30, 1999, since&#xA;no recomputation occurs after &lt;code>set()&lt;/code> itself.&lt;/p>&#xA;&#xA;&lt;p>&lt;strong>&lt;code>add(f, delta)&lt;/code>&lt;/strong> adds &lt;code>delta&lt;/code>&#xA;to field &lt;code>f&lt;/code>.  This is equivalent to calling &lt;code>set(f,&#xA;get(f) + delta)&lt;/code> with two adjustments:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&lt;p>&lt;strong>Add rule 1&lt;/strong>. The value of field &lt;code>f&lt;/code>&#xA;after the call minus the value of field &lt;code>f&lt;/code> before the&#xA;call is &lt;code>delta&lt;/code>, modulo any overflow that has occurred in&#xA;field &lt;code>f&lt;/code>. Overflow occurs when a field value exceeds its&#xA;range and, as a result, the next larger field is incremented or&#xA;decremented and the field value is adjusted back into its range.&lt;/p>&#xA;&#xA;&lt;p>&lt;strong>Add rule 2&lt;/strong>. If a smaller field is expected to be&#xA;invariant, but it is impossible for it to be equal to its&#xA;prior value because of changes in its minimum or maximum after field&#xA;&lt;code>f&lt;/code> is changed or other constraints, such as time zone&#xA;offset changes, then its value is adjusted to be as close&#xA;as possible to its expected value. A smaller field represents a&#xA;smaller unit of time. &lt;code>HOUR&lt;/code> is a smaller field than&#xA;&lt;code>DAY_OF_MONTH&lt;/code>. No adjustment is made to smaller fields&#xA;that are not expected to be invariant. The calendar system&#xA;determines what fields are expected to be invariant.&lt;/p>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>In addition, unlike &lt;code>set()&lt;/code>, &lt;code>add()&lt;/code> forces&#xA;an immediate recomputation of the calendar's milliseconds and all&#xA;fields.&lt;/p>&#xA;&#xA;&lt;p>&lt;em>Example&lt;/em>: Consider a &lt;code>GregorianCalendar&lt;/code>&#xA;originally set to August 31, 1999. Calling &lt;code>add(Calendar.MONTH,&#xA;13)&lt;/code> sets the calendar to September 30, 2000. &lt;strong>Add rule&#xA;1&lt;/strong> sets the &lt;code>MONTH&lt;/code> field to September, since&#xA;adding 13 months to August gives September of the next year. Since&#xA;&lt;code>DAY_OF_MONTH&lt;/code> cannot be 31 in September in a&#xA;&lt;code>GregorianCalendar&lt;/code>, &lt;strong>add rule 2&lt;/strong> sets the&#xA;&lt;code>DAY_OF_MONTH&lt;/code> to 30, the closest possible value. Although&#xA;it is a smaller field, &lt;code>DAY_OF_WEEK&lt;/code> is not adjusted by&#xA;rule 2, since it is expected to change when the month changes in a&#xA;&lt;code>GregorianCalendar&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>&lt;strong>&lt;code>roll(f, delta)&lt;/code>&lt;/strong> adds&#xA;&lt;code>delta&lt;/code> to field &lt;code>f&lt;/code> without changing larger&#xA;fields. This is equivalent to calling &lt;code>add(f, delta)&lt;/code> with&#xA;the following adjustment:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&lt;p>&lt;strong>Roll rule&lt;/strong>. Larger fields are unchanged after the&#xA;call. A larger field represents a larger unit of&#xA;time. &lt;code>DAY_OF_MONTH&lt;/code> is a larger field than&#xA;&lt;code>HOUR&lt;/code>.&lt;/p>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&lt;em>Example&lt;/em>: See {@link java.util.GregorianCalendar#roll(int, int)}.&#xA;&#xA;&lt;p>&lt;strong>Usage model&lt;/strong>. To motivate the behavior of&#xA;&lt;code>add()&lt;/code> and &lt;code>roll()&lt;/code>, consider a user interface&#xA;component with increment and decrement buttons for the month, day, and&#xA;year, and an underlying &lt;code>GregorianCalendar&lt;/code>. If the&#xA;interface reads January 31, 1999 and the user presses the month&#xA;increment button, what should it read? If the underlying&#xA;implementation uses &lt;code>set()&lt;/code>, it might read March 3, 1999. A&#xA;better result would be February 28, 1999. Furthermore, if the user&#xA;presses the month increment button again, it should read March 31,&#xA;1999, not March 28, 1999. By saving the original date and using either&#xA;&lt;code>add()&lt;/code> or &lt;code>roll()&lt;/code>, depending on whether larger&#xA;fields should be affected, the user interface can behave as most users&#xA;will intuitively expect.&lt;/p>&#xA;&#xA;@see          java.lang.System#currentTimeMillis()&#xA;@see          Date&#xA;@see          GregorianCalendar&#xA;@see          TimeZone&#xA;@see          java.text.DateFormat&#xA;@version      1.81, 07/26/04&#xA;@author Mark Davis, David Goldsmith, Chen-Lieh Huang, Alan Liu&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_973459_8839"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_574287_14738" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_973459_8839" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_338940_14739" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_973459_8839" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322480_372267_14743" name="" supplier="_10_5_622020d_1132928322480_309783_14740" client="_9_5_f720368_1110473546706_973459_8839" contract="_10_5_622020d_1132928322480_309783_14740"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928309902_143280_6285" name="concurrent">
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322279_16326_14475" name="Callable&lt;Object>">
              <templateBinding xmi:id="_10_5_622020d_1132928322279_238071_14476" signature="_10_5_622020d_1132928310062_12426_6437">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322279_294623_14477" formal="_10_5_622020d_1132928310062_125382_6438" actual="_9_5_f720368_1110473546612_117118_7661"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322299_275509_14513" name="BlockingQueue&lt;Runnable>">
              <templateBinding xmi:id="_10_5_622020d_1132928322299_792719_14514" signature="_10_5_622020d_1132928310062_967032_6428">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322299_606780_14515" formal="_10_5_622020d_1132928310062_469969_6429" actual="_9_5_f720368_1110473546612_953158_7669"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310152_655602_6542" name="DelayQueue" clientDependency="_10_5_622020d_1132928322269_51286_14459">
              <ownedComment xmi:id="_10_5_622020d_1132928310172_97501_6551" body="An unbounded {@linkplain BlockingQueue blocking queue} of&#xA;&lt;tt>Delayed&lt;/tt> elements, in which an element can only be taken&#xA;when its delay has expired.  The &lt;em>head&lt;/em> of the queue is that&#xA;&lt;tt>Delayed&lt;/tt> element whose delay expired furthest in the&#xA;past. If no delay has expired there is no head and &lt;tt>poll&lt;/tt>&#xA;will return &lt;tt>null&lt;/tt>. Expiration occurs when an element's&#xA;&lt;tt>getDelay(TimeUnit.NANOSECONDS)&lt;/tt> method returns a value less&#xA;than or equal to zero.  This queue does not permit &lt;tt>null&lt;/tt>&#xA;elements.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310152_655602_6542"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310152_203090_6543" name="" parameter="_10_5_622020d_1132928310152_313097_6544">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310152_313097_6544" parameteredElement="_10_5_622020d_1132928310152_221957_6545">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310152_221957_6545" name="E" clientDependency="_10_5_622020d_1132928324282_862383_18746" templateParameter="_10_5_622020d_1132928310152_313097_6544">
                    <interfaceRealization xmi:id="_10_5_622020d_1132928324282_862383_18746" name="" supplier="_10_5_622020d_1132928310152_297569_6539" client="_10_5_622020d_1132928310152_221957_6545" contract="_10_5_622020d_1132928310152_297569_6539"/>
                  </ownedParameteredElement>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322269_253438_14460" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322269_51286_14459" name="" supplier="_10_5_622020d_1132928321989_740687_14350" client="_10_5_622020d_1132928310152_655602_6542" contract="_10_5_622020d_1132928321989_740687_14350"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310152_426118_6546" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322269_584538_14461">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310162_917793_6547" name="" parameter="_10_5_622020d_1132928310162_207957_6548">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310162_207957_6548" parameteredElement="_10_5_622020d_1132928310162_173704_6549">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310162_173704_6549" name="E" templateParameter="_10_5_622020d_1132928310162_207957_6548"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322269_584538_14461" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310152_426118_6546" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322289_355058_14508" name="ScheduledFuture&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322289_732428_14509" signature="_10_5_622020d_1132928310212_527361_6651">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322289_309495_14510" formal="_10_5_622020d_1132928310212_394077_6652" actual="_10_5_622020d_1132928310212_237643_6660"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310212_73589_6656" name="ScheduledThreadPoolExecutor" clientDependency="_10_5_622020d_1132928322289_737689_14506">
              <ownedComment xmi:id="_10_5_622020d_1132928310222_933143_6664" body="A {@link ThreadPoolExecutor} that can additionally schedule&#xA;commands to run after a given delay, or to execute&#xA;periodically. This class is preferable to {@link java.util.Timer}&#xA;when multiple worker threads are needed, or when the additional&#xA;flexibility or capabilities of {@link ThreadPoolExecutor} (which&#xA;this class extends) are required.&#xA;&#xA;&lt;p> Delayed tasks execute no sooner than they are enabled, but&#xA;without any real-time guarantees about when, after they are&#xA;enabled, they will commence. Tasks scheduled for exactly the same&#xA;execution time are enabled in first-in-first-out (FIFO) order of&#xA;submission.&#xA;&#xA;&lt;p>While this class inherits from {@link ThreadPoolExecutor}, a few&#xA;of the inherited tuning methods are not useful for it. In&#xA;particular, because it acts as a fixed-sized pool using&#xA;&lt;tt>corePoolSize&lt;/tt> threads and an unbounded queue, adjustments&#xA;to &lt;tt>maximumPoolSize&lt;/tt> have no useful effect.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310212_73589_6656"/>
              <generalization xmi:id="_10_5_622020d_1132928322289_582470_14507" isSubstitutable="true" general="_10_5_622020d_1132928310252_134742_6695"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_737689_14506" name="" supplier="_10_5_622020d_1132928310212_542420_6647" client="_10_5_622020d_1132928310212_73589_6656" contract="_10_5_622020d_1132928310212_542420_6647"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310212_516787_6657" name="ScheduledFutureTask" visibility="private" clientDependency="_10_5_622020d_1132928322299_425169_14511">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310212_653812_6658" name="" parameter="_10_5_622020d_1132928310212_94146_6659">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310212_94146_6659" parameteredElement="_10_5_622020d_1132928310212_237643_6660">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310212_237643_6660" name="V" templateParameter="_10_5_622020d_1132928310212_94146_6659"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <generalization xmi:id="_10_5_622020d_1132928322299_375489_14512" isSubstitutable="true" general="_10_5_622020d_1132928322269_891118_14467"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322299_425169_14511" name="" supplier="_10_5_622020d_1132928322289_355058_14508" client="_10_5_622020d_1132928310212_516787_6657" contract="_10_5_622020d_1132928322289_355058_14508"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310212_998528_6661" name="DelayedWorkQueue" visibility="private" clientDependency="_10_5_622020d_1132928322299_920694_14516">
                <ownedComment xmi:id="_10_5_622020d_1132928310212_260905_6662" body="An annoying wrapper class to convince generics compiler to&#xA;use a DelayQueue&lt;ScheduledFutureTask> as a BlockingQueue&lt;Runnable>&#xA;" annotatedElement="_10_5_622020d_1132928310212_998528_6661"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_543081_14520" isSubstitutable="true" general="_10_5_622020d_1132928322299_507015_14517"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322299_920694_14516" name="" supplier="_10_5_622020d_1132928322299_275509_14513" client="_10_5_622020d_1132928310212_998528_6661" contract="_10_5_622020d_1132928322299_275509_14513"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322019_822336_14400" name="Entry&lt;K, V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322019_851542_14401" signature="_10_5_622020d_1132928313327_288174_7391">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322019_61010_14402" formal="_10_5_622020d_1132928313327_187425_7392" actual="_10_5_622020d_1132928310072_773766_6454"/>
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322019_919334_14403" formal="_10_5_622020d_1132928313327_117316_7394" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322019_759053_14405" name="Iterator&lt;>">
              <templateBinding xmi:id="_10_5_622020d_1132928322229_640290_14408" signature="_10_5_622020d_1132928313266_660412_7328">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322229_833214_14409" formal="_10_5_622020d_1132928313266_876300_7329"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310062_717163_6442" name="CancellationException">
              <ownedComment xmi:id="_10_5_622020d_1132928310062_792737_6444" body="Exception indicating that the result of a value-producing task,&#xA;such as a {@link FutureTask}, cannot be retrieved because the task&#xA;was cancelled.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310062_717163_6442"/>
              <generalization xmi:id="_10_5_622020d_1132928322009_308195_14368" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310122_125441_6499" name="ConcurrentMap" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310122_248216_6506" body="A {@link java.util.Map} providing additional atomic&#xA;&lt;tt>putIfAbsent&lt;/tt>, &lt;tt>remove&lt;/tt>, and &lt;tt>replace&lt;/tt> methods.&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;K> the type of keys maintained by this map&#xA;@param &lt;V> the type of mapped values&#xA;" annotatedElement="_10_5_622020d_1132928310122_125441_6499"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310122_310052_6500" name="" parameter="_10_5_622020d_1132928310122_404169_6501 _10_5_622020d_1132928310122_867585_6503">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_404169_6501" parameteredElement="_10_5_622020d_1132928310122_469744_6502">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_469744_6502" name="K" templateParameter="_10_5_622020d_1132928310122_404169_6501"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_867585_6503" parameteredElement="_10_5_622020d_1132928310122_874330_6504">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_874330_6504" name="V" templateParameter="_10_5_622020d_1132928310122_867585_6503"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322259_671427_14432" isSubstitutable="true" general="_10_5_622020d_1132928322259_617753_14428"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322019_44427_14395" name="Enumeration&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322019_814438_14396" signature="_10_5_622020d_1132928310953_589904_7187">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322019_613194_14397" formal="_10_5_622020d_1132928310953_916423_7188" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928309932_22311_6374" name="locks">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_406456_6375" name="AbstractQueuedSynchronizer" clientDependency="_10_5_622020d_1132928321969_943856_14332" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928309972_356251_6381" body="Provides a framework for implementing blocking locks and related&#xA;synchronizers (semaphores, events, etc) that rely on&#xA;first-in-first-out (FIFO) wait queues.  This class is designed to&#xA;be a useful basis for most kinds of synchronizers that rely on a&#xA;single atomic &lt;tt>int&lt;/tt> value to represent state. Subclasses&#xA;must define the protected methods that change this state, and which&#xA;define what that state means in terms of this object being acquired&#xA;or released.  Given these, the other methods in this class carry&#xA;out all queuing and blocking mechanics. Subclasses can maintain&#xA;other state fields, but only the atomically updated &lt;tt>int&lt;/tt>&#xA;value manipulated using methods {@link #getState}, {@link&#xA;#setState} and {@link #compareAndSetState} is tracked with respect&#xA;to synchronization.&#xA;&#xA;&lt;p>Subclasses should be defined as non-public internal helper&#xA;classes that are used to implement the synchronization properties&#xA;of their enclosing class.  Class&#xA;&lt;tt>AbstractQueuedSynchronizer&lt;/tt> does not implement any&#xA;synchronization interface.  Instead it defines methods such as&#xA;{@link #acquireInterruptibly} that can be invoked as&#xA;appropriate by concrete locks and related synchronizers to&#xA;implement their public methods.&#xA;&#xA;&lt;p>This class supports either or both a default &lt;em>exclusive&lt;/em>&#xA;mode and a &lt;em>shared&lt;/em> mode. When acquired in exclusive mode,&#xA;attempted acquires by other threads cannot succeed. Shared mode&#xA;acquires by multiple threads may (but need not) succeed. This class&#xA;does not &quot;understand&quot; these differences except in the&#xA;mechanical sense that when a shared mode acquire succeeds, the next&#xA;waiting thread (if one exists) must also determine whether it can&#xA;acquire as well. Threads waiting in the different modes share the&#xA;same FIFO queue. Usually, implementation subclasses support only&#xA;one of these modes, but both can come into play for example in a&#xA;{@link ReadWriteLock}. Subclasses that support only exclusive or&#xA;only shared modes need not define the methods supporting the unused mode.&#xA;&#xA;&lt;p>This class defines a nested {@link ConditionObject} class that&#xA;can be used as a {@link Condition} implementation by subclasses&#xA;supporting exclusive mode for which method {@link&#xA;#isHeldExclusively} reports whether synchronization is exclusively&#xA;held with respect to the current thread, method {@link #release}&#xA;invoked with the current {@link #getState} value fully releases&#xA;this object, and {@link #acquire}, given this saved state value,&#xA;eventually restores this object to its previous acquired state.  No&#xA;&lt;tt>AbstractQueuedSynchronizer&lt;/tt> method otherwise creates such a&#xA;condition, so if this constraint cannot be met, do not use it.  The&#xA;behavior of {@link ConditionObject} depends of course on the&#xA;semantics of its synchronizer implementation.&#xA;&#xA;&lt;p> This class provides inspection, instrumentation, and monitoring&#xA;methods for the internal queue, as well as similar methods for&#xA;condition objects. These can be exported as desired into classes&#xA;using an &lt;tt>AbstractQueuedSynchronizer&lt;/tt> for their&#xA;synchronization mechanics.&#xA;&#xA;&lt;p> Serialization of this class stores only the underlying atomic&#xA;integer maintaining state, so deserialized objects have empty&#xA;thread queues. Typical subclasses requiring serializability will&#xA;define a &lt;tt>readObject&lt;/tt> method that restores this to a known&#xA;initial state upon deserialization.&#xA;&#xA;&lt;h3>Usage&lt;/h3>&#xA;&#xA;&lt;p> To use this class as the basis of a synchronizer, redefine the&#xA;following methods, as applicable, by inspecting and/or modifying&#xA;the synchronization state using {@link #getState}, {@link&#xA;#setState} and/or {@link #compareAndSetState}:&#xA;&#xA;&lt;ul>&#xA;&lt;li> {@link #tryAcquire}&#xA;&lt;li> {@link #tryRelease}&#xA;&lt;li> {@link #tryAcquireShared}&#xA;&lt;li> {@link #tryReleaseShared}&#xA;&lt;li> {@link #isHeldExclusively}&#xA;&lt;/ul>&#xA;&#xA;Each of these methods by default throws {@link&#xA;UnsupportedOperationException}.  Implementations of these methods&#xA;must be internally thread-safe, and should in general be short and&#xA;not block. Defining these methods is the &lt;em>only&lt;/em> supported&#xA;means of using this class. All other methods are declared&#xA;&lt;tt>final&lt;/tt> because they cannot be independently varied.&#xA;&#xA;&lt;p> Even though this class is based on an internal FIFO queue, it&#xA;does not automatically enforce FIFO acquisition policies.  The core&#xA;of exclusive synchronization takes the form:&#xA;&#xA;&lt;pre>&#xA;Acquire:&#xA;while (!tryAcquire(arg)) {&#xA;&lt;em>enqueue thread if it is not already queued&lt;/em>;&#xA;&lt;em>possibly block current thread&lt;/em>;&#xA;}&#xA;&#xA;Release:&#xA;if (tryRelease(arg))&#xA;&lt;em>unblock the first queued thread&lt;/em>;&#xA;&lt;/pre>&#xA;&#xA;(Shared mode is similar but may involve cascading signals.)&#xA;&#xA;&lt;p> Because checks in acquire are invoked before enqueuing, a newly&#xA;acquiring thread may &lt;em>barge&lt;/em> ahead of others that are&#xA;blocked and queued. However, you can, if desired, define&#xA;&lt;tt>tryAcquire&lt;/tt> and/or &lt;tt>tryAcquireShared&lt;/tt> to disable&#xA;barging by internally invoking one or more of the inspection&#xA;methods. In particular, a strict FIFO lock can define&#xA;&lt;tt>tryAcquire&lt;/tt> to immediately return &lt;tt>false&lt;/tt> if {@link&#xA;#getFirstQueuedThread} does not return the current thread.  A&#xA;normally preferable non-strict fair version can immediately return&#xA;&lt;tt>false&lt;/tt> only if {@link #hasQueuedThreads} returns&#xA;&lt;tt>true&lt;/tt> and &lt;tt>getFirstQueuedThread&lt;/tt> is not the current&#xA;thread; or equivalently, that &lt;tt>getFirstQueuedThread&lt;/tt> is both&#xA;non-null and not the current thread.  Further variations are&#xA;possible.&#xA;&#xA;&lt;p> Throughput and scalability are generally highest for the&#xA;default barging (also known as &lt;em>greedy&lt;/em>,&#xA;&lt;em>renouncement&lt;/em>, and &lt;em>convoy-avoidance&lt;/em>) strategy.&#xA;While this is not guaranteed to be fair or starvation-free, earlier&#xA;queued threads are allowed to recontend before later queued&#xA;threads, and each recontention has an unbiased chance to succeed&#xA;against incoming threads.  Also, while acquires do not&#xA;&quot;spin&quot; in the usual sense, they may perform multiple&#xA;invocations of &lt;tt>tryAcquire&lt;/tt> interspersed with other&#xA;computations before blocking.  This gives most of the benefits of&#xA;spins when exclusive synchronization is only briefly held, without&#xA;most of the liabilities when it isn't. If so desired, you can&#xA;augment this by preceding calls to acquire methods with&#xA;&quot;fast-path&quot; checks, possibly prechecking {@link #hasContended}&#xA;and/or {@link #hasQueuedThreads} to only do so if the synchronizer&#xA;is likely not to be contended.&#xA;&#xA;&lt;p> This class provides an efficient and scalable basis for&#xA;synchronization in part by specializing its range of use to&#xA;synchronizers that can rely on &lt;tt>int&lt;/tt> state, acquire, and&#xA;release parameters, and an internal FIFO wait queue. When this does&#xA;not suffice, you can build synchronizers from a lower level using&#xA;{@link java.util.concurrent.atomic atomic} classes, your own custom&#xA;{@link java.util.Queue} classes, and {@link LockSupport} blocking&#xA;support.&#xA;&#xA;&lt;h3>Usage Examples&lt;/h3>&#xA;&#xA;&lt;p>Here is a non-reentrant mutual exclusion lock class that uses&#xA;the value zero to represent the unlocked state, and one to&#xA;represent the locked state. It also supports conditions and exposes&#xA;one of the instrumentation methods:&#xA;&#xA;&lt;pre>&#xA;class Mutex implements Lock, java.io.Serializable {&#xA;&#xA;Our internal helper class&#xA;private static class Sync extends AbstractQueuedSynchronizer {&#xA;Report whether in locked state&#xA;protected boolean isHeldExclusively() {&#xA;return getState() == 1;&#xA;}&#xA;&#xA;Acquire the lock if state is zero&#xA;public boolean tryAcquire(int acquires) {&#xA;assert acquires == 1; // Otherwise unused&#xA;return compareAndSetState(0, 1);&#xA;}&#xA;&#xA;Release the lock by setting state to zero&#xA;protected boolean tryRelease(int releases) {&#xA;assert releases == 1; // Otherwise unused&#xA;if (getState() == 0) throw new IllegalMonitorStateException();&#xA;setState(0);&#xA;return true;&#xA;}&#xA;&#xA;Provide a Condition&#xA;Condition newCondition() { return new ConditionObject(); }&#xA;&#xA;Deserialize properly&#xA;private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException {&#xA;s.defaultReadObject();&#xA;setState(0); // reset to unlocked state&#xA;}&#xA;}&#xA;&#xA;The sync object does all the hard work. We just forward to it.&#xA;private final Sync sync = new Sync();&#xA;&#xA;public void lock()                { sync.acquire(1); }&#xA;public boolean tryLock()          { return sync.tryAcquire(1); }&#xA;public void unlock()              { sync.release(1); }&#xA;public Condition newCondition()   { return sync.newCondition(); }&#xA;public boolean isLocked()         { return sync.isHeldExclusively(); }&#xA;public boolean hasQueuedThreads() { return sync.hasQueuedThreads(); }&#xA;public void lockInterruptibly() throws InterruptedException {&#xA;sync.acquireInterruptibly(1);&#xA;}&#xA;public boolean tryLock(long timeout, TimeUnit unit) throws InterruptedException {&#xA;return sync.tryAcquireNanos(1, unit.toNanos(timeout));&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> Here is a latch class that is like a {@link CountDownLatch}&#xA;except that it only requires a single &lt;tt>signal&lt;/tt> to&#xA;fire. Because a latch is non-exclusive, it uses the &lt;tt>shared&lt;/tt>&#xA;acquire and release methods.&#xA;&#xA;&lt;pre>&#xA;class BooleanLatch {&#xA;&#xA;private static class Sync extends AbstractQueuedSynchronizer {&#xA;boolean isSignalled() { return getState() != 0; }&#xA;&#xA;protected int tryAcquireShared(int ignore) {&#xA;return isSignalled()? 1 : -1;&#xA;}&#xA;&#xA;protected boolean tryReleaseShared(int ignore) {&#xA;setState(1);&#xA;return true;&#xA;}&#xA;}&#xA;&#xA;private final Sync sync = new Sync();&#xA;public boolean isSignalled() { return sync.isSignalled(); }&#xA;public void signal()         { sync.releaseShared(1); }&#xA;public void await() throws InterruptedException {&#xA;sync.acquireSharedInterruptibly(1);&#xA;}&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309932_406456_6375"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_943856_14332" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309932_406456_6375" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_779534_6376" name="Node" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928309932_992876_6377" body="Wait queue node class.&#xA;&#xA;&lt;p> The wait queue is a variant of a &quot;CLH&quot; (Craig, Landin, and&#xA;Hagersten) lock queue. CLH locks are normally used for&#xA;spinlocks.  We instead use them for blocking synchronizers, but&#xA;use the same basic tactic of holding some of the control&#xA;information about a thread in the predecessor of its node.  A&#xA;&quot;status&quot; field in each node keeps track of whether a thread&#xA;should block.  A node is signalled when its predecessor&#xA;releases.  Each node of the queue otherwise serves as a&#xA;specific-notification-style monitor holding a single waiting&#xA;thread. The status field does NOT control whether threads are&#xA;granted locks etc though.  A thread may try to acquire if it is&#xA;first in the queue. But being first does not guarantee success;&#xA;it only gives the right to contend.  So the currently released&#xA;contender thread may need to rewait.&#xA;&#xA;&lt;p>To enqueue into a CLH lock, you atomically splice it in as new&#xA;tail. To dequeue, you just set the head field.&#xA;&lt;pre>&#xA;+------+  prev +-----+       +-----+&#xA;head |      | &lt;---- |     | &lt;---- |     |  tail&#xA;+------+       +-----+       +-----+&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Insertion into a CLH queue requires only a single atomic&#xA;operation on &quot;tail&quot;, so there is a simple atomic point of&#xA;demarcation from unqueued to queued. Similarly, dequeing&#xA;involves only updating the &quot;head&quot;. However, it takes a bit&#xA;more work for nodes to determine who their successors are,&#xA;in part to deal with possible cancellation due to timeouts&#xA;and interrupts.&#xA;&#xA;&lt;p>The &quot;prev&quot; links (not used in original CLH locks), are mainly&#xA;needed to handle cancellation. If a node is cancelled, its&#xA;successor is (normally) relinked to a non-cancelled&#xA;predecessor. For explanation of similar mechanics in the case&#xA;of spin locks, see the papers by Scott and Scherer at&#xA;http://www.cs.rochester.edu/u/scott/synchronization&#xA;&#xA;&lt;p>We also use &quot;next&quot; links to implement blocking mechanics.&#xA;The thread id for each node is kept in its own node, so a&#xA;predecessor signals the next node to wake up by traversing&#xA;next link to determine which thread it is.  Determination of&#xA;successor must avoid races with newly queued nodes to set&#xA;the &quot;next&quot; fields of their predecessors.  This is solved&#xA;when necessary by checking backwards from the atomically&#xA;updated &quot;tail&quot; when a node's successor appears to be null.&#xA;(Or, said differently, the next-links are an optimization&#xA;so that we don't usually need a backward scan.)&#xA;&#xA;&lt;p>Cancellation introduces some conservatism to the basic&#xA;algorithms.  Since we must poll for cancellation of other&#xA;nodes, we can miss noticing whether a cancelled node is&#xA;ahead or behind us. This is dealt with by always unparking&#xA;successors upon cancellation, allowing them to stabilize on&#xA;a new predecessor.&#xA;&#xA;&lt;p>CLH queues need a dummy header node to get started. But&#xA;we don't create them on construction, because it would be wasted&#xA;effort if there is never contention. Instead, the node&#xA;is constructed and head and tail pointers are set upon first&#xA;contention.&#xA;&#xA;&lt;p>Threads waiting on Conditions use the same nodes, but&#xA;use an additional link. Conditions only need to link nodes&#xA;in simple (non-concurrent) linked queues because they are&#xA;only accessed when exclusively held.  Upon await, a node is&#xA;inserted into a condition queue.  Upon signal, the node is&#xA;transferred to the main queue.  A special value of status&#xA;field is used to mark which queue a node is on.&#xA;&#xA;&lt;p>Thanks go to Dave Dice, Mark Moir, Victor Luchangco, Bill&#xA;Scherer and Michael Scott, along with members of JSR-166&#xA;expert group, for helpful ideas, discussions, and critiques&#xA;on the design of this class.&#xA;" annotatedElement="_10_5_622020d_1132928309932_779534_6376"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_722530_6378" name="ConditionObject" clientDependency="_10_5_622020d_1132928321969_738674_14334 _10_5_622020d_1132928321969_484186_14333">
                  <ownedComment xmi:id="_10_5_622020d_1132928309932_488205_6379" body="Condition implementation for a {@link&#xA;AbstractQueuedSynchronizer} serving as the basis of a {@link&#xA;Lock} implementation.&#xA;&#xA;&lt;p> Method documentation for this class describes mechanics,&#xA;not behavioral specifications from the point of view of Lock&#xA;and Condition users. Exported versions of this class will in&#xA;general need to be accompanied by documentation describing&#xA;condition semantics that rely on those of the associated&#xA;&lt;tt>AbstractQueuedSynchronizer&lt;/tt>.&#xA;&#xA;&lt;p> This class is Serializable, but all fields are transient,&#xA;so deserialized conditions have no waiters.&#xA;" annotatedElement="_10_5_622020d_1132928309932_722530_6378"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321969_484186_14333" name="" supplier="_10_5_622020d_1132928309972_294559_6382" client="_10_5_622020d_1132928309932_722530_6378" contract="_10_5_622020d_1132928309972_294559_6382"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321969_738674_14334" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309932_722530_6378" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309982_21371_6385" name="Lock" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310022_119907_6387" body="&lt;tt>Lock&lt;/tt> implementations provide more extensive locking&#xA;operations than can be obtained using &lt;tt>synchronized&lt;/tt> methods&#xA;and statements.  They allow more flexible structuring, may have&#xA;quite different properties, and may support multiple associated&#xA;{@link Condition} objects.&#xA;&#xA;&lt;p>A lock is a tool for controlling access to a shared resource by&#xA;multiple threads. Commonly, a lock provides exclusive access to a&#xA;shared resource: only one thread at a time can acquire the lock and&#xA;all access to the shared resource requires that the lock be&#xA;acquired first. However, some locks may allow concurrent access to&#xA;a shared resource, such as the read lock of a {@link&#xA;ReadWriteLock}.&#xA;&#xA;&lt;p>The use of &lt;tt>synchronized&lt;/tt> methods or statements provides&#xA;access to the implicit monitor lock associated with every object, but&#xA;forces all lock acquisition and release to occur in a block-structured way:&#xA;when multiple locks are acquired they must be released in the opposite&#xA;order, and all locks must be released in the same lexical scope in which&#xA;they were acquired.&#xA;&#xA;&lt;p>While the scoping mechanism for &lt;tt>synchronized&lt;/tt> methods&#xA;and statements makes it much easier to program with monitor locks,&#xA;and helps avoid many common programming errors involving locks,&#xA;there are occasions where you need to work with locks in a more&#xA;flexible way. For example, some algorithms for traversing&#xA;concurrently accessed data structures require the use of&#xA;&quot;hand-over-hand&quot; or &quot;chain locking&quot;: you&#xA;acquire the lock of node A, then node B, then release A and acquire&#xA;C, then release B and acquire D and so on.  Implementations of the&#xA;&lt;tt>Lock&lt;/tt> interface enable the use of such techniques by&#xA;allowing a lock to be acquired and released in different scopes,&#xA;and allowing multiple locks to be acquired and released in any&#xA;order.&#xA;&#xA;&lt;p>With this increased flexibility comes additional&#xA;responsibility. The absence of block-structured locking removes the&#xA;automatic release of locks that occurs with &lt;tt>synchronized&lt;/tt>&#xA;methods and statements. In most cases, the following idiom&#xA;should be used:&#xA;&#xA;&lt;pre>&lt;tt>     Lock l = ...;&#xA;l.lock();&#xA;try {&#xA;access the resource protected by this lock&#xA;} finally {&#xA;l.unlock();&#xA;}&#xA;&lt;/tt>&lt;/pre>&#xA;&#xA;When locking and unlocking occur in different scopes, care must be&#xA;taken to ensure that all code that is executed while the lock is&#xA;held is protected by try-finally or try-catch to ensure that the&#xA;lock is released when necessary.&#xA;&#xA;&lt;p>&lt;tt>Lock&lt;/tt> implementations provide additional functionality&#xA;over the use of &lt;tt>synchronized&lt;/tt> methods and statements by&#xA;providing a non-blocking attempt to acquire a lock ({@link&#xA;#tryLock()}), an attempt to acquire the lock that can be&#xA;interrupted ({@link #lockInterruptibly}, and an attempt to acquire&#xA;the lock that can timeout ({@link #tryLock(long, TimeUnit)}).&#xA;&#xA;&lt;p>A &lt;tt>Lock&lt;/tt> class can also provide behavior and semantics&#xA;that is quite different from that of the implicit monitor lock,&#xA;such as guaranteed ordering, non-reentrant usage, or deadlock&#xA;detection. If an implementation provides such specialized semantics&#xA;then the implementation must document those semantics.&#xA;&#xA;&lt;p>Note that &lt;tt>Lock&lt;/tt> instances are just normal objects and can&#xA;themselves be used as the target in a &lt;tt>synchronized&lt;/tt> statement.&#xA;Acquiring the&#xA;monitor lock of a &lt;tt>Lock&lt;/tt> instance has no specified relationship&#xA;with invoking any of the {@link #lock} methods of that instance.&#xA;It is recommended that to avoid confusion you never use &lt;tt>Lock&lt;/tt>&#xA;instances in this way, except within their own implementation.&#xA;&#xA;&lt;p>Except where noted, passing a &lt;tt>null&lt;/tt> value for any&#xA;parameter will result in a {@link NullPointerException} being&#xA;thrown.&#xA;&#xA;&lt;h3>Memory Synchronization&lt;/h3>&#xA;&lt;p>All &lt;tt>Lock&lt;/tt> implementations &lt;em>must&lt;/em> enforce the same&#xA;memory synchronization semantics as provided by the built-in monitor lock:&#xA;&lt;ul>&#xA;&lt;li>A successful lock operation acts like a successful&#xA;&lt;tt>monitorEnter&lt;/tt> action&#xA;&lt;li>A successful &lt;tt>unlock&lt;/tt> operation acts like a successful&#xA;&lt;tt>monitorExit&lt;/tt> action&#xA;&lt;/ul>&#xA;&#xA;Unsuccessful locking and unlocking operations, and reentrant&#xA;locking/unlocking operations, do not require any memory&#xA;synchronization effects.&#xA;&#xA;&lt;h3>Implementation Considerations&lt;/h3>&#xA;&#xA;&lt;p> The three forms of lock acquisition (interruptible,&#xA;non-interruptible, and timed) may differ in their performance&#xA;characteristics, ordering guarantees, or other implementation&#xA;qualities.  Further, the ability to interrupt the &lt;em>ongoing&lt;/em>&#xA;acquisition of a lock may not be available in a given &lt;tt>Lock&lt;/tt>&#xA;class.  Consequently, an implementation is not required to define&#xA;exactly the same guarantees or semantics for all three forms of&#xA;lock acquisition, nor is it required to support interruption of an&#xA;ongoing lock acquisition.  An implementation is required to clearly&#xA;document the semantics and guarantees provided by each of the&#xA;locking methods. It must also obey the interruption semantics as&#xA;defined in this interface, to the extent that interruption of lock&#xA;acquisition is supported: which is either totally, or only on&#xA;method entry.&#xA;&#xA;&lt;p>As interruption generally implies cancellation, and checks for&#xA;interruption are often infrequent, an implementation can favor responding&#xA;to an interrupt over normal method return. This is true even if it can be&#xA;shown that the interrupt occurred after another action may have unblocked&#xA;the thread. An implementation should document this behavior.&#xA;&#xA;&#xA;@see ReentrantLock&#xA;@see Condition&#xA;@see ReadWriteLock&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928309982_21371_6385"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928309972_294559_6382" name="Condition" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928309982_555597_6384" body="&lt;tt>Condition&lt;/tt> factors out the &lt;tt>Object&lt;/tt> monitor&#xA;methods ({@link Object#wait() wait}, {@link Object#notify notify}&#xA;and {@link Object#notifyAll notifyAll}) into distinct objects to&#xA;give the effect of having multiple wait-sets per object, by&#xA;combining them with the use of arbitrary {@link Lock} implementations.&#xA;Where a &lt;tt>Lock&lt;/tt> replaces the use of &lt;tt>synchronized&lt;/tt> methods&#xA;and statements, a &lt;tt>Condition&lt;/tt> replaces the use of the Object&#xA;monitor methods.&#xA;&#xA;&lt;p>Conditions (also known as &lt;em>condition queues&lt;/em> or&#xA;&lt;em>condition variables&lt;/em>) provide a means for one thread to&#xA;suspend execution (to &quot;wait&quot;) until notified by another&#xA;thread that some state condition may now be true.  Because access&#xA;to this shared state information occurs in different threads, it&#xA;must be protected, so a lock of some form is associated with the&#xA;condition. The key property that waiting for a condition provides&#xA;is that it &lt;em>atomically&lt;/em> releases the associated lock and&#xA;suspends the current thread, just like &lt;tt>Object.wait&lt;/tt>.&#xA;&#xA;&lt;p>A &lt;tt>Condition&lt;/tt> instance is intrinsically bound to a lock.&#xA;To obtain a &lt;tt>Condition&lt;/tt> instance for a particular {@link Lock}&#xA;instance use its {@link Lock#newCondition newCondition()} method.&#xA;&#xA;&lt;p>As an example, suppose we have a bounded buffer which supports&#xA;&lt;tt>put&lt;/tt> and &lt;tt>take&lt;/tt> methods.  If a&#xA;&lt;tt>take&lt;/tt> is attempted on an empty buffer, then the thread will block&#xA;until an item becomes available; if a &lt;tt>put&lt;/tt> is attempted on a&#xA;full buffer, then the thread will block until a space becomes available.&#xA;We would like to keep waiting &lt;tt>put&lt;/tt> threads and &lt;tt>take&lt;/tt>&#xA;threads in separate wait-sets so that we can use the optimization of&#xA;only notifying a single thread at a time when items or spaces become&#xA;available in the buffer. This can be achieved using two&#xA;{@link Condition} instances.&#xA;&lt;pre>&#xA;class BoundedBuffer {&#xA;&lt;b>final Lock lock = new ReentrantLock();&lt;/b>&#xA;final Condition notFull  = &lt;b>lock.newCondition(); &lt;/b>&#xA;final Condition notEmpty = &lt;b>lock.newCondition(); &lt;/b>&#xA;&#xA;final Object[] items = new Object[100];&#xA;int putptr, takeptr, count;&#xA;&#xA;public void put(Object x) throws InterruptedException {&#xA;&lt;b>lock.lock();&#xA;try {&lt;/b>&#xA;while (count == items.length)&#xA;&lt;b>notFull.await();&lt;/b>&#xA;items[putptr] = x;&#xA;if (++putptr == items.length) putptr = 0;&#xA;++count;&#xA;&lt;b>notEmpty.signal();&lt;/b>&#xA;&lt;b>} finally {&#xA;lock.unlock();&#xA;}&lt;/b>&#xA;}&#xA;&#xA;public Object take() throws InterruptedException {&#xA;&lt;b>lock.lock();&#xA;try {&lt;/b>&#xA;while (count == 0)&#xA;&lt;b>notEmpty.await();&lt;/b>&#xA;Object x = items[takeptr];&#xA;if (++takeptr == items.length) takeptr = 0;&#xA;--count;&#xA;&lt;b>notFull.signal();&lt;/b>&#xA;return x;&#xA;&lt;b>} finally {&#xA;lock.unlock();&#xA;}&lt;/b>&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;(The {@link java.util.concurrent.ArrayBlockingQueue} class provides&#xA;this functionality, so there is no reason to implement this&#xA;sample usage class.)&#xA;&#xA;&lt;p>A &lt;tt>Condition&lt;/tt> implementation can provide behavior and semantics&#xA;that is&#xA;different from that of the &lt;tt>Object&lt;/tt> monitor methods, such as&#xA;guaranteed ordering for notifications, or not requiring a lock to be held&#xA;when performing notifications.&#xA;If an implementation provides such specialized semantics then the&#xA;implementation must document those semantics.&#xA;&#xA;&lt;p>Note that &lt;tt>Condition&lt;/tt> instances are just normal objects and can&#xA;themselves be used as the target in a &lt;tt>synchronized&lt;/tt> statement,&#xA;and can have their own monitor {@link Object#wait wait} and&#xA;{@link Object#notify notification} methods invoked.&#xA;Acquiring the monitor lock of a &lt;tt>Condition&lt;/tt> instance, or using its&#xA;monitor methods, has no specified relationship with acquiring the&#xA;{@link Lock} associated with that &lt;tt>Condition&lt;/tt> or the use of its&#xA;{@link #await waiting} and {@link #signal signalling} methods.&#xA;It is recommended that to avoid confusion you never use &lt;tt>Condition&lt;/tt>&#xA;instances in this way, except perhaps within their own implementation.&#xA;&#xA;&lt;p>Except where noted, passing a &lt;tt>null&lt;/tt> value for any parameter&#xA;will result in a {@link NullPointerException} being thrown.&#xA;&#xA;&lt;h3>Implementation Considerations&lt;/h3>&#xA;&#xA;&lt;p>When waiting upon a &lt;tt>Condition&lt;/tt>, a &quot;&lt;em>spurious&#xA;wakeup&lt;/em>&quot; is permitted to occur, in&#xA;general, as a concession to the underlying platform semantics.&#xA;This has little practical impact on most application programs as a&#xA;&lt;tt>Condition&lt;/tt> should always be waited upon in a loop, testing&#xA;the state predicate that is being waited for.  An implementation is&#xA;free to remove the possibility of spurious wakeups but it is&#xA;recommended that applications programmers always assume that they can&#xA;occur and so always wait in a loop.&#xA;&#xA;&lt;p>The three forms of condition waiting&#xA;(interruptible, non-interruptible, and timed) may differ in their ease of&#xA;implementation on some platforms and in their performance characteristics.&#xA;In particular, it may be difficult to provide these features and maintain&#xA;specific semantics such as ordering guarantees.&#xA;Further, the ability to interrupt the actual suspension of the thread may&#xA;not always be feasible to implement on all platforms.&#xA;&lt;p>Consequently, an implementation is not required to define exactly the&#xA;same guarantees or semantics for all three forms of waiting, nor is it&#xA;required to support interruption of the actual suspension of the thread.&#xA;&lt;p>An implementation is required to&#xA;clearly document the semantics and guarantees provided by each of the&#xA;waiting methods, and when an implementation does support interruption of&#xA;thread suspension then it must obey the interruption semantics as defined&#xA;in this interface.&#xA;&lt;p>As interruption generally implies cancellation, and checks for&#xA;interruption are often infrequent, an implementation can favor responding&#xA;to an interrupt over normal method return. This is true even if it can be&#xA;shown that the interrupt occurred after another action may have unblocked&#xA;the thread. An implementation should document this behavior.&#xA;&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309972_294559_6382"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310032_179069_6403" name="ReentrantReadWriteLock" clientDependency="_10_5_622020d_1132928321979_320099_14340 _10_5_622020d_1132928321979_864515_14341">
                <ownedComment xmi:id="_10_5_622020d_1132928310052_295033_6415" body="An implementation of {@link ReadWriteLock} supporting similar&#xA;semantics to {@link ReentrantLock}.&#xA;&lt;p>This class has the following properties:&#xA;&#xA;&lt;ul>&#xA;&lt;li>&lt;b>Acquisition order&lt;/b>&#xA;&#xA;&lt;p> This class does not impose a reader or writer preference&#xA;ordering for lock access.  However, it does support an optional&#xA;&lt;em>fairness&lt;/em> policy.  When constructed as fair, threads&#xA;contend for entry using an approximately arrival-order policy. When&#xA;the write lock is released either the longest-waiting single writer&#xA;will be assigned the write lock, or if there is a reader waiting&#xA;longer than any writer, the set of readers will be assigned the&#xA;read lock.  When constructed as non-fair, the order of entry to the&#xA;lock need not be in arrival order.  In either case, if readers are&#xA;active and a writer enters the lock then no subsequent readers will&#xA;be granted the read lock until after that writer has acquired and&#xA;released the write lock.&#xA;&#xA;&lt;li>&lt;b>Reentrancy&lt;/b>&#xA;&lt;p>This lock allows both readers and writers to reacquire read or&#xA;write locks in the style of a {@link ReentrantLock}. Readers are not&#xA;allowed until all write locks held by the writing thread have been&#xA;released.&#xA;&lt;p>Additionally, a writer can acquire the read lock - but not vice-versa.&#xA;Among other applications, reentrancy can be useful when&#xA;write locks are held during calls or callbacks to methods that&#xA;perform reads under read locks.&#xA;If a reader tries to acquire the write lock it will never succeed.&#xA;&#xA;&lt;li>&lt;b>Lock downgrading&lt;/b>&#xA;&lt;p>Reentrancy also allows downgrading from the write lock to a read lock,&#xA;by acquiring the write lock, then the read lock and then releasing the&#xA;write lock. However, upgrading from a read lock to the write lock is&#xA;&lt;b>not&lt;/b> possible.&#xA;&#xA;&lt;li>&lt;b>Interruption of lock acquisition&lt;/b>&#xA;&lt;p>The read lock and write lock both support interruption during lock&#xA;acquisition.&#xA;&#xA;&lt;li>&lt;b>{@link Condition} support&lt;/b>&#xA;&lt;p>The write lock provides a {@link Condition} implementation that&#xA;behaves in the same way, with respect to the write lock, as the&#xA;{@link Condition} implementation provided by&#xA;{@link ReentrantLock#newCondition} does for {@link ReentrantLock}.&#xA;This {@link Condition} can, of course, only be used with the write lock.&#xA;&lt;p>The read lock does not support a {@link Condition} and&#xA;&lt;tt>readLock().newCondition()&lt;/tt> throws&#xA;&lt;tt>UnsupportedOperationException&lt;/tt>.&#xA;&#xA;&lt;li>&lt;b>Instrumentation&lt;/b>&#xA;&lt;P> This class supports methods to determine whether locks&#xA;are held or contended. These methods are designed for monitoring&#xA;system state, not for synchronization control.&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Serialization of this class behaves in the same way as built-in&#xA;locks: a deserialized lock is in the unlocked state, regardless of&#xA;its state when serialized.&#xA;&#xA;&lt;p>&lt;b>Sample usages&lt;/b>. Here is a code sketch showing how to exploit&#xA;reentrancy to perform lock downgrading after updating a cache (exception&#xA;handling is elided for simplicity):&#xA;&lt;pre>&#xA;class CachedData {&#xA;Object data;&#xA;volatile boolean cacheValid;&#xA;ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();&#xA;&#xA;void processCachedData() {&#xA;rwl.readLock().lock();&#xA;if (!cacheValid) {&#xA;upgrade lock manually&#xA;rwl.readLock().unlock();   // must unlock first to obtain writelock&#xA;rwl.writeLock().lock();&#xA;if (!cacheValid) { // recheck&#xA;data = ...&#xA;cacheValid = true;&#xA;}&#xA;downgrade lock&#xA;rwl.readLock().lock();  // reacquire read without giving up write lock&#xA;rwl.writeLock().unlock(); // unlock write, still hold read&#xA;}&#xA;&#xA;use(data);&#xA;rwl.readLock().unlock();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;ReentrantReadWriteLocks can be used to improve concurrency in some&#xA;uses of some kinds of Collections. This is typically worthwhile&#xA;only when the collections are expected to be large, accessed by&#xA;more reader threads than writer threads, and entail operations with&#xA;overhead that outweighs synchronization overhead. For example, here&#xA;is a class using a TreeMap that is expected to be large and&#xA;concurrently accessed.&#xA;&#xA;&lt;pre>&#xA;class RWDictionary {&#xA;private final Map&lt;String, Data>  m = new TreeMap&lt;String, Data>();&#xA;private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();&#xA;private final Lock r = rwl.readLock();&#xA;private final Lock w = rwl.writeLock();&#xA;&#xA;public Data get(String key) {&#xA;r.lock(); try { return m.get(key); } finally { r.unlock(); }&#xA;}&#xA;public String[] allKeys() {&#xA;r.lock(); try { return m.keySet().toArray(); } finally { r.unlock(); }&#xA;}&#xA;public Data put(String key, Data value) {&#xA;w.lock(); try { return m.put(key, value); } finally { w.unlock(); }&#xA;}&#xA;public void clear() {&#xA;w.lock(); try { m.clear(); } finally { w.unlock(); }&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&#xA;&lt;h3>Implementation Notes&lt;/h3>&#xA;&#xA;&lt;p>A reentrant write lock intrinsically defines an owner and can&#xA;only be released by the thread that acquired it.  In contrast, in&#xA;this implementation, the read lock has no concept of ownership, and&#xA;there is no requirement that the thread releasing a read lock is&#xA;the same as the one that acquired it.  However, this property is&#xA;not guaranteed to hold in future implementations of this class.&#xA;&#xA;&lt;p> This lock supports a maximum of 65536 recursive write locks&#xA;and 65536 read locks. Attempts to exceed these limits result in&#xA;{@link Error} throws from locking methods.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310032_179069_6403"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321979_320099_14340" name="" supplier="_10_5_622020d_1132928310032_500764_6391" client="_10_5_622020d_1132928310032_179069_6403" contract="_10_5_622020d_1132928310032_500764_6391"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321979_864515_14341" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310032_179069_6403" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310042_237244_6404" name="Sync" visibility="package" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310042_60778_6405" body="Synchronization implementation for ReentrantReadWriteLock.&#xA;Subclassed into fair and nonfair versions.&#xA;" annotatedElement="_10_5_622020d_1132928310042_237244_6404"/>
                  <generalization xmi:id="_10_5_622020d_1132928321979_982387_14342" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310042_773577_6406" name="NonfairSync" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310042_266382_6407" body="Nonfair version of Sync&#xA;" annotatedElement="_10_5_622020d_1132928310042_773577_6406"/>
                  <generalization xmi:id="_10_5_622020d_1132928321979_36368_14343" isSubstitutable="true" general="_10_5_622020d_1132928310042_237244_6404"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310042_752979_6408" name="FairSync" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310042_613042_6409" body="Fair version of Sync&#xA;" annotatedElement="_10_5_622020d_1132928310042_752979_6408"/>
                  <generalization xmi:id="_10_5_622020d_1132928321979_998360_14344" isSubstitutable="true" general="_10_5_622020d_1132928310042_237244_6404"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310042_850189_6410" name="ReadLock" clientDependency="_10_5_622020d_1132928321989_302346_14346 _10_5_622020d_1132928321979_319298_14345">
                  <ownedComment xmi:id="_10_5_622020d_1132928310042_454027_6411" body="The lock returned by method {@link ReentrantReadWriteLock#readLock}.&#xA;" annotatedElement="_10_5_622020d_1132928310042_850189_6410"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321979_319298_14345" name="" supplier="_10_5_622020d_1132928309982_21371_6385" client="_10_5_622020d_1132928310042_850189_6410" contract="_10_5_622020d_1132928309982_21371_6385"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321989_302346_14346" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310042_850189_6410" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310042_760857_6412" name="WriteLock" clientDependency="_10_5_622020d_1132928321989_698948_14348 _10_5_622020d_1132928321989_449094_14347">
                  <ownedComment xmi:id="_10_5_622020d_1132928310042_197926_6413" body="The lock returned by method {@link ReentrantReadWriteLock#writeLock}.&#xA;" annotatedElement="_10_5_622020d_1132928310042_760857_6412"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321989_449094_14347" name="" supplier="_10_5_622020d_1132928309982_21371_6385" client="_10_5_622020d_1132928310042_760857_6412" contract="_10_5_622020d_1132928309982_21371_6385"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928321989_698948_14348" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310042_760857_6412" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310032_138822_6394" name="ReentrantLock" clientDependency="_10_5_622020d_1132928321969_259783_14335 _10_5_622020d_1132928321969_222315_14336">
                <ownedComment xmi:id="_10_5_622020d_1132928310032_373774_6402" body="A reentrant mutual exclusion {@link Lock} with the same basic&#xA;behavior and semantics as the implicit monitor lock accessed using&#xA;&lt;tt>synchronized&lt;/tt> methods and statements, but with extended&#xA;capabilities.&#xA;&#xA;&lt;p> A &lt;tt>ReentrantLock&lt;/tt> is &lt;em>owned&lt;/em> by the thread last&#xA;successfully locking, but not yet unlocking it. A thread invoking&#xA;&lt;tt>lock&lt;/tt> will return, successfully acquiring the lock, when&#xA;the lock is not owned by another thread. The method will return&#xA;immediately if the current thread already owns the lock. This can&#xA;be checked using methods {@link #isHeldByCurrentThread}, and {@link&#xA;#getHoldCount}.&#xA;&#xA;&lt;p> The constructor for this class accepts an optional&#xA;&lt;em>fairness&lt;/em> parameter.  When set &lt;tt>true&lt;/tt>, under&#xA;contention, locks favor granting access to the longest-waiting&#xA;thread.  Otherwise this lock does not guarantee any particular&#xA;access order.  Programs using fair locks accessed by many threads&#xA;may display lower overall throughput (i.e., are slower; often much&#xA;slower) than those using the default setting, but have smaller&#xA;variances in times to obtain locks and guarantee lack of&#xA;starvation. Note however, that fairness of locks does not guarantee&#xA;fairness of thread scheduling. Thus, one of many threads using a&#xA;fair lock may obtain it multiple times in succession while other&#xA;active threads are not progressing and not currently holding the&#xA;lock.&#xA;Also note that the untimed {@link #tryLock() tryLock} method does not&#xA;honor the fairness setting. It will succeed if the lock&#xA;is available even if other threads are waiting.&#xA;&#xA;&lt;p> It is recommended practice to &lt;em>always&lt;/em> immediately&#xA;follow a call to &lt;tt>lock&lt;/tt> with a &lt;tt>try&lt;/tt> block, most&#xA;typically in a before/after construction such as:&#xA;&#xA;&lt;pre>&#xA;class X {&#xA;private final ReentrantLock lock = new ReentrantLock();&#xA;...&#xA;&#xA;public void m() {&#xA;lock.lock();  // block until condition holds&#xA;try {&#xA;... method body&#xA;} finally {&#xA;lock.unlock()&#xA;}&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>In addition to implementing the {@link Lock} interface, this&#xA;class defines methods &lt;tt>isLocked&lt;/tt> and&#xA;&lt;tt>getLockQueueLength&lt;/tt>, as well as some associated&#xA;&lt;tt>protected&lt;/tt> access methods that may be useful for&#xA;instrumentation and monitoring.&#xA;&#xA;&lt;p> Serialization of this class behaves in the same way as built-in&#xA;locks: a deserialized lock is in the unlocked state, regardless of&#xA;its state when serialized.&#xA;&#xA;&lt;p> This lock supports a maximum of 2147483648 recursive locks by&#xA;the same thread.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310032_138822_6394"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_259783_14335" name="" supplier="_10_5_622020d_1132928309982_21371_6385" client="_10_5_622020d_1132928310032_138822_6394" contract="_10_5_622020d_1132928309982_21371_6385"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_222315_14336" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310032_138822_6394" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310032_319262_6395" name="Sync" visibility="package" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310032_561268_6396" body="Base of synchronization control for this lock. Subclassed&#xA;into fair and nonfair versions below. Uses AQS state to&#xA;represent the number of holds on the lock.&#xA;" annotatedElement="_10_5_622020d_1132928310032_319262_6395"/>
                  <generalization xmi:id="_10_5_622020d_1132928321969_811963_14337" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310032_127051_6397" name="NonfairSync" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310032_382719_6398" body="Sync object for non-fair locks&#xA;" annotatedElement="_10_5_622020d_1132928310032_127051_6397"/>
                  <generalization xmi:id="_10_5_622020d_1132928321979_248043_14338" isSubstitutable="true" general="_10_5_622020d_1132928310032_319262_6395"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310032_507872_6399" name="FairSync" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928310032_10500_6400" body="Sync object for fair locks&#xA;" annotatedElement="_10_5_622020d_1132928310032_507872_6399"/>
                  <generalization xmi:id="_10_5_622020d_1132928321979_653070_14339" isSubstitutable="true" general="_10_5_622020d_1132928310032_319262_6395"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310022_572395_6388" name="LockSupport">
                <ownedComment xmi:id="_10_5_622020d_1132928310022_227397_6390" body="Basic thread blocking primitives for creating locks and other&#xA;synchronization classes.&#xA;&#xA;&lt;p>This class associates with each thread that uses it, a permit&#xA;(in the sense of the {@link java.util.concurrent.Semaphore&#xA;Semaphore} class). A call to &lt;tt>park&lt;/tt> will return immediately&#xA;if the permit is available, consuming it in the process; otherwise&#xA;it &lt;em>may&lt;/em> block.  A call to &lt;tt>unpark&lt;/tt> makes the permit&#xA;available, if it was not already available. (Unlike with Semaphores&#xA;though, permits do not accumulate. There is at most one.)&#xA;&#xA;&lt;p>Methods &lt;tt>park&lt;/tt> and &lt;tt>unpark&lt;/tt> provide efficient&#xA;means of blocking and unblocking threads that do not encounter the&#xA;problems that cause the deprecated methods &lt;tt>Thread.suspend&lt;/tt>&#xA;and &lt;tt>Thread.resume&lt;/tt> to be unusable for such purposes: Races&#xA;between one thread invoking &lt;tt>park&lt;/tt> and another thread trying&#xA;to &lt;tt>unpark&lt;/tt> it will preserve liveness, due to the&#xA;permit. Additionally, &lt;tt>park&lt;/tt> will return if the caller's&#xA;thread was interrupted, and timeout versions are supported. The&#xA;&lt;tt>park&lt;/tt> method may also return at any other time, for &quot;no&#xA;reason&quot;, so in general must be invoked within a loop that rechecks&#xA;conditions upon return. In this sense &lt;tt>park&lt;/tt> serves as an&#xA;optimization of a &quot;busy wait&quot; that does not waste as much time&#xA;spinning, but must be paired with an &lt;tt>unpark&lt;/tt> to be&#xA;effective.&#xA;&#xA;&lt;p>These methods are designed to be used as tools for creating&#xA;higher-level synchronization utilities, and are not in themselves&#xA;useful for most concurrency control applications.&#xA;&#xA;&lt;p>&lt;b>Sample Usage.&lt;/b> Here is a sketch of a First-in-first-out&#xA;non-reentrant lock class.&#xA;&lt;pre>&#xA;class FIFOMutex {&#xA;private AtomicBoolean locked = new AtomicBoolean(false);&#xA;private Queue&lt;Thread> waiters = new ConcurrentLinkedQueue&lt;Thread>();&#xA;&#xA;public void lock() {&#xA;boolean wasInterrupted = false;&#xA;Thread current = Thread.currentThread();&#xA;waiters.add(current);&#xA;&#xA;Block while not first in queue or cannot acquire lock&#xA;while (waiters.peek() != current ||&#xA;!locked.compareAndSet(false, true)) {&#xA;LockSupport.park();&#xA;if (Thread.interrupted()) // ignore interrupts while waiting&#xA;wasInterrupted = true;&#xA;}&#xA;&#xA;waiters.remove();&#xA;if (wasInterrupted)          // reassert interrupt status on exit&#xA;current.interrupt();&#xA;}&#xA;&#xA;public void unlock() {&#xA;locked.set(false);&#xA;LockSupport.unpark(waiters.peek());&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;" annotatedElement="_10_5_622020d_1132928310022_572395_6388"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310032_500764_6391" name="ReadWriteLock" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310032_119106_6393" body="A &lt;tt>ReadWriteLock&lt;/tt> maintains a pair of associated {@link&#xA;Lock locks}, one for read-only operations and one for writing.&#xA;The {@link #readLock read lock} may be held simultaneously by&#xA;multiple reader threads, so long as there are no writers.  The&#xA;{@link #writeLock write lock} is exclusive.&#xA;&#xA;&lt;p>A read-write lock allows for a greater level of concurrency in&#xA;accessing shared data than that permitted by a mutual exclusion lock.&#xA;It exploits the fact that while only a single thread at a time (a&#xA;&lt;em>writer&lt;/em> thread) can modify the shared data, in many cases any&#xA;number of threads can concurrently read the data (hence &lt;em>reader&lt;/em>&#xA;threads).&#xA;In theory, the increase in concurrency permitted by the use of a read-write&#xA;lock will lead to performance improvements over the use of a mutual&#xA;exclusion lock. In practice this increase in concurrency will only be fully&#xA;realized on a multi-processor, and then only if the access patterns for&#xA;the shared data are suitable.&#xA;&#xA;&lt;p>Whether or not a read-write lock will improve performance over the use&#xA;of a mutual exclusion lock depends on the frequency that the data is&#xA;read compared to being modified, the duration of the read and write&#xA;operations, and the contention for the data - that is, the number of&#xA;threads that will try to read or write the data at the same time.&#xA;For example, a collection that is initially populated with data and&#xA;thereafter infrequently modified, while being frequently searched&#xA;(such as a directory of some kind) is an ideal candidate for the use of&#xA;a read-write lock. However, if updates become frequent then the data&#xA;spends most of its time being exclusively locked and there is little, if any&#xA;increase in concurrency. Further, if the read operations are too short&#xA;the overhead of the read-write lock implementation (which is inherently&#xA;more complex than a mutual exclusion lock) can dominate the execution&#xA;cost, particularly as many read-write lock implementations still serialize&#xA;all threads through a small section of code. Ultimately, only profiling&#xA;and measurement will establish whether the use of a read-write lock is&#xA;suitable for your application.&#xA;&#xA;&#xA;&lt;p>Although the basic operation of a read-write lock is straight-forward,&#xA;there are many policy decisions that an implementation must make, which&#xA;may affect the effectiveness of the read-write lock in a given application.&#xA;Examples of these policies include:&#xA;&lt;ul>&#xA;&lt;li>Determining whether to grant the read lock or the write lock, when&#xA;both readers and writers are waiting, at the time that a writer releases&#xA;the write lock. Writer preference is common, as writes are expected to be&#xA;short and infrequent. Reader preference is less common as it can lead to&#xA;lengthy delays for a write if the readers are frequent and long-lived as&#xA;expected. Fair, or &quot;in-order&quot; implementations are also possible.&#xA;&#xA;&lt;li>Determining whether readers that request the read lock while a&#xA;reader is active and a writer is waiting, are granted the read lock.&#xA;Preference to the reader can delay the writer indefinitely, while&#xA;preference to the writer can reduce the potential for concurrency.&#xA;&#xA;&lt;li>Determining whether the locks are reentrant: can a thread with the&#xA;write lock reacquire it? Can it acquire a read lock while holding the&#xA;write lock? Is the read lock itself reentrant?&#xA;&#xA;&lt;li>Can the write lock be downgraded to a read lock without allowing&#xA;an intervening writer? Can a read lock be upgraded to a write lock,&#xA;in preference to other waiting readers or writers?&#xA;&#xA;&lt;/ul>&#xA;You should consider all of these things when evaluating the suitability&#xA;of a given implementation for your application.&#xA;&#xA;@see ReentrantReadWriteLock&#xA;@see Lock&#xA;@see ReentrantLock&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310032_500764_6391"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322269_521368_14455" name="Comparable&lt;Delayed>">
              <templateBinding xmi:id="_10_5_622020d_1132928322269_929371_14456" signature="_10_5_622020d_1132928307939_612079_4996">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322269_118433_14457" formal="_10_5_622020d_1132928307939_608180_4997" actual="_10_5_622020d_1132928310152_297569_6539"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322269_925424_14471" name="Callable&lt;T>">
              <templateBinding xmi:id="_10_5_622020d_1132928322269_139949_14472" signature="_10_5_622020d_1132928310062_12426_6437">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322279_558447_14473" formal="_10_5_622020d_1132928310062_125382_6438" actual="_10_5_622020d_1132928310182_421964_6576"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322269_891118_14467" name="FutureTask&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322269_245481_14468" signature="_10_5_622020d_1132928310192_287528_6612">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322269_981967_14469" formal="_10_5_622020d_1132928310192_630299_6613" actual="_10_5_622020d_1132928310182_756310_6567"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310192_780619_6602" name="ExecutorService" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310192_46979_6604" body="An {@link Executor} that provides methods to manage termination and&#xA;methods that can produce a {@link Future} for tracking progress of&#xA;one or more asynchronous tasks.&#xA;&#xA;&lt;p>&#xA;An &lt;tt>ExecutorService&lt;/tt> can be shut down, which will cause it&#xA;to stop accepting new tasks.  After being shut down, the executor&#xA;will eventually terminate, at which point no tasks are actively&#xA;executing, no tasks are awaiting execution, and no new tasks can be&#xA;submitted.&#xA;&#xA;&lt;p> Method &lt;tt>submit&lt;/tt> extends base method {@link&#xA;Executor#execute} by creating and returning a {@link Future} that&#xA;can be used to cancel execution and/or wait for completion.&#xA;Methods &lt;tt>invokeAny&lt;/tt> and &lt;tt>invokeAll&lt;/tt> perform the most&#xA;commonly useful forms of bulk execution, executing a collection of&#xA;tasks and then waiting for at least one, or all, to&#xA;complete. (Class {@link ExecutorCompletionService} can be used to&#xA;write customized variants of these methods.)&#xA;&#xA;&lt;p>The {@link Executors} class provides factory methods for the&#xA;executor services provided in this package.&#xA;&#xA;&lt;h3>Usage Example&lt;/h3>&#xA;&#xA;Here is a sketch of a network service in which threads in a thread&#xA;pool service incoming requests. It uses the preconfigured {@link&#xA;Executors#newFixedThreadPool} factory method:&#xA;&#xA;&lt;pre>&#xA;class NetworkService {&#xA;private final ServerSocket serverSocket;&#xA;private final ExecutorService pool;&#xA;&#xA;public NetworkService(int port, int poolSize) throws IOException {&#xA;serverSocket = new ServerSocket(port);&#xA;pool = Executors.newFixedThreadPool(poolSize);&#xA;}&#xA;&#xA;public void serve() {&#xA;try {&#xA;for (;;) {&#xA;pool.execute(new Handler(serverSocket.accept()));&#xA;}&#xA;} catch (IOException ex) {&#xA;pool.shutdown();&#xA;}&#xA;}&#xA;}&#xA;&#xA;class Handler implements Runnable {&#xA;private final Socket socket;&#xA;Handler(Socket socket) { this.socket = socket; }&#xA;public void run() {&#xA;read and service request&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310192_780619_6602"/>
              <generalization xmi:id="_10_5_622020d_1132928322279_7016_14487" isSubstitutable="true" general="_10_5_622020d_1132928310172_766214_6561"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322009_147826_14391" name="Iterator&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322009_836687_14392" signature="_10_5_622020d_1132928313266_660412_7328">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_385667_14393" formal="_10_5_622020d_1132928313266_876300_7329" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322259_938209_14440" name="ListIterator&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928322259_488774_14441" signature="_10_5_622020d_1132928313286_281563_7377">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322259_889365_14442" formal="_10_5_622020d_1132928313286_694739_7378" actual="_10_5_622020d_1132928310122_52536_6514"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310212_121513_6650" name="ScheduledFuture" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310212_583425_6655" body="A delayed result-bearing action that can be cancelled.&#xA;Usually a scheduled future is the result of scheduling&#xA;a task with a {@link ScheduledExecutorService}.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The result type returned by this Future&#xA;" annotatedElement="_10_5_622020d_1132928310212_121513_6650"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310212_527361_6651" name="" parameter="_10_5_622020d_1132928310212_394077_6652">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310212_394077_6652" parameteredElement="_10_5_622020d_1132928310212_895929_6653">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310212_895929_6653" name="V" templateParameter="_10_5_622020d_1132928310212_394077_6652"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322289_771908_14504" isSubstitutable="true" general="_10_5_622020d_1132928310152_297569_6539"/>
              <generalization xmi:id="_10_5_622020d_1132928322289_979553_14505" isSubstitutable="true" general="_10_5_622020d_1132928322279_611817_14488"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928309902_80783_6286" name="atomic">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_282720_6296" name="AtomicIntegerFieldUpdater" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928309912_199299_6306" body="A reflection-based utility that enables atomic updates to&#xA;designated &lt;tt>volatile int&lt;/tt> fields of designated classes.&#xA;This class is designed for use in atomic data structures in which&#xA;several fields of the same node are independently subject to atomic&#xA;updates.&#xA;&#xA;&lt;p> Note that the guarantees of the &lt;tt>compareAndSet&lt;/tt> method&#xA;in this class are weaker than in other atomic classes. Because this&#xA;class cannot ensure that all uses of the field are appropriate for&#xA;purposes of atomic access, it can guarantee atomicity and volatile&#xA;semantics only with respect to other invocations of&#xA;&lt;tt>compareAndSet&lt;/tt> and &lt;tt>set&lt;/tt>.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;T> The type of the object holding the updatable field&#xA;" annotatedElement="_10_5_622020d_1132928309912_282720_6296"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309912_504325_6297" name="" parameter="_10_5_622020d_1132928309912_722656_6298">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309912_722656_6298" parameteredElement="_10_5_622020d_1132928309912_212502_6299">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_212502_6299" name="T" templateParameter="_10_5_622020d_1132928309912_722656_6298"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_253986_6300" name="AtomicIntegerFieldUpdaterImpl" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928309912_749323_6304" body="Standard hotspot implementation using intrinsics&#xA;" annotatedElement="_10_5_622020d_1132928309912_253986_6300"/>
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309912_885008_6301" name="" parameter="_10_5_622020d_1132928309912_820598_6302">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309912_820598_6302" parameteredElement="_10_5_622020d_1132928309912_806154_6303">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_806154_6303" name="T" templateParameter="_10_5_622020d_1132928309912_820598_6302"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <generalization xmi:id="_10_5_622020d_1132928321959_518657_14316" isSubstitutable="true" general="_10_5_622020d_1132928321959_670944_14313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321959_670944_14313" name="AtomicIntegerFieldUpdater&lt;T>">
                <templateBinding xmi:id="_10_5_622020d_1132928321959_735687_14314" signature="_10_5_622020d_1132928309912_504325_6297">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928321959_720726_14315" formal="_10_5_622020d_1132928309912_722656_6298" actual="_10_5_622020d_1132928309912_806154_6303"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_887511_6349" name="AtomicReferenceFieldUpdater" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928309922_853431_6363" body="A reflection-based utility that enables atomic updates to&#xA;designated &lt;tt>volatile&lt;/tt> reference fields of designated&#xA;classes.  This class is designed for use in atomic data structures&#xA;in which several reference fields of the same node are&#xA;independently subject to atomic updates. For example, a tree node&#xA;might be declared as&#xA;&#xA;&lt;pre>&#xA;class Node {&#xA;private volatile Node left, right;&#xA;&#xA;private static final AtomicReferenceFieldUpdater&lt;Node, Node> leftUpdater =&#xA;AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, &quot;left&quot;);&#xA;private static AtomicReferenceFieldUpdater&lt;Node, Node> rightUpdater =&#xA;AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, &quot;right&quot;);&#xA;&#xA;Node getLeft() { return left;  }&#xA;boolean compareAndSetLeft(Node expect, Node update) {&#xA;return leftUpdater.compareAndSet(this, expect, update);&#xA;}&#xA;... and so on&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> Note that the guarantees of the &lt;tt>compareAndSet&lt;/tt>&#xA;method in this class are weaker than in other atomic classes. Because this&#xA;class cannot ensure that all uses of the field are appropriate for&#xA;purposes of atomic access, it can guarantee atomicity and volatile&#xA;semantics only with respect to other invocations of&#xA;&lt;tt>compareAndSet&lt;/tt> and &lt;tt>set&lt;/tt>.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;T> The type of the object holding the updatable field&#xA;@param &lt;V> The type of the field&#xA;" annotatedElement="_10_5_622020d_1132928309922_887511_6349"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_272954_6350" name="" parameter="_10_5_622020d_1132928309922_448213_6351 _10_5_622020d_1132928309922_539712_6353">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_448213_6351" parameteredElement="_10_5_622020d_1132928309922_36011_6352">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_36011_6352" name="T" templateParameter="_10_5_622020d_1132928309922_448213_6351"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_539712_6353" parameteredElement="_10_5_622020d_1132928309922_521372_6354">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_521372_6354" name="V" templateParameter="_10_5_622020d_1132928309922_539712_6353"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_249732_6355" name="AtomicReferenceFieldUpdaterImpl" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928309922_171344_6361" body="Standard hotspot implementation using intrinsics&#xA;" annotatedElement="_10_5_622020d_1132928309922_249732_6355"/>
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_205448_6356" name="" parameter="_10_5_622020d_1132928309922_424268_6357 _10_5_622020d_1132928309922_67542_6359">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_424268_6357" parameteredElement="_10_5_622020d_1132928309922_445095_6358">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_445095_6358" name="T" templateParameter="_10_5_622020d_1132928309922_424268_6357"/>
                    </ownedParameter>
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_67542_6359" parameteredElement="_10_5_622020d_1132928309922_269882_6360">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_269882_6360" name="V" templateParameter="_10_5_622020d_1132928309922_67542_6359"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <generalization xmi:id="_10_5_622020d_1132928321969_500603_14331" isSubstitutable="true" general="_10_5_622020d_1132928321969_865860_14327"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_624382_6310" name="AtomicLongArray" clientDependency="_10_5_622020d_1132928321969_691136_14319">
                <ownedComment xmi:id="_10_5_622020d_1132928309912_156124_6312" body="A &lt;tt>long&lt;/tt> array in which elements may be updated atomically.&#xA;See the {@link java.util.concurrent.atomic} package specification&#xA;for description of the properties of atomic variables.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309912_624382_6310"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_691136_14319" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309912_624382_6310" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321969_865860_14327" name="AtomicReferenceFieldUpdater&lt;T, V>">
                <templateBinding xmi:id="_10_5_622020d_1132928321969_862223_14328" signature="_10_5_622020d_1132928309922_272954_6350">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928321969_117334_14329" formal="_10_5_622020d_1132928309922_448213_6351" actual="_10_5_622020d_1132928309922_445095_6358"/>
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928321969_129349_14330" formal="_10_5_622020d_1132928309922_539712_6353" actual="_10_5_622020d_1132928309922_269882_6360"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_501183_6364" name="AtomicStampedReference">
                <ownedComment xmi:id="_10_5_622020d_1132928309932_252000_6373" body="An &lt;tt>AtomicStampedReference&lt;/tt> maintains an object reference&#xA;along with an integer &quot;stamp&quot;, that can be updated atomically.&#xA;&#xA;&lt;p> Implementation note. This implementation maintains stamped&#xA;references by creating internal objects representing &quot;boxed&quot;&#xA;[reference, integer] pairs.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The type of object referred to by this reference&#xA;" annotatedElement="_10_5_622020d_1132928309922_501183_6364"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309932_182417_6365" name="" parameter="_10_5_622020d_1132928309932_349346_6366">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309932_349346_6366" parameteredElement="_10_5_622020d_1132928309932_441847_6367">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_441847_6367" name="V" templateParameter="_10_5_622020d_1132928309932_349346_6366"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_518442_6368" name="ReferenceIntegerPair" visibility="private">
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309932_738381_6369" name="" parameter="_10_5_622020d_1132928309932_525035_6370">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309932_525035_6370" parameteredElement="_10_5_622020d_1132928309932_828135_6371">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309932_828135_6371" name="T" templateParameter="_10_5_622020d_1132928309932_525035_6370"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309902_958273_6290" name="AtomicInteger" clientDependency="_10_5_622020d_1132928321959_480929_14310">
                <ownedComment xmi:id="_10_5_622020d_1132928309902_956918_6292" body="An &lt;tt>int&lt;/tt> value that may be updated atomically. See the&#xA;{@link java.util.concurrent.atomic} package specification for&#xA;description of the properties of atomic variables. An&#xA;&lt;tt>AtomicInteger&lt;/tt> is used in applications such as atomically&#xA;incremented counters, and cannot be used as a replacement for an&#xA;{@link java.lang.Integer}. However, this class does extend&#xA;&lt;tt>Number&lt;/tt> to allow uniform access by tools and utilities that&#xA;deal with numerically-based classes.&#xA;&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309902_958273_6290"/>
                <generalization xmi:id="_10_5_622020d_1132928321959_244284_14311" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321959_480929_14310" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309902_958273_6290" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_115945_6307" name="AtomicLong" clientDependency="_10_5_622020d_1132928321969_342991_14317">
                <ownedComment xmi:id="_10_5_622020d_1132928309912_933480_6309" body="A &lt;tt>long&lt;/tt> value that may be updated atomically.  See the&#xA;{@link java.util.concurrent.atomic} package specification for&#xA;description of the properties of atomic variables. An&#xA;&lt;tt>AtomicLong&lt;/tt> is used in applications such as atomically&#xA;incremented sequence numbers, and cannot be used as a replacement&#xA;for a {@link java.lang.Long}. However, this class does extend&#xA;&lt;tt>Number&lt;/tt> to allow uniform access by tools and utilities that&#xA;deal with numerically-based classes.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309912_115945_6307"/>
                <generalization xmi:id="_10_5_622020d_1132928321969_344310_14318" isSubstitutable="true" general="_9_5_f720368_1110473546612_878988_7657"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_342991_14317" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309912_115945_6307" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_775052_6337" name="AtomicReference" clientDependency="_10_5_622020d_1132928321969_446370_14325">
                <ownedComment xmi:id="_10_5_622020d_1132928309922_388920_6342" body="An object reference that may be updated atomically. See the {@link&#xA;java.util.concurrent.atomic} package specification for description&#xA;of the properties of atomic variables.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The type of object referred to by this reference&#xA;" annotatedElement="_10_5_622020d_1132928309922_775052_6337"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_766428_6338" name="" parameter="_10_5_622020d_1132928309922_893388_6339">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_893388_6339" parameteredElement="_10_5_622020d_1132928309922_173738_6340">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_173738_6340" name="V" templateParameter="_10_5_622020d_1132928309922_893388_6339"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_446370_14325" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309922_775052_6337" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_829861_6313" name="AtomicLongFieldUpdater" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928309912_580625_6326" body="A reflection-based utility that enables atomic updates to&#xA;designated &lt;tt>volatile long&lt;/tt> fields of designated classes.&#xA;This class is designed for use in atomic data structures in which&#xA;several fields of the same node are independently subject to atomic&#xA;updates.&#xA;&#xA;&lt;p> Note that the guarantees of the &lt;tt>compareAndSet&lt;/tt> method&#xA;in this class are weaker than in other atomic classes. Because this&#xA;class cannot ensure that all uses of the field are appropriate for&#xA;purposes of atomic access, it can guarantee atomicity and volatile&#xA;semantics only with respect to other invocations of&#xA;&lt;tt>compareAndSet&lt;/tt> and &lt;tt>set&lt;/tt>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;T> The type of the object holding the updatable field&#xA;" annotatedElement="_10_5_622020d_1132928309912_829861_6313"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309912_852367_6314" name="" parameter="_10_5_622020d_1132928309912_797771_6315">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309912_797771_6315" parameteredElement="_10_5_622020d_1132928309912_245944_6316">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_245944_6316" name="T" templateParameter="_10_5_622020d_1132928309912_797771_6315"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_581228_6317" name="CASUpdater" visibility="private">
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309912_11741_6318" name="" parameter="_10_5_622020d_1132928309912_223988_6319">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309912_223988_6319" parameteredElement="_10_5_622020d_1132928309912_291994_6320">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_291994_6320" name="T" templateParameter="_10_5_622020d_1132928309912_223988_6319"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <generalization xmi:id="_10_5_622020d_1132928321969_891449_14323" isSubstitutable="true" general="_10_5_622020d_1132928321969_71626_14320"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_14581_6321" name="LockedUpdater" visibility="private">
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309912_710673_6322" name="" parameter="_10_5_622020d_1132928309912_467689_6323">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309912_467689_6323" parameteredElement="_10_5_622020d_1132928309912_994744_6324">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309912_994744_6324" name="T" templateParameter="_10_5_622020d_1132928309912_467689_6323"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <generalization xmi:id="_10_5_622020d_1132928321969_528939_14324" isSubstitutable="true" general="_10_5_622020d_1132928321969_71626_14320"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_428881_6327" name="AtomicMarkableReference">
                <ownedComment xmi:id="_10_5_622020d_1132928309922_459881_6336" body="An &lt;tt>AtomicMarkableReference&lt;/tt> maintains an object reference&#xA;along with a mark bit, that can be updated atomically.&#xA;&lt;p>&#xA;&lt;p> Implementation note. This implementation maintains markable&#xA;references by creating internal objects representing &quot;boxed&quot;&#xA;[reference, boolean] pairs.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The type of object referred to by this reference&#xA;" annotatedElement="_10_5_622020d_1132928309922_428881_6327"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_600495_6328" name="" parameter="_10_5_622020d_1132928309922_473641_6329">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_473641_6329" parameteredElement="_10_5_622020d_1132928309922_341100_6330">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_341100_6330" name="V" templateParameter="_10_5_622020d_1132928309922_473641_6329"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_391369_6331" name="ReferenceBooleanPair" visibility="private">
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_538988_6332" name="" parameter="_10_5_622020d_1132928309922_435795_6333">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_435795_6333" parameteredElement="_10_5_622020d_1132928309922_627985_6334">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_627985_6334" name="T" templateParameter="_10_5_622020d_1132928309922_435795_6333"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309902_468824_6287" name="AtomicBoolean" clientDependency="_10_5_622020d_1132928321959_682252_14309">
                <ownedComment xmi:id="_10_5_622020d_1132928309902_445812_6289" body="A &lt;tt>boolean&lt;/tt> value that may be updated atomically. See the&#xA;{@link java.util.concurrent.atomic} package specification for&#xA;description of the properties of atomic variables. An&#xA;&lt;tt>AtomicBoolean&lt;/tt> is used in applications such as atomically&#xA;updated flags, and cannot be used as a replacement for a&#xA;{@link java.lang.Boolean}.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309902_468824_6287"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321959_682252_14309" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309902_468824_6287" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321969_71626_14320" name="AtomicLongFieldUpdater&lt;T>">
                <templateBinding xmi:id="_10_5_622020d_1132928321969_546232_14321" signature="_10_5_622020d_1132928309912_852367_6314">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928321969_917881_14322" formal="_10_5_622020d_1132928309912_797771_6315" actual="_10_5_622020d_1132928309912_291994_6320"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309902_945917_6293" name="AtomicIntegerArray" clientDependency="_10_5_622020d_1132928321959_87615_14312">
                <ownedComment xmi:id="_10_5_622020d_1132928309912_797523_6295" body="An &lt;tt>int&lt;/tt> array in which elements may be updated atomically.&#xA;See the {@link java.util.concurrent.atomic} package&#xA;specification for description of the properties of atomic&#xA;variables.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928309902_945917_6293"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321959_87615_14312" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309902_945917_6293" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_123510_6343" name="AtomicReferenceArray" clientDependency="_10_5_622020d_1132928321969_513537_14326">
                <ownedComment xmi:id="_10_5_622020d_1132928309922_199238_6348" body="An array of object references in which elements may be updated&#xA;atomically.  See the {@link java.util.concurrent.atomic} package&#xA;specification for description of the properties of atomic&#xA;variables.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> The base class of elements held in this array&#xA;" annotatedElement="_10_5_622020d_1132928309922_123510_6343"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928309922_988531_6344" name="" parameter="_10_5_622020d_1132928309922_528831_6345">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928309922_528831_6345" parameteredElement="_10_5_622020d_1132928309922_300213_6346">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928309922_300213_6346" name="E" templateParameter="_10_5_622020d_1132928309922_528831_6345"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321969_513537_14326" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928309922_123510_6343" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310132_883050_6525" name="CopyOnWriteArraySet" clientDependency="_10_5_622020d_1132928322259_888896_14449">
              <ownedComment xmi:id="_10_5_622020d_1132928310142_773535_6530" body="A {@link java.util.Set} that uses {@link&#xA;java.util.concurrent.CopyOnWriteArrayList} for all of its&#xA;operations.  Thus, it shares the same basic properties:&#xA;&lt;ul>&#xA;&lt;li>It is best suited for applications in which set sizes generally&#xA;stay small, read-only operations&#xA;vastly outnumber mutative operations, and you need&#xA;to prevent interference among threads during traversal.&#xA;&lt;li>It is thread-safe.&#xA;&lt;li>Mutative operations(add, set, remove, etc) are expensive&#xA;since they usually entail copying the entire underlying array.&#xA;&lt;li>Iterators do not support the mutative remove operation.&#xA;&lt;li>Traversal via iterators is fast and cannot encounter&#xA;interference from other threads. Iterators rely on&#xA;unchanging snapshots of the array at the time the iterators were&#xA;constructed.&#xA;&lt;/ul>&#xA;&#xA;&lt;p> &lt;b>Sample Usage.&lt;/b> The following code sketch uses a&#xA;copy-on-write set to maintain a set of Handler objects that&#xA;perform some action upon state updates.&#xA;&#xA;&lt;pre>&#xA;class Handler { void handle(); ... }&#xA;&#xA;class X {&#xA;private final CopyOnWriteArraySet&lt;Handler> handlers = new CopyOnWriteArraySet&lt;Handler>();&#xA;public void addHandler(Handler h) { handlers.add(h); }&#xA;&#xA;private long internalState;&#xA;private synchronized void changeState() { internalState = ...; }&#xA;&#xA;public void update() {&#xA;changeState();&#xA;for (Handler handler : handlers)&#xA;handler.handle();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@see CopyOnWriteArrayList&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310132_883050_6525"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310132_413597_6526" name="" parameter="_10_5_622020d_1132928310132_754430_6527">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310132_754430_6527" parameteredElement="_10_5_622020d_1132928310132_151794_6528">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310132_151794_6528" name="E" templateParameter="_10_5_622020d_1132928310132_754430_6527"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322269_394517_14453" isSubstitutable="true" general="_10_5_622020d_1132928322269_824759_14450"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322259_888896_14449" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310132_883050_6525" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310292_771921_6711" name="TimeUnit">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_869065_6714" body="A &lt;tt>TimeUnit&lt;/tt> represents time durations at a given unit of&#xA;granularity and provides utility methods to convert across units,&#xA;and to perform timing and delay operations in these units.  A&#xA;&lt;tt>TimeUnit&lt;/tt> does not maintain time information, but only&#xA;helps organize and use time representations that may be maintained&#xA;separately across various contexts.&#xA;&#xA;&lt;p>A &lt;tt>TimeUnit&lt;/tt> is mainly used to inform time-based methods&#xA;how a given timing parameter should be interpreted. For example,&#xA;the following code will timeout in 50 milliseconds if the {@link&#xA;java.util.concurrent.locks.Lock lock} is not available:&#xA;&#xA;&lt;pre>  Lock lock = ...;&#xA;if ( lock.tryLock(50L, TimeUnit.MILLISECONDS) ) ...&#xA;&lt;/pre>&#xA;while this code will timeout in 50 seconds:&#xA;&lt;pre>&#xA;Lock lock = ...;&#xA;if ( lock.tryLock(50L, TimeUnit.SECONDS) ) ...&#xA;&lt;/pre>&#xA;&#xA;Note however, that there is no guarantee that a particular timeout&#xA;implementation will be able to notice the passage of time at the&#xA;same granularity as the given &lt;tt>TimeUnit&lt;/tt>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310292_771921_6711"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322009_461318_14369" name="ConcurrentMap&lt;K, V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322009_103078_14370" signature="_10_5_622020d_1132928310122_310052_6500">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_100526_14371" formal="_10_5_622020d_1132928310122_404169_6501" actual="_10_5_622020d_1132928310072_773766_6454"/>
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_821491_14372" formal="_10_5_622020d_1132928310122_867585_6503" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_422265_6674" name="SynchronousQueue" clientDependency="_10_5_622020d_1132928322309_596492_14526 _10_5_622020d_1132928322309_107062_14525">
              <ownedComment xmi:id="_10_5_622020d_1132928310242_107299_6691" body="A {@linkplain BlockingQueue blocking queue} in which each&#xA;&lt;tt>put&lt;/tt> must wait for a &lt;tt>take&lt;/tt>, and vice versa.  A&#xA;synchronous queue does not have any internal capacity, not even a&#xA;capacity of one. You cannot &lt;tt>peek&lt;/tt> at a synchronous queue&#xA;because an element is only present when you try to take it; you&#xA;cannot add an element (using any method) unless another thread is&#xA;trying to remove it; you cannot iterate as there is nothing to&#xA;iterate.  The &lt;em>head&lt;/em> of the queue is the element that the&#xA;first queued thread is trying to add to the queue; if there are no&#xA;queued threads then no element is being added and the head is&#xA;&lt;tt>null&lt;/tt>.  For purposes of other &lt;tt>Collection&lt;/tt> methods&#xA;(for example &lt;tt>contains&lt;/tt>), a &lt;tt>SynchronousQueue&lt;/tt> acts&#xA;as an empty collection.  This queue does not permit &lt;tt>null&lt;/tt>&#xA;elements.&#xA;&#xA;&lt;p>Synchronous queues are similar to rendezvous channels used in&#xA;CSP and Ada. They are well suited for handoff designs, in which an&#xA;object running in one thread must sync up with an object running&#xA;in another thread in order to hand it some information, event, or&#xA;task.&#xA;&#xA;&lt;p> This class supports an optional fairness policy for ordering&#xA;waiting producer and consumer threads.  By default, this ordering&#xA;is not guaranteed. However, a queue constructed with fairness set&#xA;to &lt;tt>true&lt;/tt> grants threads access in FIFO order. Fairness&#xA;generally decreases throughput but reduces variability and avoids&#xA;starvation.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310242_422265_6674"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310242_822905_6675" name="" parameter="_10_5_622020d_1132928310242_393565_6676">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310242_393565_6676" parameteredElement="_10_5_622020d_1132928310242_56291_6677">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_56291_6677" name="E" templateParameter="_10_5_622020d_1132928310242_393565_6676"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322309_94063_14527" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322309_107062_14525" name="" supplier="_10_5_622020d_1132928321989_740687_14350" client="_10_5_622020d_1132928310242_422265_6674" contract="_10_5_622020d_1132928321989_740687_14350"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322309_596492_14526" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310242_422265_6674" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_785435_6678" name="WaitQueue" visibility="package" clientDependency="_10_5_622020d_1132928322309_115512_14528" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310242_509733_6679" body="Queue to hold waiting puts/takes; specialized to Fifo/Lifo below.&#xA;These queues have all transient fields, but are serializable&#xA;in order to recover fairness settings when deserialized.&#xA;" annotatedElement="_10_5_622020d_1132928310242_785435_6678"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_115512_14528" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310242_785435_6678" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_539341_6680" name="FifoWaitQueue" visibility="package" clientDependency="_10_5_622020d_1132928322309_301980_14529" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310242_339009_6681" body="FIFO queue to hold waiting puts/takes.&#xA;" annotatedElement="_10_5_622020d_1132928310242_539341_6680"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_901348_14530" isSubstitutable="true" general="_10_5_622020d_1132928310242_785435_6678"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_301980_14529" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310242_539341_6680" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_177840_6682" name="LifoWaitQueue" visibility="package" clientDependency="_10_5_622020d_1132928322309_665195_14531" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310242_441218_6683" body="LIFO queue to hold waiting puts/takes.&#xA;" annotatedElement="_10_5_622020d_1132928310242_177840_6682"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_982134_14532" isSubstitutable="true" general="_10_5_622020d_1132928310242_785435_6678"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_665195_14531" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310242_177840_6682" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_168246_6684" name="Node" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310242_728363_6685" body="Nodes each maintain an item and handle waits and signals for&#xA;getting and setting it. The class extends&#xA;AbstractQueuedSynchronizer to manage blocking, using AQS state&#xA;0 for waiting, 1 for ack, -1 for cancelled.&#xA;" annotatedElement="_10_5_622020d_1132928310242_168246_6684"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_119471_14533" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_490363_6686" name="EmptyIterator" visibility="package" clientDependency="_10_5_622020d_1132928322309_591575_14534">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310242_335168_6687" name="" parameter="_10_5_622020d_1132928310242_768346_6688">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310242_768346_6688" parameteredElement="_10_5_622020d_1132928310242_795544_6689">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310242_795544_6689" name="E" templateParameter="_10_5_622020d_1132928310242_768346_6688"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_591575_14534" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310242_490363_6686" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310062_665345_6445" name="CompletionService" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310072_90833_6450" body="A service that decouples the production of new asynchronous tasks&#xA;from the consumption of the results of completed tasks.  Producers&#xA;&lt;tt>submit&lt;/tt> tasks for execution. Consumers &lt;tt>take&lt;/tt>&#xA;completed tasks and process their results in the order they&#xA;complete.  A &lt;tt>CompletionService&lt;/tt> can for example be used to&#xA;manage asynchronous IO, in which tasks that perform reads are&#xA;submitted in one part of a program or system, and then acted upon&#xA;in a different part of the program when the reads complete,&#xA;possibly in a different order than they were requested.&#xA;&lt;p>&#xA;&#xA;Typically, a &lt;tt>CompletionService&lt;/tt> relies on a separate {@link&#xA;Executor} to actually execute the tasks, in which case the&#xA;&lt;tt>CompletionService&lt;/tt> only manages an internal completion&#xA;queue. The {@link ExecutorCompletionService} class provides an&#xA;implementation of this approach.&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310062_665345_6445"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310072_499191_6446" name="" parameter="_10_5_622020d_1132928310072_142009_6447">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_142009_6447" parameteredElement="_10_5_622020d_1132928310072_689420_6448">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_689420_6448" name="V" templateParameter="_10_5_622020d_1132928310072_142009_6447"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928536788_403472_18999" name="Iterator&lt;Entry&lt;K, V>>">
              <templateBinding xmi:id="_10_5_622020d_1132928536798_317979_19000" signature="_10_5_622020d_1132928313266_660412_7328">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928536798_8653_19001" formal="_10_5_622020d_1132928313266_876300_7329" actual="_10_5_622020d_1132928322019_822336_14400"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_250703_6619" name="LinkedBlockingQueue" clientDependency="_10_5_622020d_1132928322289_91664_14495 _10_5_622020d_1132928322289_114944_14494">
              <ownedComment xmi:id="_10_5_622020d_1132928310202_406161_6630" body="An optionally-bounded {@linkplain BlockingQueue blocking queue} based on&#xA;linked nodes.&#xA;This queue orders elements FIFO (first-in-first-out).&#xA;The &lt;em>head&lt;/em> of the queue is that element that has been on the&#xA;queue the longest time.&#xA;The &lt;em>tail&lt;/em> of the queue is that element that has been on the&#xA;queue the shortest time. New elements&#xA;are inserted at the tail of the queue, and the queue retrieval&#xA;operations obtain elements at the head of the queue.&#xA;Linked queues typically have higher throughput than array-based queues but&#xA;less predictable performance in most concurrent applications.&#xA;&#xA;&lt;p> The optional capacity bound constructor argument serves as a&#xA;way to prevent excessive queue expansion. The capacity, if unspecified,&#xA;is equal to {@link Integer#MAX_VALUE}.  Linked nodes are&#xA;dynamically created upon each insertion unless this would bring the&#xA;queue above capacity.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310202_250703_6619"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310202_652867_6620" name="" parameter="_10_5_622020d_1132928310202_812500_6621">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310202_812500_6621" parameteredElement="_10_5_622020d_1132928310202_106876_6622">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_106876_6622" name="E" templateParameter="_10_5_622020d_1132928310202_812500_6621"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322289_748270_14496" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_114944_14494" name="" supplier="_10_5_622020d_1132928321989_740687_14350" client="_10_5_622020d_1132928310202_250703_6619" contract="_10_5_622020d_1132928321989_740687_14350"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_91664_14495" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310202_250703_6619" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_163185_6623" name="Node" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310202_380901_6627" body="Linked list node class&#xA;" annotatedElement="_10_5_622020d_1132928310202_163185_6623"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310202_182338_6624" name="" parameter="_10_5_622020d_1132928310202_662334_6625">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310202_662334_6625" parameteredElement="_10_5_622020d_1132928310202_465380_6626">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_465380_6626" name="E" templateParameter="_10_5_622020d_1132928310202_662334_6625"/>
                  </ownedParameter>
                </ownedTemplateSignature>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_402074_6628" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322289_795689_14497">
                <interfaceRealization xmi:id="_10_5_622020d_1132928322289_795689_14497" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310202_402074_6628" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322299_507015_14517" name="AbstractCollection&lt;Runnable>">
              <templateBinding xmi:id="_10_5_622020d_1132928322299_908731_14518" signature="_10_5_622020d_1132928310783_69936_6932">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322309_85181_14519" formal="_10_5_622020d_1132928310783_329056_6933" actual="_9_5_f720368_1110473546612_953158_7669"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322239_716444_14412" name="AbstractSet&lt;K>">
              <templateBinding xmi:id="_10_5_622020d_1132928322239_45384_14413" signature="_10_5_622020d_1132928310803_326819_6974">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322239_861364_14414" formal="_10_5_622020d_1132928310803_863661_6975" actual="_10_5_622020d_1132928310072_773766_6454"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310142_391749_6531" name="CountDownLatch">
              <ownedComment xmi:id="_10_5_622020d_1132928310142_395071_6535" body="A synchronization aid that allows one or more threads to wait until&#xA;a set of operations being performed in other threads completes.&#xA;&#xA;&lt;p>A &lt;tt>CountDownLatch&lt;/tt> is initialized with a given&#xA;&lt;em>count&lt;/em>.  The {@link #await await} methods block until the current&#xA;{@link #getCount count} reaches zero due to invocations of the&#xA;{@link #countDown} method, after which all waiting threads are&#xA;released and any subsequent invocations of {@link #await await} return&#xA;immediately. This is a one-shot phenomenon -- the count cannot be&#xA;reset.  If you need a version that resets the count, consider using&#xA;a {@link CyclicBarrier}.&#xA;&#xA;&lt;p>A &lt;tt>CountDownLatch&lt;/tt> is a versatile synchronization tool&#xA;and can be used for a number of purposes.  A&#xA;&lt;tt>CountDownLatch&lt;/tt> initialized with a count of one serves as a&#xA;simple on/off latch, or gate: all threads invoking {@link #await await}&#xA;wait at the gate until it is opened by a thread invoking {@link&#xA;#countDown}.  A &lt;tt>CountDownLatch&lt;/tt> initialized to &lt;em>N&lt;/em>&#xA;can be used to make one thread wait until &lt;em>N&lt;/em> threads have&#xA;completed some action, or some action has been completed N times.&#xA;&lt;p>A useful property of a &lt;tt>CountDownLatch&lt;/tt> is that it&#xA;doesn't require that threads calling &lt;tt>countDown&lt;/tt> wait for&#xA;the count to reach zero before proceeding, it simply prevents any&#xA;thread from proceeding past an {@link #await await} until all&#xA;threads could pass.&#xA;&#xA;&lt;p>&lt;b>Sample usage:&lt;/b> Here is a pair of classes in which a group&#xA;of worker threads use two countdown latches:&#xA;&lt;ul>&#xA;&lt;li>The first is a start signal that prevents any worker from proceeding&#xA;until the driver is ready for them to proceed;&#xA;&lt;li>The second is a completion signal that allows the driver to wait&#xA;until all workers have completed.&#xA;&lt;/ul>&#xA;&#xA;&lt;pre>&#xA;class Driver { // ...&#xA;void main() throws InterruptedException {&#xA;CountDownLatch startSignal = new CountDownLatch(1);&#xA;CountDownLatch doneSignal = new CountDownLatch(N);&#xA;&#xA;for (int i = 0; i &lt; N; ++i) // create and start threads&#xA;new Thread(new Worker(startSignal, doneSignal)).start();&#xA;&#xA;doSomethingElse();            // don't let run yet&#xA;startSignal.countDown();      // let all threads proceed&#xA;doSomethingElse();&#xA;doneSignal.await();           // wait for all to finish&#xA;}&#xA;}&#xA;&#xA;class Worker implements Runnable {&#xA;private final CountDownLatch startSignal;&#xA;private final CountDownLatch doneSignal;&#xA;Worker(CountDownLatch startSignal, CountDownLatch doneSignal) {&#xA;this.startSignal = startSignal;&#xA;this.doneSignal = doneSignal;&#xA;}&#xA;public void run() {&#xA;try {&#xA;startSignal.await();&#xA;doWork();&#xA;doneSignal.countDown();&#xA;} catch (InterruptedException ex) {} // return;&#xA;}&#xA;&#xA;void doWork() { ... }&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Another typical usage would be to divide a problem into N parts,&#xA;describe each part with a Runnable that executes that portion and&#xA;counts down on the latch, and queue all the Runnables to an&#xA;Executor.  When all sub-parts are complete, the coordinating thread&#xA;will be able to pass through await. (When threads must repeatedly&#xA;count down in this way, instead use a {@link CyclicBarrier}.)&#xA;&#xA;&lt;pre>&#xA;class Driver2 { // ...&#xA;void main() throws InterruptedException {&#xA;CountDownLatch doneSignal = new CountDownLatch(N);&#xA;Executor e = ...&#xA;&#xA;for (int i = 0; i &lt; N; ++i) // create and start threads&#xA;e.execute(new WorkerRunnable(doneSignal, i));&#xA;&#xA;doneSignal.await();           // wait for all to finish&#xA;}&#xA;}&#xA;&#xA;class WorkerRunnable implements Runnable {&#xA;private final CountDownLatch doneSignal;&#xA;private final int i;&#xA;WorkerRunnable(CountDownLatch doneSignal, int i) {&#xA;this.doneSignal = doneSignal;&#xA;this.i = i;&#xA;}&#xA;public void run() {&#xA;try {&#xA;doWork(i);&#xA;doneSignal.countDown();&#xA;} catch (InterruptedException ex) {} // return;&#xA;}&#xA;&#xA;void doWork() { ... }&#xA;}&#xA;&#xA;&lt;/pre>&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310142_391749_6531"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310142_302210_6532" name="Sync" visibility="private" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310142_629792_6533" body="Synchronization control For CountDownLatch.&#xA;Uses AQS state to represent count.&#xA;" annotatedElement="_10_5_622020d_1132928310142_302210_6532"/>
                <generalization xmi:id="_10_5_622020d_1132928322269_558541_14454" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_956511_6641" name="RejectedExecutionException">
              <ownedComment xmi:id="_10_5_622020d_1132928310202_867175_6643" body="Exception thrown by an {@link Executor} when a task cannot be&#xA;accepted for execution.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310202_956511_6641"/>
              <generalization xmi:id="_10_5_622020d_1132928322289_716720_14502" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321989_740687_14350" name="BlockingQueue&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928321989_825508_14351" signature="_10_5_622020d_1132928310062_967032_6428">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321989_922460_14352" formal="_10_5_622020d_1132928310062_469969_6429" actual="_10_5_622020d_1132928310052_69619_6422"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310142_946196_6536" name="CyclicBarrier">
              <ownedComment xmi:id="_10_5_622020d_1132928310152_262367_6538" body="A synchronization aid that allows a set of threads to all wait for&#xA;each other to reach a common barrier point.  CyclicBarriers are&#xA;useful in programs involving a fixed sized party of threads that&#xA;must occasionally wait for each other. The barrier is called&#xA;&lt;em>cyclic&lt;/em> because it can be re-used after the waiting threads&#xA;are released.&#xA;&#xA;&lt;p>A &lt;tt>CyclicBarrier&lt;/tt> supports an optional {@link Runnable} command&#xA;that is run once per barrier point, after the last thread in the party&#xA;arrives, but before any threads are released.&#xA;This &lt;em>barrier action&lt;/em> is useful&#xA;for updating shared-state before any of the parties continue.&#xA;&#xA;&lt;p>&lt;b>Sample usage:&lt;/b> Here is an example of&#xA;using a barrier in a parallel decomposition design:&#xA;&lt;pre>&#xA;class Solver {&#xA;final int N;&#xA;final float[][] data;&#xA;final CyclicBarrier barrier;&#xA;&#xA;class Worker implements Runnable {&#xA;int myRow;&#xA;Worker(int row) { myRow = row; }&#xA;public void run() {&#xA;while (!done()) {&#xA;processRow(myRow);&#xA;&#xA;try {&#xA;barrier.await();&#xA;} catch (InterruptedException ex) {&#xA;return;&#xA;} catch (BrokenBarrierException ex) {&#xA;return;&#xA;}&#xA;}&#xA;}&#xA;}&#xA;&#xA;public Solver(float[][] matrix) {&#xA;data = matrix;&#xA;N = matrix.length;&#xA;barrier = new CyclicBarrier(N,&#xA;new Runnable() {&#xA;public void run() {&#xA;mergeRows(...);&#xA;}&#xA;});&#xA;for (int i = 0; i &lt; N; ++i)&#xA;new Thread(new Worker(i)).start();&#xA;&#xA;waitUntilDone();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;Here, each worker thread processes a row of the matrix then waits at the&#xA;barrier until all rows have been processed. When all rows are processed&#xA;the supplied {@link Runnable} barrier action is executed and merges the&#xA;rows. If the merger&#xA;determines that a solution has been found then &lt;tt>done()&lt;/tt> will return&#xA;&lt;tt>true&lt;/tt> and each worker will terminate.&#xA;&#xA;&lt;p>If the barrier action does not rely on the parties being suspended when&#xA;it is executed, then any of the threads in the party could execute that&#xA;action when it is released. To facilitate this, each invocation of&#xA;{@link #await} returns the arrival index of that thread at the barrier.&#xA;You can then choose which thread should execute the barrier action, for&#xA;example:&#xA;&lt;pre>  if (barrier.await() == 0) {&#xA;log the completion of this iteration&#xA;}&lt;/pre>&#xA;&#xA;&lt;p>The &lt;tt>CyclicBarrier&lt;/tt> uses a fast-fail all-or-none breakage&#xA;model for failed synchronization attempts: If a thread leaves a&#xA;barrier point prematurely because of interruption, failure, or&#xA;timeout, all other threads, even those that have not yet resumed&#xA;from a previous {@link #await}, will also leave abnormally via&#xA;{@link BrokenBarrierException} (or &lt;tt>InterruptedException&lt;/tt> if&#xA;they too were interrupted at about the same time).&#xA;&#xA;@since 1.5&#xA;@see CountDownLatch&#xA;&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310142_946196_6536"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310222_301337_6665" name="Semaphore" clientDependency="_10_5_622020d_1132928322309_682005_14521">
              <ownedComment xmi:id="_10_5_622020d_1132928310242_433292_6673" body="A counting semaphore.  Conceptually, a semaphore maintains a set of&#xA;permits.  Each {@link #acquire} blocks if necessary until a permit is&#xA;available, and then takes it.  Each {@link #release} adds a permit,&#xA;potentially releasing a blocking acquirer.&#xA;However, no actual permit objects are used; the &lt;tt>Semaphore&lt;/tt> just&#xA;keeps a count of the number available and acts accordingly.&#xA;&#xA;&lt;p>Semaphores are often used to restrict the number of threads than can&#xA;access some (physical or logical) resource. For example, here is&#xA;a class that uses a semaphore to control access to a pool of items:&#xA;&lt;pre>&#xA;class Pool {&#xA;private static final MAX_AVAILABLE = 100;&#xA;private final Semaphore available = new Semaphore(MAX_AVAILABLE, true);&#xA;&#xA;public Object getItem() throws InterruptedException {&#xA;available.acquire();&#xA;return getNextAvailableItem();&#xA;}&#xA;&#xA;public void putItem(Object x) {&#xA;if (markAsUnused(x))&#xA;available.release();&#xA;}&#xA;&#xA;Not a particularly efficient data structure; just for demo&#xA;&#xA;protected Object[] items = ... whatever kinds of items being managed&#xA;protected boolean[] used = new boolean[MAX_AVAILABLE];&#xA;&#xA;protected synchronized Object getNextAvailableItem() {&#xA;for (int i = 0; i &lt; MAX_AVAILABLE; ++i) {&#xA;if (!used[i]) {&#xA;used[i] = true;&#xA;return items[i];&#xA;}&#xA;}&#xA;return null; // not reached&#xA;}&#xA;&#xA;protected synchronized boolean markAsUnused(Object item) {&#xA;for (int i = 0; i &lt; MAX_AVAILABLE; ++i) {&#xA;if (item == items[i]) {&#xA;if (used[i]) {&#xA;used[i] = false;&#xA;return true;&#xA;} else&#xA;return false;&#xA;}&#xA;}&#xA;return false;&#xA;}&#xA;&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Before obtaining an item each thread must acquire a permit from&#xA;the semaphore, guaranteeing that an item is available for use. When&#xA;the thread has finished with the item it is returned back to the&#xA;pool and a permit is returned to the semaphore, allowing another&#xA;thread to acquire that item.  Note that no synchronization lock is&#xA;held when {@link #acquire} is called as that would prevent an item&#xA;from being returned to the pool.  The semaphore encapsulates the&#xA;synchronization needed to restrict access to the pool, separately&#xA;from any synchronization needed to maintain the consistency of the&#xA;pool itself.&#xA;&#xA;&lt;p>A semaphore initialized to one, and which is used such that it&#xA;only has at most one permit available, can serve as a mutual&#xA;exclusion lock.  This is more commonly known as a &lt;em>binary&#xA;semaphore&lt;/em>, because it only has two states: one permit&#xA;available, or zero permits available.  When used in this way, the&#xA;binary semaphore has the property (unlike many {@link Lock}&#xA;implementations), that the &quot;lock&quot; can be released by a&#xA;thread other than the owner (as semaphores have no notion of&#xA;ownership).  This can be useful in some specialized contexts, such&#xA;as deadlock recovery.&#xA;&#xA;&lt;p> The constructor for this class optionally accepts a&#xA;&lt;em>fairness&lt;/em> parameter. When set false, this class makes no&#xA;guarantees about the order in which threads acquire permits. In&#xA;particular, &lt;em>barging&lt;/em> is permitted, that is, a thread&#xA;invoking {@link #acquire} can be allocated a permit ahead of a&#xA;thread that has been waiting - logically the new thread places itself at&#xA;the head of the queue of waiting threads. When fairness is set true, the&#xA;semaphore guarantees that threads invoking any of the {@link&#xA;#acquire() acquire} methods are selected to obtain permits in the order in&#xA;which their invocation of those methods was processed&#xA;(first-in-first-out; FIFO). Note that FIFO ordering necessarily&#xA;applies to specific internal points of execution within these&#xA;methods.  So, it is possible for one thread to invoke&#xA;&lt;tt>acquire&lt;/tt> before another, but reach the ordering point after&#xA;the other, and similarly upon return from the method.&#xA;Also note that the untimed {@link #tryAcquire() tryAcquire} methods do not&#xA;honor the fairness setting, but will take any permits that are&#xA;available.&#xA;&#xA;&lt;p>Generally, semaphores used to control resource access should be&#xA;initialized as fair, to ensure that no thread is starved out from&#xA;accessing a resource. When using semaphores for other kinds of&#xA;synchronization control, the throughput advantages of non-fair&#xA;ordering often outweigh fairness considerations.&#xA;&#xA;&lt;p>This class also provides convenience methods to {@link&#xA;#acquire(int) acquire} and {@link #release(int) release} multiple&#xA;permits at a time.  Beware of the increased risk of indefinite&#xA;postponement when these methods are used without fairness set true.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310222_301337_6665"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322309_682005_14521" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310222_301337_6665" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310222_678173_6666" name="Sync" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310222_96448_6667" body="Synchronization implementation for semaphore.  Uses AQS state&#xA;to represent permits. Subclassed into fair and nonfair&#xA;versions.&#xA;" annotatedElement="_10_5_622020d_1132928310222_678173_6666"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_711082_14522" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310222_251007_6668" name="NonfairSync" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310222_784922_6669" body="NonFair version&#xA;" annotatedElement="_10_5_622020d_1132928310222_251007_6668"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_791823_14523" isSubstitutable="true" general="_10_5_622020d_1132928310222_678173_6666"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310222_673205_6670" name="FairSync" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310222_496954_6671" body="Fair version&#xA;" annotatedElement="_10_5_622020d_1132928310222_673205_6670"/>
                <generalization xmi:id="_10_5_622020d_1132928322309_812131_14524" isSubstitutable="true" general="_10_5_622020d_1132928310222_678173_6666"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310242_498462_6692" name="ThreadFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310252_293478_6694" body="An object that creates new threads on demand.  Using thread factories&#xA;removes hardwiring of calls to {@link Thread#Thread(Runnable) new Thread},&#xA;enabling applications to use special thread subclasses, priorities, etc.&#xA;&#xA;&lt;p>&#xA;The simplest implementation of this interface is just:&#xA;&lt;pre>&#xA;class SimpleThreadFactory implements ThreadFactory {&#xA;public Thread newThread(Runnable r) {&#xA;return new Thread(r);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;The {@link Executors#defaultThreadFactory} method provides a more&#xA;useful simple implementation, that sets the created thread context&#xA;to known values before returning it.&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310242_498462_6692"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322259_732594_14433" name="List&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928322259_371350_14434" signature="_10_5_622020d_1132928313286_849883_7372">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322259_989775_14435" formal="_10_5_622020d_1132928313286_818209_7373" actual="_10_5_622020d_1132928310122_641045_6510"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322279_611817_14488" name="Future&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322289_916636_14489" signature="_10_5_622020d_1132928310192_858530_6606">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322289_887961_14490" formal="_10_5_622020d_1132928310192_324692_6607" actual="_10_5_622020d_1132928310192_532558_6614"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321989_283025_14359" name="Iterator&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928321989_666455_14360" signature="_10_5_622020d_1132928313266_660412_7328">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321989_822277_14361" formal="_10_5_622020d_1132928313266_876300_7329" actual="_10_5_622020d_1132928310052_69619_6422"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_196599_6507" name="CopyOnWriteArrayList" clientDependency="_10_5_622020d_1132928322259_789420_14438 _10_5_622020d_1132928322259_548794_14436 _10_5_622020d_1132928322259_248379_14437 _10_5_622020d_1132928322259_589594_14439">
              <ownedComment xmi:id="_10_5_622020d_1132928310132_842846_6524" body="A thread-safe variant of {@link java.util.ArrayList} in which all mutative&#xA;operations (add, set, and so on) are implemented by making a fresh&#xA;copy of the underlying array.&#xA;&#xA;&lt;p> This is ordinarily too costly, but may be &lt;em>more&lt;/em> efficient&#xA;than alternatives when traversal operations vastly outnumber&#xA;mutations, and is useful when you cannot or don't want to&#xA;synchronize traversals, yet need to preclude interference among&#xA;concurrent threads.  The &quot;snapshot&quot; style iterator method uses a&#xA;reference to the state of the array at the point that the iterator&#xA;was created. This array never changes during the lifetime of the&#xA;iterator, so interference is impossible and the iterator is&#xA;guaranteed not to throw &lt;tt>ConcurrentModificationException&lt;/tt>.&#xA;The iterator will not reflect additions, removals, or changes to&#xA;the list since the iterator was created.  Element-changing&#xA;operations on iterators themselves (remove, set, and add) are not&#xA;supported. These methods throw&#xA;&lt;tt>UnsupportedOperationException&lt;/tt>.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310122_196599_6507"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310122_77501_6508" name="" parameter="_10_5_622020d_1132928310122_206170_6509">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_206170_6509" parameteredElement="_10_5_622020d_1132928310122_641045_6510">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_641045_6510" name="E" templateParameter="_10_5_622020d_1132928310122_206170_6509"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322259_548794_14436" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_10_5_622020d_1132928310122_196599_6507" contract="_10_5_622020d_1132928322259_732594_14433"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322259_248379_14437" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_10_5_622020d_1132928310122_196599_6507" contract="_9_5_f720368_1110473546706_6812_8913"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322259_789420_14438" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928310122_196599_6507" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322259_589594_14439" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310122_196599_6507" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_42216_6511" name="COWIterator" visibility="private" clientDependency="_10_5_622020d_1132928322259_135798_14443">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310122_240748_6512" name="" parameter="_10_5_622020d_1132928310122_635301_6513">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_635301_6513" parameteredElement="_10_5_622020d_1132928310122_52536_6514">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_52536_6514" name="E" templateParameter="_10_5_622020d_1132928310122_635301_6513"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322259_135798_14443" name="" supplier="_10_5_622020d_1132928322259_938209_14440" client="_10_5_622020d_1132928310122_42216_6511" contract="_10_5_622020d_1132928322259_938209_14440"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_647232_6515" name="COWSubList" visibility="private">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310122_993713_6516" name="" parameter="_10_5_622020d_1132928310122_193193_6517">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_193193_6517" parameteredElement="_10_5_622020d_1132928310122_765666_6518">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_765666_6518" name="E" templateParameter="_10_5_622020d_1132928310122_193193_6517"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <generalization xmi:id="_10_5_622020d_1132928322259_857921_14447" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_974799_6519" name="COWSubListIterator" visibility="private" clientDependency="_10_5_622020d_1132928322259_683542_14448">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310122_893695_6520" name="" parameter="_10_5_622020d_1132928310122_330862_6521">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310122_330862_6521" parameteredElement="_10_5_622020d_1132928310122_773960_6522">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310122_773960_6522" name="E" templateParameter="_10_5_622020d_1132928310122_330862_6521"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322259_683542_14448" name="" supplier="_10_5_622020d_1132928322259_938209_14440" client="_10_5_622020d_1132928310122_974799_6519" contract="_10_5_622020d_1132928322259_938209_14440"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310172_825771_6552" name="Exchanger">
              <ownedComment xmi:id="_10_5_622020d_1132928310172_817865_6557" body="A synchronization point at which two threads can exchange objects.&#xA;Each thread presents some object on entry to the {@link #exchange&#xA;exchange} method, and receives the object presented by the other&#xA;thread on return.&#xA;&#xA;&lt;p>&lt;b>Sample Usage:&lt;/b>&#xA;Here are the highlights of a class that uses an &lt;tt>Exchanger&lt;/tt> to&#xA;swap buffers between threads so that the thread filling the&#xA;buffer gets a freshly&#xA;emptied one when it needs it, handing off the filled one to&#xA;the thread emptying the buffer.&#xA;&lt;pre>&#xA;class FillAndEmpty {&#xA;Exchanger&lt;DataBuffer> exchanger = new Exchanger();&#xA;DataBuffer initialEmptyBuffer = ... a made-up type&#xA;DataBuffer initialFullBuffer = ...&#xA;&#xA;class FillingLoop implements Runnable {&#xA;public void run() {&#xA;DataBuffer currentBuffer = initialEmptyBuffer;&#xA;try {&#xA;while (currentBuffer != null) {&#xA;addToBuffer(currentBuffer);&#xA;if (currentBuffer.full())&#xA;currentBuffer = exchanger.exchange(currentBuffer);&#xA;}&#xA;} catch (InterruptedException ex) { ... handle ... }&#xA;}&#xA;}&#xA;&#xA;class EmptyingLoop implements Runnable {&#xA;public void run() {&#xA;DataBuffer currentBuffer = initialFullBuffer;&#xA;try {&#xA;while (currentBuffer != null) {&#xA;takeFromBuffer(currentBuffer);&#xA;if (currentBuffer.empty())&#xA;currentBuffer = exchanger.exchange(currentBuffer);&#xA;}&#xA;} catch (InterruptedException ex) { ... handle ...}&#xA;}&#xA;}&#xA;&#xA;void start() {&#xA;new Thread(new FillingLoop()).start();&#xA;new Thread(new EmptyingLoop()).start();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The type of objects that may be exchanged&#xA;" annotatedElement="_10_5_622020d_1132928310172_825771_6552"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310172_916828_6553" name="" parameter="_10_5_622020d_1132928310172_505607_6554">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310172_505607_6554" parameteredElement="_10_5_622020d_1132928310172_180809_6555">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310172_180809_6555" name="V" templateParameter="_10_5_622020d_1132928310172_505607_6554"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310192_573192_6605" name="Future" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310192_33482_6610" body="A &lt;tt>Future&lt;/tt> represents the result of an asynchronous&#xA;computation.  Methods are provided to check if the computation is&#xA;complete, to wait for its completion, and to retrieve the result of&#xA;the computation.  The result can only be retrieved using method&#xA;&lt;tt>get&lt;/tt> when the computation has completed, blocking if&#xA;necessary until it is ready.  Cancellation is performed by the&#xA;&lt;tt>cancel&lt;/tt> method.  Additional methods are provided to&#xA;determine if the task completed normally or was cancelled. Once a&#xA;computation has completed, the computation cannot be cancelled.&#xA;If you would like to use a &lt;tt>Future&lt;/tt> for the sake&#xA;of cancellability but not provide a usable result, you can&#xA;declare types of the form &lt;tt>Future&lt;?>&lt;/tt> and&#xA;return &lt;tt>null&lt;/tt> as a result of the underlying task.&#xA;&#xA;&lt;p>&#xA;&lt;b>Sample Usage&lt;/b> (Note that the following classes are all&#xA;made-up.) &lt;p>&#xA;&lt;pre>&#xA;interface ArchiveSearcher { String search(String target); }&#xA;class App {&#xA;ExecutorService executor = ...&#xA;ArchiveSearcher searcher = ...&#xA;void showSearch(final String target) throws InterruptedException {&#xA;Future&lt;String> future = executor.submit(new Callable&lt;String>() {&#xA;public String call() { return searcher.search(target); }&#xA;});&#xA;displayOtherThings(); // do other things while searching&#xA;try {&#xA;displayText(future.get()); // use future&#xA;} catch (ExecutionException ex) { cleanup(); return; }&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;The {@link FutureTask} class is an implementation of &lt;tt>Future&lt;/tt> that&#xA;implements &lt;tt>Runnable&lt;/tt>, and so may be executed by an &lt;tt>Executor&lt;/tt>.&#xA;For example, the above construction with &lt;tt>submit&lt;/tt> could be replaced by:&#xA;&lt;pre>&#xA;FutureTask&lt;String> future =&#xA;new FutureTask&lt;String>(new Callable&lt;String>() {&#xA;public String call() {&#xA;return searcher.search(target);&#xA;}});&#xA;executor.execute(future);&#xA;&lt;/pre>&#xA;@see FutureTask&#xA;@see Executor&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The result type returned by this Future's &lt;tt>get&lt;/tt> method&#xA;" annotatedElement="_10_5_622020d_1132928310192_573192_6605"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310192_858530_6606" name="" parameter="_10_5_622020d_1132928310192_324692_6607">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310192_324692_6607" parameteredElement="_10_5_622020d_1132928310192_724432_6608">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_724432_6608" name="V" templateParameter="_10_5_622020d_1132928310192_324692_6607"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322269_986190_14463" name="CompletionService&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322269_214181_14464" signature="_10_5_622020d_1132928310072_499191_6446">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322269_787470_14465" formal="_10_5_622020d_1132928310072_142009_6447" actual="_10_5_622020d_1132928310182_756310_6567"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_569821_6631" name="PriorityBlockingQueue" clientDependency="_10_5_622020d_1132928322289_544484_14499 _10_5_622020d_1132928322289_199720_14498">
              <ownedComment xmi:id="_10_5_622020d_1132928310202_891805_6640" body="An unbounded {@linkplain BlockingQueue blocking queue} that uses&#xA;the same ordering rules as class {@link PriorityQueue} and supplies&#xA;blocking retrieval operations.  While this queue is logically&#xA;unbounded, attempted additions may fail due to resource exhaustion&#xA;(causing &lt;tt>OutOfMemoryError&lt;/tt>). This class does not permit&#xA;&lt;tt>null&lt;/tt> elements.  A priority queue relying on natural&#xA;ordering also does not permit insertion of non-comparable objects&#xA;(doing so results in &lt;tt>ClassCastException&lt;/tt>).&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;The Iterator provided in method {@link #iterator()} is&#xA;&lt;em>not&lt;/em> guaranteed to traverse the elements of the&#xA;PriorityBlockingQueue in any particular order. If you need ordered&#xA;traversal, consider using &lt;tt>Arrays.sort(pq.toArray())&lt;/tt>.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310202_569821_6631"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310202_980834_6632" name="" parameter="_10_5_622020d_1132928310202_37448_6633">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310202_37448_6633" parameteredElement="_10_5_622020d_1132928310202_503225_6634">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_503225_6634" name="E" templateParameter="_10_5_622020d_1132928310202_37448_6633"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322289_498559_14500" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_199720_14498" name="" supplier="_10_5_622020d_1132928321989_740687_14350" client="_10_5_622020d_1132928310202_569821_6631" contract="_10_5_622020d_1132928321989_740687_14350"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_544484_14499" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310202_569821_6631" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_335954_6635" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322289_742193_14501">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310202_401588_6636" name="" parameter="_10_5_622020d_1132928310202_347693_6637">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310202_347693_6637" parameteredElement="_10_5_622020d_1132928310202_603036_6638">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_603036_6638" name="E" templateParameter="_10_5_622020d_1132928310202_347693_6637"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322289_742193_14501" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310202_335954_6635" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928321989_582562_14355" name="AbstractQueue&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928321989_29970_14356" signature="_10_5_622020d_1132928310793_335387_6964">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321989_553022_14357" formal="_10_5_622020d_1132928310793_824704_6965" actual="_10_5_622020d_1132928310052_69619_6422"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322239_614900_14420" name="AbstractSet&lt;Entry&lt;K, V>>">
              <templateBinding xmi:id="_10_5_622020d_1132928322239_580297_14421" signature="_10_5_622020d_1132928310803_326819_6974">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322239_306120_14422" formal="_10_5_622020d_1132928310803_863661_6975" actual="_10_5_622020d_1132928322019_822336_14400"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310172_229661_6558" name="ExecutionException">
              <ownedComment xmi:id="_10_5_622020d_1132928310172_126267_6560" body="Exception thrown when attempting to retrieve the result of a task&#xA;that aborted by throwing an exception. This exception can be&#xA;inspected using the {@link #getCause()} method.&#xA;&#xA;@see Future&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310172_229661_6558"/>
              <generalization xmi:id="_10_5_622020d_1132928322269_180429_14462" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322259_617753_14428" name="Map&lt;K, V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322259_64751_14429" signature="_10_5_622020d_1132928313327_733811_7386">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322259_359022_14430" formal="_10_5_622020d_1132928313327_184813_7387" actual="_10_5_622020d_1132928310122_469744_6502"/>
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322259_781582_14431" formal="_10_5_622020d_1132928313327_22454_7389" actual="_10_5_622020d_1132928310122_874330_6504"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310172_766214_6561" name="Executor" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310182_846214_6563" body="An object that executes submitted {@link Runnable} tasks. This&#xA;interface provides a way of decoupling task submission from the&#xA;mechanics of how each task will be run, including details of thread&#xA;use, scheduling, etc.  An &lt;tt>Executor&lt;/tt> is normally used&#xA;instead of explicitly creating threads. For example, rather than&#xA;invoking &lt;tt>new Thread(new(RunnableTask())).start()&lt;/tt> for each&#xA;of a set of tasks, you might use:&#xA;&#xA;&lt;pre>&#xA;Executor executor = &lt;em>anExecutor&lt;/em>;&#xA;executor.execute(new RunnableTask1());&#xA;executor.execute(new RunnableTask2());&#xA;...&#xA;&lt;/pre>&#xA;&#xA;However, the &lt;tt>Executor&lt;/tt> interface does not strictly&#xA;require that execution be asynchronous. In the simplest case, an&#xA;executor can run the submitted task immediately in the caller's&#xA;thread:&#xA;&#xA;&lt;pre>&#xA;class DirectExecutor implements Executor {&#xA;public void execute(Runnable r) {&#xA;r.run();&#xA;}&#xA;}&lt;/pre>&#xA;&#xA;More typically, tasks are executed in some thread other&#xA;than the caller's thread.  The executor below spawns a new thread&#xA;for each task.&#xA;&#xA;&lt;pre>&#xA;class ThreadPerTaskExecutor implements Executor {&#xA;public void execute(Runnable r) {&#xA;new Thread(r).start();&#xA;}&#xA;}&lt;/pre>&#xA;&#xA;Many &lt;tt>Executor&lt;/tt> implementations impose some sort of&#xA;limitation on how and when tasks are scheduled.  The executor below&#xA;serializes the submission of tasks to a second executor,&#xA;illustrating a composite executor.&#xA;&#xA;&lt;pre>&#xA;class SerialExecutor implements Executor {&#xA;final Queue&lt;Runnable> tasks = new LinkedBlockingQueue&lt;Runnable>();&#xA;final Executor executor;&#xA;Runnable active;&#xA;&#xA;SerialExecutor(Executor executor) {&#xA;this.executor = executor;&#xA;}&#xA;&#xA;public synchronized void execute(final Runnable r) {&#xA;tasks.offer(new Runnable() {&#xA;public void run() {&#xA;try {&#xA;r.run();&#xA;} finally {&#xA;scheduleNext();&#xA;}&#xA;}&#xA;});&#xA;if (active == null) {&#xA;scheduleNext();&#xA;}&#xA;}&#xA;&#xA;protected synchronized void scheduleNext() {&#xA;if ((active = tasks.poll()) != null) {&#xA;executor.execute(active);&#xA;}&#xA;}&#xA;}&lt;/pre>&#xA;&#xA;The &lt;tt>Executor&lt;/tt> implementations provided in this package&#xA;implement {@link ExecutorService}, which is a more extensive&#xA;interface.  The {@link ThreadPoolExecutor} class provides an&#xA;extensible thread pool implementation. The {@link Executors} class&#xA;provides convenient factory methods for these Executors.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310172_766214_6561"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322009_246331_14386" name="Enumeration&lt;K>">
              <templateBinding xmi:id="_10_5_622020d_1132928322009_856385_14387" signature="_10_5_622020d_1132928310953_589904_7187">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_170755_14388" formal="_10_5_622020d_1132928310953_916423_7188" actual="_10_5_622020d_1132928310072_773766_6454"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322239_66945_14416" name="AbstractCollection&lt;V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322239_532845_14417" signature="_10_5_622020d_1132928310783_69936_6932">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322239_418501_14418" formal="_10_5_622020d_1132928310783_329056_6933" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321999_800194_14363" name="Queue&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928321999_895562_14364" signature="_10_5_622020d_1132928313357_873063_7430">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928321999_166591_14365" formal="_10_5_622020d_1132928313357_307654_7431" actual="_10_5_622020d_1132928310062_45090_6430"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310062_210045_6436" name="Callable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310062_58912_6441" body="A task that returns a result and may throw an exception.&#xA;Implementors define a single method with no arguments called&#xA;&lt;tt>call&lt;/tt>.&#xA;&#xA;&lt;p>The &lt;tt>Callable&lt;/tt> interface is similar to {@link&#xA;java.lang.Runnable}, in that both are designed for classes whose&#xA;instances are potentially executed by another thread.  A&#xA;&lt;tt>Runnable&lt;/tt>, however, does not return a result and cannot&#xA;throw a checked exception.&#xA;&#xA;&lt;p> The {@link Executors} class contains utility methods to&#xA;convert from other common forms to &lt;tt>Callable&lt;/tt> classes.&#xA;&#xA;@see Executor&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> the result type of method &lt;tt>call&lt;/tt>&#xA;" annotatedElement="_10_5_622020d_1132928310062_210045_6436"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310062_12426_6437" name="" parameter="_10_5_622020d_1132928310062_125382_6438">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310062_125382_6438" parameteredElement="_10_5_622020d_1132928310062_352964_6439">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310062_352964_6439" name="V" templateParameter="_10_5_622020d_1132928310062_125382_6438"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322009_321902_14382" name="Iterator&lt;K>">
              <templateBinding xmi:id="_10_5_622020d_1132928322009_178519_14383" signature="_10_5_622020d_1132928313266_660412_7328">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_840453_14384" formal="_10_5_622020d_1132928313266_876300_7329" actual="_10_5_622020d_1132928310072_773766_6454"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322269_824759_14450" name="AbstractSet&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928322269_170671_14451" signature="_10_5_622020d_1132928310803_326819_6974">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322269_790216_14452" formal="_10_5_622020d_1132928310803_863661_6975" actual="_10_5_622020d_1132928310132_151794_6528"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_546353_6611" name="FutureTask" clientDependency="_10_5_622020d_1132928322289_369956_14491 _10_5_622020d_1132928322289_188501_14492">
              <ownedComment xmi:id="_10_5_622020d_1132928310202_648926_6618" body="A cancellable asynchronous computation.  This class provides a base&#xA;implementation of {@link Future}, with methods to start and cancel&#xA;a computation, query to see if the computation is complete, and&#xA;retrieve the result of the computation.  The result can only be&#xA;retrieved when the computation has completed; the &lt;tt>get&lt;/tt>&#xA;method will block if the computation has not yet completed.  Once&#xA;the computation has completed, the computation cannot be restarted&#xA;or cancelled.&#xA;&#xA;&lt;p>A &lt;tt>FutureTask&lt;/tt> can be used to wrap a {@link Callable} or&#xA;{@link java.lang.Runnable} object.  Because &lt;tt>FutureTask&lt;/tt>&#xA;implements &lt;tt>Runnable&lt;/tt>, a &lt;tt>FutureTask&lt;/tt> can be&#xA;submitted to an {@link Executor} for execution.&#xA;&#xA;&lt;p>In addition to serving as a standalone class, this class provides&#xA;&lt;tt>protected&lt;/tt> functionality that may be useful when creating&#xA;customized task classes.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;V> The result type returned by this FutureTask's &lt;tt>get&lt;/tt> method&#xA;" annotatedElement="_10_5_622020d_1132928310192_546353_6611"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310192_287528_6612" name="" parameter="_10_5_622020d_1132928310192_630299_6613">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310192_630299_6613" parameteredElement="_10_5_622020d_1132928310192_532558_6614">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_532558_6614" name="V" templateParameter="_10_5_622020d_1132928310192_630299_6613"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_369956_14491" name="" supplier="_10_5_622020d_1132928322279_611817_14488" client="_10_5_622020d_1132928310192_546353_6611" contract="_10_5_622020d_1132928322279_611817_14488"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322289_188501_14492" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_10_5_622020d_1132928310192_546353_6611" contract="_9_5_f720368_1110473546612_953158_7669"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310202_429795_6615" name="Sync" visibility="private" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310202_983722_6616" body="Synchronization control for FutureTask. Note that this must be&#xA;a non-static inner class in order to invoke the protected&#xA;&lt;tt>done&lt;/tt> method. For clarity, all inner class support&#xA;methods are same as outer, prefixed with &quot;inner&quot;.&#xA;&#xA;Uses AQS sync state to represent run status&#xA;" annotatedElement="_10_5_622020d_1132928310202_429795_6615"/>
                <generalization xmi:id="_10_5_622020d_1132928322289_173052_14493" isSubstitutable="true" general="_10_5_622020d_1132928309932_406456_6375"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310202_263501_6644" name="RejectedExecutionHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310212_750555_6646" body="A handler for tasks that cannot be executed by a {@link&#xA;ThreadPoolExecutor}.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310202_263501_6644"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_134742_6695" name="ThreadPoolExecutor">
              <ownedComment xmi:id="_10_5_622020d_1132928310292_12226_6707" body="An {@link ExecutorService} that executes each submitted task using&#xA;one of possibly several pooled threads, normally configured&#xA;using {@link Executors} factory methods.&#xA;&#xA;&lt;p>Thread pools address two different problems: they usually&#xA;provide improved performance when executing large numbers of&#xA;asynchronous tasks, due to reduced per-task invocation overhead,&#xA;and they provide a means of bounding and managing the resources,&#xA;including threads, consumed when executing a collection of tasks.&#xA;Each &lt;tt>ThreadPoolExecutor&lt;/tt> also maintains some basic&#xA;statistics, such as the number of completed tasks.&#xA;&#xA;&lt;p>To be useful across a wide range of contexts, this class&#xA;provides many adjustable parameters and extensibility&#xA;hooks. However, programmers are urged to use the more convenient&#xA;{@link Executors} factory methods {@link&#xA;Executors#newCachedThreadPool} (unbounded thread pool, with&#xA;automatic thread reclamation), {@link Executors#newFixedThreadPool}&#xA;(fixed size thread pool) and {@link&#xA;Executors#newSingleThreadExecutor} (single background thread), that&#xA;preconfigure settings for the most common usage&#xA;scenarios. Otherwise, use the following guide when manually&#xA;configuring and tuning this class:&#xA;&#xA;&lt;dl>&#xA;&#xA;&lt;dt>Core and maximum pool sizes&lt;/dt>&#xA;&#xA;&lt;dd>A &lt;tt>ThreadPoolExecutor&lt;/tt> will automatically adjust the&#xA;pool size&#xA;(see {@link ThreadPoolExecutor#getPoolSize})&#xA;according to the bounds set by corePoolSize&#xA;(see {@link ThreadPoolExecutor#getCorePoolSize})&#xA;and&#xA;maximumPoolSize&#xA;(see {@link ThreadPoolExecutor#getMaximumPoolSize}).&#xA;When a new task is submitted in method {@link&#xA;ThreadPoolExecutor#execute}, and fewer than corePoolSize threads&#xA;are running, a new thread is created to handle the request, even if&#xA;other worker threads are idle.  If there are more than&#xA;corePoolSize but less than maximumPoolSize threads running, a new&#xA;thread will be created only if the queue is full.  By setting&#xA;corePoolSize and maximumPoolSize the same, you create a fixed-size&#xA;thread pool. By setting maximumPoolSize to an essentially unbounded&#xA;value such as &lt;tt>Integer.MAX_VALUE&lt;/tt>, you allow the pool to&#xA;accommodate an arbitrary number of concurrent tasks. Most typically,&#xA;core and maximum pool sizes are set only upon construction, but they&#xA;may also be changed dynamically using {@link&#xA;ThreadPoolExecutor#setCorePoolSize} and {@link&#xA;ThreadPoolExecutor#setMaximumPoolSize}. &lt;dd>&#xA;&#xA;&lt;dt> On-demand construction&#xA;&#xA;&lt;dd> By default, even core threads are initially created and&#xA;started only when needed by new tasks, but this can be overridden&#xA;dynamically using method {@link&#xA;ThreadPoolExecutor#prestartCoreThread} or&#xA;{@link ThreadPoolExecutor#prestartAllCoreThreads}.  &lt;/dd>&#xA;&#xA;&lt;dt>Creating new threads&lt;/dt>&#xA;&#xA;&lt;dd>New threads are created using a {@link&#xA;java.util.concurrent.ThreadFactory}.  If not otherwise specified, a&#xA;{@link Executors#defaultThreadFactory} is used, that creates threads to all&#xA;be in the same {@link ThreadGroup} and with the same&#xA;&lt;tt>NORM_PRIORITY&lt;/tt> priority and non-daemon status. By supplying&#xA;a different ThreadFactory, you can alter the thread's name, thread&#xA;group, priority, daemon status, etc. If a &lt;tt>ThreadFactory&lt;/tt> fails to create&#xA;a thread when asked by returning null from &lt;tt>newThread&lt;/tt>,&#xA;the executor will continue, but might&#xA;not be able to execute any tasks. &lt;/dd>&#xA;&#xA;&lt;dt>Keep-alive times&lt;/dt>&#xA;&#xA;&lt;dd>If the pool currently has more than corePoolSize threads,&#xA;excess threads will be terminated if they have been idle for more&#xA;than the keepAliveTime (see {@link&#xA;ThreadPoolExecutor#getKeepAliveTime}). This provides a means of&#xA;reducing resource consumption when the pool is not being actively&#xA;used. If the pool becomes more active later, new threads will be&#xA;constructed. This parameter can also be changed dynamically&#xA;using method {@link ThreadPoolExecutor#setKeepAliveTime}. Using&#xA;a value of &lt;tt>Long.MAX_VALUE&lt;/tt> {@link TimeUnit#NANOSECONDS}&#xA;effectively disables idle threads from ever terminating prior&#xA;to shut down.&#xA;&lt;/dd>&#xA;&#xA;&lt;dt>Queuing&lt;/dt>&#xA;&#xA;&lt;dd>Any {@link BlockingQueue} may be used to transfer and hold&#xA;submitted tasks.  The use of this queue interacts with pool sizing:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> If fewer than corePoolSize threads are running, the Executor&#xA;always prefers adding a new thread&#xA;rather than queuing.&lt;/li>&#xA;&#xA;&lt;li> If corePoolSize or more threads are running, the Executor&#xA;always prefers queuing a request rather than adding a new&#xA;thread.&lt;/li>&#xA;&#xA;&lt;li> If a request cannot be queued, a new thread is created unless&#xA;this would exceed maximumPoolSize, in which case, the task will be&#xA;rejected.&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;There are three general strategies for queuing:&#xA;&lt;ol>&#xA;&#xA;&lt;li> &lt;em> Direct handoffs.&lt;/em> A good default choice for a work&#xA;queue is a {@link SynchronousQueue} that hands off tasks to threads&#xA;without otherwise holding them. Here, an attempt to queue a task&#xA;will fail if no threads are immediately available to run it, so a&#xA;new thread will be constructed. This policy avoids lockups when&#xA;handling sets of requests that might have internal dependencies.&#xA;Direct handoffs generally require unbounded maximumPoolSizes to&#xA;avoid rejection of new submitted tasks. This in turn admits the&#xA;possibility of unbounded thread growth when commands continue to&#xA;arrive on average faster than they can be processed.  &lt;/li>&#xA;&#xA;&lt;li>&lt;em> Unbounded queues.&lt;/em> Using an unbounded queue (for&#xA;example a {@link LinkedBlockingQueue} without a predefined&#xA;capacity) will cause new tasks to be queued in cases where all&#xA;corePoolSize threads are busy. Thus, no more than corePoolSize&#xA;threads will ever be created. (And the value of the maximumPoolSize&#xA;therefore doesn't have any effect.)  This may be appropriate when&#xA;each task is completely independent of others, so tasks cannot&#xA;affect each others execution; for example, in a web page server.&#xA;While this style of queuing can be useful in smoothing out&#xA;transient bursts of requests, it admits the possibility of&#xA;unbounded work queue growth when commands continue to arrive on&#xA;average faster than they can be processed.  &lt;/li>&#xA;&#xA;&lt;li>&lt;em>Bounded queues.&lt;/em> A bounded queue (for example, an&#xA;{@link ArrayBlockingQueue}) helps prevent resource exhaustion when&#xA;used with finite maximumPoolSizes, but can be more difficult to&#xA;tune and control.  Queue sizes and maximum pool sizes may be traded&#xA;off for each other: Using large queues and small pools minimizes&#xA;CPU usage, OS resources, and context-switching overhead, but can&#xA;lead to artificially low throughput.  If tasks frequently block (for&#xA;example if they are I/O bound), a system may be able to schedule&#xA;time for more threads than you otherwise allow. Use of small queues&#xA;generally requires larger pool sizes, which keeps CPUs busier but&#xA;may encounter unacceptable scheduling overhead, which also&#xA;decreases throughput.  &lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;/dd>&#xA;&#xA;&lt;dt>Rejected tasks&lt;/dt>&#xA;&#xA;&lt;dd> New tasks submitted in method {@link&#xA;ThreadPoolExecutor#execute} will be &lt;em>rejected&lt;/em> when the&#xA;Executor has been shut down, and also when the Executor uses finite&#xA;bounds for both maximum threads and work queue capacity, and is&#xA;saturated.  In either case, the &lt;tt>execute&lt;/tt> method invokes the&#xA;{@link RejectedExecutionHandler#rejectedExecution} method of its&#xA;{@link RejectedExecutionHandler}.  Four predefined handler policies&#xA;are provided:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li> In the&#xA;default {@link ThreadPoolExecutor.AbortPolicy}, the handler throws a&#xA;runtime {@link RejectedExecutionException} upon rejection. &lt;/li>&#xA;&#xA;&lt;li> In {@link&#xA;ThreadPoolExecutor.CallerRunsPolicy}, the thread that invokes&#xA;&lt;tt>execute&lt;/tt> itself runs the task. This provides a simple&#xA;feedback control mechanism that will slow down the rate that new&#xA;tasks are submitted. &lt;/li>&#xA;&#xA;&lt;li> In {@link ThreadPoolExecutor.DiscardPolicy},&#xA;a task that cannot be executed is simply dropped.  &lt;/li>&#xA;&#xA;&lt;li>In {@link&#xA;ThreadPoolExecutor.DiscardOldestPolicy}, if the executor is not&#xA;shut down, the task at the head of the work queue is dropped, and&#xA;then execution is retried (which can fail again, causing this to be&#xA;repeated.) &lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;It is possible to define and use other kinds of {@link&#xA;RejectedExecutionHandler} classes. Doing so requires some care&#xA;especially when policies are designed to work only under particular&#xA;capacity or queuing policies. &lt;/dd>&#xA;&#xA;&lt;dt>Hook methods&lt;/dt>&#xA;&#xA;&lt;dd>This class provides &lt;tt>protected&lt;/tt> overridable {@link&#xA;ThreadPoolExecutor#beforeExecute} and {@link&#xA;ThreadPoolExecutor#afterExecute} methods that are called before and&#xA;after execution of each task.  These can be used to manipulate the&#xA;execution environment; for example, reinitializing ThreadLocals,&#xA;gathering statistics, or adding log entries. Additionally, method&#xA;{@link ThreadPoolExecutor#terminated} can be overridden to perform&#xA;any special processing that needs to be done once the Executor has&#xA;fully terminated.&#xA;&#xA;&lt;p>If hook or callback methods throw&#xA;exceptions, internal worker threads may in turn fail and&#xA;abruptly terminate.&lt;/dd>&#xA;&#xA;&lt;dt>Queue maintenance&lt;/dt>&#xA;&#xA;&lt;dd> Method {@link ThreadPoolExecutor#getQueue} allows access to&#xA;the work queue for purposes of monitoring and debugging.  Use of&#xA;this method for any other purpose is strongly discouraged.  Two&#xA;supplied methods, {@link ThreadPoolExecutor#remove} and {@link&#xA;ThreadPoolExecutor#purge} are available to assist in storage&#xA;reclamation when large numbers of queued tasks become&#xA;cancelled.&lt;/dd> &lt;/dl>&#xA;&#xA;&lt;p> &lt;b>Extension example&lt;/b>. Most extensions of this class&#xA;override one or more of the protected hook methods. For example,&#xA;here is a subclass that adds a simple pause/resume feature:&#xA;&#xA;&lt;pre>&#xA;class PausableThreadPoolExecutor extends ThreadPoolExecutor {&#xA;private boolean isPaused;&#xA;private ReentrantLock pauseLock = new ReentrantLock();&#xA;private Condition unpaused = pauseLock.newCondition();&#xA;&#xA;public PausableThreadPoolExecutor(...) { super(...); }&#xA;&#xA;protected void beforeExecute(Thread t, Runnable r) {&#xA;super.beforeExecute(t, r);&#xA;pauseLock.lock();&#xA;try {&#xA;while (isPaused) unpaused.await();&#xA;} catch(InterruptedException ie) {&#xA;t.interrupt();&#xA;} finally {&#xA;pauseLock.unlock();&#xA;}&#xA;}&#xA;&#xA;public void pause() {&#xA;pauseLock.lock();&#xA;try {&#xA;isPaused = true;&#xA;} finally {&#xA;pauseLock.unlock();&#xA;}&#xA;}&#xA;&#xA;public void resume() {&#xA;pauseLock.lock();&#xA;try {&#xA;isPaused = false;&#xA;unpaused.signalAll();&#xA;} finally {&#xA;pauseLock.unlock();&#xA;}&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310252_134742_6695"/>
              <generalization xmi:id="_10_5_622020d_1132928322309_163824_14535" isSubstitutable="true" general="_10_5_622020d_1132928310052_153927_6416"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_613982_6696" name="Worker" visibility="private" clientDependency="_10_5_622020d_1132928322309_302652_14536">
                <ownedComment xmi:id="_10_5_622020d_1132928310252_642144_6697" body="Worker threads&#xA;" annotatedElement="_10_5_622020d_1132928310252_613982_6696"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_302652_14536" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_10_5_622020d_1132928310252_613982_6696" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_830680_6698" name="CallerRunsPolicy" clientDependency="_10_5_622020d_1132928322309_580468_14537">
                <ownedComment xmi:id="_10_5_622020d_1132928310252_193125_6699" body="A handler for rejected tasks that runs the rejected task&#xA;directly in the calling thread of the &lt;tt>execute&lt;/tt> method,&#xA;unless the executor has been shut down, in which case the task&#xA;is discarded.&#xA;" annotatedElement="_10_5_622020d_1132928310252_830680_6698"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_580468_14537" name="" supplier="_10_5_622020d_1132928310202_263501_6644" client="_10_5_622020d_1132928310252_830680_6698" contract="_10_5_622020d_1132928310202_263501_6644"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_976206_6700" name="AbortPolicy" clientDependency="_10_5_622020d_1132928322309_46868_14538">
                <ownedComment xmi:id="_10_5_622020d_1132928310252_11498_6701" body="A handler for rejected tasks that throws a&#xA;&lt;tt>RejectedExecutionException&lt;/tt>.&#xA;" annotatedElement="_10_5_622020d_1132928310252_976206_6700"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_46868_14538" name="" supplier="_10_5_622020d_1132928310202_263501_6644" client="_10_5_622020d_1132928310252_976206_6700" contract="_10_5_622020d_1132928310202_263501_6644"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_102730_6702" name="DiscardPolicy" clientDependency="_10_5_622020d_1132928322309_406453_14539">
                <ownedComment xmi:id="_10_5_622020d_1132928310252_724974_6703" body="A handler for rejected tasks that silently discards the&#xA;rejected task.&#xA;" annotatedElement="_10_5_622020d_1132928310252_102730_6702"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_406453_14539" name="" supplier="_10_5_622020d_1132928310202_263501_6644" client="_10_5_622020d_1132928310252_102730_6702" contract="_10_5_622020d_1132928310202_263501_6644"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310252_536603_6704" name="DiscardOldestPolicy" clientDependency="_10_5_622020d_1132928322309_956735_14540">
                <ownedComment xmi:id="_10_5_622020d_1132928310252_558689_6705" body="A handler for rejected tasks that discards the oldest unhandled&#xA;request and then retries &lt;tt>execute&lt;/tt>, unless the executor&#xA;is shut down, in which case the task is discarded.&#xA;" annotatedElement="_10_5_622020d_1132928310252_536603_6704"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322309_956735_14540" name="" supplier="_10_5_622020d_1132928310202_263501_6644" client="_10_5_622020d_1132928310252_536603_6704" contract="_10_5_622020d_1132928310202_263501_6644"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310062_596491_6433" name="BrokenBarrierException">
              <ownedComment xmi:id="_10_5_622020d_1132928310062_989772_6435" body="Exception thrown when a thread tries to wait upon a barrier that is&#xA;in a broken state, or which enters the broken state while the thread&#xA;is waiting.&#xA;&#xA;@see CyclicBarrier&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310062_596491_6433"/>
              <generalization xmi:id="_10_5_622020d_1132928322009_169267_14367" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310292_266470_6708" name="TimeoutException">
              <ownedComment xmi:id="_10_5_622020d_1132928310292_159934_6710" body="Exception thrown when a blocking operation times out.  Blocking&#xA;operations for which a timeout is specified need a means to&#xA;indicate that the timeout has occurred. For many such operations it&#xA;is possible to return a value that indicates timeout; when that is&#xA;not possible or desirable then &lt;tt>TimeoutException&lt;/tt> should be&#xA;declared and thrown.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310292_266470_6708"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_730493_14541" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_531644_6564" name="ExecutorCompletionService" clientDependency="_10_5_622020d_1132928322269_205558_14466">
              <ownedComment xmi:id="_10_5_622020d_1132928310182_302016_6571" body="A {@link CompletionService} that uses a supplied {@link Executor}&#xA;to execute tasks.  This class arranges that submitted tasks are,&#xA;upon completion, placed on a queue accessible using &lt;tt>take&lt;/tt>.&#xA;The class is lightweight enough to be suitable for transient use&#xA;when processing groups of tasks.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;b>Usage Examples.&lt;/b>&#xA;&#xA;Suppose you have a set of solvers for a certain problem, each&#xA;returning a value of some type &lt;tt>Result&lt;/tt>, and would like to&#xA;run them concurrently, processing the results of each of them that&#xA;return a non-null value, in some method &lt;tt>use(Result r)&lt;/tt>. You&#xA;could write this as:&#xA;&#xA;&lt;pre>&#xA;void solve(Executor e, Collection&lt;Callable&lt;Result>> solvers)&#xA;throws InterruptedException, ExecutionException {&#xA;CompletionService&lt;Result> ecs = new ExecutorCompletionService&lt;Result>(e);&#xA;for (Callable&lt;Result> s : solvers)&#xA;ecs.submit(s);&#xA;int n = solvers.size();&#xA;for (int i = 0; i &lt; n; ++i) {&#xA;Result r = ecs.take().get();&#xA;if (r != null)&#xA;use(r);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;Suppose instead that you would like to use the first non-null result&#xA;of the set of tasks, ignoring any that encounter exceptions,&#xA;and cancelling all other tasks when the first one is ready:&#xA;&#xA;&lt;pre>&#xA;void solve(Executor e, Collection&lt;Callable&lt;Result>> solvers)&#xA;throws InterruptedException {&#xA;CompletionService&lt;Result> ecs = new ExecutorCompletionService&lt;Result>(e);&#xA;int n = solvers.size();&#xA;List&lt;Future&lt;Result>> futures = new ArrayList&lt;Future&lt;Result>>(n);&#xA;Result result = null;&#xA;try {&#xA;for (Callable&lt;Result> s : solvers)&#xA;futures.add(ecs.submit(s));&#xA;for (int i = 0; i &lt; n; ++i) {&#xA;try {&#xA;Result r = ecs.take().get();&#xA;if (r != null) {&#xA;result = r;&#xA;break;&#xA;}&#xA;} catch(ExecutionException ignore) {}&#xA;}&#xA;}&#xA;finally {&#xA;for (Future&lt;Result> f : futures)&#xA;f.cancel(true);&#xA;}&#xA;&#xA;if (result != null)&#xA;use(result);&#xA;}&#xA;&lt;/pre>&#xA;" annotatedElement="_10_5_622020d_1132928310182_531644_6564"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310182_446294_6565" name="" parameter="_10_5_622020d_1132928310182_611142_6566">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310182_611142_6566" parameteredElement="_10_5_622020d_1132928310182_756310_6567">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_756310_6567" name="V" templateParameter="_10_5_622020d_1132928310182_611142_6566"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322269_205558_14466" name="" supplier="_10_5_622020d_1132928322269_986190_14463" client="_10_5_622020d_1132928310182_531644_6564" contract="_10_5_622020d_1132928322269_986190_14463"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_966941_6568" name="QueueingFuture" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_544613_6569" body="FutureTask extension to enqueue upon completion&#xA;" annotatedElement="_10_5_622020d_1132928310182_966941_6568"/>
                <generalization xmi:id="_10_5_622020d_1132928322269_548939_14470" isSubstitutable="true" general="_10_5_622020d_1132928322269_891118_14467"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310212_542420_6647" name="ScheduledExecutorService" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310212_43053_6649" body="An {@link ExecutorService} that can schedule commands to run after a given&#xA;delay, or to execute periodically.&#xA;&#xA;&lt;p> The &lt;tt>schedule&lt;/tt> methods create tasks with various delays&#xA;and return a task object that can be used to cancel or check&#xA;execution. The &lt;tt>scheduleAtFixedRate&lt;/tt> and&#xA;&lt;tt>scheduleWithFixedDelay&lt;/tt> methods create and execute tasks&#xA;that run periodically until cancelled.&#xA;&#xA;&lt;p> Commands submitted using the {@link Executor#execute} and&#xA;{@link ExecutorService} &lt;tt>submit&lt;/tt> methods are scheduled with&#xA;a requested delay of zero. Zero and negative delays (but not&#xA;periods) are also allowed in &lt;tt>schedule&lt;/tt> methods, and are&#xA;treated as requests for immediate execution.&#xA;&#xA;&lt;p>All &lt;tt>schedule&lt;/tt> methods accept &lt;em>relative&lt;/em> delays and&#xA;periods as arguments, not absolute times or dates. It is a simple&#xA;matter to transform an absolute time represented as a {@link&#xA;java.util.Date} to the required form. For example, to schedule at&#xA;a certain future &lt;tt>date&lt;/tt>, you can use: &lt;tt>schedule(task,&#xA;date.getTime() - System.currentTimeMillis(),&#xA;TimeUnit.MILLISECONDS)&lt;/tt>. Beware however that expiration of a&#xA;relative delay need not coincide with the current &lt;tt>Date&lt;/tt> at&#xA;which the task is enabled due to network time synchronization&#xA;protocols, clock drift, or other factors.&#xA;&#xA;The {@link Executors} class provides convenient factory methods for&#xA;the ScheduledExecutorService implementations provided in this package.&#xA;&#xA;&lt;h3>Usage Example&lt;/h3>&#xA;&#xA;Here is a class with a method that sets up a ScheduledExecutorService&#xA;to beep every ten seconds for an hour:&#xA;&#xA;&lt;pre>&#xA;import static java.util.concurrent.TimeUnit.*;&#xA;class BeeperControl {&#xA;private final ScheduledExecutorService scheduler =&#xA;Executors.newScheduledThreadPool(1);&#xA;&#xA;public void beepForAnHour() {&#xA;final Runnable beeper = new Runnable() {&#xA;public void run() { System.out.println(&quot;beep&quot;); }&#xA;};&#xA;final ScheduledFuture&lt;?> beeperHandle =&#xA;scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);&#xA;scheduler.schedule(new Runnable() {&#xA;public void run() { beeperHandle.cancel(true); }&#xA;}, 60 * 60, SECONDS);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310212_542420_6647"/>
              <generalization xmi:id="_10_5_622020d_1132928322289_139082_14503" isSubstitutable="true" general="_10_5_622020d_1132928310192_780619_6602"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322009_950717_14375" name="AbstractMap&lt;K, V>">
              <templateBinding xmi:id="_10_5_622020d_1132928322009_620144_14376" signature="_10_5_622020d_1132928310793_662526_6950">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_926972_14377" formal="_10_5_622020d_1132928310793_848853_6951" actual="_10_5_622020d_1132928310072_773766_6454"/>
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322009_943295_14378" formal="_10_5_622020d_1132928310793_121738_6953" actual="_10_5_622020d_1132928310072_876407_6456"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322259_282425_14444" name="AbstractList&lt;E>">
              <templateBinding xmi:id="_10_5_622020d_1132928322259_603289_14445" signature="_10_5_622020d_1132928310783_392472_6937">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928322259_352017_14446" formal="_10_5_622020d_1132928310783_432973_6938" actual="_10_5_622020d_1132928310122_765666_6518"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310052_82841_6419" name="ArrayBlockingQueue" clientDependency="_10_5_622020d_1132928321989_151385_14353 _10_5_622020d_1132928321989_608259_14354">
              <ownedComment xmi:id="_10_5_622020d_1132928310052_453913_6426" body="A bounded {@linkplain BlockingQueue blocking queue} backed by an&#xA;array.  This queue orders elements FIFO (first-in-first-out).  The&#xA;&lt;em>head&lt;/em> of the queue is that element that has been on the&#xA;queue the longest time.  The &lt;em>tail&lt;/em> of the queue is that&#xA;element that has been on the queue the shortest time. New elements&#xA;are inserted at the tail of the queue, and the queue retrieval&#xA;operations obtain elements at the head of the queue.&#xA;&#xA;&lt;p>This is a classic &quot;bounded buffer&quot;, in which a&#xA;fixed-sized array holds elements inserted by producers and&#xA;extracted by consumers.  Once created, the capacity cannot be&#xA;increased.  Attempts to put an element to a full queue will&#xA;result in the put operation blocking; attempts to retrieve an&#xA;element from an empty queue will similarly block.&#xA;&#xA;&lt;p> This class supports an optional fairness policy for ordering&#xA;waiting producer and consumer threads.  By default, this ordering&#xA;is not guaranteed. However, a queue constructed with fairness set&#xA;to &lt;tt>true&lt;/tt> grants threads access in FIFO order. Fairness&#xA;generally decreases throughput but reduces variability and avoids&#xA;starvation.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310052_82841_6419"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310052_517123_6420" name="" parameter="_10_5_622020d_1132928310052_618455_6421">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310052_618455_6421" parameteredElement="_10_5_622020d_1132928310052_69619_6422">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310052_69619_6422" name="E" templateParameter="_10_5_622020d_1132928310052_618455_6421"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321989_364723_14358" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321989_151385_14353" name="" supplier="_10_5_622020d_1132928321989_740687_14350" client="_10_5_622020d_1132928310052_82841_6419" contract="_10_5_622020d_1132928321989_740687_14350"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321989_608259_14354" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310052_82841_6419" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310052_737641_6423" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928321999_175200_14362">
                <ownedComment xmi:id="_10_5_622020d_1132928310052_393523_6424" body="Iterator for ArrayBlockingQueue&#xA;" annotatedElement="_10_5_622020d_1132928310052_737641_6423"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321999_175200_14362" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310052_737641_6423" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310052_153927_6416" name="AbstractExecutorService" clientDependency="_10_5_622020d_1132928321989_17264_14349" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310052_596728_6418" body="Provides default implementation of {@link ExecutorService}&#xA;execution methods. This class implements the &lt;tt>submit&lt;/tt>,&#xA;&lt;tt>invokeAny&lt;/tt> and &lt;tt>invokeAll&lt;/tt> methods using the default&#xA;{@link FutureTask} class provided in this package.  For example,&#xA;the implementation of &lt;tt>submit(Runnable)&lt;/tt> creates an&#xA;associated &lt;tt>FutureTask&lt;/tt> that is executed and&#xA;returned. Subclasses overriding these methods to use different&#xA;{@link Future} implementations should do so consistently for each&#xA;of these methods.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310052_153927_6416"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321989_17264_14349" name="" supplier="_10_5_622020d_1132928310192_780619_6602" client="_10_5_622020d_1132928310052_153927_6416" contract="_10_5_622020d_1132928310192_780619_6602"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_379492_6488" name="ConcurrentLinkedQueue" clientDependency="_10_5_622020d_1132928322249_746430_14424 _10_5_622020d_1132928322249_274786_14425">
              <ownedComment xmi:id="_10_5_622020d_1132928310122_208989_6498" body="An unbounded thread-safe {@linkplain Queue queue} based on linked nodes.&#xA;This queue orders elements FIFO (first-in-first-out).&#xA;The &lt;em>head&lt;/em> of the queue is that element that has been on the&#xA;queue the longest time.&#xA;The &lt;em>tail&lt;/em> of the queue is that element that has been on the&#xA;queue the shortest time. New elements&#xA;are inserted at the tail of the queue, and the queue retrieval&#xA;operations obtain elements at the head of the queue.&#xA;A &lt;tt>ConcurrentLinkedQueue&lt;/tt> is an appropriate choice when&#xA;many threads will share access to a common collection.&#xA;This queue does not permit &lt;tt>null&lt;/tt> elements.&#xA;&#xA;&lt;p>This implementation employs an efficient &quot;wait-free&quot;&#xA;algorithm based on one described in &lt;a&#xA;href=&quot;http://www.cs.rochester.edu/u/michael/PODC96.html&quot;> Simple,&#xA;Fast, and Practical Non-Blocking and Blocking Concurrent Queue&#xA;Algorithms&lt;/a> by Maged M. Michael and Michael L. Scott.&#xA;&#xA;&lt;p>Beware that, unlike in most collections, the &lt;tt>size&lt;/tt> method&#xA;is &lt;em>NOT&lt;/em> a constant-time operation. Because of the&#xA;asynchronous nature of these queues, determining the current number&#xA;of elements requires a traversal of the elements.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310112_379492_6488"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310112_121726_6489" name="" parameter="_10_5_622020d_1132928310112_611646_6490">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310112_611646_6490" parameteredElement="_10_5_622020d_1132928310112_409228_6491">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_409228_6491" name="E" templateParameter="_10_5_622020d_1132928310112_611646_6490"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322259_187270_14426" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322249_746430_14424" name="" supplier="_10_5_622020d_1132928321999_800194_14363" client="_10_5_622020d_1132928310112_379492_6488" contract="_10_5_622020d_1132928321999_800194_14363"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322249_274786_14425" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310112_379492_6488" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_463691_6492" name="Node" visibility="private">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310112_898069_6493" name="" parameter="_10_5_622020d_1132928310112_484744_6494">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310112_484744_6494" parameteredElement="_10_5_622020d_1132928310112_367926_6495">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_367926_6495" name="E" templateParameter="_10_5_622020d_1132928310112_484744_6494"/>
                  </ownedParameter>
                </ownedTemplateSignature>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_625191_6496" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322259_92080_14427">
                <interfaceRealization xmi:id="_10_5_622020d_1132928322259_92080_14427" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928310112_625191_6496" contract="_10_5_622020d_1132928321989_283025_14359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_295537_6451" name="ConcurrentHashMap" clientDependency="_10_5_622020d_1132928322009_226619_14373 _10_5_622020d_1132928322009_859486_14374">
              <ownedComment xmi:id="_10_5_622020d_1132928310112_742517_6487" body="A hash table supporting full concurrency of retrievals and&#xA;adjustable expected concurrency for updates. This class obeys the&#xA;same functional specification as {@link java.util.Hashtable}, and&#xA;includes versions of methods corresponding to each method of&#xA;&lt;tt>Hashtable&lt;/tt>. However, even though all operations are&#xA;thread-safe, retrieval operations do &lt;em>not&lt;/em> entail locking,&#xA;and there is &lt;em>not&lt;/em> any support for locking the entire table&#xA;in a way that prevents all access.  This class is fully&#xA;interoperable with &lt;tt>Hashtable&lt;/tt> in programs that rely on its&#xA;thread safety but not on its synchronization details.&#xA;&#xA;&lt;p> Retrieval operations (including &lt;tt>get&lt;/tt>) generally do not&#xA;block, so may overlap with update operations (including&#xA;&lt;tt>put&lt;/tt> and &lt;tt>remove&lt;/tt>). Retrievals reflect the results&#xA;of the most recently &lt;em>completed&lt;/em> update operations holding&#xA;upon their onset.  For aggregate operations such as &lt;tt>putAll&lt;/tt>&#xA;and &lt;tt>clear&lt;/tt>, concurrent retrievals may reflect insertion or&#xA;removal of only some entries.  Similarly, Iterators and&#xA;Enumerations return elements reflecting the state of the hash table&#xA;at some point at or since the creation of the iterator/enumeration.&#xA;They do &lt;em>not&lt;/em> throw&#xA;{@link ConcurrentModificationException}.  However, iterators are&#xA;designed to be used by only one thread at a time.&#xA;&#xA;&lt;p> The allowed concurrency among update operations is guided by&#xA;the optional &lt;tt>concurrencyLevel&lt;/tt> constructor argument&#xA;(default 16), which is used as a hint for internal sizing.  The&#xA;table is internally partitioned to try to permit the indicated&#xA;number of concurrent updates without contention. Because placement&#xA;in hash tables is essentially random, the actual concurrency will&#xA;vary.  Ideally, you should choose a value to accommodate as many&#xA;threads as will ever concurrently modify the table. Using a&#xA;significantly higher value than you need can waste space and time,&#xA;and a significantly lower value can lead to thread contention. But&#xA;overestimates and underestimates within an order of magnitude do&#xA;not usually have much noticeable impact. A value of one is&#xA;appropriate when it is known that only one thread will modify and&#xA;all others will only read. Also, resizing this or any other kind of&#xA;hash table is a relatively slow operation, so, when possible, it is&#xA;a good idea to provide estimates of expected table sizes in&#xA;constructors.&#xA;&#xA;&lt;p>This class and its views and iterators implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Map} and {@link Iterator}&#xA;interfaces.&#xA;&#xA;&lt;p> Like {@link java.util.Hashtable} but unlike {@link&#xA;java.util.HashMap}, this class does NOT allow &lt;tt>null&lt;/tt> to be&#xA;used as a key or value.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;K> the type of keys maintained by this map&#xA;@param &lt;V> the type of mapped values&#xA;" annotatedElement="_10_5_622020d_1132928310072_295537_6451"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310072_548761_6452" name="" parameter="_10_5_622020d_1132928310072_498932_6453 _10_5_622020d_1132928310072_463201_6455">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_498932_6453" parameteredElement="_10_5_622020d_1132928310072_773766_6454">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_773766_6454" name="K" templateParameter="_10_5_622020d_1132928310072_498932_6453"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_463201_6455" parameteredElement="_10_5_622020d_1132928310072_876407_6456">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_876407_6456" name="V" templateParameter="_10_5_622020d_1132928310072_463201_6455"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322009_801620_14379" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322009_226619_14373" name="" supplier="_10_5_622020d_1132928322009_461318_14369" client="_10_5_622020d_1132928310072_295537_6451" contract="_10_5_622020d_1132928322009_461318_14369"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322009_859486_14374" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310072_295537_6451" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_445859_6457" name="HashEntry" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310072_703457_6463" body="ConcurrentHashMap list entry. Note that this is never exported&#xA;out as a user-visible Map.Entry.&#xA;&#xA;Because the value field is volatile, not final, it is legal wrt&#xA;the Java Memory Model for an unsynchronized reader to see null&#xA;instead of initial value when read via a data race.  Although a&#xA;reordering leading to this is not likely to ever actually&#xA;occur, the Segment.readValueUnderLock method is used as a&#xA;backup in case a null (pre-initialized) value is ever seen in&#xA;an unsynchronized access method.&#xA;" annotatedElement="_10_5_622020d_1132928310072_445859_6457"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310072_331172_6458" name="" parameter="_10_5_622020d_1132928310072_813879_6459 _10_5_622020d_1132928310072_860513_6461">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_813879_6459" parameteredElement="_10_5_622020d_1132928310072_505269_6460">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_505269_6460" name="K" templateParameter="_10_5_622020d_1132928310072_813879_6459"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_860513_6461" parameteredElement="_10_5_622020d_1132928310072_424931_6462">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_424931_6462" name="V" templateParameter="_10_5_622020d_1132928310072_860513_6461"/>
                  </ownedParameter>
                </ownedTemplateSignature>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_204782_6464" name="Segment" visibility="package" clientDependency="_10_5_622020d_1132928322009_708588_14380" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310102_709079_6470" body="Segments are specialized versions of hash tables.  This&#xA;subclasses from ReentrantLock opportunistically, just to&#xA;simplify some locking and avoid separate construction.&#xA;" annotatedElement="_10_5_622020d_1132928310072_204782_6464"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310072_831586_6465" name="" parameter="_10_5_622020d_1132928310072_223031_6466 _10_5_622020d_1132928310072_140968_6468">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_223031_6466" parameteredElement="_10_5_622020d_1132928310072_386382_6467">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_386382_6467" name="K" templateParameter="_10_5_622020d_1132928310072_223031_6466"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310072_140968_6468" parameteredElement="_10_5_622020d_1132928310072_77690_6469">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310072_77690_6469" name="V" templateParameter="_10_5_622020d_1132928310072_140968_6468"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <generalization xmi:id="_10_5_622020d_1132928322009_242733_14381" isSubstitutable="true" general="_10_5_622020d_1132928310032_138822_6394"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322009_708588_14380" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310072_204782_6464" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310102_562614_6471" name="HashIterator" visibility="package" isAbstract="true"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310102_709549_6472" name="KeyIterator" visibility="package" clientDependency="_10_5_622020d_1132928322009_737612_14385 _10_5_622020d_1132928322009_651582_14389" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322009_546767_14390" isSubstitutable="true" general="_10_5_622020d_1132928310102_562614_6471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322009_737612_14385" name="" supplier="_10_5_622020d_1132928322009_321902_14382" client="_10_5_622020d_1132928310102_709549_6472" contract="_10_5_622020d_1132928322009_321902_14382"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322009_651582_14389" name="" supplier="_10_5_622020d_1132928322009_246331_14386" client="_10_5_622020d_1132928310102_709549_6472" contract="_10_5_622020d_1132928322009_246331_14386"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310102_873333_6473" name="ValueIterator" visibility="package" clientDependency="_10_5_622020d_1132928322019_859938_14398 _10_5_622020d_1132928322019_768566_14394" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322019_591879_14399" isSubstitutable="true" general="_10_5_622020d_1132928310102_562614_6471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322019_768566_14394" name="" supplier="_10_5_622020d_1132928322009_147826_14391" client="_10_5_622020d_1132928310102_873333_6473" contract="_10_5_622020d_1132928322009_147826_14391"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322019_859938_14398" name="" supplier="_10_5_622020d_1132928322019_44427_14395" client="_10_5_622020d_1132928310102_873333_6473" contract="_10_5_622020d_1132928322019_44427_14395"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310102_606823_6474" name="EntryIterator" visibility="package" clientDependency="_10_5_622020d_1132928322019_744723_14404 _10_5_622020d_1132928322229_83306_14410 _10_5_622020d_1132928536798_733717_19002" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310112_916772_6475" body="Entry iterator. Exported Entry objects must write-through&#xA;changes in setValue, even if the nodes have been cloned. So we&#xA;cannot return internal HashEntry objects. Instead, the iterator&#xA;itself acts as a forwarding pseudo-entry.&#xA;" annotatedElement="_10_5_622020d_1132928310102_606823_6474"/>
                <generalization xmi:id="_10_5_622020d_1132928322229_10_14411" isSubstitutable="true" general="_10_5_622020d_1132928310102_562614_6471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322019_744723_14404" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_10_5_622020d_1132928310102_606823_6474" contract="_10_5_622020d_1132928322019_822336_14400"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322229_83306_14410" name="" supplier="_10_5_622020d_1132928322019_759053_14405" client="_10_5_622020d_1132928310102_606823_6474" contract="_10_5_622020d_1132928322019_759053_14405"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928536798_733717_19002" name="" supplier="_10_5_622020d_1132928536788_403472_18999" client="_10_5_622020d_1132928310102_606823_6474" contract="_10_5_622020d_1132928536788_403472_18999"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_530947_6476" name="KeySet" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322239_370561_14415" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_429625_6477" name="Values" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322239_396559_14419" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_134800_6478" name="EntrySet" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322239_311012_14423" isSubstitutable="true" general="_10_5_622020d_1132928322239_614900_14420"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_940010_6479" name="SimpleEntry" visibility="package" clientDependency="_10_5_622020d_1132928536798_559686_19003" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310112_827860_6485" body="This duplicates java.util.AbstractMap.SimpleEntry until this class&#xA;is made accessible.&#xA;" annotatedElement="_10_5_622020d_1132928310112_940010_6479"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310112_943896_6480" name="" parameter="_10_5_622020d_1132928310112_36364_6481 _10_5_622020d_1132928310112_490229_6483">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310112_36364_6481" parameteredElement="_10_5_622020d_1132928310112_869706_6482">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_869706_6482" name="K" templateParameter="_10_5_622020d_1132928310112_36364_6481"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310112_490229_6483" parameteredElement="_10_5_622020d_1132928310112_163441_6484">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310112_163441_6484" name="V" templateParameter="_10_5_622020d_1132928310112_490229_6483"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928536798_559686_19003" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_10_5_622020d_1132928310112_940010_6479" contract="_10_5_622020d_1132928322019_822336_14400"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310062_696235_6427" name="BlockingQueue" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310062_486455_6432" body="A {@link java.util.Queue} that additionally supports operations&#xA;that wait for the queue to become non-empty when retrieving an element,&#xA;and wait for space to become available in the queue when storing an&#xA;element.&#xA;&#xA;&lt;p>A &lt;tt>BlockingQueue&lt;/tt> does not accept &lt;tt>null&lt;/tt> elements.&#xA;Implementations throw &lt;tt>NullPointerException&lt;/tt> on attempts&#xA;to &lt;tt>add&lt;/tt>, &lt;tt>put&lt;/tt> or &lt;tt>offer&lt;/tt> a &lt;tt>null&lt;/tt>.  A&#xA;&lt;tt>null&lt;/tt> is used as a sentinel value to indicate failure of&#xA;&lt;tt>poll&lt;/tt> operations.&#xA;&#xA;&lt;p>A &lt;tt>BlockingQueue&lt;/tt> may be capacity bounded. At any given&#xA;time it may have a &lt;tt>remainingCapacity&lt;/tt> beyond which no&#xA;additional elements can be &lt;tt>put&lt;/tt> without blocking.&#xA;A &lt;tt>BlockingQueue&lt;/tt> without any intrinsic capacity constraints always&#xA;reports a remaining capacity of &lt;tt>Integer.MAX_VALUE&lt;/tt>.&#xA;&#xA;&lt;p> &lt;tt>BlockingQueue&lt;/tt> implementations are designed to be used&#xA;primarily for producer-consumer queues, but additionally support&#xA;the {@link java.util.Collection} interface.  So, for example, it is&#xA;possible to remove an arbitrary element from a queue using&#xA;&lt;tt>remove(x)&lt;/tt>. However, such operations are in general&#xA;&lt;em>not&lt;/em> performed very efficiently, and are intended for only&#xA;occasional use, such as when a queued message is cancelled.&#xA;&#xA;&lt;p> &lt;tt>BlockingQueue&lt;/tt> implementations are thread-safe.  All&#xA;queuing methods achieve their effects atomically using internal&#xA;locks or other forms of concurrency control. However, the&#xA;&lt;em>bulk&lt;/em> Collection operations &lt;tt>addAll&lt;/tt>,&#xA;&lt;tt>containsAll&lt;/tt>, &lt;tt>retainAll&lt;/tt> and &lt;tt>removeAll&lt;/tt> are&#xA;&lt;em>not&lt;/em> necessarily performed atomically unless specified&#xA;otherwise in an implementation. So it is possible, for example, for&#xA;&lt;tt>addAll(c)&lt;/tt> to fail (throwing an exception) after adding&#xA;only some of the elements in &lt;tt>c&lt;/tt>.&#xA;&#xA;&lt;p>A &lt;tt>BlockingQueue&lt;/tt> does &lt;em>not&lt;/em> intrinsically support&#xA;any kind of &quot;close&quot; or &quot;shutdown&quot; operation to&#xA;indicate that no more items will be added.  The needs and usage of&#xA;such features tend to be implementation-dependent. For example, a&#xA;common tactic is for producers to insert special&#xA;&lt;em>end-of-stream&lt;/em> or &lt;em>poison&lt;/em> objects, that are&#xA;interpreted accordingly when taken by consumers.&#xA;&#xA;&lt;p>&#xA;Usage example, based on a typical producer-consumer scenario.&#xA;Note that a &lt;tt>BlockingQueue&lt;/tt> can safely be used with multiple&#xA;producers and multiple consumers.&#xA;&lt;pre>&#xA;class Producer implements Runnable {&#xA;private final BlockingQueue queue;&#xA;Producer(BlockingQueue q) { queue = q; }&#xA;public void run() {&#xA;try {&#xA;while(true) { queue.put(produce()); }&#xA;} catch (InterruptedException ex) { ... handle ...}&#xA;}&#xA;Object produce() { ... }&#xA;}&#xA;&#xA;class Consumer implements Runnable {&#xA;private final BlockingQueue queue;&#xA;Consumer(BlockingQueue q) { queue = q; }&#xA;public void run() {&#xA;try {&#xA;while(true) { consume(queue.take()); }&#xA;} catch (InterruptedException ex) { ... handle ...}&#xA;}&#xA;void consume(Object x) { ... }&#xA;}&#xA;&#xA;class Setup {&#xA;void main() {&#xA;BlockingQueue q = new SomeQueueImplementation();&#xA;Producer p = new Producer(q);&#xA;Consumer c1 = new Consumer(q);&#xA;Consumer c2 = new Consumer(q);&#xA;new Thread(p).start();&#xA;new Thread(c1).start();&#xA;new Thread(c2).start();&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310062_696235_6427"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310062_967032_6428" name="" parameter="_10_5_622020d_1132928310062_469969_6429">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310062_469969_6429" parameteredElement="_10_5_622020d_1132928310062_45090_6430">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310062_45090_6430" name="E" templateParameter="_10_5_622020d_1132928310062_469969_6429"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928321999_981254_14366" isSubstitutable="true" general="_10_5_622020d_1132928321999_800194_14363"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310152_297569_6539" name="Delayed" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310152_630642_6541" body="A mix-in style interface for marking objects that should be&#xA;acted upon after a given delay.&#xA;&#xA;&lt;p>An implementation of this interface must define a&#xA;&lt;tt>compareTo&lt;/tt> method that provides an ordering consistent with&#xA;its &lt;tt>getDelay&lt;/tt> method.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310152_297569_6539"/>
              <generalization xmi:id="_10_5_622020d_1132928322269_195302_14458" isSubstitutable="true" general="_10_5_622020d_1132928322269_521368_14455"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_153323_6572" name="Executors">
              <ownedComment xmi:id="_10_5_622020d_1132928310192_542438_6601" body="Factory and utility methods for {@link Executor}, {@link&#xA;ExecutorService}, {@link ScheduledExecutorService}, {@link&#xA;ThreadFactory}, and {@link Callable} classes defined in this&#xA;package. This class supports the following kinds of methods:&#xA;&#xA;&lt;ul>&#xA;&lt;li> Methods that create and return an {@link ExecutorService}&#xA;set up with commonly useful configuration settings.&#xA;&lt;li> Methods that create and return a {@link ScheduledExecutorService}&#xA;set up with commonly useful configuration settings.&#xA;&lt;li> Methods that create and return a &quot;wrapped&quot; ExecutorService, that&#xA;disables reconfiguration by making implementation-specific methods&#xA;inaccessible.&#xA;&lt;li> Methods that create and return a {@link ThreadFactory}&#xA;that sets newly created threads to a known state.&#xA;&lt;li> Methods that create and return a {@link Callable}&#xA;out of other closure-like forms, so they can be used&#xA;in execution methods requiring &lt;tt>Callable&lt;/tt>.&#xA;&lt;/ul>&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;" annotatedElement="_10_5_622020d_1132928310182_153323_6572"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_384944_6573" name="RunnableAdapter" visibility="package" clientDependency="_10_5_622020d_1132928322279_173741_14474" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_259230_6577" body="A callable that runs given task and returns given result&#xA;" annotatedElement="_10_5_622020d_1132928310182_384944_6573"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310182_40275_6574" name="" parameter="_10_5_622020d_1132928310182_469974_6575">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310182_469974_6575" parameteredElement="_10_5_622020d_1132928310182_421964_6576">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_421964_6576" name="T" templateParameter="_10_5_622020d_1132928310182_469974_6575"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_173741_14474" name="" supplier="_10_5_622020d_1132928322269_925424_14471" client="_10_5_622020d_1132928310182_384944_6573" contract="_10_5_622020d_1132928322269_925424_14471"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_203642_6578" name="PrivilegedActionAdapter" visibility="package" clientDependency="_10_5_622020d_1132928322279_969094_14478" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_796944_6579" body="A callable that runs given privileged action and returns its result&#xA;" annotatedElement="_10_5_622020d_1132928310182_203642_6578"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_969094_14478" name="" supplier="_10_5_622020d_1132928322279_16326_14475" client="_10_5_622020d_1132928310182_203642_6578" contract="_10_5_622020d_1132928322279_16326_14475"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_159800_6580" name="PrivilegedExceptionActionAdapter" visibility="package" clientDependency="_10_5_622020d_1132928322279_432675_14479" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_27460_6581" body="A callable that runs given privileged exception action and returns its result&#xA;" annotatedElement="_10_5_622020d_1132928310182_159800_6580"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_432675_14479" name="" supplier="_10_5_622020d_1132928322279_16326_14475" client="_10_5_622020d_1132928310182_159800_6580" contract="_10_5_622020d_1132928322279_16326_14475"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_588932_6582" name="PrivilegedCallable" visibility="package" clientDependency="_10_5_622020d_1132928322279_213593_14480" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_524232_6586" body="A callable that runs under established access control settings&#xA;" annotatedElement="_10_5_622020d_1132928310182_588932_6582"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310182_40418_6583" name="" parameter="_10_5_622020d_1132928310182_178973_6584">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310182_178973_6584" parameteredElement="_10_5_622020d_1132928310182_396745_6585">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_396745_6585" name="T" templateParameter="_10_5_622020d_1132928310182_178973_6584"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_213593_14480" name="" supplier="_10_5_622020d_1132928322269_925424_14471" client="_10_5_622020d_1132928310182_588932_6582" contract="_10_5_622020d_1132928322269_925424_14471"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_736796_6587" name="PrivilegedCallableUsingCurrentClassLoader" visibility="package" clientDependency="_10_5_622020d_1132928322279_602081_14481" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310182_371284_6591" body="A callable that runs under established access control settings and&#xA;current ClassLoader&#xA;" annotatedElement="_10_5_622020d_1132928310182_736796_6587"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310182_451190_6588" name="" parameter="_10_5_622020d_1132928310182_657902_6589">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310182_657902_6589" parameteredElement="_10_5_622020d_1132928310182_632754_6590">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_632754_6590" name="T" templateParameter="_10_5_622020d_1132928310182_657902_6589"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_602081_14481" name="" supplier="_10_5_622020d_1132928322269_925424_14471" client="_10_5_622020d_1132928310182_736796_6587" contract="_10_5_622020d_1132928322269_925424_14471"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310182_71015_6592" name="DefaultThreadFactory" visibility="package" clientDependency="_10_5_622020d_1132928322279_574342_14482">
                <ownedComment xmi:id="_10_5_622020d_1132928310192_557346_6593" body="The default thread factory&#xA;" annotatedElement="_10_5_622020d_1132928310182_71015_6592"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_574342_14482" name="" supplier="_10_5_622020d_1132928310242_498462_6692" client="_10_5_622020d_1132928310182_71015_6592" contract="_10_5_622020d_1132928310242_498462_6692"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_596007_6594" name="PrivilegedThreadFactory" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310192_923705_6595" body="Thread factory capturing access control and class loader&#xA;" annotatedElement="_10_5_622020d_1132928310192_596007_6594"/>
                <generalization xmi:id="_10_5_622020d_1132928322279_585394_14483" isSubstitutable="true" general="_10_5_622020d_1132928310182_71015_6592"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_16258_6596" name="DelegatedExecutorService" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310192_412693_6597" body="A wrapper class that exposes only the ExecutorService methods&#xA;of an implementation.&#xA;" annotatedElement="_10_5_622020d_1132928310192_16258_6596"/>
                <generalization xmi:id="_10_5_622020d_1132928322279_935171_14484" isSubstitutable="true" general="_10_5_622020d_1132928310052_153927_6416"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310192_436001_6598" name="DelegatedScheduledExecutorService" visibility="package" clientDependency="_10_5_622020d_1132928322279_997108_14485">
                <ownedComment xmi:id="_10_5_622020d_1132928310192_625684_6599" body="A wrapper class that exposes only the ExecutorService and&#xA;ScheduleExecutor methods of a ScheduledExecutorService implementation.&#xA;" annotatedElement="_10_5_622020d_1132928310192_436001_6598"/>
                <generalization xmi:id="_10_5_622020d_1132928322279_813855_14486" isSubstitutable="true" general="_10_5_622020d_1132928310192_16258_6596"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322279_997108_14485" name="" supplier="_10_5_622020d_1132928310212_542420_6647" client="_10_5_622020d_1132928310192_436001_6598" contract="_10_5_622020d_1132928310212_542420_6647"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_795_8933" name="TimerThread" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928313487_462733_7488" body="This &quot;helper class&quot; implements the timer's task execution thread, which&#xA;waits for tasks on the timer queue, executions them when they fire,&#xA;reschedules repeating tasks, and removes cancelled tasks and spent&#xA;non-repeating tasks from the queue.&#xA;" annotatedElement="_9_5_f720368_1110473546706_795_8933"/>
            <generalization xmi:id="_10_5_622020d_1132928322630_182856_15108" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322550_175403_14910" name="Iterator&lt;T>">
            <templateBinding xmi:id="_10_5_622020d_1132928322550_684758_14911" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322550_113147_14912" formal="_10_5_622020d_1132928313266_876300_7329" actual="_10_5_622020d_1132928310953_863988_7204"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_572374_8941" name="TooManyListenersException">
            <ownedComment xmi:id="_10_5_622020d_1132928313487_356345_7496" body="&lt;p>&#xA;The &lt;code> TooManyListenersException &lt;/code> Exception is used as part of&#xA;the Java Event model to annotate and implement a unicast special case of&#xA;a multicast Event Source.&#xA;&lt;/p>&#xA;&lt;p>&#xA;The presence of a &quot;throws TooManyListenersException&quot; clause on any given&#xA;concrete implementation of the normally multicast &quot;void addXyzEventListener&quot;&#xA;event listener registration pattern is used to annotate that interface as&#xA;implementing a unicast Listener special case, that is, that one and only&#xA;one Listener may be registered on the particular event listener source&#xA;concurrently.&#xA;&lt;/p>&#xA;&#xA;@see java.util.EventObject&#xA;@see java.util.EventListener&#xA;&#xA;@version 1.13 03/12/19&#xA;@author Laurence P. G. Cable&#xA;@since  JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_572374_8941"/>
            <generalization xmi:id="_10_5_622020d_1132928322630_869822_15112" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_111919_7313" name="IllegalFormatFlagsException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_443938_7315" body="Unchecked exception thrown when an illegal combination flags is given.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_111919_7313"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_973101_15014" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322650_794897_15143" name="Comparable&lt;UUID>">
            <templateBinding xmi:id="_10_5_622020d_1132928322650_317258_15144" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322650_297887_15145" formal="_10_5_622020d_1132928307939_608180_4997" actual="_10_5_622020d_1132928313497_609212_7526"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547815_196446_19138" name="regex">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_725113_8781" name="PatternSyntaxException">
              <ownedComment xmi:id="_10_5_622020d_1132928310763_602175_6893" body="Unchecked exception thrown to indicate a syntax error in a&#xA;regular-expression pattern.&#xA;&#xA;@author  unascribed&#xA;@version 1.13, 03/12/19&#xA;@since 1.4&#xA;@spec JSR-51&#xA;" annotatedElement="_9_5_f720368_1110473546690_725113_8781"/>
              <generalization xmi:id="_10_5_622020d_1132928322380_59672_14674" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_239415_8779" name="Pattern" clientDependency="_10_5_622020d_1132928322370_295264_14594" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310763_288285_6891" body="A compiled representation of a regular expression.&#xA;&#xA;&lt;p> A regular expression, specified as a string, must first be compiled into&#xA;an instance of this class.  The resulting pattern can then be used to create&#xA;a {@link Matcher} object that can match arbitrary {@link&#xA;java.lang.CharSequence &lt;/code>character sequences&lt;code>} against the regular&#xA;expression.  All of the state involved in performing a match resides in the&#xA;matcher, so many matchers can share the same pattern.&#xA;&#xA;&lt;p> A typical invocation sequence is thus&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Pattern p = Pattern.{@link #compile compile}(&quot;a*b&quot;);&#xA;Matcher m = p.{@link #matcher matcher}(&quot;aaaaab&quot;);&#xA;boolean b = m.{@link Matcher#matches matches}();&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> A {@link #matches matches} method is defined by this class as a&#xA;convenience for when a regular expression is used just once.  This method&#xA;compiles an expression and matches an input sequence against it in a single&#xA;invocation.  The statement&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;boolean b = Pattern.matches(&quot;a*b&quot;, &quot;aaaaab&quot;);&lt;/pre>&lt;/blockquote>&#xA;&#xA;is equivalent to the three statements above, though for repeated matches it&#xA;is less efficient since it does not allow the compiled pattern to be reused.&#xA;&#xA;&lt;p> Instances of this class are immutable and are safe for use by multiple&#xA;concurrent threads.  Instances of the {@link Matcher} class are not safe for&#xA;such use.&#xA;&#xA;&#xA;&lt;a name=&quot;sum&quot;>&#xA;&lt;h4> Summary of regular-expression constructs &lt;/h4>&#xA;&#xA;&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;0&quot;&#xA;summary=&quot;Regular expression constructs, and what they match&quot;>&#xA;&#xA;&lt;tr align=&quot;left&quot;>&#xA;&lt;th bgcolor=&quot;#CCCCFF&quot; align=&quot;left&quot; id=&quot;construct&quot;>Construct&lt;/th>&#xA;&lt;th bgcolor=&quot;#CCCCFF&quot; align=&quot;left&quot; id=&quot;matches&quot;>Matches&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;characters&quot;>Characters&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;i>x&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character &lt;i>x&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\\&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The backslash character&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\0&lt;/tt>&lt;i>n&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character with octal value &lt;tt>0&lt;/tt>&lt;i>n&lt;/i>&#xA;(0&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;&lt;i>n&lt;/i>&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;7)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\0&lt;/tt>&lt;i>nn&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character with octal value &lt;tt>0&lt;/tt>&lt;i>nn&lt;/i>&#xA;(0&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;&lt;i>n&lt;/i>&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;7)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\0&lt;/tt>&lt;i>mnn&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character with octal value &lt;tt>0&lt;/tt>&lt;i>mnn&lt;/i>&#xA;(0&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;&lt;i>m&lt;/i>&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;3,&#xA;0&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;&lt;i>n&lt;/i>&amp;nbsp;&lt;tt>&lt;=&lt;/tt>&amp;nbsp;7)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\x&lt;/tt>&lt;i>hh&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character with hexadecimal&amp;nbsp;value&amp;nbsp;&lt;tt>0x&lt;/tt>&lt;i>hh&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>&amp;#92;u&lt;/tt>&lt;i>hhhh&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The character with hexadecimal&amp;nbsp;value&amp;nbsp;&lt;tt>0x&lt;/tt>&lt;i>hhhh&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;matches&quot;>&lt;tt>\t&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The tab character (&lt;tt>'&amp;#92;u0009'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\n&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The newline (line feed) character (&lt;tt>'&amp;#92;u000A'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\r&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The carriage-return character (&lt;tt>'&amp;#92;u000D'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\f&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The form-feed character (&lt;tt>'&amp;#92;u000C'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\a&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The alert (bell) character (&lt;tt>'&amp;#92;u0007'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\e&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The escape character (&lt;tt>'&amp;#92;u001B'&lt;/tt>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct characters&quot;>&lt;tt>\c&lt;/tt>&lt;i>x&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The control character corresponding to &lt;i>x&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;classes&quot;>Character classes&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[abc]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>a&lt;/tt>, &lt;tt>b&lt;/tt>, or &lt;tt>c&lt;/tt> (simple class)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[^abc]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Any character except &lt;tt>a&lt;/tt>, &lt;tt>b&lt;/tt>, or &lt;tt>c&lt;/tt> (negation)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[a-zA-Z]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>a&lt;/tt> through &lt;tt>z&lt;/tt>&#xA;or &lt;tt>A&lt;/tt> through &lt;tt>Z&lt;/tt>, inclusive (range)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[a-d[m-p]]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>a&lt;/tt> through &lt;tt>d&lt;/tt>,&#xA;or &lt;tt>m&lt;/tt> through &lt;tt>p&lt;/tt>: &lt;tt>[a-dm-p]&lt;/tt> (union)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[a-z&amp;&amp;[def]]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>d&lt;/tt>, &lt;tt>e&lt;/tt>, or &lt;tt>f&lt;/tt> (intersection)&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[a-z&amp;&amp;[^bc]]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>a&lt;/tt> through &lt;tt>z&lt;/tt>,&#xA;except for &lt;tt>b&lt;/tt> and &lt;tt>c&lt;/tt>: &lt;tt>[ad-z]&lt;/tt> (subtraction)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct classes&quot;>&lt;tt>[a-z&amp;&amp;[^m-p]]&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;tt>a&lt;/tt> through &lt;tt>z&lt;/tt>,&#xA;and not &lt;tt>m&lt;/tt> through &lt;tt>p&lt;/tt>: &lt;tt>[a-lq-z]&lt;/tt>(subtraction)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;predef&quot;>Predefined character classes&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>.&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Any character (may or may not match &lt;a href=&quot;#lt&quot;>line terminators&lt;/a>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\d&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A digit: &lt;tt>[0-9]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\D&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A non-digit: &lt;tt>[^0-9]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\s&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A whitespace character: &lt;tt>[ \t\n\x0B\f\r]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\S&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A non-whitespace character: &lt;tt>[^\s]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\w&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A word character: &lt;tt>[a-zA-Z_0-9]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct predef&quot;>&lt;tt>\W&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A non-word character: &lt;tt>[^\w]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;posix&quot;>POSIX character classes&lt;/b> (US-ASCII only)&lt;b>&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Lower}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A lower-case alphabetic character: &lt;tt>[a-z]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Upper}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>An upper-case alphabetic character:&lt;tt>[A-Z]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{ASCII}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>All ASCII:&lt;tt>[\x00-\x7F]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Alpha}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>An alphabetic character:&lt;tt>[\p{Lower}\p{Upper}]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Digit}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A decimal digit: &lt;tt>[0-9]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Alnum}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>An alphanumeric character:&lt;tt>[\p{Alpha}\p{Digit}]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Punct}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Punctuation: One of &lt;tt>!&quot;#$%&amp;'()*+,-./:;&lt;=>?@[\]^_`{|}~&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;!-- &lt;tt>[\!&quot;#\$%&amp;'\(\)\*\+,\-\./:;\&lt;=\>\?@\[\\\]\^_`\{\|\}~]&lt;/tt>&#xA;&lt;tt>[\X21-\X2F\X31-\X40\X5B-\X60\X7B-\X7E]&lt;/tt> -->&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Graph}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A visible character: &lt;tt>[\p{Alnum}\p{Punct}]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Print}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A printable character: &lt;tt>[\p{Graph}\x20]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Blank}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A space or a tab: &lt;tt>[ \t]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Cntrl}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A control character: &lt;tt>[\x00-\x1F\x7F]&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{XDigit}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A hexadecimal digit: &lt;tt>[0-9a-fA-F]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct posix&quot;>&lt;tt>\p{Space}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A whitespace character: &lt;tt>[ \t\n\x0B\f\r]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot;>java.lang.Character classes (simple &lt;a href=&quot;#jcc&quot;>java character type&lt;/a>)&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>\p{javaLowerCase}&lt;/tt>&lt;/td>&#xA;&lt;td>Equivalent to java.lang.Character.isLowerCase()&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>\p{javaUpperCase}&lt;/tt>&lt;/td>&#xA;&lt;td>Equivalent to java.lang.Character.isUpperCase()&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>\p{javaWhitespace}&lt;/tt>&lt;/td>&#xA;&lt;td>Equivalent to java.lang.Character.isWhitespace()&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>\p{javaMirrored}&lt;/tt>&lt;/td>&#xA;&lt;td>Equivalent to java.lang.Character.isMirrored()&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;unicode&quot;>Classes for Unicode blocks and categories&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct unicode&quot;>&lt;tt>\p{InGreek}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A character in the Greek&amp;nbsp;block (simple &lt;a href=&quot;#ubc&quot;>block&lt;/a>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct unicode&quot;>&lt;tt>\p{Lu}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>An uppercase letter (simple &lt;a href=&quot;#ubc&quot;>category&lt;/a>)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct unicode&quot;>&lt;tt>\p{Sc}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A currency symbol&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct unicode&quot;>&lt;tt>\P{InGreek}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Any character except one in the Greek block (negation)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct unicode&quot;>&lt;tt>[\p{L}&amp;&amp;[^\p{Lu}]]&amp;nbsp;&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Any letter except an uppercase letter (subtraction)&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;bounds&quot;>Boundary matchers&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>^&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The beginning of a line&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>$&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The end of a line&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\b&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A word boundary&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\B&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>A non-word boundary&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\A&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The beginning of the input&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\G&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The end of the previous match&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\Z&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The end of the input but for the final&#xA;&lt;a href=&quot;#lt&quot;>terminator&lt;/a>, if&amp;nbsp;any&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct bounds&quot;>&lt;tt>\z&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>The end of the input&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;greedy&quot;>Greedy quantifiers&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, once or not at all&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>*&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, zero or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, one or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, exactly &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct greedy&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,&lt;/tt>&lt;i>m&lt;/i>&lt;tt>}&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> but not more than &lt;i>m&lt;/i> times&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;reluc&quot;>Reluctant quantifiers&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>??&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, once or not at all&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>*?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, zero or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>+?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, one or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>}?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, exactly &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,}?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct reluc&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,&lt;/tt>&lt;i>m&lt;/i>&lt;tt>}?&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> but not more than &lt;i>m&lt;/i> times&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;poss&quot;>Possessive quantifiers&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>?+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, once or not at all&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>*+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, zero or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>++&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, one or more times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>}+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, exactly &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,}+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> times&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct poss&quot;>&lt;i>X&lt;/i>&lt;tt>{&lt;/tt>&lt;i>n&lt;/i>&lt;tt>,&lt;/tt>&lt;i>m&lt;/i>&lt;tt>}+&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, at least &lt;i>n&lt;/i> but not more than &lt;i>m&lt;/i> times&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;logical&quot;>Logical operators&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct logical&quot;>&lt;i>XY&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i> followed by &lt;i>Y&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct logical&quot;>&lt;i>X&lt;/i>&lt;tt>|&lt;/tt>&lt;i>Y&lt;/i>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Either &lt;i>X&lt;/i> or &lt;i>Y&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct logical&quot;>&lt;tt>(&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>X, as a &lt;a href=&quot;#cg&quot;>capturing group&lt;/a>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;backref&quot;>Back references&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;bottom&quot; headers=&quot;construct backref&quot;>&lt;tt>\&lt;/tt>&lt;i>n&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;bottom&quot; headers=&quot;matches&quot;>Whatever the &lt;i>n&lt;/i>&lt;sup>th&lt;/sup>&#xA;&lt;a href=&quot;#cg&quot;>capturing group&lt;/a> matched&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;quot&quot;>Quotation&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct quot&quot;>&lt;tt>\&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Nothing, but quotes the following character&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct quot&quot;>&lt;tt>\Q&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Nothing, but quotes all characters until &lt;tt>\E&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct quot&quot;>&lt;tt>\E&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Nothing, but ends quoting started by &lt;tt>\Q&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;!-- Metachars: !$()*+.&lt;>?[\]^{|} -->&#xA;&#xA;&lt;tr>&lt;th>&amp;nbsp;&lt;/th>&lt;/tr>&#xA;&lt;tr align=&quot;left&quot;>&lt;th colspan=&quot;2&quot; id=&quot;special&quot;>Special constructs (non-capturing)&lt;/th>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?:&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, as a non-capturing group&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?idmsux-idmsux)&amp;nbsp;&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>Nothing, but turns match flags on - off&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?idmsux-idmsux:&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&amp;nbsp;&amp;nbsp;&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, as a &lt;a href=&quot;#cg&quot;>non-capturing group&lt;/a> with the&#xA;given flags on - off&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?=&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, via zero-width positive lookahead&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?!&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, via zero-width negative lookahead&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?&lt;=&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, via zero-width positive lookbehind&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?&lt;!&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, via zero-width negative lookbehind&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot; headers=&quot;construct special&quot;>&lt;tt>(?>&lt;/tt>&lt;i>X&lt;/i>&lt;tt>)&lt;/tt>&lt;/td>&#xA;&lt;td headers=&quot;matches&quot;>&lt;i>X&lt;/i>, as an independent, non-capturing group&lt;/td>&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;hr>&#xA;&#xA;&#xA;&lt;a name=&quot;bs&quot;>&#xA;&lt;h4> Backslashes, escapes, and quoting &lt;/h4>&#xA;&#xA;&lt;p> The backslash character (&lt;tt>'\'&lt;/tt>) serves to introduce escaped&#xA;constructs, as defined in the table above, as well as to quote characters&#xA;that otherwise would be interpreted as unescaped constructs.  Thus the&#xA;expression &lt;tt>\\&lt;/tt> matches a single backslash and &lt;tt>\{&lt;/tt> matches a&#xA;left brace.&#xA;&#xA;&lt;p> It is an error to use a backslash prior to any alphabetic character that&#xA;does not denote an escaped construct; these are reserved for future&#xA;extensions to the regular-expression language.  A backslash may be used&#xA;prior to a non-alphabetic character regardless of whether that character is&#xA;part of an unescaped construct.&#xA;&#xA;&lt;p> Backslashes within string literals in Java source code are interpreted&#xA;as required by the &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/&quot;>Java Language&#xA;Specification&lt;/a> as either &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100850&quot;>Unicode&#xA;escapes&lt;/a> or other &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#101089&quot;>character&#xA;escapes&lt;/a>.  It is therefore necessary to double backslashes in string&#xA;literals that represent regular expressions to protect them from&#xA;interpretation by the Java bytecode compiler.  The string literal&#xA;&lt;tt>&quot;&amp;#92;b&quot;&lt;/tt>, for example, matches a single backspace character when&#xA;interpreted as a regular expression, while &lt;tt>&quot;&amp;#92;&amp;#92;b&quot;&lt;/tt> matches a&#xA;word boundary.  The string literal &lt;tt>&quot;&amp;#92;(hello&amp;#92;)&quot;&lt;/tt> is illegal&#xA;and leads to a compile-time error; in order to match the string&#xA;&lt;tt>(hello)&lt;/tt> the string literal &lt;tt>&quot;&amp;#92;&amp;#92;(hello&amp;#92;&amp;#92;)&quot;&lt;/tt>&#xA;must be used.&#xA;&#xA;&lt;a name=&quot;cc&quot;>&#xA;&lt;h4> Character Classes &lt;/h4>&#xA;&#xA;&lt;p> Character classes may appear within other character classes, and&#xA;may be composed by the union operator (implicit) and the intersection&#xA;operator (&lt;tt>&amp;&amp;&lt;/tt>).&#xA;The union operator denotes a class that contains every character that is&#xA;in at least one of its operand classes.  The intersection operator&#xA;denotes a class that contains every character that is in both of its&#xA;operand classes.&#xA;&#xA;&lt;p> The precedence of character-class operators is as follows, from&#xA;highest to lowest:&#xA;&#xA;&lt;blockquote>&lt;table border=&quot;0&quot; cellpadding=&quot;1&quot; cellspacing=&quot;0&quot;&#xA;summary=&quot;Precedence of character class operators.&quot;>&#xA;&lt;tr>&lt;th>1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>Literal escape&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td>&#xA;&lt;td>&lt;tt>\x&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>Grouping&lt;/td>&#xA;&lt;td>&lt;tt>[...]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>Range&lt;/td>&#xA;&lt;td>&lt;tt>a-z&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>Union&lt;/td>&#xA;&lt;td>&lt;tt>[a-e][i-u]&lt;tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>Intersection&lt;/td>&#xA;&lt;td>&lt;tt>[a-z&amp;&amp;[aeiou]]&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> Note that a different set of metacharacters are in effect inside&#xA;a character class than outside a character class. For instance, the&#xA;regular expression &lt;tt>.&lt;/tt> loses its special meaning inside a&#xA;character class, while the expression &lt;tt>-&lt;/tt> becomes a range&#xA;forming metacharacter.&#xA;&#xA;&lt;a name=&quot;lt&quot;>&#xA;&lt;h4> Line terminators &lt;/h4>&#xA;&#xA;&lt;p> A &lt;i>line terminator&lt;/i> is a one- or two-character sequence that marks&#xA;the end of a line of the input character sequence.  The following are&#xA;recognized as line terminators:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> A newline (line feed) character&amp;nbsp;(&lt;tt>'\n'&lt;/tt>),&#xA;&#xA;&lt;li> A carriage-return character followed immediately by a newline&#xA;character&amp;nbsp;(&lt;tt>&quot;\r\n&quot;&lt;/tt>),&#xA;&#xA;&lt;li> A standalone carriage-return character&amp;nbsp;(&lt;tt>'\r'&lt;/tt>),&#xA;&#xA;&lt;li> A next-line character&amp;nbsp;(&lt;tt>'&amp;#92;u0085'&lt;/tt>),&#xA;&#xA;&lt;li> A line-separator character&amp;nbsp;(&lt;tt>'&amp;#92;u2028'&lt;/tt>), or&#xA;&#xA;&lt;li> A paragraph-separator character&amp;nbsp;(&lt;tt>'&amp;#92;u2029&lt;/tt>).&#xA;&#xA;&lt;/ul>&#xA;&lt;p>If {@link #UNIX_LINES} mode is activated, then the only line terminators&#xA;recognized are newline characters.&#xA;&#xA;&lt;p> The regular expression &lt;tt>.&lt;/tt> matches any character except a line&#xA;terminator unless the {@link #DOTALL} flag is specified.&#xA;&#xA;&lt;p> By default, the regular expressions &lt;tt>^&lt;/tt> and &lt;tt>$&lt;/tt> ignore&#xA;line terminators and only match at the beginning and the end, respectively,&#xA;of the entire input sequence. If {@link #MULTILINE} mode is activated then&#xA;&lt;tt>^&lt;/tt> matches at the beginning of input and after any line terminator&#xA;except at the end of input. When in {@link #MULTILINE} mode &lt;tt>$&lt;/tt>&#xA;matches just before a line terminator or the end of the input sequence.&#xA;&#xA;&lt;a name=&quot;cg&quot;>&#xA;&lt;h4> Groups and capturing &lt;/h4>&#xA;&#xA;&lt;p> Capturing groups are numbered by counting their opening parentheses from&#xA;left to right.  In the expression &lt;tt>((A)(B(C)))&lt;/tt>, for example, there&#xA;are four such groups: &lt;/p>&#xA;&#xA;&lt;blockquote>&lt;table cellpadding=1 cellspacing=0 summary=&quot;Capturing group numberings&quot;>&#xA;&lt;tr>&lt;th>1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>&lt;tt>((A)(B(C)))&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>&lt;tt>(A)&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>&lt;tt>(B(C))&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;th>4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/th>&#xA;&lt;td>&lt;tt>(C)&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;p> Group zero always stands for the entire expression.&#xA;&#xA;&lt;p> Capturing groups are so named because, during a match, each subsequence&#xA;of the input sequence that matches such a group is saved.  The captured&#xA;subsequence may be used later in the expression, via a back reference, and&#xA;may also be retrieved from the matcher once the match operation is complete.&#xA;&#xA;&lt;p> The captured input associated with a group is always the subsequence&#xA;that the group most recently matched.  If a group is evaluated a second time&#xA;because of quantification then its previously-captured value, if any, will&#xA;be retained if the second evaluation fails.  Matching the string&#xA;&lt;tt>&quot;aba&quot;&lt;/tt> against the expression &lt;tt>(a(b)?)+&lt;/tt>, for example, leaves&#xA;group two set to &lt;tt>&quot;b&quot;&lt;/tt>.  All captured input is discarded at the&#xA;beginning of each match.&#xA;&#xA;&lt;p> Groups beginning with &lt;tt>(?&lt;/tt> are pure, &lt;i>non-capturing&lt;/i> groups&#xA;that do not capture text and do not count towards the group total.&#xA;&#xA;&#xA;&lt;h4> Unicode support &lt;/h4>&#xA;&#xA;&lt;p> This class is in conformance with Level 1 of &lt;a&#xA;href=&quot;http://www.unicode.org/reports/tr18/&quot;>&lt;i>Unicode Technical&#xA;Standard #18: Unicode Regular Expression Guidelines&lt;/i>&lt;/a>, plus RL2.1&#xA;Canonical Equivalents.&#xA;&#xA;&lt;p> Unicode escape sequences such as &lt;tt>&amp;#92;u2014&lt;/tt> in Java source code&#xA;are processed as described in &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#100850&quot;>\u00A73.3&lt;/a>&#xA;of the Java Language Specification.  Such escape sequences are also&#xA;implemented directly by the regular-expression parser so that Unicode&#xA;escapes can be used in expressions that are read from files or from the&#xA;keyboard.  Thus the strings &lt;tt>&quot;&amp;#92;u2014&quot;&lt;/tt> and &lt;tt>&quot;\\u2014&quot;&lt;/tt>,&#xA;while not equal, compile into the same pattern, which matches the character&#xA;with hexadecimal value &lt;tt>0x2014&lt;/tt>.&#xA;&#xA;&lt;a name=&quot;ubc&quot;> &lt;p>Unicode blocks and categories are written with the&#xA;&lt;tt>\p&lt;/tt> and &lt;tt>\P&lt;/tt> constructs as in&#xA;Perl. &lt;tt>\p{&lt;/tt>&lt;i>prop&lt;/i>&lt;tt>}&lt;/tt> matches if the input has the&#xA;property &lt;i>prop&lt;/i>, while \P{&lt;/tt>&lt;i>prop&lt;/i>&lt;tt>}&lt;/tt> does not match if&#xA;the input has that property.  Blocks are specified with the prefix&#xA;&lt;tt>In&lt;/tt>, as in &lt;tt>InMongolian&lt;/tt>.  Categories may be specified with&#xA;the optional prefix &lt;tt>Is&lt;/tt>: Both &lt;tt>\p{L}&lt;/tt> and &lt;tt>\p{IsL}&lt;/tt>&#xA;denote the category of Unicode letters.  Blocks and categories can be used&#xA;both inside and outside of a character class.&#xA;&#xA;&lt;p> The supported categories are those of&#xA;&lt;a href=&quot;http://www.unicode.org/unicode/standard/standard.html&quot;>&#xA;&lt;i>The Unicode Standard&lt;/i>&lt;/a> in the version specified by the&#xA;{@link java.lang.Character Character} class. The category names are those&#xA;defined in the Standard, both normative and informative.&#xA;The block names supported by &lt;code>Pattern&lt;/code> are the valid block names&#xA;accepted and defined by&#xA;{@link java.lang.Character.UnicodeBlock#forName(String) UnicodeBlock.forName}.&#xA;&#xA;&lt;a name=&quot;jcc&quot;> &lt;p>Categories that behave like the java.lang.Character&#xA;boolean is&lt;i>methodname&lt;/i> methods (except for the deprecated ones) are&#xA;available through the same &lt;tt>\p{&lt;/tt>&lt;i>prop&lt;/i>&lt;tt>}&lt;/tt> syntax where&#xA;the specified property has the name &lt;tt>java&lt;i>methodname&lt;/i>&lt;/tt>.&#xA;&#xA;&lt;h4> Comparison to Perl 5 &lt;/h4>&#xA;&#xA;&lt;p>The &lt;code>Pattern&lt;/code> engine performs traditional NFA-based matching&#xA;with ordered alternation as occurs in Perl 5.&#xA;&#xA;&lt;p> Perl constructs not supported by this class: &lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> The conditional constructs &lt;tt>(?{&lt;/tt>&lt;i>X&lt;/i>&lt;tt>})&lt;/tt> and&#xA;&lt;tt>(?(&lt;/tt>&lt;i>condition&lt;/i>&lt;tt>)&lt;/tt>&lt;i>X&lt;/i>&lt;tt>|&lt;/tt>&lt;i>Y&lt;/i>&lt;tt>)&lt;/tt>,&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The embedded code constructs &lt;tt>(?{&lt;/tt>&lt;i>code&lt;/i>&lt;tt>})&lt;/tt>&#xA;and &lt;tt>(??{&lt;/tt>&lt;i>code&lt;/i>&lt;tt>})&lt;/tt>,&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The embedded comment syntax &lt;tt>(?#comment)&lt;/tt>, and &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The preprocessing operations &lt;tt>\l&lt;/tt> &lt;tt>&amp;#92;u&lt;/tt>,&#xA;&lt;tt>\L&lt;/tt>, and &lt;tt>\U&lt;/tt>.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Constructs supported by this class but not by Perl: &lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> Possessive quantifiers, which greedily match as much as they can&#xA;and do not back off, even when doing so would allow the overall match to&#xA;succeed.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Character-class union and intersection as described&#xA;&lt;a href=&quot;#cc&quot;>above&lt;/a>.&lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Notable differences from Perl: &lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> In Perl, &lt;tt>\1&lt;/tt> through &lt;tt>\9&lt;/tt> are always interpreted&#xA;as back references; a backslash-escaped number greater than &lt;tt>9&lt;/tt> is&#xA;treated as a back reference if at least that many subexpressions exist,&#xA;otherwise it is interpreted, if possible, as an octal escape.  In this&#xA;class octal escapes must always begin with a zero. In this class,&#xA;&lt;tt>\1&lt;/tt> through &lt;tt>\9&lt;/tt> are always interpreted as back&#xA;references, and a larger number is accepted as a back reference if at&#xA;least that many subexpressions exist at that point in the regular&#xA;expression, otherwise the parser will drop digits until the number is&#xA;smaller or equal to the existing number of groups or it is one digit.&#xA;&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Perl uses the &lt;tt>g&lt;/tt> flag to request a match that resumes&#xA;where the last match left off.  This functionality is provided implicitly&#xA;by the {@link Matcher} class: Repeated invocations of the {@link&#xA;Matcher#find find} method will resume where the last match left off,&#xA;unless the matcher is reset.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> In Perl, embedded flags at the top level of an expression affect&#xA;the whole expression.  In this class, embedded flags always take effect&#xA;at the point at which they appear, whether they are at the top level or&#xA;within a group; in the latter case, flags are restored at the end of the&#xA;group just as in Perl.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> Perl is forgiving about malformed matching constructs, as in the&#xA;expression &lt;tt>*a&lt;/tt>, as well as dangling brackets, as in the&#xA;expression &lt;tt>abc]&lt;/tt>, and treats them as literals.  This&#xA;class also accepts dangling brackets but is strict about dangling&#xA;metacharacters like +, ? and *, and will throw a&#xA;{@link PatternSyntaxException} if it encounters them. &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&#xA;&lt;p> For a more precise description of the behavior of regular expression&#xA;constructs, please see &lt;a href=&quot;http://www.oreilly.com/catalog/regex2/&quot;>&#xA;&lt;i>Mastering Regular Expressions, 2nd Edition&lt;/i>, Jeffrey E. F. Friedl,&#xA;O'Reilly and Associates, 2002.&lt;/a>&#xA;&lt;/p>&#xA;&#xA;@see java.lang.String#split(String, int)&#xA;@see java.lang.String#split(String)&#xA;&#xA;@author      Mike McCloskey&#xA;@author      Mark Reinhold&#xA;@author&#x9;JSR-51 Expert Group&#xA;@version &#x9;1.109, 04/06/28&#xA;@since       1.4&#xA;@spec&#x9;JSR-51&#xA;" annotatedElement="_9_5_f720368_1110473546690_239415_8779"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322370_295264_14594" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_239415_8779" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_206555_19142" name="TreeInfo" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310442_213046_6813" body="Used to accumulate information about a subtree of the object graph&#xA;so that optimizations can be applied to the subtree.&#xA;" annotatedElement="_9_5_f720368_1110473547831_206555_19142"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_309562_19145" name="BitClass" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310442_694226_6814" body="Creates a bit vector for matching Latin-1 values. A normal BitClass&#xA;never matches values above Latin-1, and a complemented BitClass always&#xA;matches values above Latin-1.&#xA;" annotatedElement="_9_5_f720368_1110473547831_309562_19145"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_602817_14595" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_77664_19148" name="Node" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_278392_6815" body="Base class for all node classes. Subclasses should override the match()&#xA;method as appropriate. This class is an accepting node, so its match()&#xA;always returns true.&#xA;" annotatedElement="_9_5_f720368_1110473547831_77664_19148"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_963478_14596" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_981290_19151" name="LastNode" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322370_97178_14597" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_766968_19153" name="Dummy" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_28880_6816" body="Dummy node to assist in connecting branches.&#xA;" annotatedElement="_9_5_f720368_1110473547831_766968_19153"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_197915_14598" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_936761_19156" name="Start" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_828174_6817" body="Used for REs that can start anywhere within the input string.&#xA;This basically tries to match repeatedly at each spot in the&#xA;input string, moving forward after each try. An anchored search&#xA;or a BnM will bypass this node completely.&#xA;" annotatedElement="_9_5_f720368_1110473547831_936761_19156"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_878498_14599" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_949507_19159" name="Begin" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_578844_6819" body="Node to anchor at the beginning of input. This object implements the&#xA;match for a \A sequence, and the caret anchor will use this if not in&#xA;multiline mode.&#xA;" annotatedElement="_9_5_f720368_1110473547831_949507_19159"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_861992_14601" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_454969_19162" name="End" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_614412_6820" body="Node to anchor at the end of input. This is the absolute end, so this&#xA;should not match at the last newline before the end as $ will.&#xA;" annotatedElement="_9_5_f720368_1110473547831_454969_19162"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_91420_14602" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_879212_19165" name="Caret" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_287679_6821" body="Node to anchor at the beginning of a line. This is essentially the&#xA;object to match for the multiline ^.&#xA;" annotatedElement="_9_5_f720368_1110473547831_879212_19165"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_888829_14603" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_109518_19168" name="UnixCaret" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_697683_6822" body="Node to anchor at the beginning of a line when in unixdot mode.&#xA;" annotatedElement="_9_5_f720368_1110473547831_109518_19168"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_265502_14604" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_711966_19171" name="LastMatch" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_392498_6823" body="Node to match the location where the last match ended.&#xA;This is used for the \G construct.&#xA;" annotatedElement="_9_5_f720368_1110473547831_711966_19171"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_625284_14605" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_333351_19174" name="Dollar" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_117150_6824" body="Node to anchor at the end of a line or the end of input based on the&#xA;multiline mode.&#xA;&#xA;When not in multiline mode, the $ can only match at the very end&#xA;of the input, unless the input ends in a line terminator in which&#xA;it matches right before the last line terminator.&#xA;&#xA;Note that \r\n is considered an atomic line terminator.&#xA;&#xA;Like ^ the $ operator matches at a position, it does not match the&#xA;line terminators themselves.&#xA;" annotatedElement="_9_5_f720368_1110473547831_333351_19174"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_252021_14606" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_101917_19177" name="UnixDollar" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_512350_6825" body="Node to anchor at the end of a line or the end of input based on the&#xA;multiline mode when in unix lines mode.&#xA;" annotatedElement="_9_5_f720368_1110473547831_101917_19177"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_238376_14607" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_248004_19180" name="Single" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_282389_6826" body="Node class for a single character value.&#xA;" annotatedElement="_9_5_f720368_1110473547831_248004_19180"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_630601_14608" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_56233_19183" name="NotSingle" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_970472_6827" body="Node class to match any character except a single char value.&#xA;" annotatedElement="_9_5_f720368_1110473547831_56233_19183"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_325016_14609" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_932591_19186" name="SingleA" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_270248_6828" body="Case independent ASCII value.&#xA;" annotatedElement="_9_5_f720368_1110473547831_932591_19186"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_295526_14610" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_892080_19189" name="NotSingleA" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322370_308644_14611" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_481930_19191" name="SingleU" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_153389_6829" body="Case independent unicode (including supplementary characters) value.&#xA;" annotatedElement="_9_5_f720368_1110473547831_481930_19191"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_309060_14612" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_193566_19194" name="NotSingleU" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_30267_6830" body="Case independent unicode value.&#xA;" annotatedElement="_9_5_f720368_1110473547831_193566_19194"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_481869_14613" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_287085_19197" name="Category" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_901638_6831" body="Node class that matches a Unicode category.&#xA;" annotatedElement="_9_5_f720368_1110473547831_287085_19197"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_947853_14614" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_609304_19200" name="Ctype" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310452_721911_6832" body="Node class that matches a POSIX type.&#xA;" annotatedElement="_9_5_f720368_1110473547831_609304_19200"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_941746_14615" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_102077_19203" name="NotCtype" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_726497_14616" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_67798_19205" name="Specials" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_963907_14634" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_692338_19207" name="Not" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_146281_14635" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_714118_19209" name="Slice" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_668686_6850" body="Node class for a case sensitive sequence of literal characters.&#xA;" annotatedElement="_9_5_f720368_1110473547831_714118_19209"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_152052_14636" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_674195_19212" name="SliceA" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_462029_6851" body="Node class for a case insensitive sequence of literal characters.&#xA;" annotatedElement="_9_5_f720368_1110473547831_674195_19212"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_966807_14637" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_816437_19215" name="SliceU" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_785975_6852" body="Node class for a case insensitive sequence of literal characters.&#xA;Uses unicode case folding.&#xA;" annotatedElement="_9_5_f720368_1110473547831_816437_19215"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_955150_14638" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_499025_19218" name="Range" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_285591_6855" body="Node class for matching characters within an explicit value range.&#xA;" annotatedElement="_9_5_f720368_1110473547831_499025_19218"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_773016_14640" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_901173_19221" name="CIRange" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_723894_6856" body="Node class for matching characters within an explicit value range&#xA;in a case insensitive manner.&#xA;" annotatedElement="_9_5_f720368_1110473547831_901173_19221"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_398643_14641" isSubstitutable="true" general="_9_5_f720368_1110473547831_499025_19218"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_535479_19224" name="NotRange" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322380_170077_14642" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_59064_19226" name="CINotRange" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322380_63756_14643" isSubstitutable="true" general="_9_5_f720368_1110473547831_535479_19224"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_781093_19228" name="All" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_761499_6857" body="Implements the Unicode category ALL and the dot metacharacter when&#xA;in dotall mode.&#xA;" annotatedElement="_9_5_f720368_1110473547831_781093_19228"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_450324_14644" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_45800_19231" name="Dot" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_10754_6858" body="Node class for the dot metacharacter when dotall is not enabled.&#xA;" annotatedElement="_9_5_f720368_1110473547831_45800_19231"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_157511_14645" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_305350_19234" name="UnixDot" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_599865_6859" body="Node class for the dot metacharacter when dotall is not enabled&#xA;but UNIX_LINES is enabled.&#xA;" annotatedElement="_9_5_f720368_1110473547831_305350_19234"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_522995_14646" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_442383_19237" name="Ques" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_821744_6860" body="The 0 or 1 quantifier. This one class implements all three types.&#xA;" annotatedElement="_9_5_f720368_1110473547831_442383_19237"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_504205_14647" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_973619_19240" name="Curly" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_299393_6861" body="Handles the curly-brace style repetition with a specified minimum and&#xA;maximum occurrences. The * quantifier is handled as a special case.&#xA;This class handles the three types.&#xA;" annotatedElement="_9_5_f720368_1110473547831_973619_19240"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_498409_14648" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_23071_19243" name="GroupCurly" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_389536_6862" body="Handles the curly-brace style repetition with a specified minimum and&#xA;maximum occurrences in deterministic cases. This is an iterative&#xA;optimization over the Prolog and Loop system which would handle this&#xA;in a recursive way. The * quantifier is handled as a special case.&#xA;If capture is true then this class saves group settings and ensures&#xA;that groups are unset when backing off of a group match.&#xA;" annotatedElement="_9_5_f720368_1110473547831_23071_19243"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_981719_14649" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_139362_19246" name="Branch" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_671153_6863" body="Handles the branching of alternations. Note this is also used for&#xA;the ? quantifier to branch between the case where it matches once&#xA;and where it does not occur.&#xA;" annotatedElement="_9_5_f720368_1110473547831_139362_19246"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_110307_14650" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_347724_19249" name="GroupHead" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_249554_6864" body="The GroupHead saves the location where the group begins in the locals&#xA;and restores them when the match is done.&#xA;&#xA;The matchRef is used when a reference to this group is accessed later&#xA;in the expression. The locals will have a negative value in them to&#xA;indicate that we do not want to unset the group if the reference&#xA;doesn't match.&#xA;" annotatedElement="_9_5_f720368_1110473547831_347724_19249"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_24697_14651" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_852617_19252" name="GroupRef" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_969079_6865" body="Recursive reference to a group in the regular expression. It calls&#xA;matchRef because if the reference fails to match we would not unset&#xA;the group.&#xA;" annotatedElement="_9_5_f720368_1110473547831_852617_19252"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_392407_14652" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_47589_19255" name="GroupTail" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_932334_6866" body="The GroupTail handles the setting of group beginning and ending&#xA;locations when groups are successfully matched. It must also be able to&#xA;unset groups that have to be backed off of.&#xA;&#xA;The GroupTail node is also used when a previous group is referenced,&#xA;and in that case no group information needs to be set.&#xA;" annotatedElement="_9_5_f720368_1110473547831_47589_19255"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_440205_14653" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_938150_19258" name="Prolog" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_159318_6867" body="This sets up a loop to handle a recursive quantifier structure.&#xA;" annotatedElement="_9_5_f720368_1110473547831_938150_19258"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_691987_14654" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_564339_19261" name="Loop" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_509120_6868" body="Handles the repetition count for a greedy Curly. The matchInit&#xA;is called from the Prolog to save the index of where the group&#xA;beginning is stored. A zero length group check occurs in the&#xA;normal match but is skipped in the matchInit.&#xA;" annotatedElement="_9_5_f720368_1110473547831_564339_19261"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_759256_14655" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_331511_19264" name="LazyLoop" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_658469_6869" body="Handles the repetition count for a reluctant Curly. The matchInit&#xA;is called from the Prolog to save the index of where the group&#xA;beginning is stored. A zero length group check occurs in the&#xA;normal match but is skipped in the matchInit.&#xA;" annotatedElement="_9_5_f720368_1110473547831_331511_19264"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_872285_14656" isSubstitutable="true" general="_9_5_f720368_1110473547831_564339_19261"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_650235_19267" name="BackRef" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_83454_6870" body="Refers to a group in the regular expression. Attempts to match&#xA;whatever the group referred to last matched.&#xA;" annotatedElement="_9_5_f720368_1110473547831_650235_19267"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_613298_14657" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_683841_19270" name="CIBackRef" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322380_618928_14658" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_672915_19272" name="First" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_241895_6871" body="Searches until the next instance of its atom. This is useful for&#xA;finding the atom efficiently without passing an instance of it&#xA;(greedy problem) and without a lot of wasted search time (reluctant&#xA;problem).&#xA;" annotatedElement="_9_5_f720368_1110473547831_672915_19272"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_718618_14659" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547831_315825_19275" name="Conditional" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_944876_14660" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_416867_19277" name="Pos" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_377864_6872" body="Zero width positive lookahead.&#xA;" annotatedElement="_9_5_f720368_1110473547846_416867_19277"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_709038_14661" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_275306_19280" name="Neg" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_967439_6873" body="Zero width negative lookahead.&#xA;" annotatedElement="_9_5_f720368_1110473547846_275306_19280"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_995245_14662" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_644661_19283" name="Behind" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_693396_6874" body="Zero width positive lookbehind.&#xA;" annotatedElement="_9_5_f720368_1110473547846_644661_19283"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_529215_14663" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_947571_19286" name="NotBehind" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_72116_6877" body="Zero width negative lookbehind.&#xA;" annotatedElement="_9_5_f720368_1110473547846_947571_19286"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_403882_14665" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_320638_19289" name="Add" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_595980_6880" body="An object added to the tree when a character class has an additional&#xA;range added to it.&#xA;" annotatedElement="_9_5_f720368_1110473547846_320638_19289"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_564769_14667" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_827902_19292" name="Both" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_933684_6881" body="An object added to the tree when a character class has another&#xA;nested class in it.&#xA;" annotatedElement="_9_5_f720368_1110473547846_827902_19292"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_915410_14668" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_403310_19295" name="Sub" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_930312_6882" body="An object added to the tree when a character class has a range&#xA;or single subtracted from it.&#xA;" annotatedElement="_9_5_f720368_1110473547846_403310_19295"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_244511_14669" isSubstitutable="true" general="_9_5_f720368_1110473547846_320638_19289"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_896042_19298" name="Bound" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_605769_6883" body="Handles word boundaries. Includes a field to allow this one class to&#xA;deal with the different types of word boundaries we can match. The word&#xA;characters include underscores, letters, and digits. Non spacing marks&#xA;can are also part of a word if they have a base character, otherwise&#xA;they are ignored for purposes of finding word boundaries.&#xA;" annotatedElement="_9_5_f720368_1110473547846_896042_19298"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_179663_14670" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_104329_19301" name="BnM" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_68793_6884" body="Attempts to match a slice in the input using the Boyer-Moore string&#xA;matching algorithm. The algorithm is based on the idea that the&#xA;pattern can be shifted farther ahead in the search text if it is&#xA;matched right to left.&#xA;&lt;p>&#xA;The pattern is compared to the input one character at a time, from&#xA;the rightmost character in the pattern to the left. If the characters&#xA;all match the pattern has been found. If a character does not match,&#xA;the pattern is shifted right a distance that is the maximum of two&#xA;functions, the bad character shift and the good suffix shift. This&#xA;shift moves the attempted match position through the input more&#xA;quickly than a naive one position at a time check.&#xA;&lt;p>&#xA;The bad character shift is based on the character from the text that&#xA;did not match. If the character does not appear in the pattern, the&#xA;pattern can be shifted completely beyond the bad character. If the&#xA;character does occur in the pattern, the pattern can be shifted to&#xA;line the pattern up with the next occurrence of that character.&#xA;&lt;p>&#xA;The good suffix shift is based on the idea that some subset on the right&#xA;side of the pattern has matched. When a bad character is found, the&#xA;pattern can be shifted right by the pattern length if the subset does&#xA;not occur again in pattern, or by the amount of distance to the&#xA;next occurrence of the subset in the pattern.&#xA;&#xA;Boyer-Moore search methods adapted from code by Amy Yu.&#xA;" annotatedElement="_9_5_f720368_1110473547846_104329_19301"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_749112_14671" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_570246_6818" name="StartS" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322370_557746_14600" isSubstitutable="true" general="_9_5_f720368_1110473547831_936761_19156"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_762720_6833" name="JavaTypeClass" visibility="package" isAbstract="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_477627_14617" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_219956_6834" name="JavaLowerCase" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_619533_14618" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_490485_6835" name="JavaUpperCase" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_687220_14619" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_230229_6836" name="JavaTitleCase" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_549205_14620" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_702995_6837" name="JavaDigit" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_137449_14621" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_59062_6838" name="JavaDefined" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_860385_14622" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_809139_6839" name="JavaLetter" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_691393_14623" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_486786_6840" name="JavaLetterOrDigit" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_506465_14624" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_769985_6841" name="JavaJavaIdentifierStart" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_395130_14625" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_534182_6842" name="JavaJavaIdentifierPart" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_951220_14626" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_701406_6843" name="JavaUnicodeIdentifierStart" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_778366_14627" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310452_72760_6844" name="JavaUnicodeIdentifierPart" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_923036_14628" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_868198_6845" name="JavaIdentifierIgnorable" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_555763_14629" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_122187_6846" name="JavaSpaceChar" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_601359_14630" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_25482_6847" name="JavaWhitespace" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_522728_14631" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_474033_6848" name="JavaISOControl" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_173262_14632" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_979989_6849" name="JavaMirrored" visibility="package" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928322380_686860_14633" isSubstitutable="true" general="_10_5_622020d_1132928310452_762720_6833"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_99107_6853" name="SliceS" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_459353_6854" body="Node class for a case sensitive sequence of literal characters&#xA;including supplementary characters.&#xA;" annotatedElement="_10_5_622020d_1132928310462_99107_6853"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_884576_14639" isSubstitutable="true" general="_9_5_f720368_1110473547831_714118_19209"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_854530_6875" name="BehindS" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_862376_6876" body="Zero width positive lookbehind, including supplementary&#xA;characters or unpaired surrogates.&#xA;" annotatedElement="_10_5_622020d_1132928310462_854530_6875"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_940598_14664" isSubstitutable="true" general="_9_5_f720368_1110473547846_644661_19283"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_528477_6878" name="NotBehindS" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310462_529707_6879" body="Zero width negative lookbehind, including supplementary&#xA;characters or unpaired surrogates.&#xA;" annotatedElement="_10_5_622020d_1132928310462_528477_6878"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_357809_14666" isSubstitutable="true" general="_9_5_f720368_1110473547846_947571_19286"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310462_92956_6885" name="BnMS" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310472_533638_6886" body="Supplementary support version of BnM(). Unpaired surrogates are&#xA;also handled by this class.&#xA;" annotatedElement="_10_5_622020d_1132928310462_92956_6885"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_853606_14672" isSubstitutable="true" general="_9_5_f720368_1110473547846_104329_19301"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310472_899527_6887" name="UBlock" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310472_314085_6888" body="Node class for matching characters in a Unicode block&#xA;" annotatedElement="_10_5_622020d_1132928310472_899527_6887"/>
                <generalization xmi:id="_10_5_622020d_1132928322380_276537_14673" isSubstitutable="true" general="_9_5_f720368_1110473547831_77664_19148"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310472_503862_6889" name="categoryNames" visibility="package"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_556568_8777" name="Matcher" clientDependency="_10_5_622020d_1132928322370_676133_14593" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_685520_6809" body="An engine that performs match operations on a {@link java.lang.CharSequence&#xA;&lt;/code>character sequence&lt;code>} by interpreting a {@link Pattern}.&#xA;&#xA;&lt;p> A matcher is created from a pattern by invoking the pattern's {@link&#xA;Pattern#matcher matcher} method.  Once created, a matcher can be used to&#xA;perform three different kinds of match operations:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p> The {@link #matches matches} method attempts to match the entire&#xA;input sequence against the pattern.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #lookingAt lookingAt} method attempts to match the&#xA;input sequence, starting at the beginning, against the pattern.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> The {@link #find find} method scans the input sequence looking for&#xA;the next subsequence that matches the pattern.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Each of these methods returns a boolean indicating success or failure.&#xA;More information about a successful match can be obtained by querying the&#xA;state of the matcher.&#xA;&#xA;&lt;p> A matcher finds matches in a subset of its input called the&#xA;&lt;i>region&lt;/i>. By default, the region contains all of the matcher's input.&#xA;The region can be modified via the{@link #region region} method and queried&#xA;via the {@link #regionStart regionStart} and {@link #regionEnd regionEnd}&#xA;methods. The way that the region boundaries interact with some pattern&#xA;constructs can be changed. See {@link #useAnchoringBounds&#xA;useAnchoringBounds} and {@link #useTransparentBounds useTransparentBounds}&#xA;for more details.&#xA;&#xA;&lt;p> This class also defines methods for replacing matched subsequences with&#xA;new strings whose contents can, if desired, be computed from the match&#xA;result.  The {@link #appendReplacement appendReplacement} and {@link&#xA;#appendTail appendTail} methods can be used in tandem in order to collect&#xA;the result into an existing string buffer, or the more convenient {@link&#xA;#replaceAll replaceAll} method can be used to create a string in which every&#xA;matching subsequence in the input sequence is replaced.&#xA;&#xA;&lt;p> The explicit state of a matcher includes the start and end indices of&#xA;the most recent successful match.  It also includes the start and end&#xA;indices of the input subsequence captured by each &lt;a&#xA;href=&quot;Pattern.html#cg&quot;>capturing group&lt;/a> in the pattern as well as a total&#xA;count of such subsequences.  As a convenience, methods are also provided for&#xA;returning these captured subsequences in string form.&#xA;&#xA;&lt;p> The explicit state of a matcher is initially undefined; attempting to&#xA;query any part of it before a successful match will cause an {@link&#xA;IllegalStateException} to be thrown.  The explicit state of a matcher is&#xA;recomputed by every match operation.&#xA;&#xA;&lt;p> The implicit state of a matcher includes the input character sequence as&#xA;well as the &lt;i>append position&lt;/i>, which is initially zero and is updated&#xA;by the {@link #appendReplacement appendReplacement} method.&#xA;&#xA;&lt;p> A matcher may be reset explicitly by invoking its {@link #reset()}&#xA;method or, if a new input sequence is desired, its {@link&#xA;#reset(java.lang.CharSequence) reset(CharSequence)} method.  Resetting a&#xA;matcher discards its explicit state information and sets the append position&#xA;to zero.&#xA;&#xA;&lt;p> Instances of this class are not safe for use by multiple concurrent&#xA;threads. &lt;/p>&#xA;&#xA;&#xA;@author      Mike McCloskey&#xA;@author&#x9;Mark Reinhold&#xA;@author&#x9;JSR-51 Expert Group&#xA;@version &#x9;1.58, 04/06/28&#xA;@since&#x9;1.4&#xA;@spec        JSR-51&#xA;" annotatedElement="_9_5_f720368_1110473546690_556568_8777"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322370_676133_14593" name="" supplier="_10_5_622020d_1132928310442_740444_6810" client="_9_5_f720368_1110473546690_556568_8777" contract="_10_5_622020d_1132928310442_740444_6810"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310442_740444_6810" name="MatchResult" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_614316_6812" body="The result of a match operation.&#xA;&#xA;&lt;p>This interface contains query methods used to determine the&#xA;results of a match against a regular expression. The match boundaries,&#xA;groups and group boundaries can be seen but not modified through&#xA;a &lt;code>MatchResult&lt;/code>.&#xA;&#xA;@author  Michael McCloskey&#xA;@version 1.5 06/28/04&#xA;@see Matcher&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310442_740444_6810"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_546177_8775" name="ASCII" visibility="package" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_897007_6807" body="Utility class that implements the standard C ctype functionality.&#xA;&#xA;@author Hong Zhang&#xA;" annotatedElement="_9_5_f720368_1110473546690_546177_8775"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_441504_8903" name="Properties">
            <ownedComment xmi:id="_10_5_622020d_1132928313347_679760_7422" body="The &lt;code>Properties&lt;/code> class represents a persistent set of&#xA;properties. The &lt;code>Properties&lt;/code> can be saved to a stream&#xA;or loaded from a stream. Each key and its corresponding value in&#xA;the property list is a string.&#xA;&lt;p>&#xA;A property list can contain another property list as its&#xA;&quot;defaults&quot;; this second property list is searched if&#xA;the property key is not found in the original property list.&#xA;&lt;p>&#xA;Because &lt;code>Properties&lt;/code> inherits from &lt;code>Hashtable&lt;/code>, the&#xA;&lt;code>put&lt;/code> and &lt;code>putAll&lt;/code> methods can be applied to a&#xA;&lt;code>Properties&lt;/code> object.  Their use is strongly discouraged as they&#xA;allow the caller to insert entries whose keys or values are not&#xA;&lt;code>Strings&lt;/code>.  The &lt;code>setProperty&lt;/code> method should be used&#xA;instead.  If the &lt;code>store&lt;/code> or &lt;code>save&lt;/code> method is called&#xA;on a &quot;compromised&quot; &lt;code>Properties&lt;/code> object that contains a&#xA;non-&lt;code>String&lt;/code> key or value, the call will fail.&#xA;&lt;p>&#xA;&lt;a name=&quot;encoding&quot;>&lt;/a>&#xA;&lt;p> The {@link #load load} and {@link #store store} methods load and store&#xA;properties in a simple line-oriented format specified below.  This format&#xA;uses the ISO 8859-1 character encoding.  Characters that cannot be directly&#xA;represented in this encoding can be written using&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/jls/html/3.doc.html#100850&quot;>Unicode escapes&lt;/a>&#xA;; only a single 'u' character is allowed in an escape&#xA;sequence. The native2ascii tool can be used to convert property files to and&#xA;from other character encodings.&#xA;&lt;p>&#xA;&lt;p> The {@link #loadFromXML(InputStream)} and {@link&#xA;#storeToXML(OutputStream, String, String)} methods load and store properties&#xA;in a simple XML format.  By default the UTF-8 character encoding is used,&#xA;however a specific encoding may be specified if required.  An XML properties&#xA;document has the following DOCTYPE declaration:&#xA;&#xA;&lt;pre>&#xA;&lt;!DOCTYPE properties SYSTEM &quot;http://java.sun.com/dtd/properties.dtd&quot;>&#xA;&lt;/pre>&#xA;Note that the system URI (http://java.sun.com/dtd/properties.dtd) is&#xA;&lt;i>not&lt;/i> accessed when exporting or importing properties; it merely&#xA;serves as a string to uniquely identify the DTD, which is:&#xA;&lt;pre>&#xA;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>&#xA;&#xA;&lt;!-- DTD for properties -->&#xA;&#xA;&lt;!ELEMENT properties ( comment?, entry* ) >&#xA;&#xA;&lt;!ATTLIST properties version CDATA #FIXED &quot;1.0&quot;>&#xA;&#xA;&lt;!ELEMENT comment (#PCDATA) >&#xA;&#xA;&lt;!ELEMENT entry (#PCDATA) >&#xA;&#xA;&lt;!ATTLIST entry key CDATA #REQUIRED>&#xA;&lt;/pre>&#xA;&#xA;@see &lt;a href=&quot;../../../tooldocs/solaris/native2ascii.html&quot;>native2ascii tool for Solaris&lt;/a>&#xA;@see &lt;a href=&quot;../../../tooldocs/windows/native2ascii.html&quot;>native2ascii tool for Windows&lt;/a>&#xA;&#xA;@author  Arthur van Hoff&#xA;@author  Michael McCloskey&#xA;@version 1.84, 05/18/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_441504_8903"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_254419_15080" isSubstitutable="true" general="_10_5_622020d_1132928322620_276390_15076"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313347_204994_7420" name="LineReader" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322610_496943_15044" name="LinkedHashIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322610_375296_15045" signature="_10_5_622020d_1132928313266_458152_7354">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322610_356204_15046" formal="_10_5_622020d_1132928313266_420823_7355" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313497_609212_7526" name="UUID" clientDependency="_10_5_622020d_1132928322650_414103_15142 _10_5_622020d_1132928322650_176231_15146" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313497_647324_7528" body="A class that represents an immutable universally unique identifier (UUID).&#xA;A UUID represents a 128-bit value.&#xA;&#xA;&lt;p>There exist different variants of these global identifiers. The methods&#xA;of this class are for manipulating the Leach-Salz variant, although the&#xA;constructors allow the creation of any variant of UUID (described below).&#xA;&#xA;&lt;p>The layout of a variant 2 (Leach-Salz) UUID is as follows:&#xA;&#xA;The most significant long consists of the following unsigned fields:&#xA;&lt;pre>&#xA;0xFFFFFFFF00000000 time_low&#xA;0x00000000FFFF0000 time_mid&#xA;0x000000000000F000 version&#xA;0x0000000000000FFF time_hi&#xA;&lt;/pre>&#xA;The least significant long consists of the following unsigned fields:&#xA;&lt;pre>&#xA;0xC000000000000000 variant&#xA;0x3FFF000000000000 clock_seq&#xA;0x0000FFFFFFFFFFFF node&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The variant field contains a value which identifies the layout of&#xA;the &lt;tt>UUID&lt;/tt>. The bit layout described above is valid only for&#xA;a &lt;tt>UUID&lt;/tt> with a variant value of 2, which indicates the&#xA;Leach-Salz variant.&#xA;&#xA;&lt;p>The version field holds a value that describes the type of this&#xA;&lt;tt>UUID&lt;/tt>. There are four different basic types of UUIDs: time-based,&#xA;DCE security, name-based, and randomly generated UUIDs. These types&#xA;have a version value of 1, 2, 3 and 4, respectively.&#xA;&#xA;&lt;p>For more information including algorithms used to create &lt;tt>UUID&lt;/tt>s,&#xA;see the Internet-Draft &lt;a href=&quot;http://www.ietf.org/internet-drafts/draft-mealling-uuid-urn-03.txt&quot;>UUIDs and GUIDs&lt;/a>&#xA;or the standards body definition at&#xA;&lt;a href=&quot;http://www.iso.ch/cate/d2229.html&quot;>ISO/IEC 11578:1996&lt;/a>.&#xA;&#xA;@version 1.14, 07/12/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928313497_609212_7526"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_414103_15142" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928313497_609212_7526" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_176231_15146" name="" supplier="_10_5_622020d_1132928322650_794897_15143" client="_10_5_622020d_1132928313497_609212_7526" contract="_10_5_622020d_1132928322650_794897_15143"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_86976_8935" name="TaskQueue" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928313487_128862_7490" body="This class represents a timer task queue: a priority queue of TimerTasks,&#xA;ordered on nextExecutionTime.  Each Timer object has one of these, which it&#xA;shares with its TimerThread.  Internally this class uses a heap, which&#xA;offers log(n) performance for the add, removeMin and rescheduleMin&#xA;operations, and constant time performance for the getMin operation.&#xA;" annotatedElement="_9_5_f720368_1110473546706_86976_8935"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_971153_8947" name="Vector" clientDependency="_10_5_622020d_1132928322650_658811_15147 _10_5_622020d_1132928322650_748680_15148 _10_5_622020d_1132928322660_309851_15149 _10_5_622020d_1132928322660_959410_15150">
            <ownedComment xmi:id="_10_5_622020d_1132928313507_408323_7533" body="The &lt;code>Vector&lt;/code> class implements a growable array of&#xA;objects. Like an array, it contains components that can be&#xA;accessed using an integer index. However, the size of a&#xA;&lt;code>Vector&lt;/code> can grow or shrink as needed to accommodate&#xA;adding and removing items after the &lt;code>Vector&lt;/code> has been created.&lt;p>&#xA;&#xA;Each vector tries to optimize storage management by maintaining a&#xA;&lt;code>capacity&lt;/code> and a &lt;code>capacityIncrement&lt;/code>. The&#xA;&lt;code>capacity&lt;/code> is always at least as large as the vector&#xA;size; it is usually larger because as components are added to the&#xA;vector, the vector's storage increases in chunks the size of&#xA;&lt;code>capacityIncrement&lt;/code>. An application can increase the&#xA;capacity of a vector before inserting a large number of&#xA;components; this reduces the amount of incremental reallocation. &lt;p>&#xA;&#xA;As of the Java 2 platform v1.2, this class has been retrofitted to&#xA;implement List, so that it becomes a part of Java's collection framework.&#xA;Unlike the new collection implementations, Vector is synchronized.&lt;p>&#xA;&#xA;The Iterators returned by Vector's iterator and listIterator&#xA;methods are &lt;em>fail-fast&lt;/em>: if the Vector is structurally modified&#xA;at any time after the Iterator is created, in any way except through the&#xA;Iterator's own remove or add methods, the Iterator will throw a&#xA;ConcurrentModificationException.  Thus, in the face of concurrent&#xA;modification, the Iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the future.&#xA;The Enumerations returned by Vector's elements method are &lt;em>not&lt;/em>&#xA;fail-fast.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:  &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Lee Boynton&#xA;@author  Jonathan Payne&#xA;@version 1.96, 02/19/04&#xA;@see Collection&#xA;@see List&#xA;@see ArrayList&#xA;@see LinkedList&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_971153_8947"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313497_855139_7529" name="" parameter="_10_5_622020d_1132928313497_670419_7530">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313497_670419_7530" parameteredElement="_10_5_622020d_1132928313497_734238_7531">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313497_734238_7531" name="E" templateParameter="_10_5_622020d_1132928313497_670419_7530"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322660_169362_15151" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_658811_15147" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473546706_971153_8947" contract="_10_5_622020d_1132928322259_732594_14433"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_748680_15148" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473546706_971153_8947" contract="_9_5_f720368_1110473546706_6812_8913"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322660_309851_15149" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_971153_8947" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322660_959410_15150" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_971153_8947" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_866272_8825" name="RandomAccessSubList" visibility="package" clientDependency="_10_5_622020d_1132928322460_803114_14713">
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_135769_6946" name="" parameter="_10_5_622020d_1132928310793_450457_6947">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_450457_6947" parameteredElement="_10_5_622020d_1132928310793_181263_6948">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_181263_6948" name="E" templateParameter="_10_5_622020d_1132928310793_450457_6947"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322470_405420_14717" isSubstitutable="true" general="_10_5_622020d_1132928322470_692996_14714"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322460_803114_14713" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473546706_866272_8825" contract="_9_5_f720368_1110473546706_6812_8913"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322460_511299_14700" name="Collection&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322460_548389_14701" signature="_10_5_622020d_1132928310873_497963_6994">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322460_598471_14702" formal="_10_5_622020d_1132928310873_140050_6995" actual="_10_5_622020d_1132928310783_46763_6934"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322510_693272_14825" name="CheckedCollection&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322510_709255_14826" signature="_10_5_622020d_1132928310893_19530_7077">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322510_203955_14827" formal="_10_5_622020d_1132928310893_340251_7078" actual="_10_5_622020d_1132928310903_108995_7084"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322650_831637_15130" name="PrivateEntryIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322650_58044_15131" signature="_10_5_622020d_1132928313487_277119_7503">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322650_448234_15132" formal="_10_5_622020d_1132928313487_508706_7504" actual="_10_5_622020d_1132928313487_373693_7501"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_170159_8917" name="ResourceBundleEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928322620_496343_15094">
            <ownedComment xmi:id="_10_5_622020d_1132928313407_403801_7455" body="Implements an Enumeration that combines elements from a Set and&#xA;an Enumeration. Used by ListResourceBundle and PropertyResourceBundle.&#xA;" annotatedElement="_9_5_f720368_1110473546706_170159_8917"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_496343_15094" name="" supplier="_10_5_622020d_1132928322620_480057_15091" client="_9_5_f720368_1110473546706_170159_8917" contract="_10_5_622020d_1132928322620_480057_15091"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_921379_8929" name="StringTokenizer" clientDependency="_10_5_622020d_1132928322630_205842_15107">
            <ownedComment xmi:id="_10_5_622020d_1132928313477_71408_7484" body="The string tokenizer class allows an application to break a&#xA;string into tokens. The tokenization method is much simpler than&#xA;the one used by the &lt;code>StreamTokenizer&lt;/code> class. The&#xA;&lt;code>StringTokenizer&lt;/code> methods do not distinguish among&#xA;identifiers, numbers, and quoted strings, nor do they recognize&#xA;and skip comments.&#xA;&lt;p>&#xA;The set of delimiters (the characters that separate tokens) may&#xA;be specified either at creation time or on a per-token basis.&#xA;&lt;p>&#xA;An instance of &lt;code>StringTokenizer&lt;/code> behaves in one of two&#xA;ways, depending on whether it was created with the&#xA;&lt;code>returnDelims&lt;/code> flag having the value &lt;code>true&lt;/code>&#xA;or &lt;code>false&lt;/code>:&#xA;&lt;ul>&#xA;&lt;li>If the flag is &lt;code>false&lt;/code>, delimiter characters serve to&#xA;separate tokens. A token is a maximal sequence of consecutive&#xA;characters that are not delimiters.&#xA;&lt;li>If the flag is &lt;code>true&lt;/code>, delimiter characters are themselves&#xA;considered to be tokens. A token is thus either one delimiter&#xA;character, or a maximal sequence of consecutive characters that are&#xA;not delimiters.&#xA;&lt;/ul>&lt;p>&#xA;A &lt;tt>StringTokenizer&lt;/tt> object internally maintains a current&#xA;position within the string to be tokenized. Some operations advance this&#xA;current position past the characters processed.&lt;p>&#xA;A token is returned by taking a substring of the string that was used to&#xA;create the &lt;tt>StringTokenizer&lt;/tt> object.&#xA;&lt;p>&#xA;The following is one example of the use of the tokenizer. The code:&#xA;&lt;blockquote>&lt;pre>&#xA;StringTokenizer st = new StringTokenizer(&quot;this is a test&quot;);&#xA;while (st.hasMoreTokens()) {&#xA;System.out.println(st.nextToken());&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;prints the following output:&#xA;&lt;blockquote>&lt;pre>&#xA;this&#xA;is&#xA;a&#xA;test&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&lt;tt>StringTokenizer&lt;/tt> is a legacy class that is retained for&#xA;compatibility reasons although its use is discouraged in new code. It is&#xA;recommended that anyone seeking this functionality use the &lt;tt>split&lt;/tt>&#xA;method of &lt;tt>String&lt;/tt> or the java.util.regex package instead.&#xA;&lt;p>&#xA;The following example illustrates how the &lt;tt>String.split&lt;/tt>&#xA;method can be used to break up a string into its basic tokens:&#xA;&lt;blockquote>&lt;pre>&#xA;String[] result = &quot;this is a test&quot;.split(&quot;\\s&quot;);&#xA;for (int x=0; x&lt;result.length; x++)&#xA;System.out.println(result[x]);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;prints the following output:&#xA;&lt;blockquote>&lt;pre>&#xA;this&#xA;is&#xA;a&#xA;test&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@author  unascribed&#xA;@version 1.34, 05/05/04&#xA;@see     java.io.StreamTokenizer&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_921379_8929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_205842_15107" name="" supplier="_10_5_622020d_1132928322580_607670_14982" client="_9_5_f720368_1110473546706_921379_8929" contract="_10_5_622020d_1132928322580_607670_14982"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322490_35705_14783" name="SortedMap&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322490_542587_14784" signature="_10_5_622020d_1132928313447_75632_7466">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322490_255100_14785" formal="_10_5_622020d_1132928313447_627529_7467" actual="_10_5_622020d_1132928310893_287875_7040"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322490_83350_14786" formal="_10_5_622020d_1132928313447_470338_7469" actual="_10_5_622020d_1132928310893_238470_7042"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322480_860807_14756" name="UnmodifiableCollection&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_756204_14757" signature="_10_5_622020d_1132928310893_153937_7000">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_692905_14758" formal="_10_5_622020d_1132928310893_816799_7001" actual="_10_5_622020d_1132928310893_813955_7006"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322600_579660_15019" name="EnumSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322600_673965_15020" signature="_10_5_622020d_1132928310953_473176_7212">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_611107_15021" formal="_10_5_622020d_1132928310953_808641_7213" actual="_10_5_622020d_1132928313266_280745_7336"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322470_406203_14723" name="Set&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322470_629506_14724" signature="_10_5_622020d_1132928313447_162331_7459">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322470_675820_14725" formal="_10_5_622020d_1132928313447_917798_7460" actual="_10_5_622020d_1132928310803_80597_6976"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322530_132470_14868" name="AbstractMap&lt;Object, Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322530_140925_14869" signature="_10_5_622020d_1132928310793_662526_6950">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322530_150255_14870" formal="_10_5_622020d_1132928310793_848853_6951" actual="_9_5_f720368_1110473546612_117118_7661"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322530_661181_14871" formal="_10_5_622020d_1132928310793_121738_6953" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_451900_8865" name="EventObject" clientDependency="_10_5_622020d_1132928322560_824368_14932">
            <ownedComment xmi:id="_10_5_622020d_1132928310973_757441_7227" body="&lt;p>&#xA;The root class from which all event state objects shall be derived.&#xA;&lt;p>&#xA;All Events are constructed with a reference to the object, the &quot;source&quot;,&#xA;that is logically deemed to be the object upon which the Event in question&#xA;initially occurred upon.&#xA;&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_451900_8865"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_824368_14932" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_451900_8865" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_671366_8869" name="HashMap" clientDependency="_10_5_622020d_1132928322560_776409_14941 _10_5_622020d_1132928322560_713821_14942 _10_5_622020d_1132928322560_696408_14940">
            <ownedComment xmi:id="_10_5_622020d_1132928313216_910939_7268" body="Hash table based implementation of the &lt;tt>Map&lt;/tt> interface.  This&#xA;implementation provides all of the optional map operations, and permits&#xA;&lt;tt>null&lt;/tt> values and the &lt;tt>null&lt;/tt> key.  (The &lt;tt>HashMap&lt;/tt>&#xA;class is roughly equivalent to &lt;tt>Hashtable&lt;/tt>, except that it is&#xA;unsynchronized and permits nulls.)  This class makes no guarantees as to&#xA;the order of the map; in particular, it does not guarantee that the order&#xA;will remain constant over time.&#xA;&#xA;&lt;p>This implementation provides constant-time performance for the basic&#xA;operations (&lt;tt>get&lt;/tt> and &lt;tt>put&lt;/tt>), assuming the hash function&#xA;disperses the elements properly among the buckets.  Iteration over&#xA;collection views requires time proportional to the &quot;capacity&quot; of the&#xA;&lt;tt>HashMap&lt;/tt> instance (the number of buckets) plus its size (the number&#xA;of key-value mappings).  Thus, it's very important not to set the initial&#xA;capacity too high (or the load factor too low) if iteration performance is&#xA;important.&#xA;&#xA;&lt;p>An instance of &lt;tt>HashMap&lt;/tt> has two parameters that affect its&#xA;performance: &lt;i>initial capacity&lt;/i> and &lt;i>load factor&lt;/i>.  The&#xA;&lt;i>capacity&lt;/i> is the number of buckets in the hash table, and the initial&#xA;capacity is simply the capacity at the time the hash table is created.  The&#xA;&lt;i>load factor&lt;/i> is a measure of how full the hash table is allowed to&#xA;get before its capacity is automatically increased.  When the number of&#xA;entries in the hash table exceeds the product of the load factor and the&#xA;current capacity, the capacity is roughly doubled by calling the&#xA;&lt;tt>rehash&lt;/tt> method.&#xA;&#xA;&lt;p>As a general rule, the default load factor (.75) offers a good tradeoff&#xA;between time and space costs.  Higher values decrease the space overhead&#xA;but increase the lookup cost (reflected in most of the operations of the&#xA;&lt;tt>HashMap&lt;/tt> class, including &lt;tt>get&lt;/tt> and &lt;tt>put&lt;/tt>).  The&#xA;expected number of entries in the map and its load factor should be taken&#xA;into account when setting its initial capacity, so as to minimize the&#xA;number of &lt;tt>rehash&lt;/tt> operations.  If the initial capacity is greater&#xA;than the maximum number of entries divided by the load factor, no&#xA;&lt;tt>rehash&lt;/tt> operations will ever occur.&#xA;&#xA;&lt;p>If many mappings are to be stored in a &lt;tt>HashMap&lt;/tt> instance,&#xA;creating it with a sufficiently large capacity will allow the mappings to&#xA;be stored more efficiently than letting it perform automatic rehashing as&#xA;needed to grow the table.&#xA;&#xA;&lt;p>&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access this map concurrently, and at least one of the threads&#xA;modifies the map structurally, it &lt;i>must&lt;/i> be synchronized externally.&#xA;(A structural modification is any operation that adds or deletes one or&#xA;more mappings; merely changing the value associated with a key that an&#xA;instance already contains is not a structural modification.)  This is&#xA;typically accomplished by synchronizing on some object that naturally&#xA;encapsulates the map.  If no such object exists, the map should be&#xA;&quot;wrapped&quot; using the &lt;tt>Collections.synchronizedMap&lt;/tt> method.  This is&#xA;best done at creation time, to prevent accidental unsynchronized access to&#xA;the map: &lt;pre> Map m = Collections.synchronizedMap(new HashMap(...));&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The iterators returned by all of this class's &quot;collection view methods&quot;&#xA;are &lt;i>fail-fast&lt;/i>: if the map is structurally modified at any time after&#xA;the iterator is created, in any way except through the iterator's own&#xA;&lt;tt>remove&lt;/tt> or &lt;tt>add&lt;/tt> methods, the iterator will throw a&#xA;&lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in the face of concurrent&#xA;modification, the iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Doug Lea&#xA;@author  Josh Bloch&#xA;@author  Arthur van Hoff&#xA;@author  Neal Gafter&#xA;@version 1.63, 02/19/04&#xA;@see     Object#hashCode()&#xA;@see     Collection&#xA;@see&#x9;    Map&#xA;@see&#x9;    TreeMap&#xA;@see&#x9;    Hashtable&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_671366_8869"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313206_982769_7254" name="" parameter="_10_5_622020d_1132928313206_544830_7255 _10_5_622020d_1132928313206_88358_7257">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313206_544830_7255" parameteredElement="_10_5_622020d_1132928313206_235255_7256">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313206_235255_7256" name="K" templateParameter="_10_5_622020d_1132928313206_544830_7255"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313206_88358_7257" parameteredElement="_10_5_622020d_1132928313206_176170_7258">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313206_176170_7258" name="V" templateParameter="_10_5_622020d_1132928313206_88358_7257"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322560_33174_14943" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_696408_14940" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_671366_8869" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_776409_14941" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_671366_8869" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_713821_14942" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_671366_8869" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_885040_19502" name="Entry" visibility="package" clientDependency="_10_5_622020d_1132928322560_729046_14944">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313206_360731_7259" name="" parameter="_10_5_622020d_1132928313206_624355_7260 _10_5_622020d_1132928313206_131615_7262">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313206_624355_7260" parameteredElement="_10_5_622020d_1132928313206_605223_7261">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313206_605223_7261" name="K" templateParameter="_10_5_622020d_1132928313206_624355_7260"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313206_131615_7262" parameteredElement="_10_5_622020d_1132928313206_30374_7263">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313206_30374_7263" name="V" templateParameter="_10_5_622020d_1132928313206_131615_7262"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322560_729046_14944" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547862_885040_19502" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_524047_19504" name="HashIterator" visibility="private" clientDependency="_10_5_622020d_1132928322560_404334_14945" isAbstract="true">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313206_456184_7264" name="" parameter="_10_5_622020d_1132928313206_388419_7265">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313206_388419_7265" parameteredElement="_10_5_622020d_1132928313206_734668_7266">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313206_734668_7266" name="E" templateParameter="_10_5_622020d_1132928313206_388419_7265"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322560_404334_14945" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_9_5_f720368_1110473547862_524047_19504" contract="_10_5_622020d_1132928321989_283025_14359"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_843877_19505" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_455028_14949" isSubstitutable="true" general="_10_5_622020d_1132928322560_549296_14946"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_257249_19506" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_212257_14953" isSubstitutable="true" general="_10_5_622020d_1132928322570_168554_14950"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_870099_19507" name="EntryIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_524349_14957" isSubstitutable="true" general="_10_5_622020d_1132928322570_511185_14954"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_105879_19508" name="KeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_358860_14958" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_629710_19509" name="Values" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_959140_14959" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_455158_19510" name="EntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_389230_14960" isSubstitutable="true" general="_9_5_f720368_1110473546706_136303_8831"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_542268_7325" name="InvalidPropertiesFormatException">
            <ownedComment xmi:id="_10_5_622020d_1132928313266_443692_7327" body="Thrown to indicate that an operation could not complete because&#xA;the input did not conform to the appropriate XML document type&#xA;for a collection of properties, as per the {@link Properties}&#xA;specification.&lt;p>&#xA;&#xA;Note, that although InvalidPropertiesFormatException inherits Serializable&#xA;interface from Exception, it is not intended to be Serializable. Appropriate&#xA;serialization methods are implemented to throw NotSerializableException.&#xA;&#xA;@version 1.3 03/12/19&#xA;@see     Properties&#xA;@since   1.5&#xA;@serial exclude&#xA;" annotatedElement="_10_5_622020d_1132928313266_542268_7325"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_685264_15018" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313337_915411_7399" name="MissingFormatArgumentException">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_521091_7401" body="Unchecked exception thrown when there is a format specifier which does not&#xA;have a corresponding argument or if an argument index refers to an argument&#xA;that does not exist.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313337_915411_7399"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_273532_15069" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322620_276390_15076" name="Hashtable&lt;Object, Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322620_394853_15077" signature="_10_5_622020d_1132928313216_710850_7274">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322620_453044_15078" formal="_10_5_622020d_1132928313216_168704_7275" actual="_9_5_f720368_1110473546612_117118_7661"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322620_269795_15079" formal="_10_5_622020d_1132928313216_743814_7277" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322490_426362_14789" name="UnmodifiableMap&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322500_564399_14790" signature="_10_5_622020d_1132928310893_645442_7020">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322500_710585_14791" formal="_10_5_622020d_1132928310893_855730_7021" actual="_10_5_622020d_1132928310893_287875_7040"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322500_448629_14792" formal="_10_5_622020d_1132928310893_148047_7023" actual="_10_5_622020d_1132928310893_238470_7042"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_904211_7237" name="Formatter" clientDependency="_10_5_622020d_1132928322560_408353_14935 _10_5_622020d_1132928322560_550236_14934" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313166_399799_7248" body="An interpreter for printf-style format strings.  This class provides support&#xA;for layout justification and alignment, common formats for numeric, string,&#xA;and date/time data, and locale-specific output.  Common Java types such as&#xA;&lt;tt>byte&lt;/tt>, {@link java.math.BigDecimal BigDecimal}, and {@link Calendar}&#xA;are supported.  Limited formatting customization for arbitrary user types is&#xA;provided through the {@link Formattable} interface.&#xA;&#xA;&lt;p> Formatters are not necessarily safe for multithreaded access.  Thread&#xA;safety is optional and is the responsibility of users of methods in this&#xA;class.&#xA;&#xA;&lt;p> Formatted printing for the Java language is heavily inspired by C's&#xA;&lt;tt>printf&lt;/tt>.  Although the format strings are similar to C, some&#xA;customizations have been made to accommodate the Java language and exploit&#xA;some of its features.  Also, Java formatting is more strict than C's; for&#xA;example, if a conversion is incompatible with a flag, an exception will be&#xA;thrown.  In C inapplicable flags are silently ignored.  The format strings&#xA;are thus intended to be recognizable to C programmers but not necessarily&#xA;completely compatible with those in C.&#xA;&#xA;&lt;p> Examples of expected usage:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;StringBuilder sb = new StringBuilder();&#xA;Send all output to the Appendable object sb&#xA;Formatter formatter = new Formatter(sb, Locale.US);&#xA;&#xA;Explicit argument indices may be used to re-order output.&#xA;formatter.format(&quot;%4$2s %3$2s %2$2s %1$2s&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;)&#xA;-> &quot; d  c  b  a&quot;&#xA;&#xA;Optional locale as the first argument can be used to get&#xA;locale-specific formatting of numbers.  The precision and width can be&#xA;given to round and align the value.&#xA;formatter.format(Locale.FRANCE, &quot;e = %+10.4f&quot;, Math.E);&#xA;-> &quot;e =    +2,7183&quot;&#xA;&#xA;The '(' numeric flag may be used to format negative numbers with&#xA;parentheses rather than a minus sign.  Group separators are&#xA;automatically inserted.&#xA;formatter.format(&quot;Amount gained or lost since last statement: $ %(,.2f&quot;,&#xA;balanceDelta);&#xA;-> &quot;Amount gained or lost since last statement: $ (6,217.58)&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> Convenience methods for common formatting requests exist as illustrated&#xA;by the following invocations:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Writes a formatted string to System.out.&#xA;System.out.format(&quot;Local time: %tT&quot;, Calendar.getInstance());&#xA;-> &quot;Local time: 13:34:18&quot;&#xA;&#xA;Writes formatted output to System.err.&#xA;System.err.printf(&quot;Unable to open file '%1$s': %2$s&quot;,&#xA;fileName, exception.getMessage());&#xA;-> &quot;Unable to open file 'food': No such file or directory&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> Like C's &lt;tt>sprintf(3)&lt;/tt>, Strings may be formatted using the static&#xA;method {@link String#format(String,Object...) String.format}:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Format a string containing a date.&#xA;import java.util.Calendar;&#xA;import java.util.GregorianCalendar;&#xA;import static java.util.Calendar.*;&#xA;&#xA;Calendar c = new GregorianCalendar(1995, MAY, 23);&#xA;String s = String.format(&quot;Duke's Birthday: %1$tm %1$te,%1$tY&quot;, c);&#xA;-> s == &quot;Duke's Birthday: May 23, 1995&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;a name=&quot;org&quot;>&lt;h3> Organization &lt;/h3>&lt;/a>&#xA;&#xA;&lt;p> This specification is divided into two sections.  The first section, &lt;a&#xA;href=&quot;#summary&quot;>Summary&lt;/a>, covers the basic formatting concepts.  This&#xA;section is intended for users who want to get started quickly and are&#xA;familiar with formatted printing in other programming languages.  The second&#xA;section, &lt;a href=&quot;#detail&quot;>Details&lt;/a>, covers the specific implementation&#xA;details.  It is intended for users who want more precise specification of&#xA;formatting behavior.&#xA;&#xA;&lt;a name=&quot;summary&quot;>&lt;h3> Summary &lt;/h3>&lt;/a>&#xA;&#xA;&lt;p> This section is intended to provide a brief overview of formatting&#xA;concepts.  For precise behavioral details, refer to the &lt;a&#xA;href=&quot;#detail&quot;>Details&lt;/a> section.&#xA;&#xA;&lt;a name=&quot;syntax&quot;>&lt;h4> Format String Syntax &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> Every method which produces formatted output requires a &lt;i>format&#xA;string&lt;/i> and an &lt;i>argument list&lt;/i>.  The format string is a {@link&#xA;String} which may contain fixed text and one or more embedded &lt;i>format&#xA;specifiers&lt;/i>.  Consider the following example:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Calendar c = ...;&#xA;String s = String.format(&quot;Duke's Birthday: %1$tm %1$te,%1$tY&quot;, c);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;This format string is the first argument to the &lt;tt>format&lt;/tt> method.  It&#xA;contains three format specifiers &quot;&lt;tt>%1$tm&lt;/tt>&quot;, &quot;&lt;tt>%1$te&lt;/tt>&quot;, and&#xA;&quot;&lt;tt>%1$tY&lt;/tt>&quot; which indicate how the arguments should be processed and&#xA;where they should be inserted in the text.  The remaining portions of the&#xA;format string are fixed text including &lt;tt>&quot;Dukes Birthday: &quot;&lt;/tt> and any&#xA;other spaces or punctuation.&#xA;&#xA;The argument list consists of all arguments passed to the method after the&#xA;format string.  In the above example, the argument list is of size one and&#xA;consists of the new {@link java.util.Calendar Calendar} object.&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> The format specifiers for general, character, and numeric types have&#xA;the following syntax:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;%[argument_index$][flags][width][.precision]conversion&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The optional &lt;i>argument_index&lt;/i> is a decimal integer indicating the&#xA;position of the argument in the argument list.  The first argument is&#xA;referenced by &quot;&lt;tt>1$&lt;/tt>&quot;, the second by &quot;&lt;tt>2$&lt;/tt>&quot;, etc.&#xA;&#xA;&lt;p> The optional &lt;i>flags&lt;/i> is a set of characters that modify the output&#xA;format.  The set of valid flags depends on the conversion.&#xA;&#xA;&lt;p> The optional &lt;i>width&lt;/i> is a non-negative decimal integer indicating&#xA;the minimum number of characters to be written to the output.&#xA;&#xA;&lt;p> The optional &lt;i>precision&lt;/i> is a non-negative decimal integer usually&#xA;used to restrict the number of characters.  The specific behavior depends on&#xA;the conversion.&#xA;&#xA;&lt;p> The required &lt;i>conversion&lt;/i> is a character indicating how the&#xA;argument should be formatted.  The set of valid conversions for a given&#xA;argument depends on the argument's data type.&#xA;&#xA;&lt;li> The format specifiers for types which are used to represents dates and&#xA;times have the following syntax:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;%[argument_index$][flags][width]conversion&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The optional &lt;i>argument_index&lt;/i>, &lt;i>flags&lt;/i> and &lt;i>width&lt;/i> are&#xA;defined as above.&#xA;&#xA;&lt;p> The required &lt;i>conversion&lt;/i> is a two character sequence.  The first&#xA;character is &lt;tt>'t'&lt;/tt> or &lt;tt>'T'&lt;/tt>.  The second character indicates&#xA;the format to be used.  These characters are similar to but not completely&#xA;identical to those defined by GNU &lt;tt>date&lt;/tt> and POSIX&#xA;&lt;tt>strftime(3c)&lt;/tt>.&#xA;&#xA;&lt;li> The format specifiers which do not correspond to arguments have the&#xA;following syntax:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;%[flags][width]conversion&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The optional &lt;i>flags&lt;/i> and &lt;i>width&lt;/i> is defined as above.&#xA;&#xA;&lt;p> The required &lt;i>conversion&lt;/i> is a character indicating content to be&#xA;inserted in the output.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;h4> Conversions &lt;/h4>&#xA;&#xA;&lt;p> Conversions are divided into the following categories:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li> &lt;b>General&lt;/b> - may be applied to any argument&#xA;type&#xA;&#xA;&lt;li> &lt;b>Character&lt;/b> - may be applied to basic types which represent&#xA;Unicode characters: &lt;tt>char&lt;/tt>, {@link Character}, &lt;tt>byte&lt;/tt>, {@link&#xA;Byte}, &lt;tt>short&lt;/tt>, and {@link Short}. This conversion may also be&#xA;applied to the types &lt;tt>int&lt;/tt> and {@link Integer} when {@link&#xA;Character#isValidCodePoint} returns &lt;tt>true&lt;/tt>&#xA;&#xA;&lt;li> &lt;b>Numeric&lt;/b>&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li> &lt;b>Integral&lt;/b> - may be applied to Java integral types: &lt;tt>byte&lt;/tt>,&#xA;{@link Byte}, &lt;tt>short&lt;/tt>, {@link Short}, &lt;tt>int&lt;/tt> and {@link&#xA;Integer}, &lt;tt>long&lt;/tt>, {@link Long}, and {@link java.math.BigInteger&#xA;BigInteger}&#xA;&#xA;&lt;li>&lt;b>Floating Point&lt;/b> - may be applied to Java floating-point types:&#xA;&lt;tt>float&lt;/tt>, {@link Float}, &lt;tt>double&lt;/tt>, {@link Double}, and {@link&#xA;java.math.BigDecimal BigDecimal}&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;li> &lt;b>Date/Time&lt;/b> - may be applied to Java types which are capable of&#xA;encoding a date or time: &lt;tt>long&lt;/tt>, {@link Long}, {@link Calendar}, and&#xA;{@link Date}.&#xA;&#xA;&lt;li> &lt;b>Percent&lt;/b> - produces a literal &lt;tt>'%'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0025'&lt;/tt>)&#xA;&#xA;&lt;li> &lt;b>Line Separator&lt;/b> - produces the platform-specific line separator&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p> The following table summarizes the supported conversions.  Conversions&#xA;denoted by an upper-case character (i.e. &lt;tt>'B'&lt;/tt>, &lt;tt>'H'&lt;/tt>,&#xA;&lt;tt>'S'&lt;/tt>, &lt;tt>'C'&lt;/tt>, &lt;tt>'X'&lt;/tt>, &lt;tt>'E'&lt;/tt>, &lt;tt>'G'&lt;/tt>,&#xA;&lt;tt>'A'&lt;/tt>, and &lt;tt>'T'&lt;/tt>) are the same as those for the corresponding&#xA;lower-case conversion characters except that the result is converted to&#xA;upper case according to the rules of the prevailing {@link java.util.Locale&#xA;Locale}.  The result is equivalent to the following invocation of {@link&#xA;String#toUpperCase()}&#xA;&#xA;&lt;pre>&#xA;out.toUpperCase() &lt;/pre>&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;genConv&quot;>&#xA;&#xA;&lt;tr>&lt;th valign=&quot;bottom&quot;> Conversion&#xA;&lt;th valign=&quot;bottom&quot;> Argument Category&#xA;&lt;th valign=&quot;bottom&quot;> Description&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'b'&lt;/tt>, &lt;tt>'B'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> general&#xA;&lt;td> If the argument &lt;i>arg&lt;/i> is &lt;tt>null&lt;/tt>, then the result is&#xA;&quot;&lt;tt>false&lt;/tt>&quot;.  If &lt;i>arg&lt;/i> is a &lt;tt>boolean&lt;/tt> or {@link&#xA;Boolean}, then the result is the string returned by {@link&#xA;String#valueOf(boolean) String.valueOf()}.  Otherwise, the result is&#xA;&quot;true&quot;.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'h'&lt;/tt>, &lt;tt>'H'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> general&#xA;&lt;td> If the argument &lt;i>arg&lt;/i> is &lt;tt>null&lt;/tt>, then the result is&#xA;&quot;&lt;tt>null&lt;/tt>&quot;.  Otherwise, the result is obtained by invoking&#xA;&lt;tt>Integer.toHexString(arg.hashCode())&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'s'&lt;/tt>, &lt;tt>'S'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> general&#xA;&lt;td> If the argument &lt;i>arg&lt;/i> is &lt;tt>null&lt;/tt>, then the result is&#xA;&quot;&lt;tt>null&lt;/tt>&quot;.  If &lt;i>arg&lt;/i> implements {@link Formattable}, then&#xA;{@link Formattable#formatTo arg.formatTo} is invoked. Otherwise, the&#xA;result is obtained by invoking &lt;tt>arg.toString()&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'c'&lt;/tt>, &lt;tt>'C'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> character&#xA;&lt;td> The result is a Unicode character&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'d'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> integral&#xA;&lt;td> The result is formatted as a decimal integer&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'o'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> integral&#xA;&lt;td> The result is formatted as an octal integer&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'x'&lt;/tt>, &lt;tt>'X'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> integral&#xA;&lt;td> The result is formatted as a hexadecimal integer&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'e'&lt;/tt>, &lt;tt>'E'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> floating point&#xA;&lt;td> The result is formatted as a decimal number in computerized&#xA;scientific notation&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'f'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> floating point&#xA;&lt;td> The result is formatted as a decimal number&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'g'&lt;/tt>, &lt;tt>'G'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> floating point&#xA;&lt;td> The result is formatted using computerized scientific notation or&#xA;decimal format, depending on the precision and the value after rounding.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'a'&lt;/tt>, &lt;tt>'A'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> floating point&#xA;&lt;td> The result is formatted as a hexadecimal floating-point number with&#xA;a significand and an exponent&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'t'&lt;/tt>, &lt;tt>'T'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> date/time&#xA;&lt;td> Prefix for date and time conversion characters.  See &lt;a&#xA;href=&quot;#dt&quot;>Date/Time Conversions&lt;/a>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'%'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> percent&#xA;&lt;td> The result is a literal &lt;tt>'%'&lt;/tt> (&lt;tt>'&amp;#92;u0025'&lt;/tt>)&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'n'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> line separator&#xA;&lt;td> The result is the platform-specific line separator&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> Any characters not explicitly defined as conversions are illegal and are&#xA;reserved for future extensions.&#xA;&#xA;&lt;a name=&quot;dt&quot;>&lt;h4> Date/Time Conversions &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> The following date and time conversion suffix characters are defined for&#xA;the &lt;tt>'t'&lt;/tt> and &lt;tt>'T'&lt;/tt> conversions.  The types are similar to but&#xA;not completely identical to those defined by GNU &lt;tt>date&lt;/tt> and POSIX&#xA;&lt;tt>strftime(3c)&lt;/tt>.  Additional conversion types are provided to access&#xA;Java-specific functionality (e.g. &lt;tt>'L'&lt;/tt> for milliseconds within the&#xA;second).&#xA;&#xA;&lt;p> The following conversion characters are used for formatting times:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;time&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'H'&lt;/tt>&#xA;&lt;td> Hour of the day for the 24-hour clock, formatted as two digits with&#xA;a leading zero as necessary i.e. &lt;tt>00 - 23&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'I'&lt;/tt>&#xA;&lt;td> Hour for the 12-hour clock, formatted as two digits with a leading&#xA;zero as necessary, i.e.  &lt;tt>01 - 12&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'k'&lt;/tt>&#xA;&lt;td> Hour of the day for the 24-hour clock, i.e. &lt;tt>0 - 23&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'l'&lt;/tt>&#xA;&lt;td> Hour for the 12-hour clock, i.e. &lt;tt>1 - 12&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'M'&lt;/tt>&#xA;&lt;td> Minute within the hour formatted as two digits with a leading zero&#xA;as necessary, i.e.  &lt;tt>00 - 59&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'S'&lt;/tt>&#xA;&lt;td> Seconds within the minute, formatted as two digits with a leading&#xA;zero as necessary, i.e. &lt;tt>00 - 60&lt;/tt> (&quot;&lt;tt>60&lt;/tt>&quot; is a special&#xA;value required to support leap seconds).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'L'&lt;/tt>&#xA;&lt;td> Millisecond within the second formatted as three digits with&#xA;leading zeros as necessary, i.e. &lt;tt>000 - 999&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'N'&lt;/tt>&#xA;&lt;td> Nanosecond within the second, formatted as nine digits with leading&#xA;zeros as necessary, i.e. &lt;tt>000000000 - 999999999&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'p'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain&#xA;java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker&#xA;in lower case, e.g.&quot;&lt;tt>am&lt;/tt>&quot; or &quot;&lt;tt>pm&lt;/tt>&quot;. Use of the conversion&#xA;prefix &lt;tt>'T'&lt;/tt> forces this output to upper case.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'z'&lt;/tt>&#xA;&lt;td> &lt;a href=&quot;http://www.ietf.org/rfc/rfc0822.txt&quot;>RFC&amp;nbsp;822&lt;/a>&#xA;style numeric time zone offset from GMT, e.g. &lt;tt>-0800&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Z'&lt;/tt>&#xA;&lt;td> A string representing the abbreviation for the time zone.  The&#xA;Formatter's locale will supersede the locale of the argument (if any).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'s'&lt;/tt>&#xA;&lt;td> Seconds since the beginning of the epoch starting at 1 January 1970&#xA;&lt;tt>00:00:00&lt;/tt> UTC, i.e. &lt;tt>Long.MIN_VALUE/1000&lt;/tt> to&#xA;&lt;tt>Long.MAX_VALUE/1000&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Q'&lt;/tt>&#xA;&lt;td> Milliseconds since the beginning of the epoch starting at 1 January&#xA;1970 &lt;tt>00:00:00&lt;/tt> UTC, i.e. &lt;tt>Long.MIN_VALUE&lt;/tt> to&#xA;&lt;tt>Long.MAX_VALUE&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following conversion characters are used for formatting dates:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;date&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'B'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths&#xA;full month name}, e.g. &lt;tt>&quot;January&quot;&lt;/tt>, &lt;tt>&quot;February&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'b'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain&#xA;java.text.DateFormatSymbols#getShortMonths abbreviated month name},&#xA;e.g. &lt;tt>&quot;Jan&quot;&lt;/tt>, &lt;tt>&quot;Feb&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'h'&lt;/tt>&#xA;&lt;td> Same as &lt;tt>'b'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'A'&lt;/tt>&#xA;&lt;td> Locale-specific full name of the {@linkplain&#xA;java.text.DateFormatSymbols#getWeekdays day of the week},&#xA;e.g. &lt;tt>&quot;Sunday&quot;&lt;/tt>, &lt;tt>&quot;Monday&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'a'&lt;/tt>&#xA;&lt;td> Locale-specific short name of the {@linkplain&#xA;java.text.DateFormatSymbols#getShortWeekdays day of the week},&#xA;e.g. &lt;tt>&quot;Sun&quot;&lt;/tt>, &lt;tt>&quot;Mon&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'C'&lt;/tt>&#xA;&lt;td> Four-digit year divided by &lt;tt>100&lt;/tt>, formatted as two digits&#xA;with leading zero as necessary, i.e. &lt;tt>00 - 99&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Y'&lt;/tt>&#xA;&lt;td> Year, formatted as at least four digits with leading zeros as&#xA;necessary, e.g. &lt;tt>0092&lt;/tt> equals &lt;tt>92&lt;/tt> CE for the Gregorian&#xA;calendar.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'y'&lt;/tt>&#xA;&lt;td> Last two digits of the year, formatted with leading zeros as&#xA;necessary, i.e. &lt;tt>00 - 99&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'j'&lt;/tt>&#xA;&lt;td> Day of year, formatted as three digits with leading zeros as&#xA;necessary, e.g. &lt;tt>001 - 366&lt;/tt> for the Gregorian calendar.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'m'&lt;/tt>&#xA;&lt;td> Month, formatted as two digits with leading zeros as necessary,&#xA;i.e. &lt;tt>01 - 13&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'d'&lt;/tt>&#xA;&lt;td> Day of month, formatted as two digits with leading zeros as&#xA;necessary, i.e. &lt;tt>01 - 31&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'e'&lt;/tt>&#xA;&lt;td> Day of month, formatted as two digits, i.e. &lt;tt>1 - 31&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following conversion characters are used for formatting common&#xA;date/time compositions.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;composites&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'R'&lt;/tt>&#xA;&lt;td> Time formatted for the 24-hour clock as &lt;tt>&quot;%tH:%tM&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'T'&lt;/tt>&#xA;&lt;td> Time formatted for the 24-hour clock as &lt;tt>&quot;%tH:%tM:%tS&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'r'&lt;/tt>&#xA;&lt;td> Time formatted for the 12-hour clock as &lt;tt>&quot;%tI:%tM:%tS %Tp&quot;&lt;/tt>.&#xA;The location of the morning or afternoon marker (&lt;tt>'%Tp'&lt;/tt>) may be&#xA;locale-dependent.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'D'&lt;/tt>&#xA;&lt;td> Date formatted as &lt;tt>&quot;%tm/%td/%ty&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'F'&lt;/tt>&#xA;&lt;td> &lt;a href=&quot;http://www.w3.org/TR/NOTE-datetime&quot;>ISO&amp;nbsp;8601&lt;/a>&#xA;complete date formatted as &lt;tt>&quot;%tY-%tm-%td&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'c'&lt;/tt>&#xA;&lt;td> Date and time formatted as &lt;tt>&quot;%ta %tb %td %tT %tZ %tY&quot;&lt;/tt>,&#xA;e.g. &lt;tt>&quot;Sun Jul 20 16:17:00 EDT 1969&quot;&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> Any characters not explicitly defined as date/time conversion suffixes&#xA;are illegal and are reserved for future extensions.&#xA;&#xA;&lt;h4> Flags &lt;/h4>&#xA;&#xA;&lt;p> The following table summarizes the supported flags.  &lt;i>y&lt;/i> means the&#xA;flag is supported for the indicated argument types.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;genConv&quot;>&#xA;&#xA;&lt;tr>&lt;th valign=&quot;bottom&quot;> Flag &lt;th valign=&quot;bottom&quot;> General&#xA;&lt;th valign=&quot;bottom&quot;> Character &lt;th valign=&quot;bottom&quot;> Integral&#xA;&lt;th valign=&quot;bottom&quot;> Floating Point&#xA;&lt;th valign=&quot;bottom&quot;> Date/Time&#xA;&lt;th valign=&quot;bottom&quot;> Description&#xA;&#xA;&lt;tr>&lt;td> '-' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td> The result will be left-justified.&#xA;&#xA;&lt;tr>&lt;td> '#' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>1&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>3&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td> The result should use a conversion-dependent alternate form&#xA;&#xA;&lt;tr>&lt;td> '+' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>4&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td> The result will always include a sign&#xA;&#xA;&lt;tr>&lt;td> '&amp;nbsp;&amp;nbsp;' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>4&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td> The result will include a leading space for positive values&#xA;&#xA;&lt;tr>&lt;td> '0' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td> The result will be zero-padded&#xA;&#xA;&lt;tr>&lt;td> ',' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>2&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>5&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td> The result will include locale-specific {@linkplain&#xA;java.text.DecimalFormatSymbols#getGroupingSeparator grouping separators}&#xA;&#xA;&lt;tr>&lt;td> '(' &lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> -&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>4&lt;/sup>&#xA;&lt;td align=&quot;center&quot; valign=&quot;top&quot;> y&lt;sup>5&lt;/sup>&#xA;&lt;td align=&quot;center&quot;> -&#xA;&lt;td> The result will enclose negative numbers in parentheses&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> &lt;sup>1&lt;/sup> Depends on the definition of {@link Formattable}.&#xA;&#xA;&lt;p> &lt;sup>2&lt;/sup> For &lt;tt>'d'&lt;/tt> conversion only.&#xA;&#xA;&lt;p> &lt;sup>3&lt;/sup> For &lt;tt>'o'&lt;/tt>, &lt;tt>'x'&lt;/tt>, and &lt;tt>'X'&lt;/tt>&#xA;conversions only.&#xA;&#xA;&lt;p> &lt;sup>4&lt;/sup> For &lt;tt>'d'&lt;/tt>, &lt;tt>'o'&lt;/tt>, &lt;tt>'x'&lt;/tt>, and&#xA;&lt;tt>'X'&lt;/tt> conversions applied to {@link java.math.BigInteger BigInteger}&#xA;or &lt;tt>'d'&lt;/tt> applied to &lt;tt>byte&lt;/tt>, {@link Byte}, &lt;tt>short&lt;/tt>, {@link&#xA;Short}, &lt;tt>int&lt;/tt> and {@link Integer}, &lt;tt>long&lt;/tt>, and {@link Long}.&#xA;&#xA;&lt;p> &lt;sup>5&lt;/sup> For &lt;tt>'e'&lt;/tt>, &lt;tt>'E'&lt;/tt>, &lt;tt>'f'&lt;/tt>,&#xA;&lt;tt>'g'&lt;/tt>, and &lt;tt>'G'&lt;/tt> conversions only.&#xA;&#xA;&lt;p> Any characters not explicitly defined as flags are illegal and are&#xA;reserved for future extensions.&#xA;&#xA;&lt;h4> Width &lt;/h4>&#xA;&#xA;&lt;p> The width is the minimum number of characters to be written to the&#xA;output.  For the line separator conversion, width is not applicable; if it&#xA;is provided, an exception will be thrown.&#xA;&#xA;&lt;h4> Precision &lt;/h4>&#xA;&#xA;&lt;p> For general argument types, the precision is the maximum number of&#xA;characters to be written to the output.&#xA;&#xA;&lt;p> For the floating-point conversions &lt;tt>'e'&lt;/tt>, &lt;tt>'E'&lt;/tt>, and&#xA;&lt;tt>'f'&lt;/tt> the precision is the number of digits after the decimal&#xA;separator.  If the conversion is &lt;tt>'g'&lt;/tt> or &lt;tt>'G'&lt;/tt>, then the&#xA;precision is the total number of digits in the resulting magnitude after&#xA;rounding.  If the conversion is &lt;tt>'a'&lt;/tt> or &lt;tt>'A'&lt;/tt>, then the&#xA;precision must not be specified.&#xA;&#xA;&lt;p> For character, integral, and date/time argument types and the percent&#xA;and line separator conversions, the precision is not applicable; if a&#xA;precision is provided, an exception will be thrown.&#xA;&#xA;&lt;h4> Argument Index &lt;/h4>&#xA;&#xA;&lt;p> The argument index is a decimal integer indicating the position of the&#xA;argument in the argument list.  The first argument is referenced by&#xA;&quot;&lt;tt>1$&lt;/tt>&quot;, the second by &quot;&lt;tt>2$&lt;/tt>&quot;, etc.&#xA;&#xA;&lt;p> Another way to reference arguments by position is to use the&#xA;&lt;tt>'&lt;'&lt;/tt> (&lt;tt>'&amp;#92;u003c'&lt;/tt>) flag, which causes the argument for the&#xA;previous format specifier to be re-used.  For example, the following two&#xA;statements would produce identical strings:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Calendar c = ...;&#xA;String s1 = String.format(&quot;Duke's Birthday: %1$tm %1$te,%1$tY&quot;, c);&#xA;&#xA;String s2 = String.format(&quot;Duke's Birthday: %1$tm %&lt;$te,%&lt;$tY&quot;, c);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;hr>&#xA;&lt;a name=&quot;detail&quot;>&lt;h3> Details &lt;/h3>&lt;/a>&#xA;&#xA;&lt;p> This section is intended to provide behavioral details for formatting,&#xA;including conditions and exceptions, supported data types, localization, and&#xA;interactions between flags, conversions, and data types.  For an overview of&#xA;formatting concepts, refer to the &lt;a href=&quot;#summary&quot;>Summary&lt;/a>&#xA;&#xA;&lt;p> Any characters not explicitly defined as conversions, date/time&#xA;conversion suffixes, or flags are illegal and are reserved for&#xA;future extensions.  Use of such a character in a format string will&#xA;cause an {@link UnknownFormatConversionException} or {@link&#xA;UnknownFormatFlagsException} to be thrown.&#xA;&#xA;&lt;p> If the format specifier contains a width or precision with an invalid&#xA;value or which is otherwise unsupported, then a {@link&#xA;IllegalFormatWidthException} or {@link IllegalFormatPrecisionException}&#xA;respectively will be thrown.&#xA;&#xA;&lt;p> If a format specifier contains a conversion character that is not&#xA;applicable to the corresponding argument, then an {@link&#xA;IllegalFormatConversionException} will be thrown.&#xA;&#xA;&lt;p> All specified exceptions may be thrown by any of the &lt;tt>format&lt;/tt>&#xA;methods of &lt;tt>Formatter&lt;/tt> as well as by any &lt;tt>format&lt;/tt> convenience&#xA;methods such as {@link String#format(String,Object...) String.format} and&#xA;{@link java.io.PrintStream#printf(String,Object...) PrintStream.printf}.&#xA;&#xA;&lt;p> Conversions denoted by an upper-case character (i.e. &lt;tt>'B'&lt;/tt>,&#xA;&lt;tt>'H'&lt;/tt>, &lt;tt>'S'&lt;/tt>, &lt;tt>'C'&lt;/tt>, &lt;tt>'X'&lt;/tt>, &lt;tt>'E'&lt;/tt>,&#xA;&lt;tt>'G'&lt;/tt>, &lt;tt>'A'&lt;/tt>, and &lt;tt>'T'&lt;/tt>) are the same as those for the&#xA;corresponding lower-case conversion characters except that the result is&#xA;converted to upper case according to the rules of the prevailing {@link&#xA;java.util.Locale Locale}.  The result is equivalent to the following&#xA;invocation of {@link String#toUpperCase()}&#xA;&#xA;&lt;pre>&#xA;out.toUpperCase() &lt;/pre>&#xA;&#xA;&lt;a name=&quot;dgen&quot;>&lt;h4> General &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> The following general conversions may be applied to any argument type:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;dgConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'b'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0062'&lt;/tt>&#xA;&lt;td> Produces either &quot;&lt;tt>true&lt;/tt>&quot; or &quot;&lt;tt>false&lt;/tt>&quot; as returned by&#xA;{@link Boolean#toString(boolean)}.&#xA;&#xA;&lt;p> If the argument is &lt;tt>null&lt;/tt>, then the result is&#xA;&quot;&lt;tt>false&lt;/tt>&quot;.  If the argument is a &lt;tt>boolean&lt;/tt> or {@link&#xA;Boolean}, then the result is the string returned by {@link&#xA;String#valueOf(boolean) String.valueOf()}.  Otherwise, the result is&#xA;&quot;&lt;tt>true&lt;/tt>&quot;.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'B'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0042'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'b'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'h'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0068'&lt;/tt>&#xA;&lt;td> Produces a string representing the hash code value of the object.&#xA;&#xA;&lt;p> If the argument, &lt;i>arg&lt;/i> is &lt;tt>null&lt;/tt>, then the&#xA;result is &quot;&lt;tt>null&lt;/tt>&quot;.  Otherwise, the result is obtained&#xA;by invoking &lt;tt>Integer.toHexString(arg.hashCode())&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'H'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0048'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'h'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'s'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0073'&lt;/tt>&#xA;&lt;td> Produces a string.&#xA;&#xA;&lt;p> If the argument is &lt;tt>null&lt;/tt>, then the result is&#xA;&quot;&lt;tt>null&lt;/tt>&quot;.  If the argument implements {@link Formattable}, then&#xA;its {@link Formattable#formatTo formatTo} method is invoked.&#xA;Otherwise, the result is obtained by invoking the argument's&#xA;&lt;tt>toString()&lt;/tt> method.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given and the argument is not a {@link&#xA;Formattable} , then a {@link FormatFlagsConversionMismatchException}&#xA;will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'S'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0053'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'s'&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following flags apply to general conversions:&#xA;&#xA;&lt;a name=&quot;dFlags&quot;>&lt;table cellpadding=5 summary=&quot;dFlags&quot;>&lt;/a>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'-'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u002d'&lt;/tt>&#xA;&lt;td> Left justifies the output.  Spaces (&lt;tt>'&amp;#92;u0020'&lt;/tt>) will be&#xA;added at the end of the converted value as required to fill the minimum&#xA;width of the field.  If the width is not provided, then a {@link&#xA;MissingFormatWidthException} will be thrown.  If this flag is not given&#xA;then the output will be right-justified.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'#'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0023'&lt;/tt>&#xA;&lt;td> Requires the output use an alternate form.  The definition of the&#xA;form is specified by the conversion.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;a name=&quot;genWidth&quot;>&lt;/a>&#xA;&#xA;&lt;p> The width is the minimum number of characters to be written to the&#xA;output.  If the length of the converted value is less than the width then&#xA;the output will be padded by &lt;tt>'&amp;nbsp;&amp;nbsp;'&lt;/tt> (&lt;tt>&amp;#92;u0020'&lt;/tt>)&#xA;until the total number of characters equals the width.  The padding is on&#xA;the left by default.  If the &lt;tt>'-'&lt;/tt> flag is given, then the padding&#xA;will be on the right.  If the width is not specified then there is no&#xA;minimum.&#xA;&#xA;&lt;p> The precision is the maximum number of characters to be written to the&#xA;output.  The precision is applied before the width, thus the output will be&#xA;truncated to &lt;tt>precision&lt;/tt> characters even if the width is greater than&#xA;the precision.  If the precision is not specified then there is no explicit&#xA;limit on the number of characters.&#xA;&#xA;&lt;a name=&quot;dchar&quot;>&lt;h4> Character &lt;/h4>&lt;/a>&#xA;&#xA;This conversion may be applied to &lt;tt>char&lt;/tt>, {@link Character},&#xA;&lt;tt>byte&lt;/tt>, {@link Byte}, &lt;tt>short&lt;/tt>, and {@link Short}. This&#xA;conversion may also be applied to the types &lt;tt>int&lt;/tt> and {@link Integer}&#xA;when {@link Character#isValidCodePoint} returns &lt;tt>true&lt;/tt>.  If it&#xA;returns &lt;tt>false&lt;/tt> then an {@link IllegalFormatCodePointException} will&#xA;be thrown.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;charConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'c'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0063'&lt;/tt>&#xA;&lt;td> Formats the argument as a Unicode character as described in &lt;a&#xA;href=&quot;../lang/Character.html#unicode&quot;>Unicode Character&#xA;Representation&lt;/a>.  This may be more than one 16-bit &lt;tt>char&lt;/tt> in&#xA;the case where the argument represents a supplementary character.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'C'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0043'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'c'&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The &lt;tt>'-'&lt;/tt> flag defined for &lt;a href=&quot;#dFlags&quot;>General&#xA;conversions&lt;/a> applies.  If the &lt;tt>'#'&lt;/tt> flag is given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;p> The width is defined as for &lt;a href=&quot;#genWidth&quot;>General conversions&lt;/a>.&#xA;&#xA;&lt;p> The precision is not applicable.  If the precision is specified then an&#xA;{@link IllegalFormatPrecisionException} will be thrown.&#xA;&#xA;&lt;a name=&quot;dnum&quot;>&lt;h4> Numeric &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> Numeric conversions are divided into the following categories:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li> &lt;a href=&quot;#dnint&quot;>&lt;b>Byte, Short, Integer, and Long&lt;/b>&lt;/a>&#xA;&#xA;&lt;li> &lt;a href=&quot;#dnbint&quot;>&lt;b>BigInteger&lt;/b>&lt;/a>&#xA;&#xA;&lt;li> &lt;a href=&quot;#dndec&quot;>&lt;b>Float and Double&lt;/b>&lt;/a>&#xA;&#xA;&lt;li> &lt;a href=&quot;#dndec&quot;>&lt;b>BigDecimal&lt;/b>&lt;/a>&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p> Numeric types will be formatted according to the following algorithm:&#xA;&#xA;&lt;p>&lt;b>&lt;a name=&quot;l10n algorithm&quot;> Number Localization Algorithm&lt;a>&lt;/b>&#xA;&#xA;&lt;p> After digits are obtained for the integer part, fractional part, and&#xA;exponent (as appropriate for the data type), the following transformation&#xA;is applied:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li> Each digit character &lt;i>d&lt;/i> in the string is replaced by a&#xA;locale-specific digit computed relative to the current locale's&#xA;{@linkplain java.text.DecimalFormatSymbols#getZeroDigit() zero digit}&#xA;&lt;i>z&lt;/i>; that is &lt;i>d&amp;nbsp;-&amp;nbsp;&lt;/i> &lt;tt>'0'&lt;/tt>&#xA;&lt;i>&amp;nbsp;+&amp;nbsp;z&lt;/i>.&#xA;&#xA;&lt;li> If a decimal separator is present, a locale-specific {@linkplain&#xA;java.text.DecimalFormatSymbols#getDecimalSeparator decimal separator} is&#xA;substituted.&#xA;&#xA;&lt;li> &lt;a name=&quot;l10n group&quot;>&lt;/a> If the &lt;tt>','&lt;/tt> (&lt;tt>'&amp;#92;u002c'&lt;/tt>)&#xA;flag is given, then the locale-specific {@linkplain&#xA;java.text.DecimalFormatSymbols#getGroupingSeparator grouping separator} is&#xA;inserted by scanning the integer part of the string from least significant&#xA;to most significant digits and inserting a separator at intervals defined by&#xA;the locale's {@linkplain java.text.DecimalFormat#getGroupingSize() grouping&#xA;size}.&#xA;&#xA;&lt;li> If the &lt;tt>'0'&lt;/tt> flag is given, then the locale-specific {@linkplain&#xA;java.text.DecimalFormatSymbols#getZeroDigit() zero digits} are inserted&#xA;after the sign character, if any, and before the first non-zero digit, until&#xA;the length of the string is equal to the requested field width.&#xA;&#xA;&lt;li> If the value is negative and the &lt;tt>'('&lt;/tt> flag is given, then a&#xA;&lt;tt>'('&lt;/tt> (&lt;tt>'&amp;#92;u0028'&lt;/tt>) is prepended and a &lt;tt>')'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0029'&lt;/tt>) is appended.&#xA;&#xA;&lt;li> If the value is negative (or floating-point negative zero) and&#xA;&lt;tt>'('&lt;/tt> flag is not given, then a &lt;tt>'-'&lt;/tt> (&lt;tt>'&amp;#92;u002d'&lt;/tt>)&#xA;is prepended.&#xA;&#xA;&lt;li> If the &lt;tt>'+'&lt;/tt> flag is given and the value is positive or zero (or&#xA;floating-point positive zero), then a &lt;tt>'+'&lt;/tt> (&lt;tt>'&amp;#92;u002b'&lt;/tt>)&#xA;will be prepended.&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p> If the value is NaN or positive infinity the literal strings &quot;NaN&quot; or&#xA;&quot;Infinity&quot; respectively, will be output.  If the value is negative infinity,&#xA;then the output will be &quot;(Infinity)&quot; if the &lt;tt>'('&lt;/tt> flag is given&#xA;otherwise the output will be &quot;-Infinity&quot;.  These values are not localized.&#xA;&#xA;&lt;p>&lt;a name=&quot;dnint&quot;>&lt;b> Byte, Short, Integer, and Long &lt;/b>&lt;/a>&#xA;&#xA;&lt;p> The following conversions may be applied to &lt;tt>byte&lt;/tt>, {@link Byte},&#xA;&lt;tt>short&lt;/tt>, {@link Short}, &lt;tt>int&lt;/tt> and {@link Integer},&#xA;&lt;tt>long&lt;/tt>, and {@link Long}.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;IntConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'d'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0054'&lt;/tt>&#xA;&lt;td> Formats the argument as a decimal integer. The &lt;a&#xA;href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given and the value is negative, then&#xA;the zero padding will occur after the sign.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'o'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006f'&lt;/tt>&#xA;&lt;td> Formats the argument as an integer in base eight.  No localization&#xA;is applied.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is negative then the result will be an unsigned value&#xA;generated by adding 2&lt;sup>n&lt;/sup> to the value where &lt;tt>n&lt;/tt> is the&#xA;number of bits in the type as returned by the static &lt;tt>SIZE&lt;/tt> field&#xA;in the {@linkplain Byte#SIZE Byte}, {@linkplain Short#SIZE Short},&#xA;{@linkplain Integer#SIZE Integer}, or {@linkplain Long#SIZE Long}&#xA;classes as appropriate.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then the output will always begin&#xA;with the radix indicator &lt;tt>'0'&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given then the output will be padded&#xA;with leading zeros to the field width following any indication of sign.&#xA;&#xA;&lt;p> If &lt;tt>'('&lt;/tt>, &lt;tt>'+'&lt;/tt>, '&amp;nbsp&amp;nbsp;', or &lt;tt>','&lt;/tt> flags&#xA;are given then a {@link FormatFlagsConversionMismatchException} will be&#xA;thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'x'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0078'&lt;/tt>&#xA;&lt;td> Formats the argument as an integer in base sixteen. No&#xA;localization is applied.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is negative then the result will be an unsigned value&#xA;generated by adding 2&lt;sup>n&lt;/sup> to the value where &lt;tt>n&lt;/tt> is the&#xA;number of bits in the type as returned by the static &lt;tt>SIZE&lt;/tt> field&#xA;in the {@linkplain Byte#SIZE Byte}, {@linkplain Short#SIZE Short},&#xA;{@linkplain Integer#SIZE Integer}, or {@linkplain Long#SIZE Long}&#xA;classes as appropriate.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then the output will always begin&#xA;with the radix indicator &lt;tt>&quot;0x&quot;&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given then the output will be padded to&#xA;the field width with leading zeros after the radix indicator or sign (if&#xA;present).&#xA;&#xA;&lt;p> If &lt;tt>'('&lt;/tt>, &lt;tt>'&amp;nbsp;&amp;nbsp;'&lt;/tt>, &lt;tt>'+'&lt;/tt>, or&#xA;&lt;tt>','&lt;/tt> flags are given then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'X'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0058'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'x'&lt;/tt>.  The entire string&#xA;representing the number will be converted to {@linkplain&#xA;String#toUpperCase upper case} including the &lt;tt>'x'&lt;/tt> (if any) and&#xA;all hexadecimal digits &lt;tt>'a'&lt;/tt> - &lt;tt>'f'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0061'&lt;/tt> -  &lt;tt>'&amp;#92;u0066'&lt;/tt>).&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> If the conversion is &lt;tt>'o'&lt;/tt>, &lt;tt>'x'&lt;/tt>, or &lt;tt>'X'&lt;/tt> and&#xA;both the &lt;tt>'#'&lt;/tt> and the &lt;tt>'0'&lt;/tt> flags are given, then result will&#xA;contain the radix indicator (&lt;tt>'0'&lt;/tt> for octal and &lt;tt>&quot;0x&quot;&lt;/tt> or&#xA;&lt;tt>&quot;0X&quot;&lt;/tt> for hexadecimal), some number of zeros (based on the width),&#xA;and the value.&#xA;&#xA;&lt;p> If the &lt;tt>'-'&lt;/tt> flag is not given, then the space padding will occur&#xA;before the sign.&#xA;&#xA;&lt;p> The following flags apply to numeric integral conversions:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;intFlags&quot;>&lt;a name=&quot;intFlags&quot;>&lt;/a>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'+'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u002b'&lt;/tt>&#xA;&lt;td> Requires the output to include a positive sign for all positive&#xA;numbers.  If this flag is not given then only negative values will&#xA;include a sign.&#xA;&#xA;&lt;p> If both the &lt;tt>'+'&lt;/tt> and &lt;tt>'&amp;nbsp;&amp;nbsp;'&lt;/tt> flags are given&#xA;then an {@link IllegalFormatFlagsException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;nbsp;&amp;nbsp;'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0020'&lt;/tt>&#xA;&lt;td> Requires the output to include a single extra space&#xA;(&lt;tt>'&amp;#92;u0020'&lt;/tt>) for non-negative values.&#xA;&#xA;&lt;p> If both the &lt;tt>'+'&lt;/tt> and &lt;tt>'&amp;nbsp;&amp;nbsp;'&lt;/tt> flags are given&#xA;then an {@link IllegalFormatFlagsException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'0'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0030'&lt;/tt>&#xA;&lt;td> Requires the output to be padded with leading {@linkplain&#xA;java.text.DecimalFormatSymbols#getZeroDigit zeros} to the minimum field&#xA;width following any sign or radix indicator except when converting NaN&#xA;or infinity.  If the width is not provided, then a {@link&#xA;MissingFormatWidthException} will be thrown.&#xA;&#xA;&lt;p> If both the &lt;tt>'-'&lt;/tt> and &lt;tt>'0'&lt;/tt> flags are given then an&#xA;{@link IllegalFormatFlagsException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>','&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u002c'&lt;/tt>&#xA;&lt;td> Requires the output to include the locale-specific {@linkplain&#xA;java.text.DecimalFormatSymbols#getGroupingSeparator group separators} as&#xA;described in the &lt;a href=&quot;#l10n group&quot;>&quot;group&quot; section&lt;/a> of the&#xA;localization algorithm.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'('&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0028'&lt;/tt>&#xA;&lt;td> Requires the output to prepend a &lt;tt>'('&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0028'&lt;/tt>) and append a &lt;tt>')'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0029'&lt;/tt>) to negative values.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;a name=&quot;intdFlags&quot;>&lt;/a>&lt;p> If no flags are given the default formatting is&#xA;as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> The output is right-justified within the &lt;tt>width&lt;/tt>&#xA;&#xA;&lt;li> Negative numbers begin with a &lt;tt>'-'&lt;/tt> (&lt;tt>'&amp;#92;u002d'&lt;/tt>)&#xA;&#xA;&lt;li> Positive numbers and zero do not include a sign or extra leading&#xA;space&#xA;&#xA;&lt;li> No grouping separators are included&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;a name=&quot;intWidth&quot;>&lt;/a>&lt;p> The width is the minimum number of characters to&#xA;be written to the output.  This includes any signs, digits, grouping&#xA;separators, radix indicator, and parentheses.  If the length of the&#xA;converted value is less than the width then the output will be padded by&#xA;spaces (&lt;tt>'&amp;#92;u0020'&lt;/tt>) until the total number of characters equals&#xA;width.  The padding is on the left by default.  If &lt;tt>'-'&lt;/tt> flag is&#xA;given then the padding will be on the right.  If width is not specified then&#xA;there is no minimum.&#xA;&#xA;&lt;p> The precision is not applicable.  If precision is specified then an&#xA;{@link IllegalFormatPrecisionException} will be thrown.&#xA;&#xA;&lt;p>&lt;a name=&quot;dnbint&quot;>&lt;b> BigInteger &lt;/b>&lt;/a>&#xA;&#xA;&lt;p> The following conversions may be applied to {@link&#xA;java.math.BigInteger}.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;BIntConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'d'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0054'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted as a decimal integer. The &lt;a&#xA;href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'o'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006f'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted as an integer in base eight.&#xA;No localization is applied.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is negative then the result will be a signed value&#xA;beginning with &lt;tt>'-'&lt;/tt> (&lt;tt>'&amp;#92;u002d'&lt;/tt>).  Signed output is&#xA;allowed for this type because unlike the primitive types it is not&#xA;possible to create an unsigned equivalent without assuming an explicit&#xA;data-type size.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is positive or zero and the &lt;tt>'+'&lt;/tt> flag is given&#xA;then the result will begin with &lt;tt>'+'&lt;/tt> (&lt;tt>'&amp;#92;u002b'&lt;/tt>).&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then the output will always begin&#xA;with &lt;tt>'0'&lt;/tt> prefix.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given then the output will be padded&#xA;with leading zeros to the field width following any indication of sign.&#xA;&#xA;&lt;p> If the &lt;tt>','&lt;/tt> flag is given then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'x'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0078'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted as an integer in base&#xA;sixteen.  No localization is applied.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is negative then the result will be a signed value&#xA;beginning with &lt;tt>'-'&lt;/tt> (&lt;tt>'&amp;#92;u002d'&lt;/tt>).  Signed output is&#xA;allowed for this type because unlike the primitive types it is not&#xA;possible to create an unsigned equivalent without assuming an explicit&#xA;data-type size.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is positive or zero and the &lt;tt>'+'&lt;/tt> flag is given&#xA;then the result will begin with &lt;tt>'+'&lt;/tt> (&lt;tt>'&amp;#92;u002b'&lt;/tt>).&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then the output will always begin&#xA;with the radix indicator &lt;tt>&quot;0x&quot;&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given then the output will be padded to&#xA;the field width with leading zeros after the radix indicator or sign (if&#xA;present).&#xA;&#xA;&lt;p> If the &lt;tt>','&lt;/tt> flag is given then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'X'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0058'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'x'&lt;/tt>.  The entire string&#xA;representing the number will be converted to {@linkplain&#xA;String#toUpperCase upper case} including the &lt;tt>'x'&lt;/tt> (if any) and&#xA;all hexadecimal digits &lt;tt>'a'&lt;/tt> - &lt;tt>'f'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0061'&lt;/tt> - &lt;tt>'&amp;#92;u0066'&lt;/tt>).&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> If the conversion is &lt;tt>'o'&lt;/tt>, &lt;tt>'x'&lt;/tt>, or &lt;tt>'X'&lt;/tt> and&#xA;both the &lt;tt>'#'&lt;/tt> and the &lt;tt>'0'&lt;/tt> flags are given, then result will&#xA;contain the base indicator (&lt;tt>'0'&lt;/tt> for octal and &lt;tt>&quot;0x&quot;&lt;/tt> or&#xA;&lt;tt>&quot;0X&quot;&lt;/tt> for hexadecimal), some number of zeros (based on the width),&#xA;and the value.&#xA;&#xA;&lt;p> If the &lt;tt>'0'&lt;/tt> flag is given and the value is negative, then the&#xA;zero padding will occur after the sign.&#xA;&#xA;&lt;p> If the &lt;tt>'-'&lt;/tt> flag is not given, then the space padding will occur&#xA;before the sign.&#xA;&#xA;&lt;p> All &lt;a href=&quot;#intFlags&quot;>flags&lt;/a> defined for Byte, Short, Integer, and&#xA;Long apply.  The &lt;a href=&quot;#intdFlags&quot;>default behavior&lt;/a> when no flags are&#xA;given is the same as for Byte, Short, Integer, and Long.&#xA;&#xA;&lt;p> The specification of &lt;a href=&quot;#intWidth&quot;>width&lt;/a> is the same as&#xA;defined for Byte, Short, Integer, and Long.&#xA;&#xA;&lt;p> The precision is not applicable.  If precision is specified then an&#xA;{@link IllegalFormatPrecisionException} will be thrown.&#xA;&#xA;&lt;p>&lt;a name=&quot;dndec&quot;>&lt;b> Float and Double&lt;/b>&lt;a>&#xA;&#xA;&lt;p> The following conversions may be applied to &lt;tt>float&lt;/tt>, {@link&#xA;Float}, &lt;tt>double&lt;/tt> and {@link Double}.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;floatConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'e'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0065'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted using &lt;a&#xA;name=&quot;scientific&quot;>computerized scientific notation&lt;/a>.  The &lt;a&#xA;href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> The formatting of the magnitude &lt;i>m&lt;/i> depends upon its value.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is NaN or infinite, the literal strings &quot;NaN&quot; or&#xA;&quot;Infinity&quot;, respectively, will be output.  These values are not&#xA;localized.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is positive-zero or negative-zero, then the exponent&#xA;will be &lt;tt>&quot;+00&quot;&lt;/tt>.&#xA;&#xA;&lt;p> Otherwise, the result is a string that represents the sign and&#xA;magnitude (absolute value) of the argument.  The formatting of the sign&#xA;is described in the &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a>. The formatting of the magnitude &lt;i>m&lt;/i> depends upon its&#xA;value.&#xA;&#xA;&lt;p> Let &lt;i>n&lt;/i> be the unique integer such that 10&lt;sup>&lt;i>n&lt;/i>&lt;/sup>&#xA;&lt;= &lt;i>m&lt;/i> &lt; 10&lt;sup>&lt;i>n&lt;/i>+1&lt;/sup>; then let &lt;i>a&lt;/i> be the&#xA;mathematically exact quotient of &lt;i>m&lt;/i> and 10&lt;sup>&lt;i>n&lt;/i>&lt;/sup> so&#xA;that 1 &lt;= &lt;i>a&lt;/i> &lt; 10. The magnitude is then represented as the&#xA;integer part of &lt;i>a&lt;/i>, as a single decimal digit, followed by the&#xA;decimal separator followed by decimal digits representing the fractional&#xA;part of &lt;i>a&lt;/i>, followed by the exponent symbol &lt;tt>'e'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0065'&lt;/tt>), followed by the sign of the exponent, followed&#xA;by a representation of &lt;i>n&lt;/i> as a decimal integer, as produced by the&#xA;method {@link Long#toString(long, int)}, and zero-padded to include at&#xA;least two digits.&#xA;&#xA;&lt;p> The number of digits in the result for the fractional part of&#xA;&lt;i>m&lt;/i> or &lt;i>a&lt;/i> is equal to the precision.  If the precision is not&#xA;specified then the default value is &lt;tt>6&lt;/tt>. If the precision is less&#xA;than the number of digits which would appear after the decimal point in&#xA;the string returned by {@link Float#toString(float)} or {@link&#xA;Double#toString(double)} respectively, then the value will be rounded&#xA;using the {@linkplain java.math.BigDecimal#ROUND_HALF_UP round half up&#xA;algorithm}.  Otherwise, zeros may be appended to reach the precision.&#xA;For a canonical representation of the value, use {@link&#xA;Float#toString(float)} or {@link Double#toString(double)} as&#xA;appropriate.&#xA;&#xA;&lt;p>If the &lt;tt>','&lt;/tt> flag is given, then an {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'E'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0045'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'e'&lt;/tt>.  The exponent symbol&#xA;will be &lt;tt>'E'&lt;/tt> (&lt;tt>'&amp;#92;u0045'&lt;/tt>).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'g'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0067'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted in general scientific notation&#xA;as described below. The &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> After rounding for the precision, the formatting of the resulting&#xA;magnitude &lt;i>m&lt;/i> depends on its value.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is greater than or equal to 10&lt;sup>-4&lt;/sup> but less&#xA;than 10&lt;sup>precision&lt;/sup> then it is represented in &lt;i>&lt;a&#xA;href=&quot;#decimal&quot;>decimal format&lt;/a>&lt;/i>.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is less than 10&lt;sup>-4&lt;sup> or greater than or equal to&#xA;10&lt;sup>precision&lt;/sup>, then it is represented in &lt;i>&lt;a&#xA;href=&quot;#scientific&quot;>computerized scientific notation&lt;/a>&lt;/i>.&#xA;&#xA;&lt;p> The total number of significant digits in &lt;i>m&lt;/i> is equal to the&#xA;precision.  If the precision is not specified, then the default value is&#xA;&lt;tt>6&lt;/tt>.  If the precision is &lt;tt>0&lt;/tt>, then it is taken to be&#xA;&lt;tt>1&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then an {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'G'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0047'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'g'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'f'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0066'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted using &lt;a name=&quot;decimal&quot;>decimal&#xA;format&lt;/a>.  The &lt;a href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is&#xA;applied.&#xA;&#xA;&lt;p> The result is a string that represents the sign and magnitude&#xA;(absolute value) of the argument.  The formatting of the sign is&#xA;described in the &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a>. The formatting of the magnitude &lt;i>m&lt;/i> depends upon its&#xA;value.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> NaN or infinite, the literal strings &quot;NaN&quot; or&#xA;&quot;Infinity&quot;, respectively, will be output.  These values are not&#xA;localized.&#xA;&#xA;&lt;p> The magnitude is formatted as the integer part of &lt;i>m&lt;/i>, with no&#xA;leading zeroes, followed by the decimal separator followed by one or&#xA;more decimal digits representing the fractional part of &lt;i>m&lt;/i>.&#xA;&#xA;&lt;p> The number of digits in the result for the fractional part of&#xA;&lt;i>m&lt;/i> or &lt;i>a&lt;/i> is equal to the precision.  If the precision is not&#xA;specified then the default value is &lt;tt>6&lt;/tt>. If the precision is less&#xA;than the number of digits which would appear after the decimal point in&#xA;the string returned by {@link Float#toString(float)} or {@link&#xA;Double#toString(double)} respectively, then the value will be rounded&#xA;using the {@linkplain java.math.BigDecimal#ROUND_HALF_UP round half up&#xA;algorithm}.  Otherwise, zeros may be appended to reach the precision.&#xA;For a canonical representation of the value,use {@link&#xA;Float#toString(float)} or {@link Double#toString(double)} as&#xA;appropriate.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'a'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0061'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted in hexadecimal exponential&#xA;form.  No localization is applied.&#xA;&#xA;&lt;p> The result is a string that represents the sign and magnitude&#xA;(absolute value) of the argument &lt;i>x&lt;/i>.&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is negative or a negative-zero value then the result&#xA;will begin with &lt;tt>'-'&lt;/tt> (&lt;tt>'&amp;#92;u002d'&lt;/tt>).&#xA;&#xA;&lt;p> If &lt;i>x&lt;/i> is positive or a positive-zero value and the&#xA;&lt;tt>'+'&lt;/tt> flag is given then the result will begin with &lt;tt>'+'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u002b'&lt;/tt>).&#xA;&#xA;&lt;p> The formatting of the magnitude &lt;i>m&lt;/i> depends upon its value.&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> If the value is NaN or infinite, the literal strings &quot;NaN&quot; or&#xA;&quot;Infinity&quot;, respectively, will be output.&#xA;&#xA;&lt;li> If &lt;i>m&lt;/i> is zero then it is represented by the string&#xA;&lt;tt>&quot;0x0.0p0&quot;&lt;/tt>.&#xA;&#xA;&lt;li> If &lt;i>m&lt;/i> is a &lt;tt>double&lt;/tt> value with a normalized&#xA;representation then substrings are used to represent the significand and&#xA;exponent fields.  The significand is represented by the characters&#xA;&lt;tt>&quot;0x1.&quot;&lt;/tt> followed by the hexadecimal representation of the rest&#xA;of the significand as a fraction.  The exponent is represented by&#xA;&lt;tt>'p'&lt;/tt> (&lt;tt>'&amp;#92;u0070'&lt;/tt>) followed by a decimal string of the&#xA;unbiased exponent as if produced by invoking {@link&#xA;Integer#toString(int) Integer.toString} on the exponent value.&#xA;&#xA;&lt;li> If &lt;i>m&lt;/i> is a &lt;tt>double&lt;/tt> value with a subnormal&#xA;representation then the significand is represented by the characters&#xA;&lt;tt>'0x0.'&lt;/tt> followed by the hexadecimal representation of the rest&#xA;of the significand as a fraction.  The exponent is represented by&#xA;&lt;tt>'p-1022'&lt;/tt>.  Note that there must be at least one nonzero digit&#xA;in a subnormal significand.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> If the &lt;tt>'('&lt;/tt> or &lt;tt>','&lt;/tt> flags are given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'A'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0041'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'a'&lt;/tt>.  The entire string&#xA;representing the number will be converted to upper case including the&#xA;&lt;tt>'x'&lt;/tt> (&lt;tt>'&amp;#92;u0078'&lt;/tt>) and &lt;tt>'p'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0070'&lt;/tt> and all hexadecimal digits &lt;tt>'a'&lt;/tt> -&#xA;&lt;tt>'f'&lt;/tt> (&lt;tt>'&amp;#92;u0061'&lt;/tt> - &lt;tt>'&amp;#92;u0066'&lt;/tt>).&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> All &lt;a href=&quot;#intFlags&quot;>flags&lt;/a> defined for Byte, Short, Integer, and&#xA;Long apply.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given, then the decimal separator will&#xA;always be present.&#xA;&#xA;&lt;a name=&quot;floatdFlags&quot;>&lt;/a>&lt;p> If no flags are given the default formatting&#xA;is as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> The output is right-justified within the &lt;tt>width&lt;/tt>&#xA;&#xA;&lt;li> Negative numbers begin with a &lt;tt>'-'&lt;/tt>&#xA;&#xA;&lt;li> Positive numbers and positive zero do not include a sign or extra&#xA;leading space&#xA;&#xA;&lt;li> No grouping separators are included&#xA;&#xA;&lt;li> The decimal separator will only appear if a digit follows it&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;a name=&quot;floatDWidth&quot;>&lt;/a>&lt;p> The width is the minimum number of characters&#xA;to be written to the output.  This includes any signs, digits, grouping&#xA;separators, decimal separators, exponential symbol, radix indicator,&#xA;parentheses, and strings representing infinity and NaN as applicable.  If&#xA;the length of the converted value is less than the width then the output&#xA;will be padded by spaces (&lt;tt>'&amp;#92;u0020'&lt;/tt>) until the total number of&#xA;characters equals width.  The padding is on the left by default.  If the&#xA;&lt;tt>'-'&lt;/tt> flag is given then the padding will be on the right.  If width&#xA;is not specified then there is no minimum.&#xA;&#xA;&lt;a name=&quot;floatDPrec&quot;>&lt;/a>&lt;p> If the conversion is &lt;tt>'e'&lt;/tt>,&#xA;&lt;tt>'E'&lt;/tt> or &lt;tt>'f'&lt;/tt>, then the precision is the number of digits&#xA;after the decimal separator.  If the precision is not specified, then it is&#xA;assumed to be &lt;tt>6&lt;/tt>.&#xA;&#xA;&lt;p> If the conversion is &lt;tt>'g'&lt;/tt> or &lt;tt>'G'&lt;/tt>, then the precision is&#xA;the total number of significant digits in the resulting magnitude after&#xA;rounding.  If the precision is not specified, then the default value is&#xA;&lt;tt>6&lt;/tt>.  If the precision is &lt;tt>0&lt;/tt>, then it is taken to be&#xA;&lt;tt>1&lt;/tt>.&#xA;&#xA;&lt;p> If the conversion is &lt;tt>'a'&lt;/tt> or &lt;tt>'A'&lt;/tt>, then the precision&#xA;is the number of hexadecimal digits after the decimal separator.  If the&#xA;precision is not provided, then all of the digits as returned by {@link&#xA;Double#toHexString(double)} will be output.&#xA;&#xA;&lt;p>&lt;a name=&quot;dndec&quot;>&lt;b> BigDecimal &lt;/b>&lt;a>&#xA;&#xA;&lt;p> The following conversions may be applied {@link java.math.BigDecimal&#xA;BigDecimal}.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;floatConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'e'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0065'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted using &lt;a&#xA;name=&quot;scientific&quot;>computerized scientific notation&lt;/a>.  The &lt;a&#xA;href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> The formatting of the magnitude &lt;i>m&lt;/i> depends upon its value.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is positive-zero or negative-zero, then the exponent&#xA;will be &lt;tt>&quot;+00&quot;&lt;/tt>.&#xA;&#xA;&lt;p> Otherwise, the result is a string that represents the sign and&#xA;magnitude (absolute value) of the argument.  The formatting of the sign&#xA;is described in the &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a>. The formatting of the magnitude &lt;i>m&lt;/i> depends upon its&#xA;value.&#xA;&#xA;&lt;p> Let &lt;i>n&lt;/i> be the unique integer such that 10&lt;sup>&lt;i>n&lt;/i>&lt;/sup>&#xA;&lt;= &lt;i>m&lt;/i> &lt; 10&lt;sup>&lt;i>n&lt;/i>+1&lt;/sup>; then let &lt;i>a&lt;/i> be the&#xA;mathematically exact quotient of &lt;i>m&lt;/i> and 10&lt;sup>&lt;i>n&lt;/i>&lt;/sup> so&#xA;that 1 &lt;= &lt;i>a&lt;/i> &lt; 10. The magnitude is then represented as the&#xA;integer part of &lt;i>a&lt;/i>, as a single decimal digit, followed by the&#xA;decimal separator followed by decimal digits representing the fractional&#xA;part of &lt;i>a&lt;/i>, followed by the exponent symbol &lt;tt>'e'&lt;/tt>&#xA;(&lt;tt>'&amp;#92;u0065'&lt;/tt>), followed by the sign of the exponent, followed&#xA;by a representation of &lt;i>n&lt;/i> as a decimal integer, as produced by the&#xA;method {@link Long#toString(long, int)}, and zero-padded to include at&#xA;least two digits.&#xA;&#xA;&lt;p> The number of digits in the result for the fractional part of&#xA;&lt;i>m&lt;/i> or &lt;i>a&lt;/i> is equal to the precision.  If the precision is not&#xA;specified then the default value is &lt;tt>6&lt;/tt>.  If the precision is&#xA;less than the number of digits which would appear after the decimal&#xA;point in the string returned by {@link Float#toString(float)} or {@link&#xA;Double#toString(double)} respectively, then the value will be rounded&#xA;using the {@linkplain java.math.BigDecimal#ROUND_HALF_UP round half up&#xA;algorithm}.  Otherwise, zeros may be appended to reach the precision.&#xA;For a canonical representation of the value, use {@link&#xA;BigDecimal#toString()}.&#xA;&#xA;&lt;p> If the &lt;tt>','&lt;/tt> flag is given, then an {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'E'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0045'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'e'&lt;/tt>.  The exponent symbol&#xA;will be &lt;tt>'E'&lt;/tt> (&lt;tt>'&amp;#92;u0045'&lt;/tt>).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'g'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0067'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted in general scientific notation&#xA;as described below. The &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a> is applied.&#xA;&#xA;&lt;p> After rounding for the precision, the formatting of the resulting&#xA;magnitude &lt;i>m&lt;/i> depends on its value.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is greater than or equal to 10&lt;sup>-4&lt;/sup> but less&#xA;than 10&lt;sup>precision&lt;/sup> then it is represented in &lt;i>&lt;a&#xA;href=&quot;#decimal&quot;>decimal format&lt;/a>&lt;/i>.&#xA;&#xA;&lt;p> If &lt;i>m&lt;/i> is less than 10&lt;sup>-4&lt;/sup> or greater than or equal to&#xA;10&lt;sup>precision&lt;/sup>, then it is represented in &lt;i>&lt;a&#xA;href=&quot;#scientific&quot;>computerized scientific notation&lt;/a>&lt;/i>.&#xA;&#xA;&lt;p> The total number of significant digits in &lt;i>m&lt;/i> is equal to the&#xA;precision.  If the precision is not specified, then the default value is&#xA;&lt;tt>6&lt;/tt>.  If the precision is &lt;tt>0&lt;/tt>, then it is taken to be&#xA;&lt;tt>1&lt;/tt>.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given then an {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'G'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0047'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'g'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'f'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0066'&lt;/tt>&#xA;&lt;td> Requires the output to be formatted using &lt;a name=&quot;decimal&quot;>decimal&#xA;format&lt;/a>.  The &lt;a href=&quot;#l10n algorithm&quot;>localization algorithm&lt;/a> is&#xA;applied.&#xA;&#xA;&lt;p> The result is a string that represents the sign and magnitude&#xA;(absolute value) of the argument.  The formatting of the sign is&#xA;described in the &lt;a href=&quot;#l10n algorithm&quot;>localization&#xA;algorithm&lt;/a>. The formatting of the magnitude &lt;i>m&lt;/i> depends upon its&#xA;value.&#xA;&#xA;&lt;p> The magnitude is formatted as the integer part of &lt;i>m&lt;/i>, with no&#xA;leading zeroes, followed by the decimal separator followed by one or&#xA;more decimal digits representing the fractional part of &lt;i>m&lt;/i>.&#xA;&#xA;&lt;p> The number of digits in the result for the fractional part of&#xA;&lt;i>m&lt;/i> or &lt;i>a&lt;/i> is equal to the precision.  If the precision is not&#xA;specified then the default value is &lt;tt>6&lt;/tt>.  If the precision is&#xA;less than the number of digits which would appear after the decimal&#xA;point in the string returned by {@link Float#toString(float)} or {@link&#xA;Double#toString(double)} respectively, then the value will be rounded&#xA;using the {@linkplain java.math.BigDecimal#ROUND_HALF_UP round half up&#xA;algorithm}.  Otherwise, zeros may be appended to reach the precision.&#xA;For a canonical representation of the value, use {@link&#xA;BigDecimal#toString()}.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> All &lt;a href=&quot;#intFlags&quot;>flags&lt;/a> defined for Byte, Short, Integer, and&#xA;Long apply.&#xA;&#xA;&lt;p> If the &lt;tt>'#'&lt;/tt> flag is given, then the decimal separator will&#xA;always be present.&#xA;&#xA;&lt;p> The &lt;a href=&quot;#floatdFlags&quot;>default behavior&lt;/a> when no flags are&#xA;given is the same as for Float and Double.&#xA;&#xA;&lt;p> The specification of &lt;a href=&quot;#floatDWidth&quot;>width&lt;/a> and &lt;a&#xA;href=&quot;#floatDPrec&quot;>precision&lt;/a> is the same as defined for Float and&#xA;Double.&#xA;&#xA;&lt;a name=&quot;ddt&quot;>&lt;h4> Date/Time &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> This conversion may be applied to &lt;tt>long&lt;/tt>, {@link Long}, {@link&#xA;Calendar}, and {@link Date}.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;DTConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'t'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0074'&lt;/tt>&#xA;&lt;td> Prefix for date and time conversion characters.&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'T'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0054'&lt;/tt>&#xA;&lt;td> The upper-case variant of &lt;tt>'t'&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following date and time conversion character suffixes are defined&#xA;for the &lt;tt>'t'&lt;/tt> and &lt;tt>'T'&lt;/tt> conversions.  The types are similar to&#xA;but not completely identical to those defined by GNU &lt;tt>date&lt;/tt> and&#xA;POSIX &lt;tt>strftime(3c)&lt;/tt>.  Additional conversion types are provided to&#xA;access Java-specific functionality (e.g. &lt;tt>'L'&lt;/tt> for milliseconds&#xA;within the second).&#xA;&#xA;&lt;p> The following conversion characters are used for formatting times:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;time&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;> &lt;tt>'H'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0048'&lt;/tt>&#xA;&lt;td> Hour of the day for the 24-hour clock, formatted as two digits with&#xA;a leading zero as necessary i.e. &lt;tt>00 - 23&lt;/tt>. &lt;tt>00&lt;/tt>&#xA;corresponds to midnight.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'I'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0049'&lt;/tt>&#xA;&lt;td> Hour for the 12-hour clock, formatted as two digits with a leading&#xA;zero as necessary, i.e.  &lt;tt>01 - 12&lt;/tt>.  &lt;tt>01&lt;/tt> corresponds to&#xA;one o'clock (either morning or afternoon).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'k'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006b'&lt;/tt>&#xA;&lt;td> Hour of the day for the 24-hour clock, i.e. &lt;tt>0 - 23&lt;/tt>.&#xA;&lt;tt>0&lt;/tt> corresponds to midnight.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'l'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006c'&lt;/tt>&#xA;&lt;td> Hour for the 12-hour clock, i.e. &lt;tt>1 - 12&lt;/tt>.  &lt;tt>1&lt;/tt>&#xA;corresponds to one o'clock (either morning or afternoon).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'M'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u004d'&lt;/tt>&#xA;&lt;td> Minute within the hour formatted as two digits with a leading zero&#xA;as necessary, i.e.  &lt;tt>00 - 59&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'S'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0053'&lt;/tt>&#xA;&lt;td> Seconds within the minute, formatted as two digits with a leading&#xA;zero as necessary, i.e. &lt;tt>00 - 60&lt;/tt> (&quot;&lt;tt>60&lt;/tt>&quot; is a special&#xA;value required to support leap seconds).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'L'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u004c'&lt;/tt>&#xA;&lt;td> Millisecond within the second formatted as three digits with&#xA;leading zeros as necessary, i.e. &lt;tt>000 - 999&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'N'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u004e'&lt;/tt>&#xA;&lt;td> Nanosecond within the second, formatted as nine digits with leading&#xA;zeros as necessary, i.e. &lt;tt>000000000 - 999999999&lt;/tt>.  The precision&#xA;of this value is limited by the resolution of the underlying operating&#xA;system or hardware.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'p'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0070'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain&#xA;java.text.DateFormatSymbols#getAmPmStrings morning or afternoon} marker&#xA;in lower case, e.g.&quot;&lt;tt>am&lt;/tt>&quot; or &quot;&lt;tt>pm&lt;/tt>&quot;.  Use of the&#xA;conversion prefix &lt;tt>'T'&lt;/tt> forces this output to upper case.  (Note&#xA;that &lt;tt>'p'&lt;/tt> produces lower-case output.  This is different from&#xA;GNU &lt;tt>date&lt;/tt> and POSIX &lt;tt>strftime(3c)&lt;/tt> which produce&#xA;upper-case output.)&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'z'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u007a'&lt;/tt>&#xA;&lt;td> &lt;a href=&quot;http://www.ietf.org/rfc/rfc0822.txt&quot;>RFC&amp;nbsp;822&lt;/a>&#xA;style numeric time zone offset from GMT, e.g. &lt;tt>-0800&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Z'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u005a'&lt;/tt>&#xA;&lt;td> A string representing the abbreviation for the time zone.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'s'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0073'&lt;/tt>&#xA;&lt;td> Seconds since the beginning of the epoch starting at 1 January 1970&#xA;&lt;tt>00:00:00&lt;/tt> UTC, i.e. &lt;tt>Long.MIN_VALUE/1000&lt;/tt> to&#xA;&lt;tt>Long.MAX_VALUE/1000&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Q'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u004f'&lt;/tt>&#xA;&lt;td> Milliseconds since the beginning of the epoch starting at 1 January&#xA;1970 &lt;tt>00:00:00&lt;/tt> UTC, i.e. &lt;tt>Long.MIN_VALUE&lt;/tt> to&#xA;&lt;tt>Long.MAX_VALUE&lt;/tt>. The precision of this value is limited by&#xA;the resolution of the underlying operating system or hardware.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following conversion characters are used for formatting dates:&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;date&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'B'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0042'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain java.text.DateFormatSymbols#getMonths&#xA;full month name}, e.g. &lt;tt>&quot;January&quot;&lt;/tt>, &lt;tt>&quot;February&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'b'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0062'&lt;/tt>&#xA;&lt;td> Locale-specific {@linkplain&#xA;java.text.DateFormatSymbols#getShortMonths abbreviated month name},&#xA;e.g. &lt;tt>&quot;Jan&quot;&lt;/tt>, &lt;tt>&quot;Feb&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'h'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0068'&lt;/tt>&#xA;&lt;td> Same as &lt;tt>'b'&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'A'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0041'&lt;/tt>&#xA;&lt;td> Locale-specific full name of the {@linkplain&#xA;java.text.DateFormatSymbols#getWeekdays day of the week},&#xA;e.g. &lt;tt>&quot;Sunday&quot;&lt;/tt>, &lt;tt>&quot;Monday&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'a'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0061'&lt;/tt>&#xA;&lt;td> Locale-specific short name of the {@linkplain&#xA;java.text.DateFormatSymbols#getShortWeekdays day of the week},&#xA;e.g. &lt;tt>&quot;Sun&quot;&lt;/tt>, &lt;tt>&quot;Mon&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'C'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0043'&lt;/tt>&#xA;&lt;td> Four-digit year divided by &lt;tt>100&lt;/tt>, formatted as two digits&#xA;with leading zero as necessary, i.e. &lt;tt>00 - 99&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'Y'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0059'&lt;/tt> &lt;td> Year, formatted to at least&#xA;four digits with leading zeros as necessary, e.g. &lt;tt>0092&lt;/tt> equals&#xA;&lt;tt>92&lt;/tt> CE for the Gregorian calendar.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'y'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0079'&lt;/tt>&#xA;&lt;td> Last two digits of the year, formatted with leading zeros as&#xA;necessary, i.e. &lt;tt>00 - 99&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'j'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006a'&lt;/tt>&#xA;&lt;td> Day of year, formatted as three digits with leading zeros as&#xA;necessary, e.g. &lt;tt>001 - 366&lt;/tt> for the Gregorian calendar.&#xA;&lt;tt>001&lt;/tt> corresponds to the first day of the year.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'m'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u006d'&lt;/tt>&#xA;&lt;td> Month, formatted as two digits with leading zeros as necessary,&#xA;i.e. &lt;tt>01 - 13&lt;/tt>, where &quot;&lt;tt>01&lt;/tt>&quot; is the first month of the&#xA;year and (&quot;&lt;tt>13&lt;/tt>&quot; is a special value required to support lunar&#xA;calendars).&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'d'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0064'&lt;/tt>&#xA;&lt;td> Day of month, formatted as two digits with leading zeros as&#xA;necessary, i.e. &lt;tt>01 - 31&lt;/tt>, where &quot;&lt;tt>01&lt;/tt>&quot; is the first day&#xA;of the month.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'e'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0065'&lt;/tt>&#xA;&lt;td> Day of month, formatted as two digits, i.e. &lt;tt>1 - 31&lt;/tt> where&#xA;&quot;&lt;tt>1&lt;/tt>&quot; is the first day of the month.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The following conversion characters are used for formatting common&#xA;date/time compositions.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;composites&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'R'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0052'&lt;/tt>&#xA;&lt;td> Time formatted for the 24-hour clock as &lt;tt>&quot;%tH:%tM&quot;&lt;/tt>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'T'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0054'&lt;/tt>&#xA;&lt;td> Time formatted for the 24-hour clock as &lt;tt>&quot;%tH:%tM:%tS&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'r'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0072'&lt;/tt>&#xA;&lt;td> Time formatted for the 12-hour clock as &lt;tt>&quot;%tI:%tM:%tS&#xA;%Tp&quot;&lt;/tt>.  The location of the morning or afternoon marker&#xA;(&lt;tt>'%Tp'&lt;/tt>) may be locale-dependent.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'D'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0044'&lt;/tt>&#xA;&lt;td> Date formatted as &lt;tt>&quot;%tm/%td/%ty&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'F'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0046'&lt;/tt>&#xA;&lt;td> &lt;a href=&quot;http://www.w3.org/TR/NOTE-datetime&quot;>ISO&amp;nbsp;8601&lt;/a>&#xA;complete date formatted as &lt;tt>&quot;%tY-%tm-%td&quot;&lt;/tt>.&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'c'&lt;/tt>&#xA;&lt;td valign=&quot;top&quot;> &lt;tt>'&amp;#92;u0063'&lt;/tt>&#xA;&lt;td> Date and time formatted as &lt;tt>&quot;%ta %tb %td %tT %tZ %tY&quot;&lt;/tt>,&#xA;e.g. &lt;tt>&quot;Sun Jul 20 16:17:00 EDT 1969&quot;&lt;/tt>.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> The &lt;tt>'-'&lt;/tt> flag defined for &lt;a href=&quot;#dFlags&quot;>General&#xA;conversions&lt;/a> applies.  If the &lt;tt>'#'&lt;/tt> flag is given, then a {@link&#xA;FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;a name=&quot;dtWidth&quot;>&lt;/a>&lt;p> The width is the minimum number of characters to&#xA;be written to the output.  If the length of the converted value is less than&#xA;the &lt;tt>width&lt;/tt> then the output will be padded by spaces&#xA;(&lt;tt>'&amp;#92;u0020'&lt;/tt>) until the total number of characters equals width.&#xA;The padding is on the left by default.  If the &lt;tt>'-'&lt;/tt> flag is given&#xA;then the padding will be on the right.  If width is not specified then there&#xA;is no minimum.&#xA;&#xA;&lt;p> The precision is not applicable.  If the precision is specified then an&#xA;{@link IllegalFormatPrecisionException} will be thrown.&#xA;&#xA;&lt;a name=&quot;dper&quot;>&lt;h4> Percent &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> The conversion does not correspond to any argument.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;DTConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'%'&lt;/tt>&#xA;&lt;td> The result is a literal &lt;tt>'%'&lt;/tt> (&lt;tt>'&amp;#92;u0025'&lt;/tt>)&#xA;&#xA;&lt;a name=&quot;dtWidth&quot;>&lt;/a>&lt;p> The width is the minimum number of characters to&#xA;be written to the output including the &lt;tt>'%'&lt;/tt>.  If the length of the&#xA;converted value is less than the &lt;tt>width&lt;/tt> then the output will be&#xA;padded by spaces (&lt;tt>'&amp;#92;u0020'&lt;/tt>) until the total number of&#xA;characters equals width.  The padding is on the left.  If width is not&#xA;specified then just the &lt;tt>'%'&lt;/tt> is output.&#xA;&#xA;&lt;p> The &lt;tt>'-'&lt;/tt> flag defined for &lt;a href=&quot;#dFlags&quot;>General&#xA;conversions&lt;/a> applies.  If any other flags are provided, then a&#xA;{@link FormatFlagsConversionMismatchException} will be thrown.&#xA;&#xA;&lt;p> The precision is not applicable.  If the precision is specified an&#xA;{@link IllegalFormatPrecisionException} will be thrown.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;a name=&quot;dls&quot;>&lt;h4> Line Separator &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> The conversion does not correspond to any argument.&#xA;&#xA;&lt;table cellpadding=5 summary=&quot;DTConv&quot;>&#xA;&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;tt>'n'&lt;/tt>&#xA;&lt;td> the platform-specific line separator as returned by {@link&#xA;System#getProperty System.getProperty(&quot;line.separator&quot;)}.&#xA;&#xA;&lt;/table>&#xA;&#xA;&lt;p> Flags, width, and precision are not applicable.  If any are provided an&#xA;{@link IllegalFormatFlagsException}, {@link IllegalFormatWidthException},&#xA;and {@link IllegalFormatPrecisionException}, respectively will be thrown.&#xA;&#xA;&lt;a name=&quot;dpos&quot;>&lt;h4> Argument Index &lt;/h4>&lt;/a>&#xA;&#xA;&lt;p> Format specifiers can reference arguments in three ways:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> &lt;i>Explicit indexing&lt;/i> is used when the format specifier contains an&#xA;argument index.  The argument index is a decimal integer indicating the&#xA;position of the argument in the argument list.  The first argument is&#xA;referenced by &quot;&lt;tt>1$&lt;/tt>&quot;, the second by &quot;&lt;tt>2$&lt;/tt>&quot;, etc.  An argument&#xA;may be referenced more than once.&#xA;&#xA;&lt;p> For example:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;formatter.format(&quot;%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s&quot;,&#xA;&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;)&#xA;-> &quot;d c b a d c b a&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;li> &lt;i>Relative indexing&lt;/i> is used when the format specifier contains a&#xA;&lt;tt>'&lt;'&lt;/tt> (&lt;tt>'&amp;#92;u003c'&lt;/tt>) flag which causes the argument for the&#xA;previous format specifier to be re-used.  If there is no previous argument,&#xA;then a {@link MissingFormatArgumentException} is thrown.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;formatter.format(&quot;%s %s %&lt;s %&lt;s&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;)&#xA;-> &quot;a b b b&quot;&#xA;&quot;c&quot; and &quot;d&quot; are ignored because they are not referenced&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;li> &lt;i>Ordinary indexing&lt;/i> is used when the format specifier contains&#xA;neither an argument index nor a &lt;tt>'&lt;'&lt;/tt> flag.  Each format specifier&#xA;which uses ordinary indexing is assigned a sequential implicit index into&#xA;argument list which is independent of the indices used by explicit or&#xA;relative indexing.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;formatter.format(&quot;%s %s %s %s&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;)&#xA;-> &quot;a b c d&quot;&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> It is possible to have a format string which uses all forms of indexing,&#xA;for example:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;formatter.format(&quot;%2$s %s %&lt;s %s&quot;, &quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;)&#xA;-> &quot;b a a b&quot;&#xA;&quot;c&quot; and &quot;d&quot; are ignored because they are not referenced&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p> The maximum number of arguments is limited by the maximum dimension of a&#xA;Java array as defined by the &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/vmspec/&quot;>Java Virtual Machine&#xA;Specification&lt;/a>.  If the argument index is does not correspond to an&#xA;available argument, then a {@link MissingFormatArgumentException} is thrown.&#xA;&#xA;&lt;p> If there are more arguments than format specifiers, the extra arguments&#xA;are ignored.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@author  Iris Garcia&#xA;@version &#x9;1.14, 07/16/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310993_904211_7237"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_550236_14934" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_10_5_622020d_1132928310993_904211_7237" contract="_10_5_622020d_1132928307007_867857_4552"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_408353_14935" name="" supplier="_10_5_622020d_1132928307088_548810_4600" client="_10_5_622020d_1132928310993_904211_7237" contract="_10_5_622020d_1132928307088_548810_4600"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310993_268968_7238" name="FormatString" visibility="private" isAbstract="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_549153_7239" name="FixedString" visibility="private" clientDependency="_10_5_622020d_1132928322560_544681_14936">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322560_544681_14936" name="" supplier="_10_5_622020d_1132928310993_268968_7238" client="_10_5_622020d_1132928310993_549153_7239" contract="_10_5_622020d_1132928310993_268968_7238"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_29427_7240" name="BigDecimalLayoutForm"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_665050_7242" name="FormatSpecifier" visibility="private" clientDependency="_10_5_622020d_1132928322560_960304_14937">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322560_960304_14937" name="" supplier="_10_5_622020d_1132928310993_268968_7238" client="_10_5_622020d_1132928310993_665050_7242" contract="_10_5_622020d_1132928310993_268968_7238"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_90891_7243" name="BigDecimalLayout" visibility="private"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_573864_7244" name="Flags" visibility="private"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310993_23012_7245" name="Conversion" visibility="private"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928311003_68916_7246" name="DateTime" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322590_140820_14999" name="IdentityHashMapIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322590_657373_15000" signature="_10_5_622020d_1132928313226_914453_7298">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322590_461101_15001" formal="_10_5_622020d_1132928313226_198737_7299" actual="_10_5_622020d_1132928313226_363095_7297"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_440663_8907" name="PropertyPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928322620_570572_15082" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313347_819904_7426" body="A PropertyPermissionCollection stores a set of PropertyPermission&#xA;permissions.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;&#xA;@version 1.33, 12/19/03&#xA;&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546706_440663_8907"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_439895_15083" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_570572_15082" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_440663_8907" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322500_371963_14797" name="SynchronizedCollection&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322500_262557_14798" signature="_10_5_622020d_1132928310893_613020_7044">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322500_985742_14799" formal="_10_5_622020d_1132928310893_731897_7045" actual="_10_5_622020d_1132928310893_485256_7050"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322480_309783_14740" name="Comparable&lt;Calendar>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_189016_14741" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_180892_14742" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546706_973459_8839"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_786495_7550" name="XMLUtils" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928313517_887344_7554" body="A class used to aid in Properties load and save in XML. Keeping this&#xA;code outside of Properties helps reduce the number of classes loaded&#xA;when Properties is loaded.&#xA;&#xA;@version 1.9, 01/23/03&#xA;@author  Michael McCloskey&#xA;@since   1.3&#xA;" annotatedElement="_10_5_622020d_1132928313507_786495_7550"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_277248_7551" name="Resolver" visibility="private" clientDependency="_10_5_622020d_1132928322670_339832_15175">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322670_339832_15175" name="" supplier="_9_5_f720368_1110473546940_303190_13288" client="_10_5_622020d_1132928313507_277248_7551" contract="_9_5_f720368_1110473546940_303190_13288"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313507_8227_7552" name="EH" visibility="private" clientDependency="_10_5_622020d_1132928322670_582584_15176">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322670_582584_15176" name="" supplier="_9_5_f720368_1110473546940_141112_13290" client="_10_5_622020d_1132928313507_8227_7552" contract="_9_5_f720368_1110473546940_141112_13290"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322630_434165_15095" name="Iterator&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928322630_90492_15096" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322630_986773_15097" formal="_10_5_622020d_1132928313266_876300_7329" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322550_238139_14898" name="Comparable&lt;Date>">
            <templateBinding xmi:id="_10_5_622020d_1132928322550_638421_14899" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322550_855314_14900" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546706_999299_8853"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547799_811753_19032" name="jar">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_247098_8709" name="JarOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_311927_6727" body="The &lt;code>JarOutputStream&lt;/code> class is used to write the contents&#xA;of a JAR file to any output stream. It extends the class&#xA;&lt;code>java.util.zip.ZipOutputStream&lt;/code> with support&#xA;for writing an optional &lt;code>Manifest&lt;/code> entry. The&#xA;&lt;code>Manifest&lt;/code> can be used to specify meta-information about&#xA;the JAR file and its entries.&#xA;&#xA;@author  David Connelly&#xA;@version 1.22, 12/19/03&#xA;@see&#x9;    Manifest&#xA;@see&#x9;    java.util.zip.ZipOutputStream&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_247098_8709"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_875038_14549" isSubstitutable="true" general="_9_5_f720368_1110473546706_229654_8817"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_355538_8711" name="JarVerifier" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_998990_6729" body="@version &#x9;1.35 03/12/19&#xA;@author&#x9;Roland Schemers&#xA;" annotatedElement="_9_5_f720368_1110473546690_355538_8711"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_885112_19044" name="VerifierStream" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322319_565309_14550" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_562410_8699" name="Attributes" clientDependency="_10_5_622020d_1132928322319_780622_14543 _10_5_622020d_1132928322319_964720_14542">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_586860_6717" body="The Attributes class maps Manifest attribute names to associated string&#xA;values. Valid attribute names are case-insensitive, are restricted to&#xA;the ASCII characters in the set [0-9a-zA-Z_-], and cannot exceed 70&#xA;characters in length. Attribute values can contain any characters and&#xA;will be UTF8-encoded when written to the output stream.  See the&#xA;&lt;a href=&quot;../../../../guide/jar/jar.html&quot;>JAR File Specification&lt;/a>&#xA;for more information about valid attribute names and values.&#xA;&#xA;@author  David Connelly&#xA;@version 1.50, 05/05/04&#xA;@see&#x9;    Manifest&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_562410_8699"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322319_964720_14542" name="" supplier="_10_5_622020d_1132928321448_677845_13329" client="_9_5_f720368_1110473546690_562410_8699" contract="_10_5_622020d_1132928321448_677845_13329"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322319_780622_14543" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_562410_8699" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_138176_19034" name="Name">
                <ownedComment xmi:id="_10_5_622020d_1132928310302_671686_6715" body="The Attributes.Name class represents an attribute name stored in&#xA;this Map. Valid attribute names are case-insensitive, are restricted&#xA;to the ASCII characters in the set [0-9a-zA-Z_-], and cannot exceed&#xA;70 characters in length. Attribute values can contain any characters&#xA;and will be UTF8-encoded when written to the output stream.  See the&#xA;&lt;a href=&quot;../../../../guide/jar/jar.html&quot;>JAR File Specification&lt;/a>&#xA;for more information about valid attribute names and values.&#xA;" annotatedElement="_9_5_f720368_1110473547799_138176_19034"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_292047_8701" name="JarEntry">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_270414_6719" body="This class is used to represent a JAR file entry.&#xA;" annotatedElement="_9_5_f720368_1110473546690_292047_8701"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_521442_14544" isSubstitutable="true" general="_9_5_f720368_1110473546706_702648_8809"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310312_580161_6733" name="Pack200" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310312_991866_6739" body="Transforms a JAR file to or from a packed stream in Pack200 format.&#xA;Please refer to Network Trasfer Format JSR 200 Specification at&#xA;http://jcp.org/aboutJava/communityprocess/review/jsr200/index.html&#xA;&lt;p>&#xA;Typically the packer engine is used by application developers&#xA;to deploy or host JAR files on a website.&#xA;The unpacker  engine is used by deployment applications to&#xA;transform the byte-stream back to JAR format.&#xA;&lt;p>&#xA;Here is an example using  packer and unpacker:&lt;p>&#xA;&lt;blockquote>&lt;pre>&#xA;import java.util.jar.Pack200;&#xA;import java.util.jar.Pack200.*;&#xA;...&#xA;Create the Packer object&#xA;Packer packer = Pack200.newPacker();&#xA;&#xA;Initialize the state by setting the desired properties&#xA;Map p = packer.properties();&#xA;take more time choosing codings for better compression&#xA;p.put(Packer.EFFORT, &quot;7&quot;);  // default is &quot;5&quot;&#xA;use largest-possible archive segments (>10% better compression).&#xA;p.put(Packer.SEGMENT_LIMIT, &quot;-1&quot;);&#xA;reorder files for better compression.&#xA;p.put(Packer.KEEP_FILE_ORDER, Packer.FALSE);&#xA;smear modification times to a single value.&#xA;p.put(Packer.MODIFICATION_TIME, Packer.LATEST);&#xA;ignore all JAR deflation requests,&#xA;transmitting a single request to use &quot;store&quot; mode.&#xA;p.put(Packer.DEFLATE_HINT, Packer.FALSE);&#xA;discard debug attributes&#xA;p.put(Packer.CODE_ATTRIBUTE_PFX+&quot;LineNumberTable&quot;, Packer.STRIP);&#xA;throw an error if an attribute is unrecognized&#xA;p.put(Packer.UNKNOWN_ATTRIBUTE, Packer.ERROR);&#xA;pass one class file uncompressed:&#xA;p.put(Packer.PASS_FILE_PFX+0, &quot;mutants/Rogue.class&quot;);&#xA;try {&#xA;JarFile jarFile = new JarFile(&quot;/tmp/testref.jar&quot;);&#xA;FileOutputStream fos = new FileOutputStream(&quot;/tmp/test.pack&quot;);&#xA;Call the packer&#xA;packer.pack(jarFile, fos);&#xA;jarFile.close();&#xA;fos.close();&#xA;&#xA;File f = new File(&quot;/tmp/test.pack&quot;);&#xA;FileOutputStream fostream = new FileOutputStream(&quot;/tmp/test.jar&quot;);&#xA;JarOutputStream jostream = new JarOutputStream(fostream);&#xA;Unpacker unpacker = Pack200.newUnpacker();&#xA;Call the unpacker&#xA;unpacker.unpack(f, jostream);&#xA;Must explicitly close the output.&#xA;jostream.close();&#xA;} catch (IOException ioe) {&#xA;ioe.printStackTrace();&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;A Pack200 file compressed with gzip can be hosted on HTTP/1.1 web servers.&#xA;The deployment applications can use &quot;Accept-Encoding=pack200-gzip&quot;. This&#xA;indicates to the server that the client application desires a version of&#xA;the file encoded with Pack200 and further compressed with gzip. Please&#xA;refer to Java Deployment Guide &lt;TBD> for more details and techniques.&#xA;&lt;p>&#xA;Unless otherwise noted, passing a &lt;tt>null&lt;/tt> argument to a constructor or&#xA;method in this class will cause a {@link NullPointerException} to be thrown.&#xA;&#xA;@author John Rose&#xA;@author Kumar Srinivasan&#xA;@version 1.4, 12/08/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310312_580161_6733"/>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310312_537123_6734" name="Packer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310312_394985_6735" body="The packer engine applies various transformations to the input JAR file,&#xA;making the pack stream highly compressible by a compressor such as&#xA;gzip or zip. An instance of the engine can be obtained&#xA;using {@link #newPacker}.&#xA;The high degree of compression is achieved&#xA;by using a number of techniques described in the JSR 200 specification.&#xA;Some of the techniques are sorting, re-ordering and co-location of the&#xA;constant pool.&#xA;&lt;p>&#xA;The pack engine is initialized to an initial state as described&#xA;by their properties below.&#xA;The initial state can be manipulated by getting the&#xA;engine properties (using {@link #properties}) and storing&#xA;the modified properties on the map.&#xA;The resource files will be passed through with no changes at all.&#xA;The class files will not contain identical bytes, since the unpacker&#xA;is free to change minor class file features such as constant pool order.&#xA;However, the class files will be semantically identical,&#xA;as specified in the Java Virtual Machine Specification&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html&quot;>http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html&lt;/a>.&#xA;&lt;p>&#xA;By default, the packer does not change the order of JAR elements.&#xA;Also, the modification time and deflation hint of each&#xA;JAR element is passed unchanged.&#xA;(Any other ZIP-archive information, such as extra attributes&#xA;giving Unix file permissions, are lost.)&#xA;&lt;p>&#xA;Note that packing and unpacking a JAR will in general alter the&#xA;bytewise contents of classfiles in the JAR.  This means that packing&#xA;and unpacking will in general invalidate any digital signatures&#xA;which rely on bytewise images of JAR elements.  In order both to sign&#xA;and to pack a JAR, you must first pack and unpack the JAR to&#xA;&quot;normalize&quot; it, then compute signatures on the unpacked JAR elements,&#xA;and finally repack the signed JAR.&#xA;Both packing steps should&#xA;use precisely the same options, and the segment limit may also&#xA;need to be set to &quot;-1&quot;, to prevent accidental variation of segment&#xA;boundaries as class file sizes change slightly.&#xA;&lt;p>&#xA;(Here's why this works:  Any reordering the packer does&#xA;of any classfile structures is idempotent, so the second packing&#xA;does not change the orderings produced by the first packing.&#xA;Also, the unpacker is guaranteed by the JSR 200 specification&#xA;to produce a specific bytewise image for any given transmission&#xA;ordering of archive elements.)&#xA;" annotatedElement="_10_5_622020d_1132928310312_537123_6734"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310312_991242_6736" name="Unpacker" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928310312_379938_6737" body="The unpacker engine converts the packed stream to a JAR file.&#xA;An instance of the engine can be obtained&#xA;using {@link #newUnpacker}.&#xA;&lt;p>&#xA;Every JAR file produced by this engine will include the string&#xA;&quot;&lt;tt>PACK200&lt;/tt>&quot; as a zip file comment.&#xA;This allows a deployer to detect if a JAR archive was packed and unpacked.&#xA;&lt;p>&#xA;" annotatedElement="_10_5_622020d_1132928310312_991242_6736"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_853654_8703" name="JarException">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_444902_6721" body="Signals that an error of some sort has occurred while reading from&#xA;or writing to a JAR file.&#xA;&#xA;@author  David Connelly&#xA;@version 1.12, 12/19/03&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_853654_8703"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_651635_14545" isSubstitutable="true" general="_9_5_f720368_1110473546706_452677_8811"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_136526_8715" name="Manifest" clientDependency="_10_5_622020d_1132928322319_188574_14552">
              <ownedComment xmi:id="_10_5_622020d_1132928310312_142179_6732" body="The Manifest class is used to maintain Manifest entry names and their&#xA;associated Attributes. There are main Manifest Attributes as well as&#xA;per-entry Attributes. For information on the Manifest format, please&#xA;see the&#xA;&lt;a href=&quot;../../../../guide/jar/jar.html&quot;>&#xA;Manifest format specification&lt;/a>.&#xA;&#xA;@author  David Connelly&#xA;@version 1.45, 05/05/04&#xA;@see&#x9;    Attributes&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_136526_8715"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322319_188574_14552" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546690_136526_8715" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_756122_19047" name="FastInputStream" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928322319_830413_14553" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_488249_8707" name="JarInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_867205_6725" body="The &lt;code>JarInputStream&lt;/code> class is used to read the contents of&#xA;a JAR file from any input stream. It extends the class&#xA;&lt;code>java.util.zip.ZipInputStream&lt;/code> with support for reading&#xA;an optional &lt;code>Manifest&lt;/code> entry. The &lt;code>Manifest&lt;/code>&#xA;can be used to store meta-information about the JAR file and its entries.&#xA;&#xA;@author  David Connelly&#xA;@version 1.33, 04/21/04&#xA;@see&#x9;    Manifest&#xA;@see&#x9;    java.util.zip.ZipInputStream&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_488249_8707"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_931346_14548" isSubstitutable="true" general="_9_5_f720368_1110473546706_132615_8815"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_633090_8713" name="JavaUtilJarAccessImpl" visibility="package"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_893058_8705" name="JarFile">
              <ownedComment xmi:id="_10_5_622020d_1132928310302_929582_6723" body="The &lt;code>JarFile&lt;/code> class is used to read the contents of a jar file&#xA;from any file that can be opened with &lt;code>java.io.RandomAccessFile&lt;/code>.&#xA;It extends the class &lt;code>java.util.zip.ZipFile&lt;/code> with support&#xA;for reading an optional &lt;code>Manifest&lt;/code> entry. The&#xA;&lt;code>Manifest&lt;/code> can be used to specify meta-information about the&#xA;jar file and its entries.&#xA;&#xA;&lt;p> Unless otherwise noted, passing a &lt;tt>null&lt;/tt> argument to a constructor&#xA;or method in this class will cause a {@link NullPointerException} to be&#xA;thrown.&#xA;&#xA;@author  David Connelly&#xA;@version 1.58, 05/05/04&#xA;@see&#x9;    Manifest&#xA;@see     java.util.zip.ZipFile&#xA;@see     java.util.jar.JarEntry&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546690_893058_8705"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_965315_14546" isSubstitutable="true" general="_9_5_f720368_1110473546706_627866_8813"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_674552_19040" name="JarFileEntry" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322319_490679_14547" isSubstitutable="true" general="_9_5_f720368_1110473546690_292047_8701"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547815_981880_19100" name="prefs">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_50503_8751" name="BackingStoreException">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_693223_6783" body="Thrown to indicate that a preferences operation could not complete because&#xA;of a failure in the backing store, or a failure to contact the backing&#xA;store.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.7, 12/19/03&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_50503_8751"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_514913_14583" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_735692_8765" name="Preferences" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310432_91170_6797" body="A node in a hierarchical collection of preference data.  This class&#xA;allows applications to store and retrieve user and system&#xA;preference and configuration data.  This data is stored&#xA;persistently in an implementation-dependent backing store.  Typical&#xA;implementations include flat files, OS-specific registries,&#xA;directory servers and SQL databases.  The user of this class needn't&#xA;be concerned with details of the backing store.&#xA;&#xA;&lt;p>There are two separate trees of preference nodes, one for user&#xA;preferences and one for system preferences.  Each user has a separate user&#xA;preference tree, and all users in a given system share the same system&#xA;preference tree.  The precise description of &quot;user&quot; and &quot;system&quot; will vary&#xA;from implementation to implementation.  Typical information stored in the&#xA;user preference tree might include font choice, color choice, or preferred&#xA;window location and size for a particular application.  Typical information&#xA;stored in the system preference tree might include installation&#xA;configuration data for an application.&#xA;&#xA;&lt;p>Nodes in a preference tree are named in a similar fashion to&#xA;directories in a hierarchical file system.   Every node in a preference&#xA;tree has a &lt;i>node name&lt;/i> (which is not necessarily unique),&#xA;a unique &lt;i>absolute path name&lt;/i>, and a path name &lt;i>relative&lt;/i> to each&#xA;ancestor including itself.&#xA;&#xA;&lt;p>The root node has a node name of the empty string (&quot;&quot;).  Every other&#xA;node has an arbitrary node name, specified at the time it is created.  The&#xA;only restrictions on this name are that it cannot be the empty string, and&#xA;it cannot contain the slash character ('/').&#xA;&#xA;&lt;p>The root node has an absolute path name of &lt;tt>&quot;/&quot;&lt;/tt>.  Children of&#xA;the root node have absolute path names of &lt;tt>&quot;/&quot; + &lt;/tt>&lt;i>&lt;node&#xA;name>&lt;/i>.  All other nodes have absolute path names of &lt;i>&lt;parent's&#xA;absolute path name>&lt;/i>&lt;tt> + &quot;/&quot; + &lt;/tt>&lt;i>&lt;node name>&lt;/i>.&#xA;Note that all absolute path names begin with the slash character.&#xA;&#xA;&lt;p>A node &lt;i>n&lt;/i>'s path name relative to its ancestor &lt;i>a&lt;/i>&#xA;is simply the string that must be appended to &lt;i>a&lt;/i>'s absolute path name&#xA;in order to form &lt;i>n&lt;/i>'s absolute path name, with the initial slash&#xA;character (if present) removed.  Note that:&#xA;&lt;ul>&#xA;&lt;li>No relative path names begin with the slash character.&#xA;&lt;li>Every node's path name relative to itself is the empty string.&#xA;&lt;li>Every node's path name relative to its parent is its node name (except&#xA;for the root node, which does not have a parent).&#xA;&lt;li>Every node's path name relative to the root is its absolute path name&#xA;with the initial slash character removed.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>Note finally that:&#xA;&lt;ul>&#xA;&lt;li>No path name contains multiple consecutive slash characters.&#xA;&lt;li>No path name with the exception of the root's absolute path name&#xA;ends in the slash character.&#xA;&lt;li>Any string that conforms to these two rules is a valid path name.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>All of the methods that modify preferences data are permitted to operate&#xA;asynchronously; they may return immediately, and changes will eventually&#xA;propagate to the persistent backing store with an implementation-dependent&#xA;delay.  The &lt;tt>flush&lt;/tt> method may be used to synchronously force&#xA;updates to the backing store.  Normal termination of the Java Virtual&#xA;Machine will &lt;i>not&lt;/i> result in the loss of pending updates -- an explicit&#xA;&lt;tt>flush&lt;/tt> invocation is &lt;i>not&lt;/i> required upon termination to ensure&#xA;that pending updates are made persistent.&#xA;&#xA;&lt;p>All of the methods that read preferences from a &lt;tt>Preferences&lt;/tt>&#xA;object require the invoker to provide a default value.  The default value is&#xA;returned if no value has been previously set &lt;i>or if the backing store is&#xA;unavailable&lt;/i>.  The intent is to allow applications to operate, albeit&#xA;with slightly degraded functionality, even if the backing store becomes&#xA;unavailable.  Several methods, like &lt;tt>flush&lt;/tt>, have semantics that&#xA;prevent them from operating if the backing store is unavailable.  Ordinary&#xA;applications should have no need to invoke any of these methods, which can&#xA;be identified by the fact that they are declared to throw {@link&#xA;BackingStoreException}.&#xA;&#xA;&lt;p>The methods in this class may be invoked concurrently by multiple threads&#xA;in a single JVM without the need for external synchronization, and the&#xA;results will be equivalent to some serial execution.  If this class is used&#xA;concurrently &lt;i>by multiple JVMs&lt;/i> that store their preference data in&#xA;the same backing store, the data store will not be corrupted, but no&#xA;other guarantees are made concerning the consistency of the preference&#xA;data.&#xA;&#xA;&lt;p>This class contains an export/import facility, allowing preferences&#xA;to be &quot;exported&quot; to an XML document, and XML documents representing&#xA;preferences to be &quot;imported&quot; back into the system.  This facility&#xA;may be used to back up all or part of a preference tree, and&#xA;subsequently restore from the backup.&#xA;&#xA;&lt;p>The XML document has the following DOCTYPE declaration:&#xA;&lt;pre>&#xA;&lt;!DOCTYPE preferences SYSTEM &quot;http://java.sun.com/dtd/preferences.dtd&quot;>&#xA;&lt;/pre>&#xA;Note that the system URI (http://java.sun.com/dtd/preferences.dtd) is&#xA;&lt;i>not&lt;/i> accessed when exporting or importing preferences; it merely&#xA;serves as a string to uniquely identify the DTD, which is:&#xA;&lt;pre>&#xA;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>&#xA;&#xA;&lt;!-- DTD for a Preferences tree. -->&#xA;&#xA;&lt;!-- The preferences element is at the root of an XML document&#xA;representing a Preferences tree. -->&#xA;&lt;!ELEMENT preferences (root)>&#xA;&#xA;&lt;!-- The preferences element contains an optional version attribute,&#xA;which specifies version of DTD. -->&#xA;&lt;!ATTLIST preferences EXTERNAL_XML_VERSION CDATA &quot;0.0&quot; &amp;gt&#xA;&#xA;&lt;!-- The root element has a map representing the root's preferences&#xA;(if any), and one node for each child of the root (if any). -->&#xA;&lt;!ELEMENT root (map, node*) >&#xA;&#xA;&lt;!-- Additionally, the root contains a type attribute, which&#xA;specifies whether it's the system or user root. -->&#xA;&lt;!ATTLIST root&#xA;type (system|user) #REQUIRED >&#xA;&#xA;&lt;!-- Each node has a map representing its preferences (if any),&#xA;and one node for each child (if any). -->&#xA;&lt;!ELEMENT node (map, node*) >&#xA;&#xA;&lt;!-- Additionally, each node has a name attribute -->&#xA;&lt;!ATTLIST node&#xA;name CDATA #REQUIRED >&#xA;&#xA;&lt;!-- A map represents the preferences stored at a node (if any). -->&#xA;&lt;!ELEMENT map (entry*) >&#xA;&#xA;&lt;!-- An entry represents a single preference, which is simply&#xA;a key-value pair. -->&#xA;&lt;!ELEMENT entry EMPTY >&#xA;&lt;!ATTLIST entry&#xA;key   CDATA #REQUIRED&#xA;value CDATA #REQUIRED >&#xA;&lt;/pre>&#xA;&#xA;Every &lt;tt>Preferences&lt;/tt> implementation must have an associated {@link&#xA;PreferencesFactory} implementation.  Every J2SE implementation must provide&#xA;some means of specifying which &lt;tt>PreferencesFactory&lt;/tt> implementation&#xA;is used to generate the root preferences nodes.  This allows the&#xA;administrator to replace the default preferences implementation with an&#xA;alternative implementation.&#xA;&#xA;&lt;p>Implementation note: In Sun's JRE, the &lt;tt>PreferencesFactory&lt;/tt>&#xA;implementation is located as follows:&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>&lt;p>If the system property&#xA;&lt;tt>java.util.prefs.PreferencesFactory&lt;/tt> is defined, then it is&#xA;taken to be the fully-qualified name of a class implementing the&#xA;&lt;tt>PreferencesFactory&lt;/tt> interface.  The class is loaded and&#xA;instantiated; if this process fails then an unspecified error is&#xA;thrown.&lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p> If a &lt;tt>PreferencesFactory&lt;/tt> implementation class file&#xA;has been installed in a jar file that is visible to the&#xA;{@link java.lang.ClassLoader#getSystemClassLoader system class loader},&#xA;and that jar file contains a provider-configuration file named&#xA;&lt;tt>java.util.prefs.PreferencesFactory&lt;/tt> in the resource&#xA;directory &lt;tt>META-INF/services&lt;/tt>, then the first class name&#xA;specified in that file is taken.  If more than one such jar file is&#xA;provided, the first one found will be used.  The class is loaded&#xA;and instantiated; if this process fails then an unspecified error&#xA;is thrown.  &lt;/p>&lt;/li>&#xA;&#xA;&lt;li>&lt;p>Finally, if neither the above-mentioned system property nor&#xA;an extension jar file is provided, then the system-wide default&#xA;&lt;tt>PreferencesFactory&lt;/tt> implementation for the underlying&#xA;platform is loaded and instantiated.&lt;/p>&lt;/li>&#xA;&#xA;&lt;/ol>&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.25, 06/21/04&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_735692_8765"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_824875_8773" name="XmlSupport" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_860257_6805" body="XML Support for java.util.prefs. Methods to import and export preference&#xA;nodes and subtrees.&#xA;&#xA;@author  Josh Bloch and Mark Reinhold&#xA;@version 1.7, 01/12/04&#xA;@see     Preferences&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_824875_8773"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_981335_19120" name="Resolver" visibility="private" clientDependency="_10_5_622020d_1132928322370_722749_14591">
                <interfaceRealization xmi:id="_10_5_622020d_1132928322370_722749_14591" name="" supplier="_9_5_f720368_1110473546940_303190_13288" client="_9_5_f720368_1110473547815_981335_19120" contract="_9_5_f720368_1110473546940_303190_13288"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_587324_19122" name="EH" visibility="private" clientDependency="_10_5_622020d_1132928322370_459589_14592">
                <interfaceRealization xmi:id="_10_5_622020d_1132928322370_459589_14592" name="" supplier="_9_5_f720368_1110473546940_141112_13290" client="_9_5_f720368_1110473547815_587324_19122" contract="_9_5_f720368_1110473546940_141112_13290"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_977592_8763" name="PreferenceChangeListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310392_602098_6795" body="A listener for receiving preference change events.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.4, 12/19/03&#xA;@see Preferences&#xA;@see PreferenceChangeEvent&#xA;@see NodeChangeListener&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_977592_8763"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_29540_14588" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_569926_8771" name="WindowsPreferencesFactory" visibility="package" clientDependency="_10_5_622020d_1132928322370_53423_14590">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_626331_6803" body="Implementation of  &lt;tt>PreferencesFactory&lt;/tt> to return&#xA;WindowsPreferences objects.&#xA;&#xA;@author  Konstantin Kladko&#xA;@version 1.7, 12/19/03&#xA;@see Preferences&#xA;@see WindowsPreferences&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_569926_8771"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322370_53423_14590" name="" supplier="_9_5_f720368_1110473546690_229384_8767" client="_9_5_f720368_1110473546690_569926_8771" contract="_9_5_f720368_1110473546690_229384_8767"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_263930_8759" name="NodeChangeListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310392_667994_6791" body="A listener for receiving preference node change events.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.4, 12/19/03&#xA;@see     Preferences&#xA;@see     NodeChangeEvent&#xA;@see     PreferenceChangeListener&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_263930_8759"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_763730_14586" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_188384_8757" name="NodeChangeEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928310392_437661_6789" body="An event emitted by a &lt;tt>Preferences&lt;/tt> node to indicate that&#xA;a child of that node has been added or removed.&lt;p>&#xA;&#xA;Note, that although NodeChangeEvent inherits Serializable interface from&#xA;java.util.EventObject, it is not intended to be Serializable. Appropriate&#xA;serialization methods are implemented to throw NotSerializableException.&#xA;&#xA;@author  Josh Bloch&#xA;@version $I$, $G$&#xA;@see     Preferences&#xA;@see     NodeChangeListener&#xA;@see     PreferenceChangeEvent&#xA;@since   1.4&#xA;@serial  exclude&#xA;" annotatedElement="_9_5_f720368_1110473546690_188384_8757"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_392906_14585" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_379751_8761" name="PreferenceChangeEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928310392_991012_6793" body="An event emitted by a &lt;tt>Preferences&lt;/tt> node to indicate that&#xA;a preference has been added, removed or has had its value changed.&lt;p>&#xA;&#xA;Note, that although PreferenceChangeEvent inherits Serializable interface&#xA;from EventObject, it is not intended to be Serializable. Appropriate&#xA;serialization methods are implemented to throw NotSerializableException.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.6, 12/19/03&#xA;@see Preferences&#xA;@see PreferenceChangeListener&#xA;@see NodeChangeEvent&#xA;@since   1.4&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546690_379751_8761"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_341968_14587" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_229384_8767" name="PreferencesFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_708117_6799" body="A factory object that generates Preferences objects.  Providers of&#xA;new {@link Preferences} implementations should provide corresponding&#xA;&lt;tt>PreferencesFactory&lt;/tt> implementations so that the new&#xA;&lt;tt>Preferences&lt;/tt> implementation can be installed in place of the&#xA;platform-specific default implementation.&#xA;&#xA;&lt;p>&lt;strong>This class is for &lt;tt>Preferences&lt;/tt> implementers only.&#xA;Normal users of the  &lt;tt>Preferences&lt;/tt> facility should have no need to&#xA;consult this documentation.&lt;/strong>&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.4, 12/19/03&#xA;@see     Preferences&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_229384_8767"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_380497_8755" name="InvalidPreferencesFormatException">
              <ownedComment xmi:id="_10_5_622020d_1132928310392_902383_6787" body="Thrown to indicate that an operation could not complete because&#xA;the input did not conform to the appropriate XML document type&#xA;for a collection of preferences, as per the {@link Preferences}&#xA;specification.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.7, 12/19/03&#xA;@see     Preferences&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_380497_8755"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_965158_14584" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_72129_8749" name="AbstractPreferences" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_30543_6781" body="This class provides a skeletal implementation of the {@link Preferences}&#xA;class, greatly easing the task of implementing it.&#xA;&#xA;&lt;p>&lt;strong>This class is for &lt;tt>Preferences&lt;/tt> implementers only.&#xA;Normal users of the &lt;tt>Preferences&lt;/tt> facility should have no need to&#xA;consult this documentation.  The {@link Preferences} documentation&#xA;should suffice.&lt;/strong>&#xA;&#xA;&lt;p>Implementors must override the nine abstract service-provider interface&#xA;(SPI) methods: {@link #getSpi(String)}, {@link #putSpi(String,String)},&#xA;{@link #removeSpi(String)}, {@link #childSpi(String)}, {@link&#xA;#removeNodeSpi()}, {@link #keysSpi()}, {@link #childrenNamesSpi()}, {@link&#xA;#syncSpi()} and {@link #flushSpi()}.  All of the concrete methods specify&#xA;precisely how they are implemented atop these SPI methods.  The implementor&#xA;may, at his discretion, override one or more of the concrete methods if the&#xA;default implementation is unsatisfactory for any reason, such as&#xA;performance.&#xA;&#xA;&lt;p>The SPI methods fall into three groups concerning exception&#xA;behavior. The &lt;tt>getSpi&lt;/tt> method should never throw exceptions, but it&#xA;doesn't really matter, as any exception thrown by this method will be&#xA;intercepted by {@link #get(String,String)}, which will return the specified&#xA;default value to the caller.  The &lt;tt>removeNodeSpi, keysSpi,&#xA;childrenNamesSpi, syncSpi&lt;/tt> and &lt;tt>flushSpi&lt;/tt> methods are specified&#xA;to throw {@link BackingStoreException}, and the implementation is required&#xA;to throw this checked exception if it is unable to perform the operation.&#xA;The exception propagates outward, causing the corresponding API method&#xA;to fail.&#xA;&#xA;&lt;p>The remaining SPI methods {@link #putSpi(String,String)}, {@link&#xA;#removeSpi(String)} and {@link #childSpi(String)} have more complicated&#xA;exception behavior.  They are not specified to throw&#xA;&lt;tt>BackingStoreException&lt;/tt>, as they can generally obey their contracts&#xA;even if the backing store is unavailable.  This is true because they return&#xA;no information and their effects are not required to become permanent until&#xA;a subsequent call to {Preferences#flush()} or&#xA;{Preferences#sync()}. Generally speaking, these SPI methods should not&#xA;throw exceptions.  In some implementations, there may be circumstances&#xA;under which these calls cannot even enqueue the requested operation for&#xA;later processing.  Even under these circumstances it is generally better to&#xA;simply ignore the invocation and return, rather than throwing an&#xA;exception.  Under these circumstances, however, all subsequent invocations&#xA;of &lt;tt>flush()&lt;/tt> and &lt;tt>sync&lt;/tt> should return &lt;tt>false&lt;/tt>, as&#xA;returning &lt;tt>true&lt;/tt> would imply that all previous operations had&#xA;successfully been made permanent.&#xA;&#xA;&lt;p>There is one circumstance under which &lt;tt>putSpi, removeSpi and&#xA;childSpi&lt;/tt> &lt;i>should&lt;/i> throw an exception: if the caller lacks&#xA;sufficient privileges on the underlying operating system to perform the&#xA;requested operation.  This will, for instance, occur on most systems&#xA;if a non-privileged user attempts to modify system preferences.&#xA;(The required privileges will vary from implementation to&#xA;implementation.  On some implementations, they are the right to modify the&#xA;contents of some directory in the file system; on others they are the right&#xA;to modify contents of some key in a registry.)  Under any of these&#xA;circumstances, it would generally be undesirable to let the program&#xA;continue executing as if these operations would become permanent at a later&#xA;time.  While implementations are not required to throw an exception under&#xA;these circumstances, they are encouraged to do so.  A {@link&#xA;SecurityException} would be appropriate.&#xA;&#xA;&lt;p>Most of the SPI methods require the implementation to read or write&#xA;information at a preferences node.  The implementor should beware of the&#xA;fact that another VM may have concurrently deleted this node from the&#xA;backing store.  It is the implementation's responsibility to recreate the&#xA;node if it has been deleted.&#xA;&#xA;&lt;p>Implementation note: In Sun's default &lt;tt>Preferences&lt;/tt>&#xA;implementations, the user's identity is inherited from the underlying&#xA;operating system and does not change for the lifetime of the virtual&#xA;machine.  It is recognized that server-side &lt;tt>Preferences&lt;/tt>&#xA;implementations may have the user identity change from request to request,&#xA;implicitly passed to &lt;tt>Preferences&lt;/tt> methods via the use of a&#xA;static {@link ThreadLocal} instance.  Authors of such implementations are&#xA;&lt;i>strongly&lt;/i> encouraged to determine the user at the time preferences&#xA;are accessed (for example by the {@link #get(String,String)} or {@link&#xA;#put(String,String)} method) rather than permanently associating a user&#xA;with each &lt;tt>Preferences&lt;/tt> instance.  The latter behavior conflicts&#xA;with normal &lt;tt>Preferences&lt;/tt> usage and would lead to great confusion.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.20, 01/12/04&#xA;@see     Preferences&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_72129_8749"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_72779_14579" isSubstitutable="true" general="_9_5_f720368_1110473546690_735692_8765"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_781769_19102" name="NodeAddedEvent" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928310382_115129_6778" body="These two classes are used to distinguish NodeChangeEvents on&#xA;eventQueue so the event dispatch thread knows whether to call&#xA;childAdded or childRemoved.&#xA;" annotatedElement="_9_5_f720368_1110473547815_781769_19102"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_419424_14580" isSubstitutable="true" general="_9_5_f720368_1110473546690_188384_8757"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_877055_19104" name="NodeRemovedEvent" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322370_564491_14581" isSubstitutable="true" general="_9_5_f720368_1110473546690_188384_8757"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_182130_19105" name="EventDispatchThread" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928310382_987041_6779" body="A single background thread (&quot;the event notification thread&quot;) monitors&#xA;the event queue and delivers events that are placed on the queue.&#xA;" annotatedElement="_9_5_f720368_1110473547815_182130_19105"/>
                <generalization xmi:id="_10_5_622020d_1132928322370_360929_14582" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_815936_8753" name="Base64" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_941257_6785" body="Static methods for translating Base64 encoded strings to byte arrays&#xA;and vice-versa.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.5, 12/19/03&#xA;@see     Preferences&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_815936_8753"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_577253_8769" name="WindowsPreferences" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928310442_648895_6801" body="Windows registry based implementation of  &lt;tt>Preferences&lt;/tt>.&#xA;&lt;tt>Preferences&lt;/tt>' &lt;tt>systemRoot&lt;/tt> and &lt;tt>userRoot&lt;/tt> are stored in&#xA;&lt;tt>HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs&lt;/tt> and&#xA;&lt;tt>HKEY_CURRENT_USER\Software\JavaSoft\Prefs&lt;/tt> correspondingly.&#xA;&#xA;@author  Konstantin Kladko&#xA;@version 1.18, 12/19/03&#xA;@see Preferences&#xA;@see PreferencesFactory&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_577253_8769"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_754712_14589" isSubstitutable="true" general="_9_5_f720368_1110473546690_72129_8749"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_381854_7211" name="EnumSet" clientDependency="_10_5_622020d_1132928322560_419619_14928 _10_5_622020d_1132928322560_107449_14927" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310963_68369_7221" body="A specialized {@link Set} implementation for use with enum types.  All of&#xA;the elements in an enum set must come from a single enum type that is&#xA;specified, explicitly or implicitly, when the set is created.  Enum sets&#xA;are represented internally as bit vectors.  This representation is&#xA;extremely compact and efficient. The space and time performance of this&#xA;class should be good enough to allow its use as a high-quality, typesafe&#xA;alternative to traditional &lt;tt>int&lt;/tt>-based &quot;bit flags.&quot;  Even bulk&#xA;operations (such as &lt;tt>containsAll&lt;/tt> and &lt;tt>retainAll&lt;/tt>) should&#xA;run very quickly if the specified collection is also an enum set.&#xA;&#xA;&lt;p>The iterator returned by the &lt;tt>iterator&lt;/tt>method traverses the&#xA;elements in their &lt;i>natural order&lt;/i> (the order in which the enum&#xA;constants are declared).  The returned iterator is &lt;i>weakly&#xA;consistent&lt;/i>: it will never throw {@link ConcurrentModificationException}&#xA;and it may or may not show the effects of any modifications to the set that&#xA;occur while the iteration is in progress.&#xA;&#xA;&lt;p>Null elements are not permitted.  Attempts to insert a null element&#xA;will throw {@link NullPointerException}.  Attempts to test for the&#xA;presence of a null element or to remove one will, however, function&#xA;properly.&#xA;&#xA;&lt;P>Like most collection implementations &lt;tt>EnumSet&lt;/tt> is not&#xA;synchronized.  If multiple threads access an enum set concurrently, and at&#xA;least one of the threads modifies the set, it should be synchronized&#xA;externally.  This is typically accomplished by synchronizing on some&#xA;object that naturally encapsulates the enum set.  If no such object exists,&#xA;the set should be &quot;wrapped&quot; using the {@link Collections#synchronizedSet}&#xA;method.  This is best done at creation time, to prevent accidental&#xA;unsynchronized access:&#xA;&#xA;&lt;pre>&#xA;Set&lt;MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(Foo.class));&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Implementation note: All basic operations execute in constant time.&#xA;They are likely (though not guaranteed) to be much faster than their&#xA;{@link HashSet} counterparts.  Even bulk operations, such as {@link&#xA;#addAll} and  {@link #removeAll} execute in constant time if the&#xA;parameter is another &lt;tt>EnumSet&lt;/tt> instance.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author Josh Bloch&#xA;@version 1.10, 05/28/04&#xA;@since 1.5&#xA;@see EnumMap&#xA;@serial exclude&#xA;" annotatedElement="_10_5_622020d_1132928310953_381854_7211"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310953_473176_7212" name="" parameter="_10_5_622020d_1132928310953_808641_7213">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_808641_7213" parameteredElement="_10_5_622020d_1132928310953_580157_7214" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_580157_7214" name="E" templateParameter="_10_5_622020d_1132928310953_808641_7213"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322560_78408_14929" isSubstitutable="true" general="_10_5_622020d_1132928322269_824759_14450"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_107449_14927" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928310953_381854_7211" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_419619_14928" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310953_381854_7211" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_71005_7215" name="SerializationProxy" visibility="private" clientDependency="_10_5_622020d_1132928322560_770110_14930">
              <ownedComment xmi:id="_10_5_622020d_1132928310963_626002_7219" body="This class is used to serialize all EnumSet instances, regardless of&#xA;implementation type.  It captures their &quot;logical contents&quot; and they&#xA;are reconstructed using public static factories.  This is necessary&#xA;to ensure that the existence of a particular implementation type is&#xA;an implementation detail.&#xA;&#xA;@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310953_71005_7215"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310953_211648_7216" name="" parameter="_10_5_622020d_1132928310953_393703_7217">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_393703_7217" parameteredElement="_10_5_622020d_1132928310953_196165_7218" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_196165_7218" name="E" templateParameter="_10_5_622020d_1132928310953_393703_7217"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322560_770110_14930" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310953_71005_7215" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_53507_7439" name="RegularEnumSet" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928313357_698509_7448" body="Private implementation class for EnumSet, for &quot;regular sized&quot; enum types&#xA;(i.e., those with 64 or fewer enum constants).&#xA;&#xA;@author Josh Bloch&#xA;@since 1.5&#xA;@serial exclude&#xA;" annotatedElement="_10_5_622020d_1132928313357_53507_7439"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313357_321607_7440" name="" parameter="_10_5_622020d_1132928313357_176250_7441">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313357_176250_7441" parameteredElement="_10_5_622020d_1132928313357_857705_7442" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_857705_7442" name="E" templateParameter="_10_5_622020d_1132928313357_176250_7441"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322620_426609_15087" isSubstitutable="true" general="_10_5_622020d_1132928322600_579660_15019"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_218905_7443" name="EnumSetIterator" visibility="private" clientDependency="_10_5_622020d_1132928322620_589055_15088">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313357_68836_7444" name="" parameter="_10_5_622020d_1132928313357_951180_7445">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313357_951180_7445" parameteredElement="_10_5_622020d_1132928313357_73910_7446" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_73910_7446" name="E" templateParameter="_10_5_622020d_1132928313357_951180_7445"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322620_589055_15088" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928313357_218905_7443" contract="_10_5_622020d_1132928321989_283025_14359"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547846_265295_19363" name="zip">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_440747_8799" name="GZIPInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_884729_6911" body="This class implements a stream filter for reading compressed data in&#xA;the GZIP file format.&#xA;&#xA;@see&#x9;&#x9;InflaterInputStream&#xA;@version &#x9;1.28, 06/11/04&#xA;@author &#x9;David Connelly&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546706_440747_8799"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_553249_14681" isSubstitutable="true" general="_9_5_f720368_1110473546706_787126_8805"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_355402_8787" name="CheckedOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_72542_6899" body="An output stream that also maintains a checksum of the data being&#xA;written. The checksum can then be used to verify the integrity of&#xA;the output data.&#xA;&#xA;@see&#x9;&#x9;Checksum&#xA;@version &#x9;1.18, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_355402_8787"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_176264_14677" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_165325_8801" name="GZIPOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_941060_6913" body="This class implements a stream filter for writing compressed data in&#xA;the GZIP file format.&#xA;@version &#x9;1.22, 12/19/03&#xA;@author &#x9;David Connelly&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546706_165325_8801"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_172353_14682" isSubstitutable="true" general="_9_5_f720368_1110473546706_455142_8797"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_455142_8797" name="DeflaterOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_113661_6909" body="This class implements an output stream filter for compressing data in&#xA;the &quot;deflate&quot; compression format. It is also used as the basis for other&#xA;types of compression filters, such as GZIPOutputStream.&#xA;&#xA;@see&#x9;&#x9;Deflater&#xA;@version &#x9;1.34, 01/12/04&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546706_455142_8797"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_464215_14680" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_702648_8809" name="ZipEntry" clientDependency="_10_5_622020d_1132928322390_445453_14684 _10_5_622020d_1132928322390_764291_14685">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_827450_6920" body="This class is used to represent a ZIP file entry.&#xA;&#xA;@version&#x9;1.36, 12/19/03&#xA;@author&#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546706_702648_8809"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322390_445453_14684" name="" supplier="_9_5_f720368_1110473546706_405163_8807" client="_9_5_f720368_1110473546706_702648_8809" contract="_9_5_f720368_1110473546706_405163_8807"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322390_764291_14685" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_702648_8809" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_405163_8807" name="ZipConstants" visibility="package" isAbstract="true"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_101659_8803" name="Inflater">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_566367_6915" body="This class provides support for general purpose decompression using the&#xA;popular ZLIB compression library. The ZLIB compression library was&#xA;initially developed as part of the PNG graphics standard and is not&#xA;protected by patents. It is fully described in the specifications at&#xA;the &lt;a href=&quot;package-summary.html#package_description&quot;>java.util.zip&#xA;package description&lt;/a>.&#xA;&#xA;&lt;p>The following code fragment demonstrates a trivial compression&#xA;and decompression of a string using &lt;tt>Deflater&lt;/tt> and&#xA;&lt;tt>Inflater&lt;/tt>.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Encode a String into bytes&#xA;String inputString = &quot;blahblahblah\u20AC\u20AC&quot;;&#xA;byte[] input = inputString.getBytes(&quot;UTF-8&quot;);&#xA;&#xA;Compress the bytes&#xA;byte[] output = new byte[100];&#xA;Deflater compresser = new Deflater();&#xA;compresser.setInput(input);&#xA;compresser.finish();&#xA;int compressedDataLength = compresser.deflate(output);&#xA;&#xA;Decompress the bytes&#xA;Inflater decompresser = new Inflater();&#xA;decompresser.setInput(output, 0, compressedDataLength);&#xA;byte[] result = new byte[100];&#xA;int resultLength = decompresser.inflate(result);&#xA;decompresser.end();&#xA;&#xA;Decode the bytes into a String&#xA;String outputString = new String(result, 0, resultLength, &quot;UTF-8&quot;);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@see&#x9;&#x9;Deflater&#xA;@version &#x9;1.41, 12/19/03&#xA;@author &#x9;David Connelly&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546706_101659_8803"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_452677_8811" name="ZipException">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_491101_6922" body="Signals that a Zip exception of some sort has occurred.&#xA;&#xA;@author  unascribed&#xA;@version 1.16 12/19/03&#xA;@see     java.io.IOException&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_452677_8811"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_389245_14686" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_662140_8791" name="CRC32" clientDependency="_10_5_622020d_1132928322390_547646_14678">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_24098_6903" body="A class that can be used to compute the CRC-32 of a data stream.&#xA;&#xA;@see&#x9;&#x9;Checksum&#xA;@version &#x9;1.30, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_662140_8791"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322390_547646_14678" name="" supplier="_9_5_f720368_1110473546690_438466_8789" client="_9_5_f720368_1110473546690_662140_8791" contract="_9_5_f720368_1110473546690_438466_8789"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_933782_8795" name="Deflater">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_984712_6907" body="This class provides support for general purpose compression using the&#xA;popular ZLIB compression library. The ZLIB compression library was&#xA;initially developed as part of the PNG graphics standard and is not&#xA;protected by patents. It is fully described in the specifications at&#xA;the &lt;a href=&quot;package-summary.html#package_description&quot;>java.util.zip&#xA;package description&lt;/a>.&#xA;&#xA;&lt;p>The following code fragment demonstrates a trivial compression&#xA;and decompression of a string using &lt;tt>Deflater&lt;/tt> and&#xA;&lt;tt>Inflater&lt;/tt>.&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;Encode a String into bytes&#xA;String inputString = &quot;blahblahblah\u20AC\u20AC&quot;;&#xA;byte[] input = inputString.getBytes(&quot;UTF-8&quot;);&#xA;&#xA;Compress the bytes&#xA;byte[] output = new byte[100];&#xA;Deflater compresser = new Deflater();&#xA;compresser.setInput(input);&#xA;compresser.finish();&#xA;int compressedDataLength = compresser.deflate(output);&#xA;&#xA;Decompress the bytes&#xA;Inflater decompresser = new Inflater();&#xA;decompresser.setInput(output, 0, compressedDataLength);&#xA;byte[] result = new byte[100];&#xA;int resultLength = decompresser.inflate(result);&#xA;decompresser.end();&#xA;&#xA;Decode the bytes into a String&#xA;String outputString = new String(result, 0, resultLength, &quot;UTF-8&quot;);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@see&#x9;&#x9;Inflater&#xA;@version &#x9;1.40, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546706_933782_8795"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_229654_8817" name="ZipOutputStream" clientDependency="_10_5_622020d_1132928322460_450440_14698">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_415019_6931" body="This class implements an output stream filter for writing files in the&#xA;ZIP file format. Includes support for both compressed and uncompressed&#xA;entries.&#xA;&#xA;@author&#x9;David Connelly&#xA;@version&#x9;1.31, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546706_229654_8817"/>
              <generalization xmi:id="_10_5_622020d_1132928322460_286360_14699" isSubstitutable="true" general="_9_5_f720368_1110473546706_455142_8797"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322460_450440_14698" name="" supplier="_9_5_f720368_1110473546706_405163_8807" client="_9_5_f720368_1110473546706_229654_8817" contract="_9_5_f720368_1110473546706_405163_8807"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_132615_8815" name="ZipInputStream" clientDependency="_10_5_622020d_1132928322460_694461_14696">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_233039_6929" body="This class implements an input stream filter for reading files in the&#xA;ZIP file format. Includes support for both compressed and uncompressed&#xA;entries.&#xA;&#xA;@author&#x9;David Connelly&#xA;@version&#x9;1.37, 06/11/04&#xA;" annotatedElement="_9_5_f720368_1110473546706_132615_8815"/>
              <generalization xmi:id="_10_5_622020d_1132928322460_600426_14697" isSubstitutable="true" general="_9_5_f720368_1110473546706_787126_8805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322460_694461_14696" name="" supplier="_9_5_f720368_1110473546706_405163_8807" client="_9_5_f720368_1110473546706_132615_8815" contract="_9_5_f720368_1110473546706_405163_8807"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_627866_8813" name="ZipFile" clientDependency="_10_5_622020d_1132928322390_825369_14687">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_595616_6927" body="This class is used to read entries from a zip file.&#xA;&#xA;&lt;p> Unless otherwise noted, passing a &lt;tt>null&lt;/tt> argument to a constructor&#xA;or method in this class will cause a {@link NullPointerException} to be&#xA;thrown.&#xA;&#xA;@version   1.67, 05/05/04&#xA;@author&#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546706_627866_8813"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322390_825369_14687" name="" supplier="_9_5_f720368_1110473546706_405163_8807" client="_9_5_f720368_1110473546706_627866_8813" contract="_9_5_f720368_1110473546706_405163_8807"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_721815_19379" name="ZipFileInputStream" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322390_533529_14689" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310783_762244_6923" name="ZipCloser" visibility="private" clientDependency="_10_5_622020d_1132928322390_822378_14688">
                <ownedComment xmi:id="_10_5_622020d_1132928310783_623399_6924" body="Handles cleanup after mappedBuffer is no longer referenced.&#xA;&#xA;The DirectByteBuffer code creates a phantom reference to mappedBuffer&#xA;that will call ZipCloser.run() when mappedBuffer is no longer&#xA;(strongly) referenced.&#xA;If it was safe to do so, ZipFile.close() (and finalize()) will have&#xA;already cleaned up.&#xA;&#xA;Note: since ZipFile references MappedByteBuffer, we can be sure that&#xA;the ZipFile has already been finalized by the time ZipCloser.run()&#xA;is called.&#xA;" annotatedElement="_10_5_622020d_1132928310783_762244_6923"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322390_822378_14688" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_10_5_622020d_1132928310783_762244_6923" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310783_66706_6925" name="MappedZipFileInputStream" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322460_846737_14695" isSubstitutable="true" general="_9_5_f720368_1110473547846_721815_19379"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_787126_8805" name="InflaterInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310783_242282_6917" body="This class implements a stream filter for uncompressing data in the&#xA;&quot;deflate&quot; compression format. It is also used as the basis for other&#xA;decompression filters, such as GZIPInputStream.&#xA;&#xA;@see&#x9;&#x9;Inflater&#xA;@version &#x9;1.37, 06/11/04&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546706_787126_8805"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_192877_14683" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_135188_8785" name="CheckedInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_80212_6897" body="An input stream that also maintains a checksum of the data being read.&#xA;The checksum can then be used to verify the integrity of the input data.&#xA;&#xA;@see&#x9;&#x9;Checksum&#xA;@version &#x9;1.19, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_135188_8785"/>
              <generalization xmi:id="_10_5_622020d_1132928322380_323325_14676" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_190310_8783" name="Adler32" clientDependency="_10_5_622020d_1132928322380_153551_14675">
              <ownedComment xmi:id="_10_5_622020d_1132928310763_30900_6895" body="A class that can be used to compute the Adler-32 checksum of a data&#xA;stream. An Adler-32 checksum is almost as reliable as a CRC-32 but&#xA;can be computed much faster.&#xA;&#xA;@see&#x9;&#x9;Checksum&#xA;@version &#x9;1.27, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_190310_8783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322380_153551_14675" name="" supplier="_9_5_f720368_1110473546690_438466_8789" client="_9_5_f720368_1110473546690_190310_8783" contract="_9_5_f720368_1110473546690_438466_8789"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_438466_8789" name="Checksum" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_643902_6901" body="An interface representing a data checksum.&#xA;&#xA;@version &#x9;1.16, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_438466_8789"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_343284_8793" name="DataFormatException">
              <ownedComment xmi:id="_10_5_622020d_1132928310773_365533_6905" body="Signals that a data format error has occurred.&#xA;&#xA;@version &#x9;1.13, 12/19/03&#xA;@author &#x9;David Connelly&#xA;" annotatedElement="_9_5_f720368_1110473546690_343284_8793"/>
              <generalization xmi:id="_10_5_622020d_1132928322390_138066_14679" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313407_337116_7456" name="Scanner" clientDependency="_10_5_622020d_1132928322630_109792_15098" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313447_475574_7458" body="A simple text scanner which can parse primitive types and strings using&#xA;regular expressions.&#xA;&#xA;&lt;p>A &lt;code>Scanner&lt;/code> breaks its input into tokens using a&#xA;delimiter pattern, which by default matches whitespace. The resulting&#xA;tokens may then be converted into values of different types using the&#xA;various &lt;tt>next&lt;/tt> methods.&#xA;&#xA;&lt;p>For example, this code allows a user to read a number from&#xA;&lt;tt>System.in&lt;/tt>:&#xA;&lt;blockquote>&lt;pre>&#xA;Scanner sc = new Scanner(System.in);&#xA;int i = sc.nextInt();&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>As another example, this code allows &lt;code>long&lt;/code> types to be&#xA;assigned from entries in a file &lt;code>myNumbers&lt;/code>:&#xA;&lt;blockquote>&lt;pre>&#xA;Scanner sc = new Scanner(new File(&quot;myNumbers&quot;));&#xA;while (sc.hasNextLong()) {&#xA;long aLong = sc.nextLong();&#xA;}&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>The scanner can also use delimiters other than whitespace. This&#xA;example reads several items in from a string:&#xA;&lt;blockquote>&lt;pre>&#xA;String input = &quot;1 fish 2 fish red fish blue fish&quot;;&#xA;Scanner s = new Scanner(input).useDelimiter(&quot;\\s*fish\\s*&quot;);&#xA;System.out.println(s.nextInt());&#xA;System.out.println(s.nextInt());&#xA;System.out.println(s.next());&#xA;System.out.println(s.next());&#xA;s.close(); &lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;prints the following output:&#xA;&lt;blockquote>&lt;pre>&#xA;1&#xA;2&#xA;red&#xA;blue &lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>The same output can be generated with this code, which uses a regular&#xA;expression to parse all four tokens at once:&#xA;&lt;blockquote>&lt;pre>&#xA;String input = &quot;1 fish 2 fish red fish blue fish&quot;;&#xA;Scanner s = new Scanner(input);&#xA;s.findInLine(&quot;(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)&quot;);&#xA;MatchResult result = s.match();&#xA;for (int i=1; i&lt;=result.groupCount(); i++)&#xA;System.out.println(result.group(i);&#xA;s.close(); &lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;p>The default whitespace delimiter used by a scanner is as&#xA;recognized by {@link java.lang.Character}.{@link&#xA;java.lang.Character#isWhitespace(char) isWhitespace}.&#xA;&#xA;&lt;p>A scanning operation may block waiting for input.&#xA;&#xA;&lt;p>The {@link #next} and {@link #hasNext} methods and their&#xA;primitive-type companion methods (such as {@link #nextInt} and&#xA;{@link #hasNextInt}) first skip any input that matches the delimiter&#xA;pattern, and then attempt to return the next token. Both &lt;tt>hasNext&lt;/tt>&#xA;and &lt;tt>next&lt;/tt> methods may block waiting for further input.  Whether a&#xA;&lt;tt>hasNext&lt;/tt> method blocks has no connection to whether or not its&#xA;associated &lt;tt>next&lt;/tt> method will block.&#xA;&#xA;&lt;p> The {@link #findInLine}, {@link #findWithinHorizon}, and {@link #skip}&#xA;methods operate independently of the delimiter pattern. These methods will&#xA;attempt to match the specified pattern with no regard to delimiters in the&#xA;input and thus can be used in special circumstances where delimiters are&#xA;not relevant. These methods may block waiting for more input.&#xA;&#xA;&lt;p>When a scanner throws an {@link InputMismatchException}, the scanner&#xA;will not pass the token that caused the exception, so that it may be&#xA;retrieved or skipped via some other method.&#xA;&#xA;&lt;p>Depending upon the type of delimiting pattern, empty tokens may be&#xA;returned. For example, the pattern &lt;tt>&quot;\\s+&quot;&lt;/tt> will return no empty&#xA;tokens since it matches multiple instances of the delimiter. The delimiting&#xA;pattern &lt;tt>&quot;\\s&quot;&lt;/tt> could return empty tokens since it only passes one&#xA;space at a time.&#xA;&#xA;&lt;p> A scanner can read text from any object which implements the {@link&#xA;java.lang.Readable} interface.  If an invocation of the underlying&#xA;readable's {@link java.lang.Readable#read} method throws an {@link&#xA;java.io.IOException} then the scanner assumes that the end of the input&#xA;has been reached.  The most recent &lt;tt>IOException&lt;/tt> thrown by the&#xA;underlying readable can be retrieved via the {@link #ioException} method.&#xA;&#xA;&lt;p>When a &lt;code>Scanner&lt;/code> is closed, it will close its input source&#xA;if the source implements the {@link java.io.Closeable} interface.&#xA;&#xA;&lt;p>A &lt;code>Scanner&lt;/code> is not safe for multithreaded use without&#xA;external synchronization.&#xA;&#xA;&lt;p>Unless otherwise mentioned, passing a &lt;code>null&lt;/code> parameter into&#xA;any method of a &lt;code>Scanner&lt;/code> will cause a&#xA;&lt;code>NullPointerException&lt;/code> to be thrown.&#xA;&#xA;&lt;p>A scanner will default to interpreting numbers as decimal unless a&#xA;different radix has been set by using the {@link #useRadix} method.&#xA;&#xA;&lt;a name=&quot;localized-numbers&quot;>&#xA;&lt;h4> Localized numbers &lt;/h4>&#xA;&#xA;&lt;p> An instance of this class is capable of scanning numbers in the standard&#xA;formats as well as in the formats of the scanner's locale. A scanner's&#xA;initial locale is the value returned by the {@link&#xA;java.util.Locale#getDefault} method; it may be changed via the {@link&#xA;#useLocale} method.&#xA;&#xA;&lt;p>The localized formats are defined in terms of the following parameters,&#xA;which for a particular locale are taken from that locale's {@link&#xA;java.text.DecimalFormat DecimalFormat} object, &lt;tt>df&lt;/tt>, and its and&#xA;{@link java.text.DecimalFormatSymbols DecimalFormatSymbols} object,&#xA;&lt;tt>dfs&lt;/tt>.&#xA;&#xA;&lt;blockquote>&lt;table>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalGroupSeparator&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The character used to separate thousands groups,&#xA;&lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>dfs.&lt;/tt>{@link&#xA;java.text.DecimalFormatSymbols#getGroupingSeparator&#xA;getGroupingSeparator()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalDecimalSeparator&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The character used for the decimal point,&#xA;&lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>dfs.&lt;/tt>{@link&#xA;java.text.DecimalFormatSymbols#getDecimalSeparator&#xA;getDecimalSeparator()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalPositivePrefix&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that appears before a positive number (may&#xA;be empty), &lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>df.&lt;/tt>{@link&#xA;java.text.DecimalFormat#getPositivePrefix&#xA;getPositivePrefix()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalPositiveSuffix&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that appears after a positive number (may be&#xA;empty), &lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>df.&lt;/tt>{@link&#xA;java.text.DecimalFormat#getPositiveSuffix&#xA;getPositiveSuffix()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalNegativePrefix&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that appears before a negative number (may&#xA;be empty), &lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>df.&lt;/tt>{@link&#xA;java.text.DecimalFormat#getNegativePrefix&#xA;getNegativePrefix()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalNegativeSuffix&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that appears after a negative number (may be&#xA;empty), &lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>df.&lt;/tt>{@link&#xA;java.text.DecimalFormat#getNegativeSuffix&#xA;getNegativeSuffix()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalNaN&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that represents not-a-number for&#xA;floating-point values,&#xA;&lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>dfs.&lt;/tt>{@link&#xA;java.text.DecimalFormatSymbols#getInfinity&#xA;getInfinity()}&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td valign=&quot;top&quot;>&lt;i>LocalInfinity&amp;nbsp;&amp;nbsp;&lt;/i>&lt;/td>&#xA;&lt;td valign=&quot;top&quot;>The string that represents infinity for floating-point&#xA;values, &lt;i>i.e.,&lt;/i>&amp;nbsp;&lt;tt>dfs.&lt;/tt>{@link&#xA;java.text.DecimalFormatSymbols#getInfinity&#xA;getInfinity()}&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/blockquote>&#xA;&#xA;&lt;a name=&quot;number-syntax&quot;>&#xA;&lt;h4> Number syntax &lt;/h4>&#xA;&#xA;&lt;p> The strings that can be parsed as numbers by an instance of this class&#xA;are specified in terms of the following regular-expression grammar, where&#xA;Rmax is the highest digit in the radix being used (for example, Rmax is 9&#xA;in base 10).&#xA;&#xA;&lt;p>&#xA;&lt;table cellspacing=0 cellpadding=0 align=center>&#xA;&#xA;&lt;tr>&lt;td valign=top align=right>&lt;i>NonASCIIDigit&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td valign=top>= A non-ASCII character c for which&#xA;{@link java.lang.Character#isDigit Character.isDigit}&lt;tt>(c)&lt;/tt>&#xA;returns&amp;nbsp;true&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>Non0Digit&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= [1-&lt;/tt>&lt;i>Rmax&lt;/i>&lt;tt>] | &lt;/tt>&lt;i>NonASCIIDigit&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>Digit&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= [0-&lt;/tt>&lt;i>Rmax&lt;/i>&lt;tt>] | &lt;/tt>&lt;i>NonASCIIDigit&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=top align=right>&lt;i>GroupedNumeral&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td valign=top>&#xA;&lt;table cellpadding=0 cellspacing=0>&#xA;&lt;tr>&lt;td>&lt;tt>= (&amp;nbsp;&lt;/tt>&lt;/td>&#xA;&lt;td>&lt;i>Non0Digit&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>?&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>?&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>(&amp;nbsp;&lt;/tt>&lt;i>LocalGroupSeparator&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt> )+ )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;/table>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>Numeral&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= ( ( &lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>+ )&#xA;| &lt;/tt>&lt;i>GroupedNumeral&lt;/i>&lt;tt> )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=top align=right>&#xA;&lt;a name=&quot;Integer-regex&quot;>&lt;i>Integer&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td valign=top>&lt;tt>= ( [-+]? ( &lt;/tt>&lt;i>Numeral&lt;/i>&lt;tt>&#xA;) )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalPositivePrefix&lt;/i>&lt;tt> &lt;/tt>&lt;i>Numeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalPositiveSuffix&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalNegativePrefix&lt;/i>&lt;tt> &lt;/tt>&lt;i>Numeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalNegativeSuffix&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>DecimalNumeral&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= &lt;/tt>&lt;i>Numeral&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>Numeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalDecimalSeparator&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>*&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalDecimalSeparator&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>+&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>Exponent&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= ( [eE] [+-]? &lt;/tt>&lt;i>Digit&lt;/i>&lt;tt>+ )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&#xA;&lt;a name=&quot;Decimal-regex&quot;>&lt;i>Decimal&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= ( [-+]? &lt;/tt>&lt;i>DecimalNumeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>Exponent&lt;/i>&lt;tt>? )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalPositivePrefix&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>DecimalNumeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalPositiveSuffix&lt;/i>&#xA;&lt;/tt>&lt;i>Exponent&lt;/i>&lt;tt>?&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalNegativePrefix&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>DecimalNumeral&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalNegativeSuffix&lt;/i>&#xA;&lt;/tt>&lt;i>Exponent&lt;/i>&lt;tt>?&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>HexFloat&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= [-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+&#xA;([pP][-+]?[0-9]+)?&lt;/tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>NonNumber&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td valign=top>&lt;tt>= NaN&#xA;| &lt;/tt>&lt;i>LocalNan&lt;/i>&lt;tt>&#xA;| Infinity&#xA;| &lt;/tt>&lt;i>LocalInfinity&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td align=right>&lt;i>SignedNonNumber&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td>&lt;tt>= ( [-+]? &lt;/tt>&lt;i>NonNumber&lt;/i>&lt;tt> )&lt;/tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalPositivePrefix&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>NonNumber&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalPositiveSuffix&lt;/i>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>LocalNegativePrefix&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>NonNumber&lt;/i>&lt;tt>&#xA;&lt;/tt>&lt;i>LocalNegativeSuffix&lt;/i>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td>&amp;nbsp;&lt;/td>&lt;/tr>&#xA;&#xA;&lt;tr>&lt;td valign=top align=right>&#xA;&lt;a name=&quot;Float-regex&quot;>&lt;i>Float&lt;/i>&amp;nbsp;&amp;nbsp;::&lt;/td>&#xA;&lt;td valign=top>&lt;tt>= &lt;/tt>&lt;i>Decimal&lt;/i>&lt;tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>HexFloat&lt;/i>&lt;tt>&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;/td>&#xA;&lt;td>&lt;tt>| &lt;/tt>&lt;i>SignedNonNumber&lt;/i>&lt;tt>&lt;/td>&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&lt;/center>&#xA;&#xA;&lt;p> Whitespace is not significant in the above regular expressions.&#xA;&#xA;@version 1.15, 07/15/04&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928313407_337116_7456"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_109792_15098" name="" supplier="_10_5_622020d_1132928322630_434165_15095" client="_10_5_622020d_1132928313407_337116_7456" contract="_10_5_622020d_1132928322630_434165_15095"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322620_480057_15091" name="Enumeration&lt;String>">
            <templateBinding xmi:id="_10_5_622020d_1132928322620_361984_15092" signature="_10_5_622020d_1132928310953_589904_7187">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322620_902734_15093" formal="_10_5_622020d_1132928310953_916423_7188" actual="_9_5_f720368_1110473546612_692218_7691"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322480_882361_14760" name="SortedSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_181164_14761" signature="_10_5_622020d_1132928313477_114444_7473">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_418444_14762" formal="_10_5_622020d_1132928313477_963969_7474" actual="_10_5_622020d_1132928310893_336837_7010"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322540_173472_14889" name="Comparator&lt;T>">
            <templateBinding xmi:id="_10_5_622020d_1132928322540_935268_14890" signature="_10_5_622020d_1132928310923_924476_7163">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322540_676652_14891" formal="_10_5_622020d_1132928310923_956594_7164" actual="_10_5_622020d_1132928310923_477544_7159"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_81194_7310" name="IllegalFormatException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_794846_7312" body="Unchecked exception thrown when a format string contains an illegal syntax&#xA;or a format specifier that is incompatible with the given arguments.  Only&#xA;explicit subtypes of this exception which correspond to specific errors&#xA;should be instantiated.&#xA;&#xA;@version &#x9;1.3, 04/21/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_81194_7310"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_494617_15013" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322590_319544_15004" name="IdentityHashMapIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322590_665745_15005" signature="_10_5_622020d_1132928313226_914453_7298">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322590_562058_15006" formal="_10_5_622020d_1132928313226_198737_7299" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313337_377913_7413" name="PriorityQueue" clientDependency="_10_5_622020d_1132928322620_658318_15073">
            <ownedComment xmi:id="_10_5_622020d_1132928313347_720440_7419" body="An unbounded priority {@linkplain Queue queue} based on a priority&#xA;heap.  This queue orders elements according to an order specified&#xA;at construction time, which is specified either according to their&#xA;&lt;i>natural order&lt;/i> (see {@link Comparable}), or according to a&#xA;{@link java.util.Comparator}, depending on which constructor is&#xA;used. A priority queue does not permit &lt;tt>null&lt;/tt> elements.&#xA;A priority queue relying on natural ordering also does not&#xA;permit insertion of non-comparable objects (doing so may result&#xA;in &lt;tt>ClassCastException&lt;/tt>).&#xA;&#xA;&lt;p>The &lt;em>head&lt;/em> of this queue is the &lt;em>least&lt;/em> element&#xA;with respect to the specified ordering.  If multiple elements are&#xA;tied for least value, the head is one of those elements -- ties are&#xA;broken arbitrarily.  The queue retrieval operations &lt;tt>poll&lt;/tt>,&#xA;&lt;tt>remove&lt;/tt>, &lt;tt>peek&lt;/tt>, and &lt;tt>element&lt;/tt> access the&#xA;element at the head of the queue.&#xA;&#xA;&lt;p>A priority queue is unbounded, but has an internal&#xA;&lt;i>capacity&lt;/i> governing the size of an array used to store the&#xA;elements on the queue.  It is always at least as large as the queue&#xA;size.  As elements are added to a priority queue, its capacity&#xA;grows automatically.  The details of the growth policy are not&#xA;specified.&#xA;&#xA;&lt;p>This class and its iterator implement all of the&#xA;&lt;em>optional&lt;/em> methods of the {@link Collection} and {@link&#xA;Iterator} interfaces.&#xA;The&#xA;Iterator provided in method {@link #iterator()} is &lt;em>not&lt;/em>&#xA;guaranteed to traverse the elements of the PriorityQueue in any&#xA;particular order. If you need ordered traversal, consider using&#xA;&lt;tt>Arrays.sort(pq.toArray())&lt;/tt>.&#xA;&#xA;&lt;p> &lt;strong>Note that this implementation is not synchronized.&lt;/strong>&#xA;Multiple threads should not access a &lt;tt>PriorityQueue&lt;/tt>&#xA;instance concurrently if any of the threads modifies the list&#xA;structurally. Instead, use the thread-safe {@link&#xA;java.util.concurrent.PriorityBlockingQueue} class.&#xA;&#xA;&#xA;&lt;p>Implementation note: this implementation provides O(log(n)) time&#xA;for the insertion methods (&lt;tt>offer&lt;/tt>, &lt;tt>poll&lt;/tt>,&#xA;&lt;tt>remove()&lt;/tt> and &lt;tt>add&lt;/tt>) methods; linear time for the&#xA;&lt;tt>remove(Object)&lt;/tt> and &lt;tt>contains(Object)&lt;/tt> methods; and&#xA;constant time for the retrieval methods (&lt;tt>peek&lt;/tt>,&#xA;&lt;tt>element&lt;/tt>, and &lt;tt>size&lt;/tt>).&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;@since 1.5&#xA;@version 1.6, 06/11/04&#xA;@author Josh Bloch&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928313337_377913_7413"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313337_503153_7414" name="" parameter="_10_5_622020d_1132928313337_75129_7415">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313337_75129_7415" parameteredElement="_10_5_622020d_1132928313337_283573_7416">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313337_283573_7416" name="E" templateParameter="_10_5_622020d_1132928313337_75129_7415"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322620_179751_15074" isSubstitutable="true" general="_10_5_622020d_1132928321989_582562_14355"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_658318_15073" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928313337_377913_7413" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313337_497630_7417" name="Itr" visibility="private" clientDependency="_10_5_622020d_1132928322620_420954_15075">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322620_420954_15075" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928313337_497630_7417" contract="_10_5_622020d_1132928321989_283025_14359"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_894373_8857" name="EmptyStackException">
            <ownedComment xmi:id="_10_5_622020d_1132928310953_843822_7186" body="Thrown by methods in the &lt;code>Stack&lt;/code> class to indicate&#xA;that the stack is empty.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.20, 12/19/03&#xA;@see     java.util.Stack&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_894373_8857"/>
            <generalization xmi:id="_10_5_622020d_1132928322550_35440_14903" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_304513_8875" name="IdentityHashMap" clientDependency="_10_5_622020d_1132928322580_705742_14990 _10_5_622020d_1132928322580_890288_14991 _10_5_622020d_1132928322580_622218_14992">
            <ownedComment xmi:id="_10_5_622020d_1132928313246_840751_7303" body="This class implements the &lt;tt>Map&lt;/tt> interface with a hash table, using&#xA;reference-equality in place of object-equality when comparing keys (and&#xA;values).  In other words, in an &lt;tt>IdentityHashMap&lt;/tt>, two keys&#xA;&lt;tt>k1&lt;/tt> and &lt;tt>k2&lt;/tt> are considered equal if and only if&#xA;&lt;tt>(k1==k2)&lt;/tt>.  (In normal &lt;tt>Map&lt;/tt> implementations (like&#xA;&lt;tt>HashMap&lt;/tt>) two keys &lt;tt>k1&lt;/tt> and &lt;tt>k2&lt;/tt> are considered equal&#xA;if and only if &lt;tt>(k1==null ? k2==null : k1.equals(k2))&lt;/tt>.)&#xA;&#xA;&lt;p>&lt;b>This class is &lt;i>not&lt;/i> a general-purpose &lt;tt>Map&lt;/tt>&#xA;implementation!  While this class implements the &lt;tt>Map&lt;/tt> interface, it&#xA;intentionally violates &lt;tt>Map's&lt;/tt> general contract, which mandates the&#xA;use of the &lt;tt>equals&lt;/tt> method when comparing objects.  This class is&#xA;designed for use only in the rare cases wherein reference-equality&#xA;semantics are required.&lt;/b>&#xA;&#xA;&lt;p>A typical use of this class is &lt;i>topology-preserving object graph&#xA;transformations&lt;/i>, such as serialization or deep-copying.  To perform such&#xA;a transformation, a program must maintain a &quot;node table&quot; that keeps track&#xA;of all the object references that have already been processed.  The node&#xA;table must not equate distinct objects even if they happen to be equal.&#xA;Another typical use of this class is to maintain &lt;i>proxy objects&lt;/i>.  For&#xA;example, a debugging facility might wish to maintain a proxy object for&#xA;each object in the program being debugged.&#xA;&#xA;&lt;p>This class provides all of the optional map operations, and permits&#xA;&lt;tt>null&lt;/tt> values and the &lt;tt>null&lt;/tt> key.  This class makes no&#xA;guarantees as to the order of the map; in particular, it does not guarantee&#xA;that the order will remain constant over time.&#xA;&#xA;&lt;p>This class provides constant-time performance for the basic&#xA;operations (&lt;tt>get&lt;/tt> and &lt;tt>put&lt;/tt>), assuming the system&#xA;identity hash function ({@link System#identityHashCode(Object)})&#xA;disperses elements properly among the buckets.&#xA;&#xA;&lt;p>This class has one tuning parameter (which affects performance but not&#xA;semantics): &lt;i>expected maximum size&lt;/i>.  This parameter is the maximum&#xA;number of key-value mappings that the map is expected to hold.  Internally,&#xA;this parameter is used to determine the number of buckets initially&#xA;comprising the hash table.  The precise relationship between the expected&#xA;maximum size and the number of buckets is unspecified.&#xA;&#xA;&lt;p>If the size of the map (the number of key-value mappings) sufficiently&#xA;exceeds the expected maximum size, the number of buckets is increased&#xA;Increasing the number of buckets (&quot;rehashing&quot;) may be fairly expensive, so&#xA;it pays to create identity hash maps with a sufficiently large expected&#xA;maximum size.  On the other hand, iteration over collection views requires&#xA;time proportional to the number of buckets in the hash table, so it&#xA;pays not to set the expected maximum size too high if you are especially&#xA;concerned with iteration performance or memory usage.&#xA;&#xA;&lt;p>&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access this map concurrently, and at least one of the threads&#xA;modifies the map structurally, it &lt;i>must&lt;/i> be synchronized externally.&#xA;(A structural modification is any operation that adds or deletes one or&#xA;more mappings; merely changing the value associated with a key that an&#xA;instance already contains is not a structural modification.)  This is&#xA;typically accomplished by synchronizing on some object that naturally&#xA;encapsulates the map.  If no such object exists, the map should be&#xA;&quot;wrapped&quot; using the &lt;tt>Collections.synchronizedMap&lt;/tt> method.  This is&#xA;best done at creation time, to prevent accidental unsynchronized access to&#xA;the map: &lt;pre>&#xA;Map m = Collections.synchronizedMap(new HashMap(...));&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The iterators returned by all of this class's &quot;collection view methods&quot;&#xA;are &lt;i>fail-fast&lt;/i>: if the map is structurally modified at any time after&#xA;the iterator is created, in any way except through the iterator's own&#xA;&lt;tt>remove&lt;/tt> or &lt;tt>add&lt;/tt> methods, the iterator will throw a&#xA;&lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in the face of concurrent&#xA;modification, the iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>fail-fast iterators should be used only&#xA;to detect bugs.&lt;/i>&#xA;&#xA;&lt;p>Implementation note: This is a simple &lt;i>linear-probe&lt;/i> hash table,&#xA;as described for example in texts by Sedgewick and Knuth.  The array&#xA;alternates holding keys and values.  (This has better locality for large&#xA;tables than does using separate arrays.)  For many JRE implementations&#xA;and operation mixes, this class will yield better performance than&#xA;{@link HashMap} (which uses &lt;i>chaining&lt;/i> rather than linear-probing).&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@see     System#identityHashCode(Object)&#xA;@see     Object#hashCode()&#xA;@see     Collection&#xA;@see&#x9;    Map&#xA;@see&#x9;    HashMap&#xA;@see&#x9;    TreeMap&#xA;@author  Doug Lea and Josh Bloch&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546706_304513_8875"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313226_750419_7293" name="" parameter="_10_5_622020d_1132928313226_770549_7294 _10_5_622020d_1132928313226_736238_7296">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313226_770549_7294" parameteredElement="_10_5_622020d_1132928313226_496617_7295">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313226_496617_7295" name="K" templateParameter="_10_5_622020d_1132928313226_770549_7294"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313226_736238_7296" parameteredElement="_10_5_622020d_1132928313226_363095_7297">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313226_363095_7297" name="V" templateParameter="_10_5_622020d_1132928313226_736238_7296"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322580_300944_14993" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322580_705742_14990" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_304513_8875" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322580_890288_14991" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_304513_8875" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322580_622218_14992" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_304513_8875" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_455289_19528" name="IdentityHashMapIterator" visibility="private" clientDependency="_10_5_622020d_1132928322580_982459_14994" isAbstract="true">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313226_914453_7298" name="" parameter="_10_5_622020d_1132928313226_198737_7299">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313226_198737_7299" parameteredElement="_10_5_622020d_1132928313226_771182_7300">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313226_771182_7300" name="T" templateParameter="_10_5_622020d_1132928313226_198737_7299"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322580_982459_14994" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_9_5_f720368_1110473547878_455289_19528" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_137306_19529" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322590_173892_14998" isSubstitutable="true" general="_10_5_622020d_1132928322590_480921_14995"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_684751_19530" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322590_437574_15002" isSubstitutable="true" general="_10_5_622020d_1132928322590_140820_14999"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_640144_19531" name="EntryIterator" visibility="private" clientDependency="_10_5_622020d_1132928322590_241017_15003">
              <ownedComment xmi:id="_10_5_622020d_1132928313226_166195_7301" body="Since we don't use Entry objects, we use the Iterator&#xA;itself as an entry.&#xA;" annotatedElement="_9_5_f720368_1110473547878_640144_19531"/>
              <generalization xmi:id="_10_5_622020d_1132928322590_216704_15007" isSubstitutable="true" general="_10_5_622020d_1132928322590_319544_15004"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322590_241017_15003" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547878_640144_19531" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_420779_19533" name="KeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322590_370103_15008" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_759673_19534" name="Values" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322590_641284_15009" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_639489_19535" name="EntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322590_715206_15010" isSubstitutable="true" general="_10_5_622020d_1132928322239_614900_14420"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_455856_8901" name="Observer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_701558_7412" body="A class can implement the &lt;code>Observer&lt;/code> interface when it&#xA;wants to be informed of changes in observable objects.&#xA;&#xA;@author  Chris Warth&#xA;@version 1.19, 12/19/03&#xA;@see     java.util.Observable&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_455856_8901"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_483016_8911" name="Random" clientDependency="_10_5_622020d_1132928322620_937681_15086">
            <ownedComment xmi:id="_10_5_622020d_1132928313357_478068_7436" body="An instance of this class is used to generate a stream of&#xA;pseudorandom numbers. The class uses a 48-bit seed, which is&#xA;modified using a linear congruential formula. (See Donald Knuth,&#xA;&lt;i>The Art of Computer Programming, Volume 2&lt;/i>, Section 3.2.1.)&#xA;&lt;p>&#xA;If two instances of &lt;code>Random&lt;/code> are created with the same&#xA;seed, and the same sequence of method calls is made for each, they&#xA;will generate and return identical sequences of numbers. In order to&#xA;guarantee this property, particular algorithms are specified for the&#xA;class &lt;tt>Random&lt;/tt>. Java implementations must use all the algorithms&#xA;shown here for the class &lt;tt>Random&lt;/tt>, for the sake of absolute&#xA;portability of Java code. However, subclasses of class &lt;tt>Random&lt;/tt>&#xA;are permitted to use other algorithms, so long as they adhere to the&#xA;general contracts for all the methods.&#xA;&lt;p>&#xA;The algorithms implemented by class &lt;tt>Random&lt;/tt> use a&#xA;&lt;tt>protected&lt;/tt> utility method that on each invocation can supply&#xA;up to 32 pseudorandomly generated bits.&#xA;&lt;p>&#xA;Many applications will find the &lt;code>random&lt;/code> method in&#xA;class &lt;code>Math&lt;/code> simpler to use.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.43, 01/12/04&#xA;@see     java.lang.Math#random()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_483016_8911"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322620_937681_15086" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_483016_8911" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_967666_8881" name="LinkedHashSet" clientDependency="_10_5_622020d_1132928322610_134397_15048 _10_5_622020d_1132928322610_852777_15049 _10_5_622020d_1132928322610_684812_15050">
            <ownedComment xmi:id="_10_5_622020d_1132928313276_200429_7363" body="&lt;p>Hash table and linked list implementation of the &lt;tt>Set&lt;/tt> interface,&#xA;with predictable iteration order.  This implementation differs from&#xA;&lt;tt>HashSet&lt;/tt> in that it maintains a doubly-linked list running through&#xA;all of its entries.  This linked list defines the iteration ordering,&#xA;which is the order in which elements were inserted into the set&#xA;(&lt;i>insertion-order&lt;/i>).  Note that insertion order is &lt;i>not&lt;/i> affected&#xA;if an element is &lt;i>re-inserted&lt;/i> into the set.  (An element &lt;tt>e&lt;/tt>&#xA;is reinserted into a set &lt;tt>s&lt;/tt> if &lt;tt>s.add(e)&lt;/tt> is invoked when&#xA;&lt;tt>s.contains(e)&lt;/tt> would return &lt;tt>true&lt;/tt> immediately prior to&#xA;the invocation.)&#xA;&#xA;&lt;p>This implementation spares its clients from the unspecified, generally&#xA;chaotic ordering provided by {@link HashSet}, without incurring the&#xA;increased cost associated with {@link TreeSet}.  It can be used to&#xA;produce a copy of a set that has the same order as the original, regardless&#xA;of the original set's implementation:&#xA;&lt;pre>&#xA;void foo(Set m) {&#xA;Set copy = new LinkedHashSet(m);&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;This technique is particularly useful if a module takes a set on input,&#xA;copies it, and later returns results whose order is determined by that of&#xA;the copy.  (Clients generally appreciate having things returned in the same&#xA;order they were presented.)&#xA;&#xA;&lt;p>This class provides all of the optional &lt;tt>Set&lt;/tt> operations, and&#xA;permits null elements.  Like &lt;tt>HashSet&lt;/tt>, it provides constant-time&#xA;performance for the basic operations (&lt;tt>add&lt;/tt>, &lt;tt>contains&lt;/tt> and&#xA;&lt;tt>remove&lt;/tt>), assuming the hash function disperses elements&#xA;properly among the buckets.  Performance is likely to be just slightly&#xA;below that of &lt;tt>HashSet&lt;/tt>, due to the added expense of maintaining the&#xA;linked list, with one exception: Iteration over a &lt;tt>LinkedHashSet&lt;/tt>&#xA;requires time proportional to the &lt;i>size&lt;/i> of the set, regardless of&#xA;its capacity.  Iteration over a &lt;tt>HashSet&lt;/tt> is likely to be more&#xA;expensive, requiring time proportional to its &lt;i>capacity&lt;/i>.&#xA;&#xA;&lt;p>A linked hash set has two parameters that affect its performance:&#xA;&lt;i>initial capacity&lt;/i> and &lt;i>load factor&lt;/i>.  They are defined precisely&#xA;as for &lt;tt>HashSet&lt;/tt>.  Note, however, that the penalty for choosing an&#xA;excessively high value for initial capacity is less severe for this class&#xA;than for &lt;tt>HashSet&lt;/tt>, as iteration times for this class are unaffected&#xA;by capacity.&#xA;&#xA;&lt;p>&lt;strong>Note that this implementation is not synchronized.&lt;/strong> If&#xA;multiple threads access a linked hash set concurrently, and at least one of&#xA;the threads modifies the set, it &lt;em>must&lt;/em> be synchronized externally.&#xA;This is typically accomplished by synchronizing on some object that&#xA;naturally encapsulates the set.  If no such object exists, the set should&#xA;be &quot;wrapped&quot; using the &lt;tt>Collections.synchronizedSet&lt;/tt>method.  This is&#xA;best done at creation time, to prevent accidental unsynchronized access:&#xA;&lt;pre>&#xA;Set s = Collections.synchronizedSet(new LinkedHashSet(...));&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The iterators returned by the this class's &lt;tt>iterator&lt;/tt> method are&#xA;&lt;em>fail-fast&lt;/em>: if the set is modified at any time after the iterator&#xA;is created, in any way except through the iterator's own remove method, the&#xA;iterator will throw a &lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in&#xA;the face of concurrent modification, the Iterator fails quickly and&#xA;cleanly, rather than risking arbitrary, non-deterministic behavior at an&#xA;undetermined time in the future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:   &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.14 04/02/19&#xA;@see     Object#hashCode()&#xA;@see     Collection&#xA;@see     Set&#xA;@see     HashSet&#xA;@see     TreeSet&#xA;@see     Hashtable&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546706_967666_8881"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313276_186691_7359" name="" parameter="_10_5_622020d_1132928313276_37826_7360">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313276_37826_7360" parameteredElement="_10_5_622020d_1132928313276_71062_7361">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313276_71062_7361" name="E" templateParameter="_10_5_622020d_1132928313276_37826_7360"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322610_648476_15054" isSubstitutable="true" general="_10_5_622020d_1132928322610_475882_15051"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_134397_15048" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_9_5_f720368_1110473546706_967666_8881" contract="_10_5_622020d_1132928322470_406203_14723"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_852777_15049" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_967666_8881" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322610_684812_15050" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_967666_8881" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313337_663613_7402" name="MissingFormatWidthException">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_242485_7404" body="Unchecked exception thrown when the format width is required.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to anyg&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313337_663613_7402"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_287497_15070" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_797967_7192" name="EnumMap" clientDependency="_10_5_622020d_1132928322550_361486_14904 _10_5_622020d_1132928322550_976987_14905">
            <ownedComment xmi:id="_10_5_622020d_1132928310953_424518_7210" body="A specialized {@link Map} implementation for use with enum type keys.  All&#xA;of the keys in an enum map must come from a single enum type that is&#xA;specified, explicitly or implicitly, when the map is created.  Enum maps&#xA;are represented internally as arrays.  This representation is extremely&#xA;compact and efficient.&#xA;&#xA;&lt;p>Enum maps are maintained in the &lt;i>natural order&lt;/i> of their keys&#xA;(the order in which the enum constants are declared).  This is reflected&#xA;in the iterators returned by the collections views ({@link #keySet()},&#xA;{@link #entrySet()}, and {@link #values()}).&#xA;&#xA;&lt;p>Iterators returned by the collection views are &lt;i>weakly consistent&lt;/i>:&#xA;they will never throw {@link ConcurrentModificationException} and they may&#xA;or may not show the effects of any modifications to the map that occur while&#xA;the iteration is in progress.&#xA;&#xA;&lt;p>Null keys are not permitted.  Attempts to insert a null key will&#xA;throw {@link NullPointerException}.  Attempts to test for the&#xA;presence of a null key or to remove one will, however, function properly.&#xA;Null values are permitted.&#xA;&lt;P>Like most collection implementations &lt;tt>EnumMap&lt;/tt> is not&#xA;synchronized. If multiple threads access an enum map concurrently, and at&#xA;least one of the threads modifies the map, it should be synchronized&#xA;externally.  This is typically accomplished by synchronizing on some&#xA;object that naturally encapsulates the enum map.  If no such object exists,&#xA;the map should be &quot;wrapped&quot; using the {@link Collections#synchronizedMap}&#xA;method.  This is best done at creation time, to prevent accidental&#xA;unsynchronized access:&#xA;&#xA;&lt;pre>&#xA;Map&lt;EnumKey, V> m = Collections.synchronizedMap(new EnumMap(...));&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Implementation note: All basic operations execute in constant time.&#xA;They are likely (though not guaranteed) to be faster than their&#xA;{@link HashMap} counterparts.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author Josh Bloch&#xA;@version 1.10, 07/15/04&#xA;@see EnumSet&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310953_797967_7192"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310953_35471_7193" name="" parameter="_10_5_622020d_1132928310953_14666_7194 _10_5_622020d_1132928310953_24178_7196">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_14666_7194" parameteredElement="_10_5_622020d_1132928310953_986231_7195" constrainingClassifier="_10_5_622020d_1132928324302_758275_18747">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_986231_7195" name="K" templateParameter="_10_5_622020d_1132928310953_14666_7194"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_24178_7196" parameteredElement="_10_5_622020d_1132928310953_406740_7197">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_406740_7197" name="V" templateParameter="_10_5_622020d_1132928310953_24178_7196"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322550_712609_14906" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_361486_14904" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310953_797967_7192" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_976987_14905" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928310953_797967_7192" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_899700_7198" name="KeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322550_480666_14907" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_167773_7199" name="Values" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322550_163796_14908" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_432133_7200" name="EntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322550_741889_14909" isSubstitutable="true" general="_10_5_622020d_1132928322239_614900_14420"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_530258_7201" name="EnumMapIterator" visibility="private" clientDependency="_10_5_622020d_1132928322550_851663_14913" isAbstract="true">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310953_414898_7202" name="" parameter="_10_5_622020d_1132928310953_71256_7203">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_71256_7203" parameteredElement="_10_5_622020d_1132928310953_863988_7204">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_863988_7204" name="T" templateParameter="_10_5_622020d_1132928310953_71256_7203"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322550_851663_14913" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_10_5_622020d_1132928310953_530258_7201" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_595535_7205" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322550_221922_14917" isSubstitutable="true" general="_10_5_622020d_1132928322550_990582_14914"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_196582_7206" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322550_277516_14921" isSubstitutable="true" general="_10_5_622020d_1132928322550_324382_14918"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_709660_7207" name="EntryIterator" visibility="private" clientDependency="_10_5_622020d_1132928322550_558875_14922">
              <ownedComment xmi:id="_10_5_622020d_1132928310953_860489_7208" body="Since we don't use Entry objects, we use the Iterator itself as entry.&#xA;" annotatedElement="_10_5_622020d_1132928310953_709660_7207"/>
              <generalization xmi:id="_10_5_622020d_1132928322560_87931_14926" isSubstitutable="true" general="_10_5_622020d_1132928322560_381015_14923"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322550_558875_14922" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_10_5_622020d_1132928310953_709660_7207" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322520_250731_14838" name="CheckedList&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322520_253092_14839" signature="_10_5_622020d_1132928310903_789106_7092">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322520_297608_14840" formal="_10_5_622020d_1132928310903_117867_7093" actual="_10_5_622020d_1132928310903_233204_7099"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_117889_8867" name="GregorianCalendar">
            <ownedComment xmi:id="_10_5_622020d_1132928313206_156384_7253" body="&lt;code>GregorianCalendar&lt;/code> is a concrete subclass of&#xA;&lt;code>Calendar&lt;/code> and provides the standard calendar system&#xA;used by most of the world.&#xA;&#xA;&lt;p> &lt;code>GregorianCalendar&lt;/code> is a hybrid calendar that&#xA;supports both the Julian and Gregorian calendar systems with the&#xA;support of a single discontinuity, which corresponds by default to&#xA;the Gregorian date when the Gregorian calendar was instituted&#xA;(October 15, 1582 in some countries, later in others).  The cutover&#xA;date may be changed by the caller by calling {@link&#xA;#setGregorianChange(Date) setGregorianChange()}.&#xA;&#xA;&lt;p>&#xA;Historically, in those countries which adopted the Gregorian calendar first,&#xA;October 4, 1582 (Julian) was thus followed by October 15, 1582 (Gregorian). This calendar models&#xA;this correctly.  Before the Gregorian cutover, &lt;code>GregorianCalendar&lt;/code>&#xA;implements the Julian calendar.  The only difference between the Gregorian&#xA;and the Julian calendar is the leap year rule. The Julian calendar specifies&#xA;leap years every four years, whereas the Gregorian calendar omits century&#xA;years which are not divisible by 400.&#xA;&#xA;&lt;p>&#xA;&lt;code>GregorianCalendar&lt;/code> implements &lt;em>proleptic&lt;/em> Gregorian and&#xA;Julian calendars. That is, dates are computed by extrapolating the current&#xA;rules indefinitely far backward and forward in time. As a result,&#xA;&lt;code>GregorianCalendar&lt;/code> may be used for all years to generate&#xA;meaningful and consistent results. However, dates obtained using&#xA;&lt;code>GregorianCalendar&lt;/code> are historically accurate only from March 1, 4&#xA;AD onward, when modern Julian calendar rules were adopted.  Before this date,&#xA;leap year rules were applied irregularly, and before 45 BC the Julian&#xA;calendar did not even exist.&#xA;&#xA;&lt;p>&#xA;Prior to the institution of the Gregorian calendar, New Year's Day was&#xA;March 25. To avoid confusion, this calendar always uses January 1. A manual&#xA;adjustment may be made if desired for dates that are prior to the Gregorian&#xA;changeover and which fall between January 1 and March 24.&#xA;&#xA;&lt;p>Values calculated for the &lt;code>WEEK_OF_YEAR&lt;/code> field range from 1 to&#xA;53.  Week 1 for a year is the earliest seven day period starting on&#xA;&lt;code>getFirstDayOfWeek()&lt;/code> that contains at least&#xA;&lt;code>getMinimalDaysInFirstWeek()&lt;/code> days from that year.  It thus&#xA;depends on the values of &lt;code>getMinimalDaysInFirstWeek()&lt;/code>,&#xA;&lt;code>getFirstDayOfWeek()&lt;/code>, and the day of the week of January 1.&#xA;Weeks between week 1 of one year and week 1 of the following year are&#xA;numbered sequentially from 2 to 52 or 53 (as needed).&#xA;&lt;p>For example, January 1, 1998 was a Thursday.  If&#xA;&lt;code>getFirstDayOfWeek()&lt;/code> is &lt;code>MONDAY&lt;/code> and&#xA;&lt;code>getMinimalDaysInFirstWeek()&lt;/code> is 4 (these are the values&#xA;reflecting ISO 8601 and many national standards), then week 1 of 1998 starts&#xA;on December 29, 1997, and ends on January 4, 1998.  If, however,&#xA;&lt;code>getFirstDayOfWeek()&lt;/code> is &lt;code>SUNDAY&lt;/code>, then week 1 of 1998&#xA;starts on January 4, 1998, and ends on January 10, 1998; the first three days&#xA;of 1998 then are part of week 53 of 1997.&#xA;&#xA;&lt;p>Values calculated for the &lt;code>WEEK_OF_MONTH&lt;/code> field range from 0&#xA;to 6.  Week 1 of a month (the days with &lt;code>WEEK_OF_MONTH =&#xA;1&lt;/code>) is the earliest set of at least&#xA;&lt;code>getMinimalDaysInFirstWeek()&lt;/code> contiguous days in that month,&#xA;ending on the day before &lt;code>getFirstDayOfWeek()&lt;/code>.  Unlike&#xA;week 1 of a year, week 1 of a month may be shorter than 7 days, need&#xA;not start on &lt;code>getFirstDayOfWeek()&lt;/code>, and will not include days of&#xA;the previous month.  Days of a month before week 1 have a&#xA;&lt;code>WEEK_OF_MONTH&lt;/code> of 0.&#xA;&#xA;&lt;p>For example, if &lt;code>getFirstDayOfWeek()&lt;/code> is &lt;code>SUNDAY&lt;/code>&#xA;and &lt;code>getMinimalDaysInFirstWeek()&lt;/code> is 4, then the first week of&#xA;January 1998 is Sunday, January 4 through Saturday, January 10.  These days&#xA;have a &lt;code>WEEK_OF_MONTH&lt;/code> of 1.  Thursday, January 1 through&#xA;Saturday, January 3 have a &lt;code>WEEK_OF_MONTH&lt;/code> of 0.  If&#xA;&lt;code>getMinimalDaysInFirstWeek()&lt;/code> is changed to 3, then January 1&#xA;through January 3 have a &lt;code>WEEK_OF_MONTH&lt;/code> of 1.&#xA;&#xA;&lt;p>The &lt;code>clear&lt;/code> methods set calendar field(s)&#xA;undefined. &lt;code>GregorianCalendar&lt;/code> uses the following&#xA;default value for each calendar field if its value is undefined.&#xA;&#xA;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;3&quot; border=&quot;0&quot;&#xA;summary=&quot;GregorianCalendar default field values&quot;&#xA;style=&quot;text-align: left; width: 66%;&quot;>&#xA;&lt;tbody>&#xA;&lt;tr>&#xA;&lt;th style=&quot;vertical-align: top; background-color: rgb(204, 204, 255);&#xA;text-align: center;&quot;>Field&lt;br>&#xA;&lt;/th>&#xA;&lt;th style=&quot;vertical-align: top; background-color: rgb(204, 204, 255);&#xA;text-align: center;&quot;>Default Value&lt;br>&#xA;&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>ERA&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>AD&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>YEAR&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>1970&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>MONTH&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>JANUARY&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: top; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>DAY_OF_MONTH&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: top; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>1&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>DAY_OF_WEEK&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>the first day of week&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: top; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>WEEK_OF_MONTH&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: top; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>0&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: top;&quot;>&#xA;&lt;code>DAY_OF_WEEK_IN_MONTH&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: top;&quot;>&#xA;&lt;code>1&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>AM_PM&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle; background-color: rgb(238, 238, 255);&quot;>&#xA;&lt;code>AM&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>HOUR, HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;td style=&quot;vertical-align: middle;&quot;>&#xA;&lt;code>0&lt;br>&lt;/code>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/tbody>&#xA;&lt;/table>&#xA;&lt;br>Default values are not applicable for the fields not listed above.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Example:&lt;/strong>&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;get the supported ids for GMT-08:00 (Pacific Standard Time)&#xA;String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);&#xA;if no ids were returned, something is wrong. get out.&#xA;if (ids.length == 0)&#xA;System.exit(0);&#xA;&#xA;begin output&#xA;System.out.println(&quot;Current Time&quot;);&#xA;&#xA;create a Pacific Standard Time time zone&#xA;SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);&#xA;&#xA;set up rules for daylight savings time&#xA;pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);&#xA;pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);&#xA;&#xA;create a GregorianCalendar with the Pacific Daylight time zone&#xA;and the current date and time&#xA;Calendar calendar = new GregorianCalendar(pdt);&#xA;Date trialTime = new Date();&#xA;calendar.setTime(trialTime);&#xA;&#xA;print out a bunch of interesting things&#xA;System.out.println(&quot;ERA: &quot; + calendar.get(Calendar.ERA));&#xA;System.out.println(&quot;YEAR: &quot; + calendar.get(Calendar.YEAR));&#xA;System.out.println(&quot;MONTH: &quot; + calendar.get(Calendar.MONTH));&#xA;System.out.println(&quot;WEEK_OF_YEAR: &quot; + calendar.get(Calendar.WEEK_OF_YEAR));&#xA;System.out.println(&quot;WEEK_OF_MONTH: &quot; + calendar.get(Calendar.WEEK_OF_MONTH));&#xA;System.out.println(&quot;DATE: &quot; + calendar.get(Calendar.DATE));&#xA;System.out.println(&quot;DAY_OF_MONTH: &quot; + calendar.get(Calendar.DAY_OF_MONTH));&#xA;System.out.println(&quot;DAY_OF_YEAR: &quot; + calendar.get(Calendar.DAY_OF_YEAR));&#xA;System.out.println(&quot;DAY_OF_WEEK: &quot; + calendar.get(Calendar.DAY_OF_WEEK));&#xA;System.out.println(&quot;DAY_OF_WEEK_IN_MONTH: &quot;&#xA;+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));&#xA;System.out.println(&quot;AM_PM: &quot; + calendar.get(Calendar.AM_PM));&#xA;System.out.println(&quot;HOUR: &quot; + calendar.get(Calendar.HOUR));&#xA;System.out.println(&quot;HOUR_OF_DAY: &quot; + calendar.get(Calendar.HOUR_OF_DAY));&#xA;System.out.println(&quot;MINUTE: &quot; + calendar.get(Calendar.MINUTE));&#xA;System.out.println(&quot;SECOND: &quot; + calendar.get(Calendar.SECOND));&#xA;System.out.println(&quot;MILLISECOND: &quot; + calendar.get(Calendar.MILLISECOND));&#xA;System.out.println(&quot;ZONE_OFFSET: &quot;&#xA;+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));&#xA;System.out.println(&quot;DST_OFFSET: &quot;&#xA;+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));&#xA;System.out.println(&quot;Current Time, with hour reset to 3&quot;);&#xA;calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override&#xA;calendar.set(Calendar.HOUR, 3);&#xA;System.out.println(&quot;ERA: &quot; + calendar.get(Calendar.ERA));&#xA;System.out.println(&quot;YEAR: &quot; + calendar.get(Calendar.YEAR));&#xA;System.out.println(&quot;MONTH: &quot; + calendar.get(Calendar.MONTH));&#xA;System.out.println(&quot;WEEK_OF_YEAR: &quot; + calendar.get(Calendar.WEEK_OF_YEAR));&#xA;System.out.println(&quot;WEEK_OF_MONTH: &quot; + calendar.get(Calendar.WEEK_OF_MONTH));&#xA;System.out.println(&quot;DATE: &quot; + calendar.get(Calendar.DATE));&#xA;System.out.println(&quot;DAY_OF_MONTH: &quot; + calendar.get(Calendar.DAY_OF_MONTH));&#xA;System.out.println(&quot;DAY_OF_YEAR: &quot; + calendar.get(Calendar.DAY_OF_YEAR));&#xA;System.out.println(&quot;DAY_OF_WEEK: &quot; + calendar.get(Calendar.DAY_OF_WEEK));&#xA;System.out.println(&quot;DAY_OF_WEEK_IN_MONTH: &quot;&#xA;+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));&#xA;System.out.println(&quot;AM_PM: &quot; + calendar.get(Calendar.AM_PM));&#xA;System.out.println(&quot;HOUR: &quot; + calendar.get(Calendar.HOUR));&#xA;System.out.println(&quot;HOUR_OF_DAY: &quot; + calendar.get(Calendar.HOUR_OF_DAY));&#xA;System.out.println(&quot;MINUTE: &quot; + calendar.get(Calendar.MINUTE));&#xA;System.out.println(&quot;SECOND: &quot; + calendar.get(Calendar.SECOND));&#xA;System.out.println(&quot;MILLISECOND: &quot; + calendar.get(Calendar.MILLISECOND));&#xA;System.out.println(&quot;ZONE_OFFSET: &quot;&#xA;+ (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours&#xA;System.out.println(&quot;DST_OFFSET: &quot;&#xA;+ (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;@see          TimeZone&#xA;@version      1.84&#xA;@author David Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_117889_8867"/>
            <generalization xmi:id="_10_5_622020d_1132928322560_200812_14939" isSubstitutable="true" general="_9_5_f720368_1110473546706_973459_8839"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_125803_8909" name="PropertyResourceBundle">
            <ownedComment xmi:id="_10_5_622020d_1132928313347_278960_7428" body="&lt;code>PropertyResourceBundle&lt;/code> is a concrete subclass of&#xA;&lt;code>ResourceBundle&lt;/code> that manages resources for a locale&#xA;using a set of static strings from a property file. See&#xA;{@link ResourceBundle ResourceBundle} for more information about resource&#xA;bundles. See {@link Properties Properties} for more information&#xA;about properties files, in particular the&#xA;&lt;a href=&quot;Properties.html#encoding&quot;>information on character encodings&lt;/a>.&#xA;&#xA;&lt;p>&#xA;Unlike other types of resource bundle, you don't subclass&#xA;&lt;code>PropertyResourceBundle&lt;/code>.  Instead, you supply properties&#xA;files containing the resource data.  &lt;code>ResourceBundle.getBundle&lt;/code>&#xA;will automatically look for the appropriate properties file and create a&#xA;&lt;code>PropertyResourceBundle&lt;/code> that refers to it. See&#xA;{@link ResourceBundle#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader) ResourceBundle.getBundle}&#xA;for a complete description of the search and instantiation strategy.&#xA;&#xA;&lt;p>&#xA;The following &lt;a name=&quot;sample&quot;>example&lt;/a> shows a member of a resource&#xA;bundle family with the base name &quot;MyResources&quot;.&#xA;The text defines the bundle &quot;MyResources_de&quot;,&#xA;the German member of the bundle family.&#xA;This member is based on &lt;code>PropertyResourceBundle&lt;/code>, and the text&#xA;therefore is the content of the file &quot;MyResources_de.properties&quot;&#xA;(a related &lt;a href=&quot;ListResourceBundle.html#sample&quot;>example&lt;/a> shows&#xA;how you can add bundles to this family that are implemented as subclasses&#xA;of &lt;code>ListResourceBundle&lt;/code>).&#xA;The keys in this example are of the form &quot;s1&quot; etc. The actual&#xA;keys are entirely up to your choice, so long as they are the same as&#xA;the keys you use in your program to retrieve the objects from the bundle.&#xA;Keys are case-sensitive.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;# MessageFormat pattern&#xA;s1=Die Platte \&quot;{1}\&quot; enth&amp;auml;lt {0}.&#xA;&#xA;# location of {0} in pattern&#xA;s2=1&#xA;&#xA;# sample disk name&#xA;s3=Meine Platte&#xA;&#xA;# first ChoiceFormat choice&#xA;s4=keine Dateien&#xA;&#xA;# second ChoiceFormat choice&#xA;s5=eine Datei&#xA;&#xA;# third ChoiceFormat choice&#xA;s6={0,number} Dateien&#xA;&#xA;# sample date&#xA;s7=3. M&amp;auml;rz 1996&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;@see ResourceBundle&#xA;@see ListResourceBundle&#xA;@see Properties&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_125803_8909"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_207671_15084" isSubstitutable="true" general="_9_5_f720368_1110473546706_397401_8915"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928313347_871959_7429" name="Queue" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313357_139935_7434" body="A collection designed for holding elements prior to processing.&#xA;Besides basic {@link java.util.Collection Collection} operations, queues provide&#xA;additional insertion, extraction, and inspection operations.&#xA;&#xA;&lt;p>Queues typically, but do not necessarily, order elements in a&#xA;FIFO (first-in-first-out) manner.  Among the exceptions are&#xA;priority queues, which order elements according to a supplied&#xA;comparator, or the elements' natural ordering, and LIFO queues (or&#xA;stacks) which order the elements LIFO (last-in-first-out).&#xA;Whatever the ordering used, the &lt;em>head&lt;/em> of the queue is that&#xA;element which would be removed by a call to {@link #remove() } or&#xA;{@link #poll()}.  In a FIFO queue, all new elements are inserted at&#xA;the &lt;em> tail&lt;/em> of the queue. Other kinds of queues may use&#xA;different placement rules.  Every &lt;tt>Queue&lt;/tt> implementation&#xA;must specify its ordering properties.&#xA;&#xA;&lt;p>The {@link #offer offer} method inserts an element if possible,&#xA;otherwise returning &lt;tt>false&lt;/tt>.  This differs from the {@link&#xA;java.util.Collection#add Collection.add} method, which can fail to&#xA;add an element only by throwing an unchecked exception.  The&#xA;&lt;tt>offer&lt;/tt> method is designed for use when failure is a normal,&#xA;rather than exceptional occurrence, for example, in fixed-capacity&#xA;(or &quot;bounded&quot;) queues.&#xA;&#xA;&lt;p>The {@link #remove()} and {@link #poll()} methods remove and&#xA;return the head of the queue.&#xA;Exactly which element is removed from the queue is a&#xA;function of the queue's ordering policy, which differs from&#xA;implementation to implementation. The &lt;tt>remove()&lt;/tt> and&#xA;&lt;tt>poll()&lt;/tt> methods differ only in their behavior when the&#xA;queue is empty: the &lt;tt>remove()&lt;/tt> method throws an exception,&#xA;while the &lt;tt>poll()&lt;/tt> method returns &lt;tt>null&lt;/tt>.&#xA;&#xA;&lt;p>The {@link #element()} and {@link #peek()} methods return, but do&#xA;not remove, the head of the queue.&#xA;&#xA;&lt;p>The &lt;tt>Queue&lt;/tt> interface does not define the &lt;i>blocking queue&#xA;methods&lt;/i>, which are common in concurrent programming.  These methods,&#xA;which wait for elements to appear or for space to become available, are&#xA;defined in the {@link java.util.concurrent.BlockingQueue} interface, which&#xA;extends this interface.&#xA;&#xA;&lt;p>&lt;tt>Queue&lt;/tt> implementations generally do not allow insertion&#xA;of &lt;tt>null&lt;/tt> elements, although some implementations, such as&#xA;{@link LinkedList}, do not prohibit insertion of &lt;tt>null&lt;/tt>.&#xA;Even in the implementations that permit it, &lt;tt>null&lt;/tt> should&#xA;not be inserted into a &lt;tt>Queue&lt;/tt>, as &lt;tt>null&lt;/tt> is also&#xA;used as a special return value by the &lt;tt>poll&lt;/tt> method to&#xA;indicate that the queue contains no elements.&#xA;&#xA;&lt;p>&lt;tt>Queue&lt;/tt> implementations generally do not define&#xA;element-based versions of methods &lt;tt>equals&lt;/tt> and&#xA;&lt;tt>hashCode&lt;/tt> but instead inherit the identity based versions&#xA;from class &lt;tt>Object&lt;/tt>, because element-based equality is not&#xA;always well-defined for queues with the same elements but different&#xA;ordering properties.&#xA;&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@see java.util.Collection&#xA;@see LinkedList&#xA;@see PriorityQueue&#xA;@see java.util.concurrent.LinkedBlockingQueue&#xA;@see java.util.concurrent.BlockingQueue&#xA;@see java.util.concurrent.ArrayBlockingQueue&#xA;@see java.util.concurrent.LinkedBlockingQueue&#xA;@see java.util.concurrent.PriorityBlockingQueue&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928313347_871959_7429"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313357_873063_7430" name="" parameter="_10_5_622020d_1132928313357_307654_7431">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313357_307654_7431" parameteredElement="_10_5_622020d_1132928313357_501931_7432">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313357_501931_7432" name="E" templateParameter="_10_5_622020d_1132928313357_307654_7431"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322620_625592_15085" isSubstitutable="true" general="_10_5_622020d_1132928322460_511299_14700"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_769999_8897" name="NoSuchElementException">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_589728_7408" body="Thrown by the &lt;code>nextElement&lt;/code> method of an&#xA;&lt;code>Enumeration&lt;/code> to indicate that there are no more&#xA;elements in the enumeration.&#xA;&#xA;@author  unascribed&#xA;@version 1.21, 12/19/03&#xA;@see     java.util.Enumeration&#xA;@see     java.util.Enumeration#nextElement()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_769999_8897"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_146699_15072" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_504953_8945" name="TreeSet" clientDependency="_10_5_622020d_1132928322650_791463_15138 _10_5_622020d_1132928322650_427330_15137 _10_5_622020d_1132928322650_415390_15136">
            <ownedComment xmi:id="_10_5_622020d_1132928313497_121338_7519" body="This class implements the &lt;tt>Set&lt;/tt> interface, backed by a&#xA;&lt;tt>TreeMap&lt;/tt> instance.  This class guarantees that the sorted set will&#xA;be in ascending element order, sorted according to the &lt;i>natural order&lt;/i>&#xA;of the elements (see &lt;tt>Comparable&lt;/tt>), or by the comparator provided at&#xA;set creation time, depending on which constructor is used.&lt;p>&#xA;&#xA;This implementation provides guaranteed log(n) time cost for the basic&#xA;operations (&lt;tt>add&lt;/tt>, &lt;tt>remove&lt;/tt> and &lt;tt>contains&lt;/tt>).&lt;p>&#xA;&#xA;Note that the ordering maintained by a set (whether or not an explicit&#xA;comparator is provided) must be &lt;i>consistent with equals&lt;/i> if it is to&#xA;correctly implement the &lt;tt>Set&lt;/tt> interface.  (See &lt;tt>Comparable&lt;/tt>&#xA;or &lt;tt>Comparator&lt;/tt> for a precise definition of &lt;i>consistent with&#xA;equals&lt;/i>.)  This is so because the &lt;tt>Set&lt;/tt> interface is defined in&#xA;terms of the &lt;tt>equals&lt;/tt> operation, but a &lt;tt>TreeSet&lt;/tt> instance&#xA;performs all key comparisons using its &lt;tt>compareTo&lt;/tt> (or&#xA;&lt;tt>compare&lt;/tt>) method, so two keys that are deemed equal by this method&#xA;are, from the standpoint of the set, equal.  The behavior of a set&#xA;&lt;i>is&lt;/i> well-defined even if its ordering is inconsistent with equals; it&#xA;just fails to obey the general contract of the &lt;tt>Set&lt;/tt> interface.&lt;p>&#xA;&#xA;&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access a set concurrently, and at least one of the threads modifies&#xA;the set, it &lt;i>must&lt;/i> be synchronized externally.  This is typically&#xA;accomplished by synchronizing on some object that naturally encapsulates&#xA;the set.  If no such object exists, the set should be &quot;wrapped&quot; using the&#xA;&lt;tt>Collections.synchronizedSet&lt;/tt> method.  This is best done at creation&#xA;time, to prevent accidental unsynchronized access to the set: &lt;pre>&#xA;SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));&#xA;&lt;/pre>&lt;p>&#xA;&#xA;The Iterators returned by this class's &lt;tt>iterator&lt;/tt> method are&#xA;&lt;i>fail-fast&lt;/i>: if the set is modified at any time after the iterator is&#xA;created, in any way except through the iterator's own &lt;tt>remove&lt;/tt>&#xA;method, the iterator will throw a &lt;tt>ConcurrentModificationException&lt;/tt>.&#xA;Thus, in the face of concurrent modification, the iterator fails quickly&#xA;and cleanly, rather than risking arbitrary, non-deterministic behavior at&#xA;an undetermined time in the future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:   &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.32, 12/19/03&#xA;@see&#x9;    Collection&#xA;@see&#x9;    Set&#xA;@see&#x9;    HashSet&#xA;@see     Comparable&#xA;@see     Comparator&#xA;@see&#x9;    Collections#synchronizedSortedSet(SortedSet)&#xA;@see&#x9;    TreeMap&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_504953_8945"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313497_716119_7515" name="" parameter="_10_5_622020d_1132928313497_709992_7516">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313497_709992_7516" parameteredElement="_10_5_622020d_1132928313497_53036_7517">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313497_53036_7517" name="E" templateParameter="_10_5_622020d_1132928313497_709992_7516"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322650_121674_15139" isSubstitutable="true" general="_10_5_622020d_1132928322269_824759_14450"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_415390_15136" name="" supplier="_10_5_622020d_1132928322480_882361_14760" client="_9_5_f720368_1110473546706_504953_8945" contract="_10_5_622020d_1132928322480_882361_14760"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_427330_15137" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_504953_8945" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322650_791463_15138" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_504953_8945" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_591238_7307" name="IllegalFormatConversionException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_485951_7309" body="Unchecked exception thrown when the argument corresponding to the format&#xA;specifier is of an incompatible type.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.3, 05/05/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_591238_7307"/>
            <generalization xmi:id="_10_5_622020d_1132928322590_898060_15012" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322560_549296_14946" name="HashIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322560_618739_14947" signature="_10_5_622020d_1132928313206_456184_7264">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322570_647872_14948" formal="_10_5_622020d_1132928313206_388419_7265" actual="_10_5_622020d_1132928313206_176170_7258"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322600_126640_15036" name="LinkedHashIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322600_372008_15037" signature="_10_5_622020d_1132928313266_458152_7354">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322600_666627_15038" formal="_10_5_622020d_1132928313266_420823_7355" actual="_10_5_622020d_1132928313266_148305_7345"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322640_250415_15126" name="PrivateEntryIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322640_113238_15127" signature="_10_5_622020d_1132928313487_277119_7503">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322640_359223_15128" formal="_10_5_622020d_1132928313487_508706_7504" actual="_10_5_622020d_1132928313487_169868_7499"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322660_511354_15160" name="HashIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322660_852554_15161" signature="_10_5_622020d_1132928313507_592960_7545">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322660_838931_15162" formal="_10_5_622020d_1132928313507_613984_7546" actual="_10_5_622020d_1132928313507_494341_7538"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_59238_8851" name="CurrencyData" visibility="package"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322540_363570_14884" name="Comparator&lt;Comparable&lt;Object>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322540_117970_14885" signature="_10_5_622020d_1132928310923_924476_7163">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322540_909038_14886" formal="_10_5_622020d_1132928310923_956594_7164" actual="_10_5_622020d_1132928321578_278729_13532"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_591756_8925" name="SortedSet" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313477_882010_7477" body="A set that further guarantees that its iterator will traverse the set in&#xA;ascending element order, sorted according to the &lt;i>natural ordering&lt;/i> of&#xA;its elements (see Comparable), or by a Comparator provided at sorted set&#xA;creation time.  Several additional operations are provided to take&#xA;advantage of the ordering.  (This interface is the set analogue of&#xA;SortedMap.)&lt;p>&#xA;&#xA;All elements inserted into an sorted set must implement the Comparable&#xA;interface (or be accepted by the specified Comparator).  Furthermore, all&#xA;such elements must be &lt;i>mutually comparable&lt;/i>: &lt;tt>e1.compareTo(e2)&lt;/tt>&#xA;(or &lt;tt>comparator.compare(e1, e2)&lt;/tt>) must not throw a&#xA;&lt;tt>ClassCastException&lt;/tt> for any elements &lt;tt>e1&lt;/tt> and &lt;tt>e2&lt;/tt> in&#xA;the sorted set.  Attempts to violate this restriction will cause the&#xA;offending method or constructor invocation to throw a&#xA;&lt;tt>ClassCastException&lt;/tt>.&lt;p>&#xA;&#xA;Note that the ordering maintained by a sorted set (whether or not an&#xA;explicit comparator is provided) must be &lt;i>consistent with equals&lt;/i> if&#xA;the sorted set is to correctly implement the &lt;tt>Set&lt;/tt> interface.  (See&#xA;the &lt;tt>Comparable&lt;/tt> interface or &lt;tt>Comparator&lt;/tt> interface for a&#xA;precise definition of &lt;i>consistent with equals&lt;/i>.)  This is so because&#xA;the &lt;tt>Set&lt;/tt> interface is defined in terms of the &lt;tt>equals&lt;/tt>&#xA;operation, but a sorted set performs all element comparisons using its&#xA;&lt;tt>compareTo&lt;/tt> (or &lt;tt>compare&lt;/tt>) method, so two elements that are&#xA;deemed equal by this method are, from the standpoint of the sorted set,&#xA;equal.  The behavior of a sorted set &lt;i>is&lt;/i> well-defined even if its&#xA;ordering is inconsistent with equals; it just fails to obey the general&#xA;contract of the &lt;tt>Set&lt;/tt> interface.&lt;p>&#xA;&#xA;All general-purpose sorted set implementation classes should provide four&#xA;&quot;standard&quot; constructors: 1) A void (no arguments) constructor, which&#xA;creates an empty sorted set sorted according to the &lt;i>natural order&lt;/i> of&#xA;its elements.  2) A constructor with a single argument of type&#xA;&lt;tt>Comparator&lt;/tt>, which creates an empty sorted set sorted according to&#xA;the specified comparator.  3) A constructor with a single argument of type&#xA;&lt;tt>Collection&lt;/tt>, which creates a new sorted set with the same elements&#xA;as its argument, sorted according to the elements' natural ordering.  4) A&#xA;constructor with a single argument of type &lt;tt>SortedSet&lt;/tt>, which&#xA;creates a new sorted set with the same elements and the same ordering as&#xA;the input sorted set.  There is no way to enforce this recommendation (as&#xA;interfaces cannot contain constructors) but the JDK implementation (the&#xA;&lt;tt>TreeSet&lt;/tt> class) complies.&lt;p>&#xA;&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.24, 06/28/04&#xA;@see Set&#xA;@see TreeSet&#xA;@see SortedMap&#xA;@see Collection&#xA;@see Comparable&#xA;@see Comparator&#xA;@see java.lang.ClassCastException&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_591756_8925"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313477_114444_7473" name="" parameter="_10_5_622020d_1132928313477_963969_7474">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313477_963969_7474" parameteredElement="_10_5_622020d_1132928313477_660311_7475">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313477_660311_7475" name="E" templateParameter="_10_5_622020d_1132928313477_963969_7474"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322630_794632_15102" isSubstitutable="true" general="_10_5_622020d_1132928322470_406203_14723"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_999299_8853" name="Date" clientDependency="_10_5_622020d_1132928322550_455315_14901 _10_5_622020d_1132928322550_935921_14897 _10_5_622020d_1132928322550_88230_14896">
            <ownedComment xmi:id="_10_5_622020d_1132928310933_715731_7174" body="The class &lt;code>Date&lt;/code> represents a specific instant&#xA;in time, with millisecond precision.&#xA;&lt;p>&#xA;Prior to JDK&amp;nbsp;1.1, the class &lt;code>Date&lt;/code> had two additional&#xA;functions.  It allowed the interpretation of dates as year, month, day, hour,&#xA;minute, and second values.  It also allowed the formatting and parsing&#xA;of date strings.  Unfortunately, the API for these functions was not&#xA;amenable to internationalization.  As of JDK&amp;nbsp;1.1, the&#xA;&lt;code>Calendar&lt;/code> class should be used to convert between dates and time&#xA;fields and the &lt;code>DateFormat&lt;/code> class should be used to format and&#xA;parse date strings.&#xA;The corresponding methods in &lt;code>Date&lt;/code> are deprecated.&#xA;&lt;p>&#xA;Although the &lt;code>Date&lt;/code> class is intended to reflect&#xA;coordinated universal time (UTC), it may not do so exactly,&#xA;depending on the host environment of the Java Virtual Machine.&#xA;Nearly all modern operating systems assume that 1&amp;nbsp;day&amp;nbsp;=&#xA;24&amp;nbsp;&amp;times;&amp;nbsp;60&amp;nbsp;&amp;times;&amp;nbsp;60&amp;nbsp;= 86400 seconds&#xA;in all cases. In UTC, however, about once every year or two there&#xA;is an extra second, called a &quot;leap second.&quot; The leap&#xA;second is always added as the last second of the day, and always&#xA;on December 31 or June 30. For example, the last minute of the&#xA;year 1995 was 61 seconds long, thanks to an added leap second.&#xA;Most computer clocks are not accurate enough to be able to reflect&#xA;the leap-second distinction.&#xA;&lt;p>&#xA;Some computer standards are defined in terms of Greenwich mean&#xA;time (GMT), which is equivalent to universal time (UT).  GMT is&#xA;the &quot;civil&quot; name for the standard; UT is the&#xA;&quot;scientific&quot; name for the same standard. The&#xA;distinction between UTC and UT is that UTC is based on an atomic&#xA;clock and UT is based on astronomical observations, which for all&#xA;practical purposes is an invisibly fine hair to split. Because the&#xA;earth's rotation is not uniform (it slows down and speeds up&#xA;in complicated ways), UT does not always flow uniformly. Leap&#xA;seconds are introduced as needed into UTC so as to keep UTC within&#xA;0.9 seconds of UT1, which is a version of UT with certain&#xA;corrections applied. There are other time and date systems as&#xA;well; for example, the time scale used by the satellite-based&#xA;global positioning system (GPS) is synchronized to UTC but is&#xA;&lt;i>not&lt;/i> adjusted for leap seconds. An interesting source of&#xA;further information is the U.S. Naval Observatory, particularly&#xA;the Directorate of Time at:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;a href=http://tycho.usno.navy.mil>http://tycho.usno.navy.mil&lt;/a>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;and their definitions of &quot;Systems of Time&quot; at:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;a href=http://tycho.usno.navy.mil/systime.html>http://tycho.usno.navy.mil/systime.html&lt;/a>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;In all methods of class &lt;code>Date&lt;/code> that accept or return&#xA;year, month, date, hours, minutes, and seconds values, the&#xA;following representations are used:&#xA;&lt;ul>&#xA;&lt;li>A year &lt;i>y&lt;/i> is represented by the integer&#xA;&lt;i>y&lt;/i>&amp;nbsp;&lt;code>-&amp;nbsp;1900&lt;/code>.&#xA;&lt;li>A month is represented by an integer from 0 to 11; 0 is January,&#xA;1 is February, and so forth; thus 11 is December.&#xA;&lt;li>A date (day of month) is represented by an integer from 1 to 31&#xA;in the usual manner.&#xA;&lt;li>An hour is represented by an integer from 0 to 23. Thus, the hour&#xA;from midnight to 1 a.m. is hour 0, and the hour from noon to 1&#xA;p.m. is hour 12.&#xA;&lt;li>A minute is represented by an integer from 0 to 59 in the usual manner.&#xA;&lt;li>A second is represented by an integer from 0 to 61; the values 60 and&#xA;61 occur only for leap seconds and even then only in Java&#xA;implementations that actually track leap seconds correctly. Because&#xA;of the manner in which leap seconds are currently introduced, it is&#xA;extremely unlikely that two leap seconds will occur in the same&#xA;minute, but this specification follows the date and time conventions&#xA;for ISO C.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;In all cases, arguments given to methods for these purposes need&#xA;not fall within the indicated ranges; for example, a date may be&#xA;specified as January 32 and is interpreted as meaning February 1.&#xA;&#xA;@author  James Gosling&#xA;@author  Arthur van Hoff&#xA;@author  Alan Liu&#xA;@version 1.80, 05/18/04&#xA;@see     java.text.DateFormat&#xA;@see     java.util.Calendar&#xA;@see     java.util.TimeZone&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_999299_8853"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_88230_14896" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_999299_8853" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_935921_14897" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_999299_8853" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_455315_14901" name="" supplier="_10_5_622020d_1132928322550_238139_14898" client="_9_5_f720368_1110473546706_999299_8853" contract="_10_5_622020d_1132928322550_238139_14898"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322580_37023_14986" name="Iterator&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322580_632553_14987" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322580_563872_14988" formal="_10_5_622020d_1132928313266_876300_7329" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_182759_8943" name="TreeMap" clientDependency="_10_5_622020d_1132928322630_508248_15113 _10_5_622020d_1132928322630_59431_15114 _10_5_622020d_1132928322630_567429_15115">
            <ownedComment xmi:id="_10_5_622020d_1132928313497_562247_7514" body="Red-Black tree based implementation of the &lt;tt>SortedMap&lt;/tt> interface.&#xA;This class guarantees that the map will be in ascending key order, sorted&#xA;according to the &lt;i>natural order&lt;/i> for the key's class (see&#xA;&lt;tt>Comparable&lt;/tt>), or by the comparator provided at creation time,&#xA;depending on which constructor is used.&lt;p>&#xA;&#xA;This implementation provides guaranteed log(n) time cost for the&#xA;&lt;tt>containsKey&lt;/tt>, &lt;tt>get&lt;/tt>, &lt;tt>put&lt;/tt> and &lt;tt>remove&lt;/tt>&#xA;operations.  Algorithms are adaptations of those in Cormen, Leiserson, and&#xA;Rivest's &lt;I>Introduction to Algorithms&lt;/I>.&lt;p>&#xA;&#xA;Note that the ordering maintained by a sorted map (whether or not an&#xA;explicit comparator is provided) must be &lt;i>consistent with equals&lt;/i> if&#xA;this sorted map is to correctly implement the &lt;tt>Map&lt;/tt> interface.  (See&#xA;&lt;tt>Comparable&lt;/tt> or &lt;tt>Comparator&lt;/tt> for a precise definition of&#xA;&lt;i>consistent with equals&lt;/i>.)  This is so because the &lt;tt>Map&lt;/tt>&#xA;interface is defined in terms of the equals operation, but a map performs&#xA;all key comparisons using its &lt;tt>compareTo&lt;/tt> (or &lt;tt>compare&lt;/tt>)&#xA;method, so two keys that are deemed equal by this method are, from the&#xA;standpoint of the sorted map, equal.  The behavior of a sorted map&#xA;&lt;i>is&lt;/i> well-defined even if its ordering is inconsistent with equals; it&#xA;just fails to obey the general contract of the &lt;tt>Map&lt;/tt> interface.&lt;p>&#xA;&#xA;&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access a map concurrently, and at least one of the threads modifies&#xA;the map structurally, it &lt;i>must&lt;/i> be synchronized externally.  (A&#xA;structural modification is any operation that adds or deletes one or more&#xA;mappings; merely changing the value associated with an existing key is not&#xA;a structural modification.)  This is typically accomplished by&#xA;synchronizing on some object that naturally encapsulates the map.  If no&#xA;such object exists, the map should be &quot;wrapped&quot; using the&#xA;&lt;tt>Collections.synchronizedMap&lt;/tt> method.  This is best done at creation&#xA;time, to prevent accidental unsynchronized access to the map:&#xA;&lt;pre>&#xA;Map m = Collections.synchronizedMap(new TreeMap(...));&#xA;&lt;/pre>&lt;p>&#xA;&#xA;The iterators returned by all of this class's &quot;collection view methods&quot; are&#xA;&lt;i>fail-fast&lt;/i>: if the map is structurally modified at any time after the&#xA;iterator is created, in any way except through the iterator's own&#xA;&lt;tt>remove&lt;/tt> or &lt;tt>add&lt;/tt> methods, the iterator throws a&#xA;&lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in the face of concurrent&#xA;modification, the iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:   &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch and Doug Lea&#xA;@version 1.65, 02/19/04&#xA;@see Map&#xA;@see HashMap&#xA;@see Hashtable&#xA;@see Comparable&#xA;@see Comparator&#xA;@see Collection&#xA;@see Collections#synchronizedMap(Map)&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_182759_8943"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313487_207743_7497" name="" parameter="_10_5_622020d_1132928313487_375288_7498 _10_5_622020d_1132928313487_891524_7500">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313487_375288_7498" parameteredElement="_10_5_622020d_1132928313487_169868_7499">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_169868_7499" name="K" templateParameter="_10_5_622020d_1132928313487_375288_7498"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313487_891524_7500" parameteredElement="_10_5_622020d_1132928313487_373693_7501">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_373693_7501" name="V" templateParameter="_10_5_622020d_1132928313487_891524_7500"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322630_715337_15116" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_508248_15113" name="" supplier="_10_5_622020d_1132928322490_35705_14783" client="_9_5_f720368_1110473546706_182759_8943" contract="_10_5_622020d_1132928322490_35705_14783"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_59431_15114" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_182759_8943" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_567429_15115" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_182759_8943" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_992894_19584" name="SubMap" visibility="private" clientDependency="_10_5_622020d_1132928322630_753996_15118 _10_5_622020d_1132928322630_681392_15117">
              <generalization xmi:id="_10_5_622020d_1132928322630_4361_15119" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322630_681392_15117" name="" supplier="_10_5_622020d_1132928322490_35705_14783" client="_9_5_f720368_1110473547893_992894_19584" contract="_10_5_622020d_1132928322490_35705_14783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322630_753996_15118" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547893_992894_19584" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_454178_19585" name="EntrySetView" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322640_501810_15120" isSubstitutable="true" general="_10_5_622020d_1132928322239_614900_14420"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_916972_19586" name="EntryIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322640_639051_15125" isSubstitutable="true" general="_10_5_622020d_1132928322640_574367_15122"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_232228_19588" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322650_419518_15129" isSubstitutable="true" general="_10_5_622020d_1132928322640_250415_15126"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_548827_19589" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322650_649175_15133" isSubstitutable="true" general="_10_5_622020d_1132928322650_831637_15130"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_200364_19590" name="SubMapEntryIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322650_305042_15134" isSubstitutable="true" general="_10_5_622020d_1132928322640_574367_15122"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547893_822473_19591" name="Entry" visibility="package" clientDependency="_10_5_622020d_1132928322650_981401_15135">
              <ownedComment xmi:id="_10_5_622020d_1132928313487_481543_7512" body="Node in the Tree.  Doubles as a means to pass key-value pairs back to&#xA;user (see Map.Entry).&#xA;" annotatedElement="_9_5_f720368_1110473547893_822473_19591"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313487_580189_7507" name="" parameter="_10_5_622020d_1132928313487_933984_7508 _10_5_622020d_1132928313487_922821_7510">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313487_933984_7508" parameteredElement="_10_5_622020d_1132928313487_365318_7509">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_365318_7509" name="K" templateParameter="_10_5_622020d_1132928313487_933984_7508"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313487_922821_7510" parameteredElement="_10_5_622020d_1132928313487_952713_7511">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_952713_7511" name="V" templateParameter="_10_5_622020d_1132928313487_922821_7510"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322650_981401_15135" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547893_822473_19591" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_740761_7502" name="PrivateEntryIterator" visibility="private" clientDependency="_10_5_622020d_1132928322640_893615_15121" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928313487_895525_7506" body="TreeMap Iterator.&#xA;" annotatedElement="_10_5_622020d_1132928313487_740761_7502"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313487_277119_7503" name="" parameter="_10_5_622020d_1132928313487_508706_7504">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313487_508706_7504" parameteredElement="_10_5_622020d_1132928313487_567495_7505">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313487_567495_7505" name="T" templateParameter="_10_5_622020d_1132928313487_508706_7504"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322640_893615_15121" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_10_5_622020d_1132928313487_740761_7502" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_795640_8895" name="MissingResourceException">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_339528_7406" body="Signals that a resource is missing.&#xA;@see java.lang.Exception&#xA;@see ResourceBundle&#xA;@version     1.16, 12/19/03&#xA;@author      Mark Davis&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_795640_8895"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_376606_15071" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322660_70883_15168" name="HashIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322660_645432_15169" signature="_10_5_622020d_1132928313507_592960_7545">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322660_539428_15170" formal="_10_5_622020d_1132928313507_613984_7546" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322530_578839_14857" name="AbstractSet&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322530_573612_14858" signature="_10_5_622020d_1132928310803_326819_6974">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322530_416462_14859" formal="_10_5_622020d_1132928310803_863661_6975" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322560_381015_14923" name="EnumMapIterator&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322560_226201_14924" signature="_10_5_622020d_1132928310953_414898_7202">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322560_788973_14925" formal="_10_5_622020d_1132928310953_71256_7203" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322460_639101_14705" name="AbstractCollection&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322460_76680_14706" signature="_10_5_622020d_1132928310783_69936_6932">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322460_633458_14707" formal="_10_5_622020d_1132928310783_329056_6933" actual="_10_5_622020d_1132928310783_995970_6939"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313256_587868_7316" name="IllegalFormatPrecisionException">
            <ownedComment xmi:id="_10_5_622020d_1132928313256_439793_7318" body="Unchecked exception thrown when the precision is a negative value other than&#xA;&lt;tt>-1&lt;/tt>, the conversion does not support a precision, or the value is&#xA;otherwise unsupported.&#xA;&#xA;@version &#x9;1.4, 06/07/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313256_587868_7316"/>
            <generalization xmi:id="_10_5_622020d_1132928322600_493501_15015" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322470_692996_14714" name="SubList&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322470_506801_14715" signature="_10_5_622020d_1132928310793_459252_6942">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322470_643878_14716" formal="_10_5_622020d_1132928310793_449260_6943" actual="_10_5_622020d_1132928310793_181263_6948"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_730590_8887" name="ListIterator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313286_362411_7381" body="An iterator for lists that allows the programmer&#xA;to traverse the list in either direction, modify&#xA;the list during iteration, and obtain the iterator's&#xA;current position in the list. A &lt;TT>ListIterator&lt;/TT>&#xA;has no current element; its &lt;I>cursor position&lt;/I> always&#xA;lies between the element that would be returned by a call&#xA;to &lt;TT>previous()&lt;/TT> and the element that would be&#xA;returned by a call to &lt;TT>next()&lt;/TT>. In a list of&#xA;length &lt;TT>n&lt;/TT>, there are &lt;TT>n+1&lt;/TT> valid&#xA;index values, from &lt;TT>0&lt;/TT> to &lt;TT>n&lt;/TT>, inclusive.&#xA;&lt;PRE>&#xA;&#xA;Element(0)   Element(1)   Element(2)   ... Element(n)&#xA;^            ^            ^            ^               ^&#xA;Index: 0            1            2            3               n+1&#xA;&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;Note that the {@link #remove} and {@link #set(Object)} methods are&#xA;&lt;i>not&lt;/i> defined in terms of the cursor position;  they are defined to&#xA;operate on the last element returned by a call to {@link #next} or {@link&#xA;#previous()}.&#xA;&lt;P>&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.23, 12/19/03&#xA;@see Collection&#xA;@see List&#xA;@see Iterator&#xA;@see Enumeration&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_730590_8887"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313286_281563_7377" name="" parameter="_10_5_622020d_1132928313286_694739_7378">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313286_694739_7378" parameteredElement="_10_5_622020d_1132928313286_257158_7379">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313286_257158_7379" name="E" templateParameter="_10_5_622020d_1132928313286_694739_7378"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322610_212777_15065" isSubstitutable="true" general="_10_5_622020d_1132928321989_283025_14359"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_839346_8833" name="ArrayList" clientDependency="_10_5_622020d_1132928322470_199710_14731 _10_5_622020d_1132928322470_623841_14728 _10_5_622020d_1132928322470_589380_14730 _10_5_622020d_1132928322470_26399_14729">
            <ownedComment xmi:id="_10_5_622020d_1132928310813_875960_6983" body="Resizable-array implementation of the &lt;tt>List&lt;/tt> interface.  Implements&#xA;all optional list operations, and permits all elements, including&#xA;&lt;tt>null&lt;/tt>.  In addition to implementing the &lt;tt>List&lt;/tt> interface,&#xA;this class provides methods to manipulate the size of the array that is&#xA;used internally to store the list.  (This class is roughly equivalent to&#xA;&lt;tt>Vector&lt;/tt>, except that it is unsynchronized.)&lt;p>&#xA;&#xA;The &lt;tt>size&lt;/tt>, &lt;tt>isEmpty&lt;/tt>, &lt;tt>get&lt;/tt>, &lt;tt>set&lt;/tt>,&#xA;&lt;tt>iterator&lt;/tt>, and &lt;tt>listIterator&lt;/tt> operations run in constant&#xA;time.  The &lt;tt>add&lt;/tt> operation runs in &lt;i>amortized constant time&lt;/i>,&#xA;that is, adding n elements requires O(n) time.  All of the other operations&#xA;run in linear time (roughly speaking).  The constant factor is low compared&#xA;to that for the &lt;tt>LinkedList&lt;/tt> implementation.&lt;p>&#xA;&#xA;Each &lt;tt>ArrayList&lt;/tt> instance has a &lt;i>capacity&lt;/i>.  The capacity is&#xA;the size of the array used to store the elements in the list.  It is always&#xA;at least as large as the list size.  As elements are added to an ArrayList,&#xA;its capacity grows automatically.  The details of the growth policy are not&#xA;specified beyond the fact that adding an element has constant amortized&#xA;time cost.&lt;p>&#xA;&#xA;An application can increase the capacity of an &lt;tt>ArrayList&lt;/tt> instance&#xA;before adding a large number of elements using the &lt;tt>ensureCapacity&lt;/tt>&#xA;operation.  This may reduce the amount of incremental reallocation.&lt;p>&#xA;&#xA;&lt;strong>Note that this implementation is not synchronized.&lt;/strong> If&#xA;multiple threads access an &lt;tt>ArrayList&lt;/tt> instance concurrently, and at&#xA;least one of the threads modifies the list structurally, it &lt;i>must&lt;/i> be&#xA;synchronized externally.  (A structural modification is any operation that&#xA;adds or deletes one or more elements, or explicitly resizes the backing&#xA;array; merely setting the value of an element is not a structural&#xA;modification.)  This is typically accomplished by synchronizing on some&#xA;object that naturally encapsulates the list.  If no such object exists, the&#xA;list should be &quot;wrapped&quot; using the &lt;tt>Collections.synchronizedList&lt;/tt>&#xA;method.  This is best done at creation time, to prevent accidental&#xA;unsynchronized access to the list:&#xA;&lt;pre>&#xA;List list = Collections.synchronizedList(new ArrayList(...));&#xA;&lt;/pre>&lt;p>&#xA;&#xA;The iterators returned by this class's &lt;tt>iterator&lt;/tt> and&#xA;&lt;tt>listIterator&lt;/tt> methods are &lt;i>fail-fast&lt;/i>: if list is structurally&#xA;modified at any time after the iterator is created, in any way except&#xA;through the iterator's own remove or add methods, the iterator will throw a&#xA;ConcurrentModificationException.  Thus, in the face of concurrent&#xA;modification, the iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&lt;p>&#xA;&#xA;Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.47, 12/19/03&#xA;@see&#x9;    Collection&#xA;@see&#x9;    List&#xA;@see&#x9;    LinkedList&#xA;@see&#x9;    Vector&#xA;@see&#x9;    Collections#synchronizedList(List)&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_839346_8833"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310813_212850_6979" name="" parameter="_10_5_622020d_1132928310813_947509_6980">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310813_947509_6980" parameteredElement="_10_5_622020d_1132928310813_290699_6981">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310813_290699_6981" name="E" templateParameter="_10_5_622020d_1132928310813_947509_6980"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322470_546719_14732" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_623841_14728" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473546706_839346_8833" contract="_10_5_622020d_1132928322259_732594_14433"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_26399_14729" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473546706_839346_8833" contract="_9_5_f720368_1110473546706_6812_8913"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_589380_14730" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_839346_8833" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_199710_14731" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_839346_8833" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322550_324382_14918" name="EnumMapIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322550_254497_14919" signature="_10_5_622020d_1132928310953_414898_7202">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322550_417535_14920" formal="_10_5_622020d_1132928310953_71256_7203" actual="_10_5_622020d_1132928310953_406740_7197"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_358436_8931" name="Timer">
            <ownedComment xmi:id="_10_5_622020d_1132928313477_358937_7486" body="A facility for threads to schedule tasks for future execution in a&#xA;background thread.  Tasks may be scheduled for one-time execution, or for&#xA;repeated execution at regular intervals.&#xA;&#xA;&lt;p>Corresponding to each &lt;tt>Timer&lt;/tt> object is a single background&#xA;thread that is used to execute all of the timer's tasks, sequentially.&#xA;Timer tasks should complete quickly.  If a timer task takes excessive time&#xA;to complete, it &quot;hogs&quot; the timer's task execution thread.  This can, in&#xA;turn, delay the execution of subsequent tasks, which may &quot;bunch up&quot; and&#xA;execute in rapid succession when (and if) the offending task finally&#xA;completes.&#xA;&#xA;&lt;p>After the last live reference to a &lt;tt>Timer&lt;/tt> object goes away&#xA;&lt;i>and&lt;/i> all outstanding tasks have completed execution, the timer's task&#xA;execution thread terminates gracefully (and becomes subject to garbage&#xA;collection).  However, this can take arbitrarily long to occur.  By&#xA;default, the task execution thread does not run as a &lt;i>daemon thread&lt;/i>,&#xA;so it is capable of keeping an application from terminating.  If a caller&#xA;wants to terminate a timer's task execution thread rapidly, the caller&#xA;should invoke the timer's &lt;tt>cancel&lt;/tt> method.&#xA;&#xA;&lt;p>If the timer's task execution thread terminates unexpectedly, for&#xA;example, because its &lt;tt>stop&lt;/tt> method is invoked, any further&#xA;attempt to schedule a task on the timer will result in an&#xA;&lt;tt>IllegalStateException&lt;/tt>, as if the timer's &lt;tt>cancel&lt;/tt>&#xA;method had been invoked.&#xA;&#xA;&lt;p>This class is thread-safe: multiple threads can share a single&#xA;&lt;tt>Timer&lt;/tt> object without the need for external synchronization.&#xA;&#xA;&lt;p>This class does &lt;i>not&lt;/i> offer real-time guarantees: it schedules&#xA;tasks using the &lt;tt>Object.wait(long)&lt;/tt> method.&#xA;&#xA;&lt;p>Implementation note: This class scales to large numbers of concurrently&#xA;scheduled tasks (thousands should present no problem).  Internally,&#xA;it uses a binary heap to represent its task queue, so the cost to schedule&#xA;a task is O(log n), where n is the number of concurrently scheduled tasks.&#xA;&#xA;&lt;p>Implementation note: All constructors start a timer thread.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.17, 04/12/04&#xA;@see     TimerTask&#xA;@see     Object#wait(long)&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546706_358436_8931"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322660_992969_15164" name="HashIterator&lt;K>">
            <templateBinding xmi:id="_10_5_622020d_1132928322660_373698_15165" signature="_10_5_622020d_1132928313507_592960_7545">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322660_715004_15166" formal="_10_5_622020d_1132928313507_613984_7546" actual="_10_5_622020d_1132928313507_729539_7536"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_115313_8899" name="Observable">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_174836_7410" body="This class represents an observable object, or &quot;data&quot;&#xA;in the model-view paradigm. It can be subclassed to represent an&#xA;object that the application wants to have observed.&#xA;&lt;p>&#xA;An observable object can have one or more observers. An observer&#xA;may be any object that implements interface &lt;tt>Observer&lt;/tt>. After an&#xA;observable instance changes, an application calling the&#xA;&lt;code>Observable&lt;/code>'s &lt;code>notifyObservers&lt;/code> method&#xA;causes all of its observers to be notified of the change by a call&#xA;to their &lt;code>update&lt;/code> method.&#xA;&lt;p>&#xA;The order in which notifications will be delivered is unspecified.&#xA;The default implementation provided in the Observable class will&#xA;notify Observers in the order in which they registered interest, but&#xA;subclasses may change this order, use no guaranteed order, deliver&#xA;notifications on separate threads, or may guarantee that their&#xA;subclass follows this order, as they choose.&#xA;&lt;p>&#xA;Note that this notification mechanism is has nothing to do with threads&#xA;and is completely separate from the &lt;tt>wait&lt;/tt> and &lt;tt>notify&lt;/tt>&#xA;mechanism of class &lt;tt>Object&lt;/tt>.&#xA;&lt;p>&#xA;When an observable object is newly created, its set of observers is&#xA;empty. Two observers are considered the same if and only if the&#xA;&lt;tt>equals&lt;/tt> method returns true for them.&#xA;&#xA;@author  Chris Warth&#xA;@version 1.38, 01/12/04&#xA;@see     java.util.Observable#notifyObservers()&#xA;@see     java.util.Observable#notifyObservers(java.lang.Object)&#xA;@see     java.util.Observer&#xA;@see     java.util.Observer#update(java.util.Observable, java.lang.Object)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_115313_8899"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_594371_7333" name="JumboEnumSet" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928313266_924688_7342" body="Private implementation class for EnumSet, for &quot;jumbo&quot; enum types&#xA;(i.e., those with more than 64 elements).&#xA;&#xA;@author Josh Bloch&#xA;@since 1.5&#xA;@serial exclude&#xA;" annotatedElement="_10_5_622020d_1132928313266_594371_7333"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_10716_7334" name="" parameter="_10_5_622020d_1132928313266_827859_7335">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_827859_7335" parameteredElement="_10_5_622020d_1132928313266_280745_7336" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_280745_7336" name="E" templateParameter="_10_5_622020d_1132928313266_827859_7335"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322600_506297_15022" isSubstitutable="true" general="_10_5_622020d_1132928322600_579660_15019"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_135034_7337" name="EnumSetIterator" visibility="private" clientDependency="_10_5_622020d_1132928322600_123879_15023">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_177687_7338" name="" parameter="_10_5_622020d_1132928313266_697511_7339">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_697511_7339" parameteredElement="_10_5_622020d_1132928313266_947465_7340" constrainingClassifier="_10_5_622020d_1132928324232_498755_18742">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_947465_7340" name="E" templateParameter="_10_5_622020d_1132928313266_697511_7339"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322600_123879_15023" name="" supplier="_10_5_622020d_1132928321989_283025_14359" client="_10_5_622020d_1132928313266_135034_7337" contract="_10_5_622020d_1132928321989_283025_14359"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_75641_8843" name="Collections">
            <ownedComment xmi:id="_10_5_622020d_1132928310923_104733_7162" body="This class consists exclusively of static methods that operate on or return&#xA;collections.  It contains polymorphic algorithms that operate on&#xA;collections, &quot;wrappers&quot;, which return a new collection backed by a&#xA;specified collection, and a few other odds and ends.&#xA;&#xA;&lt;p>The methods of this class all throw a &lt;tt>NullPointerException&lt;/tt>&#xA;if the collections or class objects provided to them are null.&#xA;&#xA;&lt;p>The documentation for the polymorphic algorithms contained in this class&#xA;generally includes a brief description of the &lt;i>implementation&lt;/i>.  Such&#xA;descriptions should be regarded as &lt;i>implementation notes&lt;/i>, rather than&#xA;parts of the &lt;i>specification&lt;/i>.  Implementors should feel free to&#xA;substitute other algorithms, so long as the specification itself is adhered&#xA;to.  (For example, the algorithm used by &lt;tt>sort&lt;/tt> does not have to be&#xA;a mergesort, but it does have to be &lt;i>stable&lt;/i>.)&#xA;&#xA;&lt;p>The &quot;destructive&quot; algorithms contained in this class, that is, the&#xA;algorithms that modify the collection on which they operate, are specified&#xA;to throw &lt;tt>UnsupportedOperationException&lt;/tt> if the collection does not&#xA;support the appropriate mutation primitive(s), such as the &lt;tt>set&lt;/tt>&#xA;method.  These algorithms may, but are not required to, throw this&#xA;exception if an invocation would have no effect on the collection.  For&#xA;example, invoking the &lt;tt>sort&lt;/tt> method on an unmodifiable list that is&#xA;already sorted may or may not throw &lt;tt>UnsupportedOperationException&lt;/tt>.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.89, 07/28/04&#xA;@see&#x9;    Collection&#xA;@see&#x9;    Set&#xA;@see&#x9;    List&#xA;@see&#x9;    Map&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_75641_8843"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_178051_19419" name="UnmodifiableCollection" visibility="package" clientDependency="_10_5_622020d_1132928322480_975852_14752 _10_5_622020d_1132928322480_590525_14753">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_702029_7003" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_178051_19419"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_153937_7000" name="" parameter="_10_5_622020d_1132928310893_816799_7001">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_816799_7001" parameteredElement="_10_5_622020d_1132928310893_429699_7002">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_429699_7002" name="E" templateParameter="_10_5_622020d_1132928310893_816799_7001"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_975852_14752" name="" supplier="_10_5_622020d_1132928322460_511299_14700" client="_9_5_f720368_1110473547862_178051_19419" contract="_10_5_622020d_1132928322460_511299_14700"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_590525_14753" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_178051_19419" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_49359_19422" name="UnmodifiableSet" visibility="package" clientDependency="_10_5_622020d_1132928322480_521972_14755 _10_5_622020d_1132928322480_427821_14754">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_316547_7007" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_49359_19422"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_796667_7004" name="" parameter="_10_5_622020d_1132928310893_114293_7005">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_114293_7005" parameteredElement="_10_5_622020d_1132928310893_813955_7006">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_813955_7006" name="E" templateParameter="_10_5_622020d_1132928310893_114293_7005"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322480_616138_14759" isSubstitutable="true" general="_10_5_622020d_1132928322480_860807_14756"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_427821_14754" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_9_5_f720368_1110473547862_49359_19422" contract="_10_5_622020d_1132928322470_406203_14723"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_521972_14755" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_49359_19422" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_147006_19425" name="UnmodifiableSortedSet" visibility="package" clientDependency="_10_5_622020d_1132928322480_171550_14764 _10_5_622020d_1132928322480_667596_14763">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_204389_7011" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_147006_19425"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_968056_7008" name="" parameter="_10_5_622020d_1132928310893_702298_7009">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_702298_7009" parameteredElement="_10_5_622020d_1132928310893_336837_7010">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_336837_7010" name="E" templateParameter="_10_5_622020d_1132928310893_702298_7009"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322480_142991_14768" isSubstitutable="true" general="_10_5_622020d_1132928322480_11462_14765"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_667596_14763" name="" supplier="_10_5_622020d_1132928322480_882361_14760" client="_9_5_f720368_1110473547862_147006_19425" contract="_10_5_622020d_1132928322480_882361_14760"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_171550_14764" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_147006_19425" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_350237_19428" name="UnmodifiableList" visibility="package" clientDependency="_10_5_622020d_1132928322480_118411_14769">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_415548_7015" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_350237_19428"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_497022_7012" name="" parameter="_10_5_622020d_1132928310893_217436_7013">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_217436_7013" parameteredElement="_10_5_622020d_1132928310893_652236_7014">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_652236_7014" name="E" templateParameter="_10_5_622020d_1132928310893_217436_7013"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322490_834974_14770" isSubstitutable="true" general="_10_5_622020d_1132928322480_860807_14756"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322480_118411_14769" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473547862_350237_19428" contract="_10_5_622020d_1132928322259_732594_14433"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_504540_19431" name="UnmodifiableRandomAccessList" visibility="package" clientDependency="_10_5_622020d_1132928322490_675533_14771">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_657355_7019" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_504540_19431"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_531144_7016" name="" parameter="_10_5_622020d_1132928310893_432989_7017">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_432989_7017" parameteredElement="_10_5_622020d_1132928310893_382766_7018">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_382766_7018" name="E" templateParameter="_10_5_622020d_1132928310893_432989_7017"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322490_817197_14775" isSubstitutable="true" general="_10_5_622020d_1132928322490_370567_14772"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322490_675533_14771" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547862_504540_19431" contract="_9_5_f720368_1110473546706_6812_8913"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_326561_19434" name="UnmodifiableMap" visibility="private" clientDependency="_10_5_622020d_1132928322490_413188_14776 _10_5_622020d_1132928322490_617092_14777">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_933963_7037" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_326561_19434"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_645442_7020" name="" parameter="_10_5_622020d_1132928310893_855730_7021 _10_5_622020d_1132928310893_148047_7023">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_855730_7021" parameteredElement="_10_5_622020d_1132928310893_869169_7022">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_869169_7022" name="K" templateParameter="_10_5_622020d_1132928310893_855730_7021"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_148047_7023" parameteredElement="_10_5_622020d_1132928310893_776177_7024">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_776177_7024" name="V" templateParameter="_10_5_622020d_1132928310893_148047_7023"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322490_413188_14776" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473547862_326561_19434" contract="_10_5_622020d_1132928322259_617753_14428"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322490_617092_14777" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_326561_19434" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_535817_19437" name="UnmodifiableEntrySet" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928310893_32841_7036" body="We need this class in addition to UnmodifiableSet as&#xA;Map.Entries themselves permit modification of the backing Map&#xA;via their setValue operation.  This class is subtle: there are&#xA;many possible attacks that must be thwarted.&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_535817_19437"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_982834_7025" name="" parameter="_10_5_622020d_1132928310893_15020_7026 _10_5_622020d_1132928310893_28273_7028">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_15020_7026" parameteredElement="_10_5_622020d_1132928310893_423751_7027">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_423751_7027" name="K" templateParameter="_10_5_622020d_1132928310893_15020_7026"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_28273_7028" parameteredElement="_10_5_622020d_1132928310893_776503_7029">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_776503_7029" name="V" templateParameter="_10_5_622020d_1132928310893_28273_7028"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <generalization xmi:id="_10_5_622020d_1132928322490_2651_14781" isSubstitutable="true" general="_10_5_622020d_1132928322490_670350_14778"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_215836_19440" name="UnmodifiableEntry" visibility="private" clientDependency="_10_5_622020d_1132928322490_199934_14782">
                  <ownedComment xmi:id="_10_5_622020d_1132928310893_835164_7035" body="This &quot;wrapper class&quot; serves two purposes: it prevents&#xA;the client from modifying the backing Map, by short-circuiting&#xA;the setValue method, and it protects the backing Map against&#xA;an ill-behaved Map.Entry that attempts to modify another&#xA;Map Entry when asked to perform an equality check.&#xA;" annotatedElement="_9_5_f720368_1110473547862_215836_19440"/>
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_357843_7030" name="" parameter="_10_5_622020d_1132928310893_571092_7031 _10_5_622020d_1132928310893_250880_7033">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_571092_7031" parameteredElement="_10_5_622020d_1132928310893_765338_7032">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_765338_7032" name="K" templateParameter="_10_5_622020d_1132928310893_571092_7031"/>
                    </ownedParameter>
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_250880_7033" parameteredElement="_10_5_622020d_1132928310893_373775_7034">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_373775_7034" name="V" templateParameter="_10_5_622020d_1132928310893_250880_7033"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928322490_199934_14782" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547862_215836_19440" contract="_10_5_622020d_1132928322019_822336_14400"/>
                </nestedClassifier>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_233597_19443" name="UnmodifiableSortedMap" visibility="package" clientDependency="_10_5_622020d_1132928322490_719393_14787 _10_5_622020d_1132928322490_199613_14788">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_969797_7043" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_233597_19443"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_680099_7038" name="" parameter="_10_5_622020d_1132928310893_61385_7039 _10_5_622020d_1132928310893_366678_7041">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_61385_7039" parameteredElement="_10_5_622020d_1132928310893_287875_7040">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_287875_7040" name="K" templateParameter="_10_5_622020d_1132928310893_61385_7039"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_366678_7041" parameteredElement="_10_5_622020d_1132928310893_238470_7042">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_238470_7042" name="V" templateParameter="_10_5_622020d_1132928310893_366678_7041"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322500_150450_14793" isSubstitutable="true" general="_10_5_622020d_1132928322490_426362_14789"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322490_719393_14787" name="" supplier="_10_5_622020d_1132928322490_35705_14783" client="_9_5_f720368_1110473547862_233597_19443" contract="_10_5_622020d_1132928322490_35705_14783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322490_199613_14788" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_233597_19443" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_914721_19446" name="SynchronizedCollection" visibility="package" clientDependency="_10_5_622020d_1132928322500_504463_14795 _10_5_622020d_1132928322500_253661_14794">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_831689_7047" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_914721_19446"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_613020_7044" name="" parameter="_10_5_622020d_1132928310893_731897_7045">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_731897_7045" parameteredElement="_10_5_622020d_1132928310893_881361_7046">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_881361_7046" name="E" templateParameter="_10_5_622020d_1132928310893_731897_7045"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_253661_14794" name="" supplier="_10_5_622020d_1132928322460_511299_14700" client="_9_5_f720368_1110473547862_914721_19446" contract="_10_5_622020d_1132928322460_511299_14700"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_504463_14795" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_914721_19446" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_86921_19449" name="SynchronizedSet" visibility="package" clientDependency="_10_5_622020d_1132928322500_220157_14796">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_720899_7051" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_86921_19449"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_77172_7048" name="" parameter="_10_5_622020d_1132928310893_168130_7049">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_168130_7049" parameteredElement="_10_5_622020d_1132928310893_485256_7050">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_485256_7050" name="E" templateParameter="_10_5_622020d_1132928310893_168130_7049"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322500_440911_14800" isSubstitutable="true" general="_10_5_622020d_1132928322500_371963_14797"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_220157_14796" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_9_5_f720368_1110473547862_86921_19449" contract="_10_5_622020d_1132928322470_406203_14723"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_796257_19452" name="SynchronizedSortedSet" visibility="package" clientDependency="_10_5_622020d_1132928322500_372772_14801">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_146022_7055" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_796257_19452"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_672835_7052" name="" parameter="_10_5_622020d_1132928310893_315764_7053">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_315764_7053" parameteredElement="_10_5_622020d_1132928310893_896339_7054">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_896339_7054" name="E" templateParameter="_10_5_622020d_1132928310893_315764_7053"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322500_404300_14805" isSubstitutable="true" general="_10_5_622020d_1132928322500_8993_14802"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_372772_14801" name="" supplier="_10_5_622020d_1132928322480_882361_14760" client="_9_5_f720368_1110473547862_796257_19452" contract="_10_5_622020d_1132928322480_882361_14760"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_37419_19455" name="SynchronizedList" visibility="package" clientDependency="_10_5_622020d_1132928322500_925083_14806">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_534702_7059" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_37419_19455"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_307168_7056" name="" parameter="_10_5_622020d_1132928310893_168162_7057">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_168162_7057" parameteredElement="_10_5_622020d_1132928310893_277881_7058">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_277881_7058" name="E" templateParameter="_10_5_622020d_1132928310893_168162_7057"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322500_915288_14807" isSubstitutable="true" general="_10_5_622020d_1132928322500_371963_14797"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_925083_14806" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_9_5_f720368_1110473547862_37419_19455" contract="_10_5_622020d_1132928322259_732594_14433"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_976686_19458" name="SynchronizedRandomAccessList" visibility="package" clientDependency="_10_5_622020d_1132928322500_625204_14808">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_737554_7063" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_976686_19458"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_653246_7060" name="" parameter="_10_5_622020d_1132928310893_355558_7061">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_355558_7061" parameteredElement="_10_5_622020d_1132928310893_893285_7062">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_893285_7062" name="E" templateParameter="_10_5_622020d_1132928310893_355558_7061"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322510_53851_14812" isSubstitutable="true" general="_10_5_622020d_1132928322500_624396_14809"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322500_625204_14808" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547862_976686_19458" contract="_9_5_f720368_1110473546706_6812_8913"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_990276_19461" name="SynchronizedMap" visibility="private" clientDependency="_10_5_622020d_1132928322510_710659_14813 _10_5_622020d_1132928322510_565329_14814">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_10867_7069" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_990276_19461"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_278294_7064" name="" parameter="_10_5_622020d_1132928310893_576642_7065 _10_5_622020d_1132928310893_446748_7067">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_576642_7065" parameteredElement="_10_5_622020d_1132928310893_464710_7066">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_464710_7066" name="K" templateParameter="_10_5_622020d_1132928310893_576642_7065"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_446748_7067" parameteredElement="_10_5_622020d_1132928310893_357275_7068">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_357275_7068" name="V" templateParameter="_10_5_622020d_1132928310893_446748_7067"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_710659_14813" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473547862_990276_19461" contract="_10_5_622020d_1132928322259_617753_14428"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_565329_14814" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_990276_19461" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_349453_19464" name="SynchronizedSortedMap" visibility="package" clientDependency="_10_5_622020d_1132928322510_731222_14815">
              <ownedComment xmi:id="_10_5_622020d_1132928310893_295533_7075" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_349453_19464"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_154424_7070" name="" parameter="_10_5_622020d_1132928310893_183097_7071 _10_5_622020d_1132928310893_193928_7073">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_183097_7071" parameteredElement="_10_5_622020d_1132928310893_453081_7072">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_453081_7072" name="K" templateParameter="_10_5_622020d_1132928310893_183097_7071"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_193928_7073" parameteredElement="_10_5_622020d_1132928310893_904504_7074">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_904504_7074" name="V" templateParameter="_10_5_622020d_1132928310893_193928_7073"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322510_752590_14820" isSubstitutable="true" general="_10_5_622020d_1132928322510_266009_14816"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_731222_14815" name="" supplier="_10_5_622020d_1132928322490_35705_14783" client="_9_5_f720368_1110473547862_349453_19464" contract="_10_5_622020d_1132928322490_35705_14783"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_468746_19467" name="EmptySet" visibility="private" clientDependency="_10_5_622020d_1132928322530_455880_14856">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_519514_7129" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_468746_19467"/>
              <generalization xmi:id="_10_5_622020d_1132928322530_948177_14860" isSubstitutable="true" general="_10_5_622020d_1132928322530_578839_14857"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322530_455880_14856" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_468746_19467" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_580114_19470" name="EmptyList" visibility="private" clientDependency="_10_5_622020d_1132928322530_120817_14862 _10_5_622020d_1132928322530_408593_14861">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_910999_7130" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_580114_19470"/>
              <generalization xmi:id="_10_5_622020d_1132928322530_417751_14866" isSubstitutable="true" general="_10_5_622020d_1132928322530_725245_14863"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322530_408593_14861" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547862_580114_19470" contract="_9_5_f720368_1110473546706_6812_8913"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322530_120817_14862" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_580114_19470" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_844729_19473" name="EmptyMap" visibility="private" clientDependency="_10_5_622020d_1132928322530_669226_14867">
              <generalization xmi:id="_10_5_622020d_1132928322530_251135_14872" isSubstitutable="true" general="_10_5_622020d_1132928322530_132470_14868"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322530_669226_14867" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_844729_19473" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_904029_19475" name="SingletonSet" visibility="private" clientDependency="_10_5_622020d_1132928322530_208408_14873">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_558185_7134" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_904029_19475"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_5497_7131" name="" parameter="_10_5_622020d_1132928310913_785541_7132">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_785541_7132" parameteredElement="_10_5_622020d_1132928310913_749235_7133">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_749235_7133" name="E" templateParameter="_10_5_622020d_1132928310913_785541_7132"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322530_926214_14874" isSubstitutable="true" general="_10_5_622020d_1132928322269_824759_14450"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322530_208408_14873" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_904029_19475" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_527220_19478" name="SingletonList" visibility="private" clientDependency="_10_5_622020d_1132928322540_568711_14875 _10_5_622020d_1132928322540_598246_14876">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_403724_7135" name="" parameter="_10_5_622020d_1132928310913_821692_7136">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_821692_7136" parameteredElement="_10_5_622020d_1132928310913_647287_7137">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_647287_7137" name="E" templateParameter="_10_5_622020d_1132928310913_821692_7136"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322540_463407_14877" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_568711_14875" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547862_527220_19478" contract="_9_5_f720368_1110473546706_6812_8913"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_598246_14876" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_527220_19478" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_952573_19480" name="SingletonMap" visibility="private" clientDependency="_10_5_622020d_1132928322540_249331_14878">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_711770_7138" name="" parameter="_10_5_622020d_1132928310913_19591_7139 _10_5_622020d_1132928310913_134122_7141">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_19591_7139" parameteredElement="_10_5_622020d_1132928310913_387272_7140">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_387272_7140" name="K" templateParameter="_10_5_622020d_1132928310913_19591_7139"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_134122_7141" parameteredElement="_10_5_622020d_1132928310913_114894_7142">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_114894_7142" name="V" templateParameter="_10_5_622020d_1132928310913_134122_7141"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322540_15761_14879" isSubstitutable="true" general="_10_5_622020d_1132928322009_950717_14375"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_249331_14878" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_952573_19480" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_204083_19482" name="ImmutableEntry" visibility="private" clientDependency="_10_5_622020d_1132928322540_140959_14880">
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_949780_7143" name="" parameter="_10_5_622020d_1132928310913_740536_7144 _10_5_622020d_1132928310913_267277_7146">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_740536_7144" parameteredElement="_10_5_622020d_1132928310913_124180_7145">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_124180_7145" name="K" templateParameter="_10_5_622020d_1132928310913_740536_7144"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_267277_7146" parameteredElement="_10_5_622020d_1132928310913_569571_7147">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_569571_7147" name="V" templateParameter="_10_5_622020d_1132928310913_267277_7146"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322540_140959_14880" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547862_204083_19482" contract="_10_5_622020d_1132928322019_822336_14400"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_394851_19484" name="CopiesList" visibility="private" clientDependency="_10_5_622020d_1132928322540_150438_14881 _10_5_622020d_1132928322540_850640_14882">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_450167_7151" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_394851_19484"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_231878_7148" name="" parameter="_10_5_622020d_1132928310913_682082_7149">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_682082_7149" parameteredElement="_10_5_622020d_1132928310913_860193_7150">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_860193_7150" name="E" templateParameter="_10_5_622020d_1132928310913_682082_7149"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322540_49618_14883" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_150438_14881" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_9_5_f720368_1110473547862_394851_19484" contract="_9_5_f720368_1110473546706_6812_8913"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_850640_14882" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_394851_19484" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547862_277061_19487" name="ReverseComparator" visibility="private" clientDependency="_10_5_622020d_1132928322540_35943_14887 _10_5_622020d_1132928322540_222173_14888">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_199149_7155" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473547862_277061_19487"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_134632_7152" name="" parameter="_10_5_622020d_1132928310913_792996_7153">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_792996_7153" parameteredElement="_10_5_622020d_1132928310913_987415_7154">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_987415_7154" name="T" templateParameter="_10_5_622020d_1132928310913_792996_7153"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_35943_14887" name="" supplier="_10_5_622020d_1132928322540_363570_14884" client="_9_5_f720368_1110473547862_277061_19487" contract="_10_5_622020d_1132928322540_363570_14884"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_222173_14888" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547862_277061_19487" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310883_42135_6999" name="SelfComparable" visibility="private" isAbstract="true">
              <generalization xmi:id="_10_5_622020d_1132928322480_842079_14751" isSubstitutable="true" general="_10_5_622020d_1132928322480_739049_14748"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310893_298632_7076" name="CheckedCollection" visibility="package" clientDependency="_10_5_622020d_1132928322510_49022_14821 _10_5_622020d_1132928322510_708290_14822">
              <ownedComment xmi:id="_10_5_622020d_1132928310903_251595_7080" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310893_298632_7076"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310893_19530_7077" name="" parameter="_10_5_622020d_1132928310893_340251_7078">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310893_340251_7078" parameteredElement="_10_5_622020d_1132928310903_238123_7079">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_238123_7079" name="E" templateParameter="_10_5_622020d_1132928310893_340251_7078"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_49022_14821" name="" supplier="_10_5_622020d_1132928322460_511299_14700" client="_10_5_622020d_1132928310893_298632_7076" contract="_10_5_622020d_1132928322460_511299_14700"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_708290_14822" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310893_298632_7076" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_242480_7081" name="CheckedSet" visibility="package" clientDependency="_10_5_622020d_1132928322510_543782_14823 _10_5_622020d_1132928322510_236590_14824">
              <ownedComment xmi:id="_10_5_622020d_1132928310903_101291_7085" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310903_242480_7081"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310903_693634_7082" name="" parameter="_10_5_622020d_1132928310903_242357_7083">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310903_242357_7083" parameteredElement="_10_5_622020d_1132928310903_108995_7084">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_108995_7084" name="E" templateParameter="_10_5_622020d_1132928310903_242357_7083"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322510_602988_14828" isSubstitutable="true" general="_10_5_622020d_1132928322510_693272_14825"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_543782_14823" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_10_5_622020d_1132928310903_242480_7081" contract="_10_5_622020d_1132928322470_406203_14723"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_236590_14824" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310903_242480_7081" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_235327_7086" name="CheckedSortedSet" visibility="package" clientDependency="_10_5_622020d_1132928322510_147574_14829 _10_5_622020d_1132928322510_55285_14830">
              <ownedComment xmi:id="_10_5_622020d_1132928310903_517375_7090" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310903_235327_7086"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310903_386177_7087" name="" parameter="_10_5_622020d_1132928310903_266853_7088">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310903_266853_7088" parameteredElement="_10_5_622020d_1132928310903_452915_7089">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_452915_7089" name="E" templateParameter="_10_5_622020d_1132928310903_266853_7088"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322510_302844_14834" isSubstitutable="true" general="_10_5_622020d_1132928322510_697143_14831"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_147574_14829" name="" supplier="_10_5_622020d_1132928322480_882361_14760" client="_10_5_622020d_1132928310903_235327_7086" contract="_10_5_622020d_1132928322480_882361_14760"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322510_55285_14830" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310903_235327_7086" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_976297_7091" name="CheckedList" visibility="package" clientDependency="_10_5_622020d_1132928322520_204784_14835">
              <ownedComment xmi:id="_10_5_622020d_1132928310903_106632_7095" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310903_976297_7091"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310903_789106_7092" name="" parameter="_10_5_622020d_1132928310903_117867_7093">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310903_117867_7093" parameteredElement="_10_5_622020d_1132928310903_323237_7094">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_323237_7094" name="E" templateParameter="_10_5_622020d_1132928310903_117867_7093"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322520_787758_14836" isSubstitutable="true" general="_10_5_622020d_1132928322510_693272_14825"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_204784_14835" name="" supplier="_10_5_622020d_1132928322259_732594_14433" client="_10_5_622020d_1132928310903_976297_7091" contract="_10_5_622020d_1132928322259_732594_14433"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_810379_7096" name="CheckedRandomAccessList" visibility="package" clientDependency="_10_5_622020d_1132928322520_465586_14837">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_838825_7100" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310903_810379_7096"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310903_970934_7097" name="" parameter="_10_5_622020d_1132928310903_597948_7098">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310903_597948_7098" parameteredElement="_10_5_622020d_1132928310903_233204_7099">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310903_233204_7099" name="E" templateParameter="_10_5_622020d_1132928310903_597948_7098"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322520_370242_14841" isSubstitutable="true" general="_10_5_622020d_1132928322520_250731_14838"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_465586_14837" name="" supplier="_9_5_f720368_1110473546706_6812_8913" client="_10_5_622020d_1132928310903_810379_7096" contract="_9_5_f720368_1110473546706_6812_8913"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_680826_7101" name="CheckedMap" visibility="private" clientDependency="_10_5_622020d_1132928322520_448540_14842 _10_5_622020d_1132928322520_942844_14843">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_723851_7121" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310913_680826_7101"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_788370_7102" name="" parameter="_10_5_622020d_1132928310913_614664_7103 _10_5_622020d_1132928310913_901510_7105">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_614664_7103" parameteredElement="_10_5_622020d_1132928310913_948054_7104">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_948054_7104" name="K" templateParameter="_10_5_622020d_1132928310913_614664_7103"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_901510_7105" parameteredElement="_10_5_622020d_1132928310913_961949_7106">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_961949_7106" name="V" templateParameter="_10_5_622020d_1132928310913_901510_7105"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_448540_14842" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_10_5_622020d_1132928310913_680826_7101" contract="_10_5_622020d_1132928322259_617753_14428"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_942844_14843" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310913_680826_7101" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_507637_7107" name="CheckedEntrySet" visibility="package" clientDependency="_10_5_622020d_1132928322520_325360_14847">
                <ownedComment xmi:id="_10_5_622020d_1132928310913_219602_7120" body="We need this class in addition to CheckedSet as Map.Entry permits&#xA;modification of the backing Map via the setValue operation.  This&#xA;class is subtle: there are many possible attacks that must be&#xA;thwarted.&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_10_5_622020d_1132928310913_507637_7107"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_551316_7108" name="" parameter="_10_5_622020d_1132928310913_148692_7109 _10_5_622020d_1132928310913_77359_7111">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_148692_7109" parameteredElement="_10_5_622020d_1132928310913_792173_7110">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_792173_7110" name="K" templateParameter="_10_5_622020d_1132928310913_148692_7109"/>
                  </ownedParameter>
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_77359_7111" parameteredElement="_10_5_622020d_1132928310913_436423_7112">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_436423_7112" name="V" templateParameter="_10_5_622020d_1132928310913_77359_7111"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322520_325360_14847" name="" supplier="_10_5_622020d_1132928322520_254777_14844" client="_10_5_622020d_1132928310913_507637_7107" contract="_10_5_622020d_1132928322520_254777_14844"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_556752_7113" name="CheckedEntry" visibility="private" clientDependency="_10_5_622020d_1132928322520_781251_14848">
                  <ownedComment xmi:id="_10_5_622020d_1132928310913_559869_7119" body="This &quot;wrapper class&quot; serves two purposes: it prevents&#xA;the client from modifying the backing Map, by short-circuiting&#xA;the setValue method, and it protects the backing Map against&#xA;an ill-behaved Map.Entry that attempts to modify another&#xA;Map Entry when asked to perform an equality check.&#xA;" annotatedElement="_10_5_622020d_1132928310913_556752_7113"/>
                  <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_999839_7114" name="" parameter="_10_5_622020d_1132928310913_86626_7115 _10_5_622020d_1132928310913_204671_7117">
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_86626_7115" parameteredElement="_10_5_622020d_1132928310913_6511_7116">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_6511_7116" name="K" templateParameter="_10_5_622020d_1132928310913_86626_7115"/>
                    </ownedParameter>
                    <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_204671_7117" parameteredElement="_10_5_622020d_1132928310913_121535_7118">
                      <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_121535_7118" name="V" templateParameter="_10_5_622020d_1132928310913_204671_7117"/>
                    </ownedParameter>
                  </ownedTemplateSignature>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928322520_781251_14848" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_10_5_622020d_1132928310913_556752_7113" contract="_10_5_622020d_1132928322019_822336_14400"/>
                </nestedClassifier>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_540141_7122" name="CheckedSortedMap" visibility="package" clientDependency="_10_5_622020d_1132928322520_882475_14850 _10_5_622020d_1132928322520_975181_14849">
              <ownedComment xmi:id="_10_5_622020d_1132928310913_396956_7128" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310913_540141_7122"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310913_784190_7123" name="" parameter="_10_5_622020d_1132928310913_549003_7124 _10_5_622020d_1132928310913_556960_7126">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_549003_7124" parameteredElement="_10_5_622020d_1132928310913_456418_7125">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_456418_7125" name="K" templateParameter="_10_5_622020d_1132928310913_549003_7124"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310913_556960_7126" parameteredElement="_10_5_622020d_1132928310913_205511_7127">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_205511_7127" name="V" templateParameter="_10_5_622020d_1132928310913_556960_7126"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322530_237254_14855" isSubstitutable="true" general="_10_5_622020d_1132928322520_653475_14851"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_975181_14849" name="" supplier="_10_5_622020d_1132928322490_35705_14783" client="_10_5_622020d_1132928310913_540141_7122" contract="_10_5_622020d_1132928322490_35705_14783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322520_882475_14850" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310913_540141_7122" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310913_670787_7156" name="ReverseComparator2" visibility="private" clientDependency="_10_5_622020d_1132928322540_493145_14892 _10_5_622020d_1132928322540_975870_14893">
              <ownedComment xmi:id="_10_5_622020d_1132928310923_671840_7160" body="@serial include&#xA;" annotatedElement="_10_5_622020d_1132928310913_670787_7156"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310923_586074_7157" name="" parameter="_10_5_622020d_1132928310923_794493_7158">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310923_794493_7158" parameteredElement="_10_5_622020d_1132928310923_477544_7159">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310923_477544_7159" name="T" templateParameter="_10_5_622020d_1132928310923_794493_7158"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_493145_14892" name="" supplier="_10_5_622020d_1132928322540_173472_14889" client="_10_5_622020d_1132928310913_670787_7156" contract="_10_5_622020d_1132928322540_173472_14889"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322540_975870_14893" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928310913_670787_7156" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322610_734122_15059" name="AbstractSequentialList&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322610_153770_15060" signature="_10_5_622020d_1132928310793_286733_6969">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322610_592624_15061" formal="_10_5_622020d_1132928310793_907822_6970" actual="_10_5_622020d_1132928313276_783284_7366"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322610_204477_15040" name="LinkedHashIterator&lt;V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322610_75114_15041" signature="_10_5_622020d_1132928313266_458152_7354">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322610_561009_15042" formal="_10_5_622020d_1132928313266_420823_7355" actual="_10_5_622020d_1132928313266_822990_7347"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_6812_8913" name="RandomAccess" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313357_389075_7438" body="Marker interface used by &lt;tt>List&lt;/tt> implementations to indicate that&#xA;they support fast (generally constant time) random access.  The primary&#xA;purpose of this interface is to allow generic algorithms to alter their&#xA;behavior to provide good performance when applied to either random or&#xA;sequential access lists.&#xA;&#xA;&lt;p>The best algorithms for manipulating random access lists (such as&#xA;&lt;tt>ArrayList&lt;/tt>) can produce quadratic behavior when applied to&#xA;sequential access lists (such as &lt;tt>LinkedList&lt;/tt>).  Generic list&#xA;algorithms are encouraged to check whether the given list is an&#xA;&lt;tt>instanceof&lt;/tt> this interface before applying an algorithm that would&#xA;provide poor performance if it were applied to a sequential access list,&#xA;and to alter their behavior if necessary to guarantee acceptable&#xA;performance.&#xA;&#xA;&lt;p>It is recognized that the distinction between random and sequential&#xA;access is often fuzzy.  For example, some &lt;tt>List&lt;/tt> implementations&#xA;provide asymptotically linear access times if they get huge, but constant&#xA;access times in practice.  Such a &lt;tt>List&lt;/tt> implementation&#xA;should generally implement this interface.  As a rule of thumb, a&#xA;&lt;tt>List&lt;/tt> implementation should implement this interface if,&#xA;for typical instances of the class, this loop:&#xA;&lt;pre>&#xA;for (int i=0, n=list.size(); i &lt; n; i++)&#xA;list.get(i);&#xA;&lt;/pre>&#xA;runs faster than this loop:&#xA;&lt;pre>&#xA;for (Iterator i=list.iterator(); i.hasNext(); )&#xA;i.next();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546706_6812_8913"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322480_160438_14744" name="Iterable&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_766959_14745" signature="_10_5_622020d_1132928307989_572128_5067">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_511561_14746" formal="_10_5_622020d_1132928307989_555372_5068" actual="_10_5_622020d_1132928310873_276319_6996"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322520_254777_14844" name="Set&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322520_475852_14845" signature="_10_5_622020d_1132928313447_162331_7459">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322520_567460_14846" formal="_10_5_622020d_1132928313447_917798_7460" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322490_670350_14778" name="UnmodifiableSet&lt;Entry&lt;K, V>>">
            <templateBinding xmi:id="_10_5_622020d_1132928322490_80130_14779" signature="_10_5_622020d_1132928310893_796667_7004">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322490_314763_14780" formal="_10_5_622020d_1132928310893_114293_7005" actual="_10_5_622020d_1132928322019_822336_14400"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_958934_8849" name="Currency" clientDependency="_10_5_622020d_1132928322550_858937_14895" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310923_130162_7171" body="Represents a currency. Currencies are identified by their ISO 4217 currency&#xA;codes. See the&#xA;&lt;a href=&quot;http://www.bsi-global.com/iso4217currency&quot;>&#xA;ISO 4217 maintenance agency&lt;/a> for more information, including a table of&#xA;currency codes.&#xA;&lt;p>&#xA;The class is designed so that there's never more than one&#xA;&lt;code>Currency&lt;/code> instance for any given currency. Therefore, there's&#xA;no public constructor. You obtain a &lt;code>Currency&lt;/code> instance using&#xA;the &lt;code>getInstance&lt;/code> methods.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546706_958934_8849"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322550_858937_14895" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_958934_8849" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_749379_8863" name="EventListenerProxy" clientDependency="_10_5_622020d_1132928322560_968853_14931" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310963_696446_7225" body="An abstract wrapper class for an EventListener class which associates a set&#xA;of additional parameters with the listener. Subclasses must provide the&#xA;storage and accessor methods for the additional arguments or parameters.&#xA;&#xA;Subclasses of EventListenerProxy may be returned by getListeners() methods&#xA;as a way of associating named properties with their listeners.&#xA;&#xA;For example, a Bean which supports named properties would have a two&#xA;argument method signature for adding a PropertyChangeListener for a&#xA;property:&#xA;&#xA;public void addPropertyChangeListener(String propertyName,&#xA;PropertyChangeListener listener);&#xA;&#xA;If the Bean also implemented the zero argument get listener method:&#xA;&#xA;public PropertyChangeListener[] getPropertyChangeListeners();&#xA;&#xA;then the array may contain inner PropertyChangeListeners which are also&#xA;PropertyChangeListenerProxy objects.&#xA;&#xA;If the calling method is interested in retrieving the named property then it&#xA;would have to test the element to see if it is a proxy class.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546706_749379_8863"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322560_968853_14931" name="" supplier="_9_5_f720368_1110473546706_614519_8861" client="_9_5_f720368_1110473546706_749379_8863" contract="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322510_266009_14816" name="SynchronizedMap&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322510_476184_14817" signature="_10_5_622020d_1132928310893_278294_7064">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322510_773758_14818" formal="_10_5_622020d_1132928310893_576642_7065" actual="_10_5_622020d_1132928310893_453081_7072"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322510_287307_14819" formal="_10_5_622020d_1132928310893_446748_7067" actual="_10_5_622020d_1132928310893_904504_7074"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322580_884119_14977" name="Enumeration&lt;T>">
            <templateBinding xmi:id="_10_5_622020d_1132928322580_21919_14978" signature="_10_5_622020d_1132928310953_589904_7187">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322580_760304_14979" formal="_10_5_622020d_1132928310953_916423_7188" actual="_10_5_622020d_1132928313216_660022_7287"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_6839_8837" name="BitSet" clientDependency="_10_5_622020d_1132928322470_706665_14736 _10_5_622020d_1132928322470_952566_14737">
            <ownedComment xmi:id="_10_5_622020d_1132928310813_401000_6991" body="This class implements a vector of bits that grows as needed. Each&#xA;component of the bit set has a &lt;code>boolean&lt;/code> value. The&#xA;bits of a &lt;code>BitSet&lt;/code> are indexed by nonnegative integers.&#xA;Individual indexed bits can be examined, set, or cleared. One&#xA;&lt;code>BitSet&lt;/code> may be used to modify the contents of another&#xA;&lt;code>BitSet&lt;/code> through logical AND, logical inclusive OR, and&#xA;logical exclusive OR operations.&#xA;&lt;p>&#xA;By default, all bits in the set initially have the value&#xA;&lt;code>false&lt;/code>.&#xA;&lt;p>&#xA;Every bit set has a current size, which is the number of bits&#xA;of space currently in use by the bit set. Note that the size is&#xA;related to the implementation of a bit set, so it may change with&#xA;implementation. The length of a bit set relates to logical length&#xA;of a bit set and is defined independently of implementation.&#xA;&lt;p>&#xA;Unless otherwise noted, passing a null parameter to any of the&#xA;methods in a &lt;code>BitSet&lt;/code> will result in a&#xA;&lt;code>NullPointerException&lt;/code>.&#xA;&#xA;A &lt;code>BitSet&lt;/code> is not safe for multithreaded use without&#xA;external synchronization.&#xA;&#xA;@author  Arthur van Hoff&#xA;@author  Michael McCloskey&#xA;@version 1.60, 02/19/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_6839_8837"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_706665_14736" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_6839_8837" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_952566_14737" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_6839_8837" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322500_624396_14809" name="SynchronizedList&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322500_915615_14810" signature="_10_5_622020d_1132928310893_307168_7056">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322500_25304_14811" formal="_10_5_622020d_1132928310893_168162_7057" actual="_10_5_622020d_1132928310893_893285_7062"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_309552_8827" name="AbstractMap" clientDependency="_10_5_622020d_1132928322470_871271_14718" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310793_62901_6962" body="This class provides a skeletal implementation of the &lt;tt>Map&lt;/tt>&#xA;interface, to minimize the effort required to implement this interface. &lt;p>&#xA;&#xA;To implement an unmodifiable map, the programmer needs only to extend this&#xA;class and provide an implementation for the &lt;tt>entrySet&lt;/tt> method, which&#xA;returns a set-view of the map's mappings.  Typically, the returned set&#xA;will, in turn, be implemented atop &lt;tt>AbstractSet&lt;/tt>.  This set should&#xA;not support the &lt;tt>add&lt;/tt> or &lt;tt>remove&lt;/tt> methods, and its iterator&#xA;should not support the &lt;tt>remove&lt;/tt> method.&lt;p>&#xA;&#xA;To implement a modifiable map, the programmer must additionally override&#xA;this class's &lt;tt>put&lt;/tt> method (which otherwise throws an&#xA;&lt;tt>UnsupportedOperationException&lt;/tt>), and the iterator returned by&#xA;&lt;tt>entrySet().iterator()&lt;/tt> must additionally implement its&#xA;&lt;tt>remove&lt;/tt> method.&lt;p>&#xA;&#xA;The programmer should generally provide a void (no argument) and map&#xA;constructor, as per the recommendation in the &lt;tt>Map&lt;/tt> interface&#xA;specification.&lt;p>&#xA;&#xA;The documentation for each non-abstract methods in this class describes its&#xA;implementation in detail.  Each of these methods may be overridden if the&#xA;map being implemented admits a more efficient implementation.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.42, 02/19/04&#xA;@see Map&#xA;@see Collection&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_309552_8827"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_662526_6950" name="" parameter="_10_5_622020d_1132928310793_848853_6951 _10_5_622020d_1132928310793_121738_6953">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_848853_6951" parameteredElement="_10_5_622020d_1132928310793_346602_6952">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_346602_6952" name="K" templateParameter="_10_5_622020d_1132928310793_848853_6951"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_121738_6953" parameteredElement="_10_5_622020d_1132928310793_957270_6954">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_957270_6954" name="V" templateParameter="_10_5_622020d_1132928310793_121738_6953"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_871271_14718" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_309552_8827" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547846_91756_19405" name="SimpleEntry" visibility="package" clientDependency="_10_5_622020d_1132928322470_920729_14719">
              <ownedComment xmi:id="_10_5_622020d_1132928310793_308068_6960" body="This should be made public as soon as possible.  It greatly simplifies&#xA;the task of implementing Map.&#xA;" annotatedElement="_9_5_f720368_1110473547846_91756_19405"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_287104_6955" name="" parameter="_10_5_622020d_1132928310793_404657_6956 _10_5_622020d_1132928310793_42578_6958">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_404657_6956" parameteredElement="_10_5_622020d_1132928310793_755916_6957">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_755916_6957" name="K" templateParameter="_10_5_622020d_1132928310793_404657_6956"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_42578_6958" parameteredElement="_10_5_622020d_1132928310793_472137_6959">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_472137_6959" name="V" templateParameter="_10_5_622020d_1132928310793_42578_6958"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322470_920729_14719" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547846_91756_19405" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_512249_8873" name="Hashtable" clientDependency="_10_5_622020d_1132928322570_270295_14967 _10_5_622020d_1132928322570_15546_14966 _10_5_622020d_1132928322570_281013_14965">
            <ownedComment xmi:id="_10_5_622020d_1132928313226_723712_7292" body="This class implements a hashtable, which maps keys to values. Any&#xA;non-&lt;code>null&lt;/code> object can be used as a key or as a value. &lt;p>&#xA;&#xA;To successfully store and retrieve objects from a hashtable, the&#xA;objects used as keys must implement the &lt;code>hashCode&lt;/code>&#xA;method and the &lt;code>equals&lt;/code> method. &lt;p>&#xA;&#xA;An instance of &lt;code>Hashtable&lt;/code> has two parameters that affect its&#xA;performance: &lt;i>initial capacity&lt;/i> and &lt;i>load factor&lt;/i>.  The&#xA;&lt;i>capacity&lt;/i> is the number of &lt;i>buckets&lt;/i> in the hash table, and the&#xA;&lt;i>initial capacity&lt;/i> is simply the capacity at the time the hash table&#xA;is created.  Note that the hash table is &lt;i>open&lt;/i>: in the case of a &quot;hash&#xA;collision&quot;, a single bucket stores multiple entries, which must be searched&#xA;sequentially.  The &lt;i>load factor&lt;/i> is a measure of how full the hash&#xA;table is allowed to get before its capacity is automatically increased.&#xA;The initial capacity and load factor parameters are merely hints to&#xA;the implementation.  The exact details as to when and whether the rehash&#xA;method is invoked are implementation-dependent.&lt;p>&#xA;&#xA;Generally, the default load factor (.75) offers a good tradeoff between&#xA;time and space costs.  Higher values decrease the space overhead but&#xA;increase the time cost to look up an entry (which is reflected in most&#xA;&lt;tt>Hashtable&lt;/tt> operations, including &lt;tt>get&lt;/tt> and &lt;tt>put&lt;/tt>).&lt;p>&#xA;&#xA;The initial capacity controls a tradeoff between wasted space and the&#xA;need for &lt;code>rehash&lt;/code> operations, which are time-consuming.&#xA;No &lt;code>rehash&lt;/code> operations will &lt;i>ever&lt;/i> occur if the initial&#xA;capacity is greater than the maximum number of entries the&#xA;&lt;tt>Hashtable&lt;/tt> will contain divided by its load factor.  However,&#xA;setting the initial capacity too high can waste space.&lt;p>&#xA;&#xA;If many entries are to be made into a &lt;code>Hashtable&lt;/code>,&#xA;creating it with a sufficiently large capacity may allow the&#xA;entries to be inserted more efficiently than letting it perform&#xA;automatic rehashing as needed to grow the table. &lt;p>&#xA;&#xA;This example creates a hashtable of numbers. It uses the names of&#xA;the numbers as keys:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;Hashtable numbers = new Hashtable();&#xA;numbers.put(&quot;one&quot;, new Integer(1));&#xA;numbers.put(&quot;two&quot;, new Integer(2));&#xA;numbers.put(&quot;three&quot;, new Integer(3));&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;To retrieve a number, use the following code:&#xA;&lt;p>&lt;blockquote>&lt;pre>&#xA;Integer n = (Integer)numbers.get(&quot;two&quot;);&#xA;if (n != null) {&#xA;System.out.println(&quot;two = &quot; + n);&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;As of the Java 2 platform v1.2, this class has been retrofitted to&#xA;implement Map, so that it becomes a part of Java's collection framework.&#xA;Unlike the new collection implementations, Hashtable is synchronized.&lt;p>&#xA;&#xA;The Iterators returned by the iterator and listIterator methods&#xA;of the Collections returned by all of Hashtable's &quot;collection view methods&quot;&#xA;are &lt;em>fail-fast&lt;/em>: if the Hashtable is structurally modified&#xA;at any time after the Iterator is created, in any way except through the&#xA;Iterator's own remove or add methods, the Iterator will throw a&#xA;ConcurrentModificationException.  Thus, in the face of concurrent&#xA;modification, the Iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the future.&#xA;The Enumerations returned by Hashtable's keys and values methods are&#xA;&lt;em>not&lt;/em> fail-fast.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.105, 12/19/03&#xA;@see     Object#equals(java.lang.Object)&#xA;@see     Object#hashCode()&#xA;@see     Hashtable#rehash()&#xA;@see     Collection&#xA;@see&#x9;    Map&#xA;@see&#x9;    HashMap&#xA;@see&#x9;    TreeMap&#xA;@since JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_512249_8873"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313216_710850_7274" name="" parameter="_10_5_622020d_1132928313216_168704_7275 _10_5_622020d_1132928313216_743814_7277">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_168704_7275" parameteredElement="_10_5_622020d_1132928313216_95746_7276">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_95746_7276" name="K" templateParameter="_10_5_622020d_1132928313216_168704_7275"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_743814_7277" parameteredElement="_10_5_622020d_1132928313216_630110_7278">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_630110_7278" name="V" templateParameter="_10_5_622020d_1132928313216_743814_7277"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322570_123103_14972" isSubstitutable="true" general="_10_5_622020d_1132928322570_992407_14968"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_281013_14965" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_512249_8873" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_15546_14966" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_512249_8873" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_270295_14967" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_512249_8873" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_256236_19513" name="KeySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_171794_14973" isSubstitutable="true" general="_10_5_622020d_1132928322239_716444_14412"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_270936_19514" name="EntrySet" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_568641_14974" isSubstitutable="true" general="_9_5_f720368_1110473546706_136303_8831"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_136362_19515" name="ValueCollection" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322570_964103_14975" isSubstitutable="true" general="_10_5_622020d_1132928322239_66945_14416"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_870667_19516" name="Entry" visibility="private" clientDependency="_10_5_622020d_1132928322570_80957_14976">
              <ownedComment xmi:id="_10_5_622020d_1132928313216_765452_7284" body="Hashtable collision list.&#xA;" annotatedElement="_9_5_f720368_1110473547878_870667_19516"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313216_978276_7279" name="" parameter="_10_5_622020d_1132928313216_588888_7280 _10_5_622020d_1132928313216_549478_7282">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_588888_7280" parameteredElement="_10_5_622020d_1132928313216_481173_7281">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_481173_7281" name="K" templateParameter="_10_5_622020d_1132928313216_588888_7280"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_549478_7282" parameteredElement="_10_5_622020d_1132928313216_603601_7283">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_603601_7283" name="V" templateParameter="_10_5_622020d_1132928313216_549478_7282"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322570_80957_14976" name="" supplier="_10_5_622020d_1132928322019_822336_14400" client="_9_5_f720368_1110473547878_870667_19516" contract="_10_5_622020d_1132928322019_822336_14400"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_453920_19519" name="Enumerator" visibility="private" clientDependency="_10_5_622020d_1132928322580_696209_14981 _10_5_622020d_1132928322580_387448_14980">
              <ownedComment xmi:id="_10_5_622020d_1132928313216_393848_7288" body="A hashtable enumerator class.  This class implements both the&#xA;Enumeration and Iterator interfaces, but individual instances&#xA;can be created with the Iterator methods disabled.  This is necessary&#xA;to avoid unintentionally increasing the capabilities granted a user&#xA;by passing an Enumeration.&#xA;" annotatedElement="_9_5_f720368_1110473547878_453920_19519"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313216_633208_7285" name="" parameter="_10_5_622020d_1132928313216_202785_7286">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_202785_7286" parameteredElement="_10_5_622020d_1132928313216_660022_7287">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_660022_7287" name="T" templateParameter="_10_5_622020d_1132928313216_202785_7286"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322580_387448_14980" name="" supplier="_10_5_622020d_1132928322580_884119_14977" client="_9_5_f720368_1110473547878_453920_19519" contract="_10_5_622020d_1132928322580_884119_14977"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322580_696209_14981" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_9_5_f720368_1110473547878_453920_19519" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_850054_19521" name="EmptyEnumerator" visibility="private" clientDependency="_10_5_622020d_1132928322580_156831_14985">
              <ownedComment xmi:id="_10_5_622020d_1132928313216_387408_7289" body="A hashtable enumerator class for empty hash tables, specializes&#xA;the general Enumerator&#xA;" annotatedElement="_9_5_f720368_1110473547878_850054_19521"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322580_156831_14985" name="" supplier="_10_5_622020d_1132928322580_607670_14982" client="_9_5_f720368_1110473547878_850054_19521" contract="_10_5_622020d_1132928322580_607670_14982"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_747619_19524" name="EmptyIterator" visibility="private" clientDependency="_10_5_622020d_1132928322580_463493_14989">
              <ownedComment xmi:id="_10_5_622020d_1132928313216_413613_7290" body="A hashtable iterator class for empty hash tables&#xA;" annotatedElement="_9_5_f720368_1110473547878_747619_19524"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322580_463493_14989" name="" supplier="_10_5_622020d_1132928322580_37023_14986" client="_9_5_f720368_1110473547878_747619_19524" contract="_10_5_622020d_1132928322580_37023_14986"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_888260_8829" name="AbstractSequentialList" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310803_184640_6973" body="This class provides a skeletal implementation of the &lt;tt>List&lt;/tt>&#xA;interface to minimize the effort required to implement this interface&#xA;backed by a &quot;sequential access&quot; data store (such as a linked list).  For&#xA;random access data (such as an array), &lt;tt>AbstractList&lt;/tt> should be used&#xA;in preference to this class.&lt;p>&#xA;&#xA;This class is the opposite of the &lt;tt>AbstractList&lt;/tt> class in the sense&#xA;that it implements the &quot;random access&quot; methods (&lt;tt>get(int index)&lt;/tt>,&#xA;&lt;tt>set(int index, Object element)&lt;/tt>, &lt;tt>set(int index, Object&#xA;element)&lt;/tt>, &lt;tt>add(int index, Object element)&lt;/tt> and &lt;tt>remove(int&#xA;index)&lt;/tt>) on top of the list's list iterator, instead of the other way&#xA;around.&lt;p>&#xA;&#xA;To implement a list the programmer needs only to extend this class and&#xA;provide implementations for the &lt;tt>listIterator&lt;/tt> and &lt;tt>size&lt;/tt>&#xA;methods.  For an unmodifiable list, the programmer need only implement the&#xA;list iterator's &lt;tt>hasNext&lt;/tt>, &lt;tt>next&lt;/tt>, &lt;tt>hasPrevious&lt;/tt>,&#xA;&lt;tt>previous&lt;/tt> and &lt;tt>index&lt;/tt> methods.&lt;p>&#xA;&#xA;For a modifiable list the programmer should additionally implement the list&#xA;iterator's &lt;tt>set&lt;/tt> method.  For a variable-size list the programmer&#xA;should additionally implement the list iterator's &lt;tt>remove&lt;/tt> and&#xA;&lt;tt>add&lt;/tt> methods.&lt;p>&#xA;&#xA;The programmer should generally provide a void (no argument) and collection&#xA;constructor, as per the recommendation in the &lt;tt>Collection&lt;/tt> interface&#xA;specification.&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.33, 02/19/04&#xA;@see Collection&#xA;@see List&#xA;@see AbstractList&#xA;@see AbstractCollection&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_888260_8829"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_286733_6969" name="" parameter="_10_5_622020d_1132928310793_907822_6970">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_907822_6970" parameteredElement="_10_5_622020d_1132928310793_480100_6971">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_480100_6971" name="E" templateParameter="_10_5_622020d_1132928310793_907822_6970"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322470_917983_14722" isSubstitutable="true" general="_10_5_622020d_1132928322259_282425_14444"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322630_146643_15103" name="Vector&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322630_511863_15104" signature="_10_5_622020d_1132928313497_855139_7529">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322630_211453_15105" formal="_10_5_622020d_1132928313497_670419_7530" actual="_10_5_622020d_1132928313477_550955_7480"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322480_739049_14748" name="Comparable&lt;SelfComparable>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_846872_14749" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_917504_14750" formal="_10_5_622020d_1132928307939_608180_4997" actual="_10_5_622020d_1132928310883_42135_6999"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_678755_8927" name="Stack">
            <ownedComment xmi:id="_10_5_622020d_1132928313477_942792_7482" body="The &lt;code>Stack&lt;/code> class represents a last-in-first-out&#xA;(LIFO) stack of objects. It extends class &lt;tt>Vector&lt;/tt> with five&#xA;operations that allow a vector to be treated as a stack. The usual&#xA;&lt;tt>push&lt;/tt> and &lt;tt>pop&lt;/tt> operations are provided, as well as a&#xA;method to &lt;tt>peek&lt;/tt> at the top item on the stack, a method to test&#xA;for whether the stack is &lt;tt>empty&lt;/tt>, and a method to &lt;tt>search&lt;/tt>&#xA;the stack for an item and discover how far it is from the top.&#xA;&lt;p>&#xA;When a stack is first created, it contains no items.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.28, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_678755_8927"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313477_200084_7478" name="" parameter="_10_5_622020d_1132928313477_683713_7479">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313477_683713_7479" parameteredElement="_10_5_622020d_1132928313477_550955_7480">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313477_550955_7480" name="E" templateParameter="_10_5_622020d_1132928313477_683713_7479"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322630_193904_15106" isSubstitutable="true" general="_10_5_622020d_1132928322630_146643_15103"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_144898_8855" name="Dictionary" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310933_529492_7181" body="The &lt;code>Dictionary&lt;/code> class is the abstract parent of any&#xA;class, such as &lt;code>Hashtable&lt;/code>, which maps keys to values.&#xA;Every key and every value is an object. In any one &lt;tt>Dictionary&lt;/tt>&#xA;object, every key is associated with at most one value. Given a&#xA;&lt;tt>Dictionary&lt;/tt> and a key, the associated element can be looked up.&#xA;Any non-&lt;code>null&lt;/code> object can be used as a key and as a value.&#xA;&lt;p>&#xA;As a rule, the &lt;code>equals&lt;/code> method should be used by&#xA;implementations of this class to decide if two keys are the same.&#xA;&lt;p>&#xA;&lt;strong>NOTE: This class is obsolete.  New implementations should&#xA;implement the Map interface, rather than extending this class.&lt;/strong>&#xA;&#xA;@author  unascribed&#xA;@version 1.23, 01/12/04&#xA;@see&#x9;    java.util.Map&#xA;@see     java.lang.Object#equals(java.lang.Object)&#xA;@see     java.lang.Object#hashCode()&#xA;@see     java.util.Hashtable&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_144898_8855"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310933_692737_7175" name="" parameter="_10_5_622020d_1132928310933_805353_7176 _10_5_622020d_1132928310933_677104_7178">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310933_805353_7176" parameteredElement="_10_5_622020d_1132928310933_165247_7177">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310933_165247_7177" name="K" templateParameter="_10_5_622020d_1132928310933_805353_7176"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310933_677104_7178" parameteredElement="_10_5_622020d_1132928310933_818367_7179">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310933_818367_7179" name="V" templateParameter="_10_5_622020d_1132928310933_677104_7178"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313497_424428_7523" name="UnknownFormatFlagsException">
            <ownedComment xmi:id="_10_5_622020d_1132928313497_194280_7525" body="Unchecked exception thrown when an unknown flag is given.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313497_424428_7523"/>
            <generalization xmi:id="_10_5_622020d_1132928322650_818799_15141" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_466957_8921" name="SimpleTimeZone">
            <ownedComment xmi:id="_10_5_622020d_1132928313447_479511_7465" body="&lt;code>SimpleTimeZone&lt;/code> is a concrete subclass of &lt;code>TimeZone&lt;/code>&#xA;that represents a time zone for use with a Gregorian calendar.&#xA;The class holds an offset from GMT, called &lt;em>raw offset&lt;/em>, and start&#xA;and end rules for a daylight saving time schedule.  Since it only holds&#xA;single values for each, it cannot handle historical changes in the offset&#xA;from GMT and the daylight saving schedule, except that the {@link&#xA;#setStartYear setStartYear} method can specify the year when the daylight&#xA;saving time schedule starts in effect.&#xA;&lt;p>&#xA;To construct a &lt;code>SimpleTimeZone&lt;/code> with a daylight saving time&#xA;schedule, the schedule can be described with a set of rules,&#xA;&lt;em>start-rule&lt;/em> and &lt;em>end-rule&lt;/em>. A day when daylight saving time&#xA;starts or ends is specified by a combination of &lt;em>month&lt;/em>,&#xA;&lt;em>day-of-month&lt;/em>, and &lt;em>day-of-week&lt;/em> values. The &lt;em>month&lt;/em>&#xA;value is represented by a Calendar {@link Calendar#MONTH MONTH} field&#xA;value, such as {@link Calendar#MARCH}. The &lt;em>day-of-week&lt;/em> value is&#xA;represented by a Calendar {@link Calendar#DAY_OF_WEEK DAY_OF_WEEK} value,&#xA;such as {@link Calendar#SUNDAY SUNDAY}. The meanings of value combinations&#xA;are as follows.&#xA;&#xA;&lt;ul>&#xA;&lt;li>&lt;b>Exact day of month&lt;/b>&lt;br>&#xA;To specify an exact day of month, set the &lt;em>month&lt;/em> and&#xA;&lt;em>day-of-month&lt;/em> to an exact value, and &lt;em>day-of-week&lt;/em> to zero. For&#xA;example, to specify March 1, set the &lt;em>month&lt;/em> to {@link Calendar#MARCH&#xA;MARCH}, &lt;em>day-of-month&lt;/em> to 1, and &lt;em>day-of-week&lt;/em> to 0.&lt;/li>&#xA;&#xA;&lt;li>&lt;b>Day of week on or after day of month&lt;/b>&lt;br>&#xA;To specify a day of week on or after an exact day of month, set the&#xA;&lt;em>month&lt;/em> to an exact month value, &lt;em>day-of-month&lt;/em> to the day on&#xA;or after which the rule is applied, and &lt;em>day-of-week&lt;/em> to a negative {@link&#xA;Calendar#DAY_OF_WEEK DAY_OF_WEEK} field value. For example, to specify the&#xA;second Sunday of April, set &lt;em>month&lt;/em> to {@link Calendar#APRIL APRIL},&#xA;&lt;em>day-of-month&lt;/em> to 8, and &lt;em>day-of-week&lt;/em> to &lt;code>-&lt;/code>{@link&#xA;Calendar#SUNDAY SUNDAY}.&lt;/li>&#xA;&#xA;&lt;li>&lt;b>Day of week on or before day of month&lt;/b>&lt;br>&#xA;To specify a day of the week on or before an exact day of the month, set&#xA;&lt;em>day-of-month&lt;/em> and &lt;em>day-of-week&lt;/em> to a negative value. For&#xA;example, to specify the last Wednesday on or before the 21st of March, set&#xA;&lt;em>month&lt;/em> to {@link Calendar#MARCH MARCH}, &lt;em>day-of-month&lt;/em> is -21&#xA;and &lt;em>day-of-week&lt;/em> is &lt;code>-&lt;/code>{@link Calendar#WEDNESDAY WEDNESDAY}. &lt;/li>&#xA;&#xA;&lt;li>&lt;b>Last day-of-week of month&lt;/b>&lt;br>&#xA;To specify, the last day-of-week of the month, set &lt;em>day-of-week&lt;/em> to a&#xA;{@link Calendar#DAY_OF_WEEK DAY_OF_WEEK} value and &lt;em>day-of-month&lt;/em> to&#xA;-1. For example, to specify the last Sunday of October, set &lt;em>month&lt;/em>&#xA;to {@link Calendar#OCTOBER OCTOBER}, &lt;em>day-of-week&lt;/em> to {@link&#xA;Calendar#SUNDAY SUNDAY} and &lt;em>day-of-month&lt;/em> to -1.  &lt;/li>&#xA;&#xA;&lt;/ul>&#xA;The time of the day at which daylight saving time starts or ends is&#xA;specified by a millisecond value within the day. There are three kinds of&#xA;&lt;em>mode&lt;/em>s to specify the time: {@link #WALL_TIME}, {@link&#xA;#STANDARD_TIME} and {@link #UTC_TIME}. For example, if daylight&#xA;saving time ends&#xA;at 2:00 am in the wall clock time, it can be specified by 7200000&#xA;milliseconds in the {@link #WALL_TIME} mode. In this case, the wall clock time&#xA;for an &lt;em>end-rule&lt;/em> means the same thing as the daylight time.&#xA;&lt;p>&#xA;The following are examples of parameters for constructing time zone objects.&#xA;&lt;pre>&lt;code>&#xA;Base GMT offset: -8:00&#xA;DST starts:      at 2:00am in standard time&#xA;on the first Sunday in April&#xA;DST ends:        at 2:00am in daylight time&#xA;on the last Sunday in October&#xA;Save:            1 hour&#xA;SimpleTimeZone(-28800000,&#xA;&quot;America/Los_Angeles&quot;,&#xA;Calendar.APRIL, 1, -Calendar.SUNDAY,&#xA;7200000,&#xA;Calendar.OCTOBER, -1, Calendar.SUNDAY,&#xA;7200000,&#xA;3600000)&#xA;&#xA;Base GMT offset: +1:00&#xA;DST starts:      at 1:00am in UTC time&#xA;on the last Sunday in March&#xA;DST ends:        at 1:00am in UTC time&#xA;on the last Sunday in October&#xA;Save:            1 hour&#xA;SimpleTimeZone(3600000,&#xA;&quot;Europe/Paris&quot;,&#xA;Calendar.MARCH, -1, Calendar.SUNDAY,&#xA;3600000, SimpleTimeZone.UTC_TIME,&#xA;Calendar.OCTOBER, -1, Calendar.SUNDAY,&#xA;3600000, SimpleTimeZone.UTC_TIME,&#xA;3600000)&#xA;&lt;/code>&lt;/pre>&#xA;These parameter rules are also applicable to the set rule methods, such as&#xA;&lt;code>setStartRule&lt;/code>.&#xA;&#xA;@since 1.1&#xA;@see      Calendar&#xA;@see      GregorianCalendar&#xA;@see      TimeZone&#xA;@version  1.49 01/12/04&#xA;@author   David Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu&#xA;" annotatedElement="_9_5_f720368_1110473546706_466957_8921"/>
            <generalization xmi:id="_10_5_622020d_1132928322630_612259_15100" isSubstitutable="true" general="_9_5_f720368_1110473546706_290048_8939"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_239729_8919" name="Set" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313447_572152_7463" body="A collection that contains no duplicate elements.  More formally, sets&#xA;contain no pair of elements &lt;code>e1&lt;/code> and &lt;code>e2&lt;/code> such that&#xA;&lt;code>e1.equals(e2)&lt;/code>, and at most one null element.  As implied by&#xA;its name, this interface models the mathematical &lt;i>set&lt;/i> abstraction.&lt;p>&#xA;&#xA;The &lt;tt>Set&lt;/tt> interface places additional stipulations, beyond those&#xA;inherited from the &lt;tt>Collection&lt;/tt> interface, on the contracts of all&#xA;constructors and on the contracts of the &lt;tt>add&lt;/tt>, &lt;tt>equals&lt;/tt> and&#xA;&lt;tt>hashCode&lt;/tt> methods.  Declarations for other inherited methods are&#xA;also included here for convenience.  (The specifications accompanying these&#xA;declarations have been tailored to the &lt;tt>Set&lt;/tt> interface, but they do&#xA;not contain any additional stipulations.)&lt;p>&#xA;&#xA;The additional stipulation on constructors is, not surprisingly,&#xA;that all constructors must create a set that contains no duplicate elements&#xA;(as defined above).&lt;p>&#xA;&#xA;Note: Great care must be exercised if mutable objects are used as set&#xA;elements.  The behavior of a set is not specified if the value of an object&#xA;is changed in a manner that affects equals comparisons while the object is&#xA;an element in the set.  A special case of this prohibition is that it is&#xA;not permissible for a set to contain itself as an element.&#xA;&#xA;&lt;p>Some set implementations have restrictions on the elements that&#xA;they may contain.  For example, some implementations prohibit null elements,&#xA;and some have restrictions on the types of their elements.  Attempting to&#xA;add an ineligible element throws an unchecked exception, typically&#xA;&lt;tt>NullPointerException&lt;/tt> or &lt;tt>ClassCastException&lt;/tt>.  Attempting&#xA;to query the presence of an ineligible element may throw an exception,&#xA;or it may simply return false; some implementations will exhibit the former&#xA;behavior and some will exhibit the latter.  More generally, attempting an&#xA;operation on an ineligible element whose completion would not result in&#xA;the insertion of an ineligible element into the set may throw an&#xA;exception or it may succeed, at the option of the implementation.&#xA;Such exceptions are marked as &quot;optional&quot; in the specification for this&#xA;interface.&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.35, 02/19/04&#xA;@see Collection&#xA;@see List&#xA;@see SortedSet&#xA;@see HashSet&#xA;@see TreeSet&#xA;@see AbstractSet&#xA;@see Collections#singleton(java.lang.Object)&#xA;@see Collections#EMPTY_SET&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_239729_8919"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313447_162331_7459" name="" parameter="_10_5_622020d_1132928313447_917798_7460">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313447_917798_7460" parameteredElement="_10_5_622020d_1132928313447_321137_7461">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313447_321137_7461" name="E" templateParameter="_10_5_622020d_1132928313447_917798_7460"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322630_721669_15099" isSubstitutable="true" general="_10_5_622020d_1132928322460_511299_14700"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313497_347916_7520" name="UnknownFormatConversionException">
            <ownedComment xmi:id="_10_5_622020d_1132928313497_603728_7522" body="Unchecked exception thrown when an unknown conversion is given.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to&#xA;any method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.3, 06/07/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313497_347916_7520"/>
            <generalization xmi:id="_10_5_622020d_1132928322650_346055_15140" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310973_285433_7228" name="FormatFlagsConversionMismatchException">
            <ownedComment xmi:id="_10_5_622020d_1132928310973_970791_7230" body="Unchecked exception thrown when a conversion and flag are incompatible.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928310973_285433_7228"/>
            <generalization xmi:id="_10_5_622020d_1132928322560_933577_14933" isSubstitutable="true" general="_10_5_622020d_1132928313256_81194_7310"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_340170_8889" name="ListResourceBundle" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313327_662935_7383" body="&lt;code>ListResourceBundle&lt;/code> is an abstract subclass of&#xA;&lt;code>ResourceBundle&lt;/code> that manages resources for a locale&#xA;in a convenient and easy to use list. See &lt;code>ResourceBundle&lt;/code> for&#xA;more information about resource bundles in general.&#xA;&#xA;&lt;P>&#xA;Subclasses must override &lt;code>getContents&lt;/code> and provide an array,&#xA;where each item in the array is a pair of objects.&#xA;The first element of each pair is the key, which must be a&#xA;&lt;code>String&lt;/code>, and the second element is the value associated with&#xA;that key.&#xA;&#xA;&lt;p>&#xA;The following &lt;a name=&quot;sample&quot;>example&lt;/a> shows two members of a resource&#xA;bundle family with the base name &quot;MyResources&quot;.&#xA;&quot;MyResources&quot; is the default member of the bundle family, and&#xA;&quot;MyResources_fr&quot; is the French member.&#xA;These members are based on &lt;code>ListResourceBundle&lt;/code>&#xA;(a related &lt;a href=&quot;PropertyResourceBundle.html#sample&quot;>example&lt;/a> shows&#xA;how you can add a bundle to this family that's based on a properties file).&#xA;The keys in this example are of the form &quot;s1&quot; etc. The actual&#xA;keys are entirely up to your choice, so long as they are the same as&#xA;the keys you use in your program to retrieve the objects from the bundle.&#xA;Keys are case-sensitive.&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;&#xA;public class MyResources extends ListResourceBundle {&#xA;public Object[][] getContents() {&#xA;return contents;&#xA;}&#xA;static final Object[][] contents = {&#xA;LOCALIZE THIS&#xA;{&quot;s1&quot;, &quot;The disk \&quot;{1}\&quot; contains {0}.&quot;},  // MessageFormat pattern&#xA;{&quot;s2&quot;, &quot;1&quot;},                               // location of {0} in pattern&#xA;{&quot;s3&quot;, &quot;My Disk&quot;},                         // sample disk name&#xA;{&quot;s4&quot;, &quot;no files&quot;},                        // first ChoiceFormat choice&#xA;{&quot;s5&quot;, &quot;one file&quot;},                        // second ChoiceFormat choice&#xA;{&quot;s6&quot;, &quot;{0,number} files&quot;},                // third ChoiceFormat choice&#xA;{&quot;s7&quot;, &quot;3 Mar 96&quot;},                        // sample date&#xA;{&quot;s8&quot;, new Dimension(1,5)}                 // real object, not just string&#xA;END OF MATERIAL TO LOCALIZE&#xA;};&#xA;}&#xA;&#xA;public class MyResources_fr extends ListResourceBundle {&#xA;public Object[][] getContents() {&#xA;return contents;&#xA;}&#xA;static final Object[][] contents = {&#xA;LOCALIZE THIS&#xA;{&quot;s1&quot;, &quot;Le disque \&quot;{1}\&quot; {0}.&quot;},          // MessageFormat pattern&#xA;{&quot;s2&quot;, &quot;1&quot;},                               // location of {0} in pattern&#xA;{&quot;s3&quot;, &quot;Mon disque&quot;},                      // sample disk name&#xA;{&quot;s4&quot;, &quot;ne contient pas de fichiers&quot;},     // first ChoiceFormat choice&#xA;{&quot;s5&quot;, &quot;contient un fichier&quot;},             // second ChoiceFormat choice&#xA;{&quot;s6&quot;, &quot;contient {0,number} fichiers&quot;},    // third ChoiceFormat choice&#xA;{&quot;s7&quot;, &quot;3 mars 1996&quot;},                     // sample date&#xA;{&quot;s8&quot;, new Dimension(1,3)}                 // real object, not just string&#xA;END OF MATERIAL TO LOCALIZE&#xA;};&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;@see ResourceBundle&#xA;@see PropertyResourceBundle&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_340170_8889"/>
            <generalization xmi:id="_10_5_622020d_1132928322620_619209_15066" isSubstitutable="true" general="_9_5_f720368_1110473546706_397401_8915"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322570_992407_14968" name="Dictionary&lt;K, V>">
            <templateBinding xmi:id="_10_5_622020d_1132928322570_100832_14969" signature="_10_5_622020d_1132928310933_692737_7175">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322570_457716_14970" formal="_10_5_622020d_1132928310933_805353_7176" actual="_10_5_622020d_1132928313216_95746_7276"/>
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322570_548129_14971" formal="_10_5_622020d_1132928310933_677104_7178" actual="_10_5_622020d_1132928313216_630110_7278"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322500_8993_14802" name="SynchronizedSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322500_658882_14803" signature="_10_5_622020d_1132928310893_77172_7048">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322500_215949_14804" formal="_10_5_622020d_1132928310893_168130_7049" actual="_10_5_622020d_1132928310893_896339_7054"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313166_340686_7249" name="FormatterClosedException">
            <ownedComment xmi:id="_10_5_622020d_1132928313166_700657_7251" body="Unchecked exception thrown when the formatter has been closed.&#xA;&#xA;&lt;p> Unless otherwise specified, passing a &lt;tt>null&lt;/tt> argument to any&#xA;method or constructor in this class will cause a {@link&#xA;NullPointerException} to be thrown.&#xA;&#xA;@version &#x9;1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928313166_340686_7249"/>
            <generalization xmi:id="_10_5_622020d_1132928322560_379554_14938" isSubstitutable="true" general="_9_5_f720368_1110473546612_484638_7617"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_289615_6963" name="AbstractQueue" clientDependency="_10_5_622020d_1132928322470_300335_14720" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310793_813644_6968" body="This class provides skeletal implementations of some {@link Queue}&#xA;operations. The implementations in this class are appropriate when&#xA;the base implementation does &lt;em>not&lt;/em> allow &lt;tt>null&lt;/tt>&#xA;elements.  Methods {@link #add add}, {@link #remove remove}, and&#xA;{@link #element element} are based on {@link #offer offer}, {@link&#xA;#poll poll}, and {@link #peek peek}, respectively but throw&#xA;exceptions instead of indicating failure via &lt;tt>false&lt;/tt> or&#xA;&lt;tt>null&lt;/tt> returns.&#xA;&#xA;&lt;p> A &lt;tt>Queue&lt;/tt> implementation that extends this class must&#xA;minimally define a method {@link Queue#offer} which does not permit&#xA;insertion of &lt;tt>null&lt;/tt> elements, along with methods {@link&#xA;Queue#peek}, {@link Queue#poll}, {@link Collection#size}, and a&#xA;{@link Collection#iterator} supporting {@link&#xA;Iterator#remove}. Typically, additional methods will be overridden&#xA;as well. If these requirements cannot be met, consider instead&#xA;subclassing {@link AbstractCollection}.&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@since 1.5&#xA;@author Doug Lea&#xA;@param &lt;E> the type of elements held in this collection&#xA;" annotatedElement="_10_5_622020d_1132928310793_289615_6963"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310793_335387_6964" name="" parameter="_10_5_622020d_1132928310793_824704_6965">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310793_824704_6965" parameteredElement="_10_5_622020d_1132928310793_297082_6966">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310793_297082_6966" name="E" templateParameter="_10_5_622020d_1132928310793_824704_6965"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322470_913587_14721" isSubstitutable="true" general="_10_5_622020d_1132928322460_639101_14705"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322470_300335_14720" name="" supplier="_10_5_622020d_1132928321999_800194_14363" client="_10_5_622020d_1132928310793_289615_6963" contract="_10_5_622020d_1132928321999_800194_14363"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322530_725245_14863" name="AbstractList&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322530_573652_14864" signature="_10_5_622020d_1132928310783_392472_6937">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322530_911377_14865" formal="_10_5_622020d_1132928310783_432973_6938" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547799_233532_19062" name="logging">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_550551_8727" name="Handler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310322_656606_6751" body="A &lt;tt>Handler&lt;/tt> object takes log messages from a &lt;tt>Logger&lt;/tt> and&#xA;exports them.  It might for example, write them to a console&#xA;or write them to a file, or send them to a network logging service,&#xA;or forward them to an OS log, or whatever.&#xA;&lt;p>&#xA;A &lt;tt>Handler&lt;/tt> can be disabled by doing a &lt;tt>setLevel(Level.OFF)&lt;/tt>&#xA;and can  be re-enabled by doing a &lt;tt>setLevel&lt;/tt> with an appropriate level.&#xA;&lt;p>&#xA;&lt;tt>Handler&lt;/tt> classes typically use &lt;tt>LogManager&lt;/tt> properties to set&#xA;default values for the &lt;tt>Handler&lt;/tt>'s &lt;tt>Filter&lt;/tt>, &lt;tt>Formatter&lt;/tt>,&#xA;and &lt;tt>Level&lt;/tt>.  See the specific documentation for each concrete&#xA;&lt;tt>Handler&lt;/tt> class.&#xA;&#xA;&#xA;@version 1.17, 01/12/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_550551_8727"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_439634_8719" name="ErrorManager">
              <ownedComment xmi:id="_10_5_622020d_1132928310312_782025_6743" body="ErrorManager objects can be attached to Handlers to process&#xA;any error that occur on a Handler during Logging.&#xA;&lt;p>&#xA;When processing logging output, if a Handler encounters problems&#xA;then rather than throwing an Exception back to the issuer of&#xA;the logging call (who is unlikely to be interested) the Handler&#xA;should call its associated ErrorManager.&#xA;" annotatedElement="_9_5_f720368_1110473546690_439634_8719"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_126049_8721" name="FileHandler">
              <ownedComment xmi:id="_10_5_622020d_1132928310322_139326_6745" body="Simple file logging &lt;tt>Handler&lt;/tt>.&#xA;&lt;p>&#xA;The &lt;tt>FileHandler&lt;/tt> can either write to a specified file,&#xA;or it can write to a rotating set of files.&#xA;&lt;p>&#xA;For a rotating set of files, as each file reaches a given size&#xA;limit, it is closed, rotated out, and a new file opened.&#xA;Successively older files are named by adding &quot;0&quot;, &quot;1&quot;, &quot;2&quot;,&#xA;etc into the base filename.&#xA;&lt;p>&#xA;By default buffering is enabled in the IO libraries but each log&#xA;record is flushed out when it is complete.&#xA;&lt;p>&#xA;By default the &lt;tt>XMLFormatter&lt;/tt> class is used for formatting.&#xA;&lt;p>&#xA;&lt;b>Configuration:&lt;/b>&#xA;By default each &lt;tt>FileHandler&lt;/tt> is initialized using the following&#xA;&lt;tt>LogManager&lt;/tt> configuration properties.  If properties are not defined&#xA;(or have invalid values) then the specified default values are used.&#xA;&lt;ul>&#xA;&lt;li>   java.util.logging.FileHandler.level&#xA;specifies the default level for the &lt;tt>Handler&lt;/tt>&#xA;(defaults to &lt;tt>Level.ALL&lt;/tt>).&#xA;&lt;li>   java.util.logging.FileHandler.filter&#xA;specifies the name of a &lt;tt>Filter&lt;/tt> class to use&#xA;(defaults to no &lt;tt>Filter&lt;/tt>).&#xA;&lt;li>   java.util.logging.FileHandler.formatter&#xA;specifies the name of a &lt;/tt>Formatter&lt;/tt> class to use&#xA;(defaults to &lt;tt>java.util.logging.XMLFormatter&lt;/tt>)&#xA;&lt;li>   java.util.logging.FileHandler.encoding&#xA;the name of the character set encoding to use (defaults to&#xA;the default platform encoding).&#xA;&lt;li>   java.util.logging.FileHandler.limit&#xA;specifies an approximate maximum amount to write (in bytes)&#xA;to any one file.  If this is zero, then there is no limit.&#xA;(Defaults to no limit).&#xA;&lt;li>   java.util.logging.FileHandler.count&#xA;specifies how many output files to cycle through (defaults to 1).&#xA;&lt;li>   java.util.logging.FileHandler.pattern&#xA;specifies a pattern for generating the output file name.  See&#xA;below for details. (Defaults to &quot;%h/java%u.log&quot;).&#xA;&lt;li>   java.util.logging.FileHandler.append&#xA;specifies whether the FileHandler should append onto&#xA;any existing files (defaults to false).&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;p>&#xA;A pattern consists of a string that includes the following special&#xA;components that will be replaced at runtime:&#xA;&lt;ul>&#xA;&lt;li>    &quot;/&quot;    the local pathname separator&#xA;&lt;li>     &quot;%t&quot;   the system temporary directory&#xA;&lt;li>     &quot;%h&quot;   the value of the &quot;user.home&quot; system property&#xA;&lt;li>     &quot;%g&quot;   the generation number to distinguish rotated logs&#xA;&lt;li>     &quot;%u&quot;   a unique number to resolve conflicts&#xA;&lt;li>     &quot;%%&quot;   translates to a single percent sign &quot;%&quot;&#xA;&lt;/ul>&#xA;If no &quot;%g&quot; field has been specified and the file count is greater&#xA;than one, then the generation number will be added to the end of&#xA;the generated filename, after a dot.&#xA;&lt;p>&#xA;Thus for example a pattern of &quot;%t/java%g.log&quot; with a count of 2&#xA;would typically cause log files to be written on Solaris to&#xA;var/tmp/java0.log and /var/tmp/java1.log whereas on Windows 95 they&#xA;would be typically written to C:\TEMP\java0.log and C:\TEMP\java1.log&#xA;&lt;p>&#xA;Generation numbers follow the sequence 0, 1, 2, etc.&#xA;&lt;p>&#xA;Normally the &quot;%u&quot; unique field is set to 0.  However, if the &lt;tt>FileHandler&lt;/tt>&#xA;tries to open the filename and finds the file is currently in use by&#xA;another process it will increment the unique number field and try&#xA;again.  This will be repeated until &lt;tt>FileHandler&lt;/tt> finds a file name that&#xA;is  not currently in use. If there is a conflict and no &quot;%u&quot; field has&#xA;been specified, it will be added at the end of the filename after a dot.&#xA;(This will be after any automatically added generation number.)&#xA;&lt;p>&#xA;Thus if three processes were all trying to log to fred%u.%g.txt then&#xA;they  might end up using fred0.0.txt, fred1.0.txt, fred2.0.txt as&#xA;the first file in their rotating sequences.&#xA;&lt;p>&#xA;Note that the use of unique ids to avoid conflicts is only guaranteed&#xA;to work reliably when using a local disk file system.&#xA;&#xA;@version 1.34, 04/05/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_126049_8721"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_274490_14555" isSubstitutable="true" general="_9_5_f720368_1110473546690_89383_8745"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_892555_19066" name="MeteredStream" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322319_479734_14556" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547799_672391_19067" name="InitializationErrorManager" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322319_641917_14557" isSubstitutable="true" general="_9_5_f720368_1110473546690_439634_8719"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_595565_8735" name="LogManager">
              <ownedComment xmi:id="_10_5_622020d_1132928310372_95748_6765" body="There is a single global LogManager object that is used to&#xA;maintain a set of shared state about Loggers and log services.&#xA;&lt;p>&#xA;This LogManager object:&#xA;&lt;ul>&#xA;&lt;li> Manages a hierarchical namespace of Logger objects.  All&#xA;named Loggers are stored in this namespace.&#xA;&lt;li> Manages a set of logging control properties.  These are&#xA;simple key-value pairs that can be used by Handlers and&#xA;other logging objects to configure themselves.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The global LogManager object can be retrieved using LogManager.getLogManager().&#xA;The LogManager object is created during class initialization and&#xA;cannot subsequently be changed.&#xA;&lt;p>&#xA;At startup the LogManager class is located using the&#xA;java.util.logging.manager system property.&#xA;&lt;p>&#xA;By default, the LogManager reads its initial configuration from&#xA;a properties file &quot;lib/logging.properties&quot; in the JRE directory.&#xA;If you edit that property file you can change the default logging&#xA;configuration for all uses of that JRE.&#xA;&lt;p>&#xA;In addition, the LogManager uses two optional system properties that&#xA;allow more control over reading the initial configuration:&#xA;&lt;ul>&#xA;&lt;li>&quot;java.util.logging.config.class&quot;&#xA;&lt;li>&quot;java.util.logging.config.file&quot;&#xA;&lt;/ul>&#xA;These two properties may be set via the Preferences API, or as&#xA;command line property definitions to the &quot;java&quot; command, or as&#xA;system property definitions passed to JNI_CreateJavaVM.&#xA;&lt;p>&#xA;If the &quot;java.util.logging.config.class&quot; property is set, then the&#xA;property value is treated as a class name.  The given class will be&#xA;loaded, an object will be instantiated, and that object's constructor&#xA;is responsible for reading in the initial configuration.  (That object&#xA;may use other system properties to control its configuration.)  The&#xA;alternate configuration class can use &lt;tt>readConfiguration(InputStream)&lt;/tt>&#xA;to define properties in the LogManager.&#xA;&lt;p>&#xA;If &quot;java.util.logging.config.class&quot; property is &lt;b>not&lt;/b> set,&#xA;then the &quot;java.util.logging.config.file&quot; system property can be used&#xA;to specify a properties file (in java.util.Properties format). The&#xA;initial logging configuration will be read from this file.&#xA;&lt;p>&#xA;If neither of these properties is defined then, as described&#xA;above, the LogManager will read its initial configuration from&#xA;a properties file &quot;lib/logging.properties&quot; in the JRE directory.&#xA;&lt;p>&#xA;The properties for loggers and Handlers will have names starting&#xA;with the dot-separated name for the handler or logger.&#xA;&lt;p>&#xA;The global logging properties may include:&#xA;&lt;ul>&#xA;&lt;li>A property &quot;handlers&quot;.  This defines a whitespace separated&#xA;list of class names for handler classes to load and register as&#xA;handlers on the root Logger (the Logger named &quot;&quot;).  Each class&#xA;name must be for a Handler class which has a default constructor.&#xA;Note that these Handlers may be created lazily, when they are&#xA;first used.&#xA;&#xA;&lt;li>A property &quot;&lt;logger>.handlers&quot;. This defines a whitespace or&#xA;comma separated list of class names for handlers classes to&#xA;load and register as handlers to the specified logger. Each class&#xA;name must be for a Handler class which has a default constructor.&#xA;Note that these Handlers may be created lazily, when they are&#xA;first used.&#xA;&#xA;&lt;li>A property &quot;&lt;logger>.useParentHandlers&quot;. This defines a boolean&#xA;value. By default every logger calls its parent in addition to&#xA;handling the logging message itself, this often result in messages&#xA;being handled by the root logger as well. When setting this property&#xA;to false a Handler needs to be configured for this logger otherwise&#xA;no logging messages are delivered.&#xA;&#xA;&lt;li>A property &quot;config&quot;.  This property is intended to allow&#xA;arbitrary configuration code to be run.  The property defines a&#xA;whitespace separated list of class names.  A new instance will be&#xA;created for each named class.  The default constructor of each class&#xA;may execute arbitrary code to update the logging configuration, such as&#xA;setting logger levels, adding handlers, adding filters, etc.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Note that all classes loaded during LogManager configuration are&#xA;first searched on the system class path before any user class path.&#xA;That includes the LogManager class, any config classes, and any&#xA;handler classes.&#xA;&lt;p>&#xA;Loggers are organized into a naming hierarchy based on their&#xA;dot separated names.  Thus &quot;a.b.c&quot; is a child of &quot;a.b&quot;, but&#xA;&quot;a.b1&quot; and a.b2&quot; are peers.&#xA;&lt;p>&#xA;All properties whose names end with &quot;.level&quot; are assumed to define&#xA;log levels for Loggers.  Thus &quot;foo.level&quot; defines a log level for&#xA;the logger called &quot;foo&quot; and (recursively) for any of its children&#xA;in the naming hierarchy.  Log Levels are applied in the order they&#xA;are defined in the properties file.  Thus level settings for child&#xA;nodes in the tree should come after settings for their parents.&#xA;The property name &quot;.level&quot; can be used to set the level for the&#xA;root of the tree.&#xA;&lt;p>&#xA;All methods on the LogManager object are multi-thread safe.&#xA;&#xA;@version 1.46, 06/07/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_595565_8735"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_28826_19076" name="Cleaner" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322370_919391_14571" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_624844_19077" name="LogNode" visibility="private"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547815_661790_19079" name="RootLogger" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928322370_309719_14572" isSubstitutable="true" general="_9_5_f720368_1110473546690_450501_8731"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310332_229041_6756" name="Logging" visibility="package" clientDependency="_10_5_622020d_1132928322319_702465_14559">
              <ownedComment xmi:id="_10_5_622020d_1132928310332_575115_6758" body="Logging is the implementation class of LoggingMXBean.&#xA;&#xA;The &lt;tt>LoggingMXBean&lt;/tt> interface provides a standard&#xA;method for management access to the individual&#xA;java.util.Logger objects available at runtime.&#xA;&#xA;@author Ron Mann&#xA;@author Mandy Chung&#xA;@version 1.5, 04/18/04&#xA;@since 1.5&#xA;&#xA;@see javax.management&#xA;@see java.util.Logger&#xA;@see java.util.LogManager&#xA;" annotatedElement="_10_5_622020d_1132928310332_229041_6756"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322319_702465_14559" name="" supplier="_10_5_622020d_1132928310332_84883_6759" client="_10_5_622020d_1132928310332_229041_6756" contract="_10_5_622020d_1132928310332_84883_6759"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_940692_8737" name="LogRecord" clientDependency="_10_5_622020d_1132928322370_921519_14573">
              <ownedComment xmi:id="_10_5_622020d_1132928310372_35248_6767" body="LogRecord objects are used to pass logging requests between&#xA;the logging framework and individual log Handlers.&#xA;&lt;p>&#xA;When a LogRecord is passed into the logging framework it&#xA;logically belongs to the framework and should no longer be&#xA;used or updated by the client application.&#xA;&lt;p>&#xA;Note that if the client application has not specified an&#xA;explicit source method name and source class name, then the&#xA;LogRecord class will infer them automatically when they are&#xA;first accessed (due to a call on getSourceMethodName or&#xA;getSourceClassName) by analyzing the call stack.  Therefore,&#xA;if a logging Handler wants to pass off a LogRecord to another&#xA;thread, or to transmit it over RMI, and if it wishes to subsequently&#xA;obtain method name or class name information it should call&#xA;one of getSourceClassName or getSourceMethodName to force&#xA;the values to be filled in.&#xA;&lt;p>&#xA;&lt;b> Serialization notes:&lt;/b>&#xA;&lt;ul>&#xA;&lt;li>The LogRecord class is serializable.&#xA;&#xA;&lt;li> Because objects in the parameters array may not be serializable,&#xA;during serialization all objects in the parameters array are&#xA;written as the corresponding Strings (using Object.toString).&#xA;&#xA;&lt;li> The ResourceBundle is not transmitted as part of the serialized&#xA;form, but the resource bundle name is, and the recipient object's&#xA;readObject method will attempt to locate a suitable resource bundle.&#xA;&#xA;&lt;/ul>&#xA;&#xA;@version 1.23, 01/12/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_940692_8737"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322370_921519_14573" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_940692_8737" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_781832_8717" name="ConsoleHandler">
              <ownedComment xmi:id="_10_5_622020d_1132928310312_225919_6741" body="This &lt;tt>Handler&lt;/tt> publishes log records to &lt;tt>System.err&lt;/tt>.&#xA;By default the &lt;tt>SimpleFormatter&lt;/tt> is used to generate brief summaries.&#xA;&lt;p>&#xA;&lt;b>Configuration:&lt;/b>&#xA;By default each &lt;tt>ConsoleHandler&lt;/tt> is initialized using the following&#xA;&lt;tt>LogManager&lt;/tt> configuration properties.  If properties are not defined&#xA;(or have invalid values) then the specified default values are used.&#xA;&lt;ul>&#xA;&lt;li>   java.util.logging.ConsoleHandler.level&#xA;specifies the default level for the &lt;tt>Handler&lt;/tt>&#xA;(defaults to &lt;tt>Level.INFO&lt;/tt>).&#xA;&lt;li>   java.util.logging.ConsoleHandler.filter&#xA;specifies the name of a &lt;tt>Filter&lt;/tt> class to use&#xA;(defaults to no &lt;tt>Filter&lt;/tt>).&#xA;&lt;li>   java.util.logging.ConsoleHandler.formatter&#xA;specifies the name of a &lt;tt>Formatter&lt;/tt> class to use&#xA;(defaults to &lt;tt>java.util.logging.SimpleFormatter&lt;/tt>).&#xA;&lt;li>   java.util.logging.ConsoleHandler.encoding&#xA;the name of the character set encoding to use (defaults to&#xA;the default platform encoding).&#xA;&lt;/ul>&#xA;&lt;p>&#xA;@version 1.12, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_781832_8717"/>
              <generalization xmi:id="_10_5_622020d_1132928322319_806641_14554" isSubstitutable="true" general="_9_5_f720368_1110473546690_89383_8745"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928310332_84883_6759" name="LoggingMXBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310332_786795_6761" body="The management interface for the logging facility.&#xA;&#xA;&lt;p>There is a single global instance of the &lt;tt>LoggingMXBean&lt;/tt>.&#xA;This instance is an&#xA;&lt;a href=&quot;ManagementFactory.html#MXBean&quot;>MXBean&lt;/a>&#xA;can be obtained by calling&#xA;the {@link LogManager#getLoggingMXBean} method or from the&#xA;{@link java.lang.management.ManagementFactory#getPlatformMBeanServer&#xA;platform &lt;tt>MBeanServer&lt;/tt>} method.&#xA;&#xA;&lt;p>The {@link javax.management.ObjectName ObjectName} for uniquely&#xA;identifying the &lt;tt>LoggingMXBean&lt;/tt> within an MBeanServer is:&#xA;&lt;blockquote>&#xA;{@link LogManager#LOGGING_MXBEAN_NAME&#xA;&lt;tt>java.util.logging:type=Logging&lt;/tt>}&#xA;&lt;/blockquote>&#xA;&#xA;@see java.lang.management.ManagementFactory&#xA;&#xA;@author  Ron Mann&#xA;@author  Mandy Chung&#xA;@version 1.7, 04/20/04&#xA;@since   1.5&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928310332_84883_6759"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_450501_8731" name="Logger">
              <ownedComment xmi:id="_10_5_622020d_1132928310332_83440_6755" body="A Logger object is used to log messages for a specific&#xA;system or application component.  Loggers are normally named,&#xA;using a hierarchical dot-separated namespace.  Logger names&#xA;can be arbitrary strings, but they should normally be based on&#xA;the package name or class name of the logged component, such&#xA;as java.net or javax.swing.  In addition it is possible to create&#xA;&quot;anonymous&quot; Loggers that are not stored in the Logger namespace.&#xA;&lt;p>&#xA;Logger objects may be obtained by calls on one of the getLogger&#xA;factory methods.  These will either create a new Logger or&#xA;return a suitable existing Logger.&#xA;&lt;p>&#xA;Logging messages will be forwarded to registered Handler&#xA;objects, which can forward the messages to a variety of&#xA;destinations, including consoles, files, OS logs, etc.&#xA;&lt;p>&#xA;Each Logger keeps track of a &quot;parent&quot; Logger, which is its&#xA;nearest existing ancestor in the Logger namespace.&#xA;&lt;p>&#xA;Each Logger has a &quot;Level&quot; associated with it.  This reflects&#xA;a minimum Level that this logger cares about.  If a Logger's&#xA;level is set to &lt;tt>null&lt;/tt>, then its effective level is inherited&#xA;from its parent, which may in turn obtain it recursively from its&#xA;parent, and so on up the tree.&#xA;&lt;p>&#xA;The log level can be configured based on the properties from the&#xA;logging configuration file, as described in the description&#xA;of the LogManager class.  However it may also be dynamically changed&#xA;by calls on the Logger.setLevel method.  If a logger's level is&#xA;changed the change may also affect child loggers, since any child&#xA;logger that has &lt;tt>null&lt;/tt> as its level will inherit its&#xA;effective level from its parent.&#xA;&lt;p>&#xA;On each logging call the Logger initially performs a cheap&#xA;check of the request level (e.g. SEVERE or FINE) against the&#xA;effective log level of the logger.  If the request level is&#xA;lower than the log level, the logging call returns immediately.&#xA;&lt;p>&#xA;After passing this initial (cheap) test, the Logger will allocate&#xA;a LogRecord to describe the logging message.  It will then call a&#xA;Filter (if present) to do a more detailed check on whether the&#xA;record should be published.  If that passes it will then publish&#xA;the LogRecord to its output Handlers.  By default, loggers also&#xA;publish to their parent's Handlers, recursively up the tree.&#xA;&lt;p>&#xA;Each Logger may have a ResourceBundle name associated with it.&#xA;The named bundle will be used for localizing logging messages.&#xA;If a Logger does not have its own ResourceBundle name, then&#xA;it will inherit the ResourceBundle name from its parent,&#xA;recursively up the tree.&#xA;&lt;p>&#xA;Most of the logger output methods take a &quot;msg&quot; argument.  This&#xA;msg argument may be either a raw value or a localization key.&#xA;During formatting, if the logger has (or inherits) a localization&#xA;ResourceBundle and if the ResourceBundle has a mapping for the msg&#xA;string, then the msg string is replaced by the localized value.&#xA;Otherwise the original msg string is used.  Typically, formatters use&#xA;java.text.MessageFormat style formatting to format parameters, so&#xA;for example a format string &quot;{0} {1}&quot; would format two parameters&#xA;as strings.&#xA;&lt;p>&#xA;When mapping ResourceBundle names to ResourceBundles, the Logger&#xA;will first try to use the Thread's ContextClassLoader.  If that&#xA;is null it will try the SystemClassLoader instead.  As a temporary&#xA;transition feature in the initial implementation, if the Logger is&#xA;unable to locate a ResourceBundle from the ContextClassLoader or&#xA;SystemClassLoader the Logger will also search up the class stack&#xA;and use successive calling ClassLoaders to try to locate a ResourceBundle.&#xA;(This call stack search is to allow containers to transition to&#xA;using ContextClassLoaders and is likely to be removed in future&#xA;versions.)&#xA;&lt;p>&#xA;Formatting (including localization) is the responsibility of&#xA;the output Handler, which will typically call a Formatter.&#xA;&lt;p>&#xA;Note that formatting need not occur synchronously.  It may be delayed&#xA;until a LogRecord is actually written to an external sink.&#xA;&lt;p>&#xA;The logging methods are grouped in five main categories:&#xA;&lt;ul>&#xA;&lt;li>&lt;p>&#xA;There are a set of &quot;log&quot; methods that take a log level, a message&#xA;string, and optionally some parameters to the message string.&#xA;&lt;li>&lt;p>&#xA;There are a set of &quot;logp&quot; methods (for &quot;log precise&quot;) that are&#xA;like the &quot;log&quot; methods, but also take an explicit source class name&#xA;and method name.&#xA;&lt;li>&lt;p>&#xA;There are a set of &quot;logrb&quot; method (for &quot;log with resource bundle&quot;)&#xA;that are like the &quot;logp&quot; method, but also take an explicit resource&#xA;bundle name for use in localizing the log message.&#xA;&lt;li>&lt;p>&#xA;There are convenience methods for tracing method entries (the&#xA;&quot;entering&quot; methods), method returns (the &quot;exiting&quot; methods) and&#xA;throwing exceptions (the &quot;throwing&quot; methods).&#xA;&lt;li>&lt;p>&#xA;Finally, there are a set of convenience methods for use in the&#xA;very simplest cases, when a developer simply wants to log a&#xA;simple string at a given log level.  These methods are named&#xA;after the standard Level names (&quot;severe&quot;, &quot;warning&quot;, &quot;info&quot;, etc.)&#xA;and take a single argument, a message string.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;For the methods that do not take an explicit source name and&#xA;method name, the Logging framework will make a &quot;best effort&quot;&#xA;to determine which class and method called into the logging method.&#xA;However, it is important to realize that this automatically inferred&#xA;information may only be approximate (or may even be quite wrong!).&#xA;Virtual machines are allowed to do extensive optimizations when&#xA;JITing and may entirely remove stack frames, making it impossible&#xA;to reliably locate the calling class and method.&#xA;&lt;P>&#xA;All methods on Logger are multi-thread safe.&#xA;&lt;p>&#xA;&lt;b>Subclassing Information:&lt;/b> Note that a LogManager class may&#xA;provide its own implementation of named Loggers for any point in&#xA;the namespace.  Therefore, any subclasses of Logger (unless they&#xA;are implemented in conjunction with a new LogManager class) should&#xA;take care to obtain a Logger instance from the LogManager class and&#xA;should delegate operations such as &quot;isLoggable&quot; and &quot;log(LogRecord)&quot;&#xA;to that instance.  Note that in order to intercept all logging&#xA;output, subclasses need only override the log(LogRecord) method.&#xA;All the other logging methods are implemented as calls on this&#xA;log(LogRecord) method.&#xA;&#xA;@version 1.45, 02/24/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_450501_8731"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_834211_8739" name="MemoryHandler">
              <ownedComment xmi:id="_10_5_622020d_1132928310372_482820_6769" body="&lt;tt>Handler&lt;/tt> that buffers requests in a circular buffer in memory.&#xA;&lt;p>&#xA;Normally this &lt;tt>Handler&lt;/tt> simply stores incoming &lt;tt>LogRecords&lt;/tt>&#xA;into its memory buffer and discards earlier records.  This buffering&#xA;is very cheap and avoids formatting costs.  On certain trigger&#xA;conditions, the &lt;tt>MemoryHandler&lt;/tt> will push out its current buffer&#xA;contents to a target &lt;tt>Handler&lt;/tt>, which will typically publish&#xA;them to the outside world.&#xA;&lt;p>&#xA;There are three main models for triggering a push of the buffer:&#xA;&lt;ul>&#xA;&lt;li>&#xA;An incoming &lt;tt>LogRecord&lt;/tt> has a type that is greater than&#xA;a pre-defined level, the &lt;tt>pushLevel&lt;/tt>.&#xA;&lt;li>&#xA;An external class calls the &lt;tt>push&lt;/tt> method explicitly.&#xA;&lt;li>&#xA;A subclass overrides the &lt;tt>log&lt;/tt> method and scans each incoming&#xA;&lt;tt>LogRecord&lt;/tt> and calls &lt;tt>push&lt;/tt> if a record matches some&#xA;desired criteria.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;b>Configuration:&lt;/b>&#xA;By default each &lt;tt>MemoryHandler&lt;/tt> is initialized using the following&#xA;LogManager configuration properties.  If properties are not defined&#xA;(or have invalid values) then the specified default values are used.&#xA;If no default value is defined then a RuntimeException is thrown.&#xA;&lt;ul>&#xA;&lt;li>   java.util.logging.MemoryHandler.level&#xA;specifies the level for the &lt;tt>Handler&lt;/tt>&#xA;(defaults to &lt;tt>Level.ALL&lt;/tt>).&#xA;&lt;li>   java.util.logging.MemoryHandler.filter&#xA;specifies the name of a &lt;tt>Filter&lt;/tt> class to use&#xA;(defaults to no &lt;tt>Filter&lt;/tt>).&#xA;&lt;li>   java.util.logging.MemoryHandler.size&#xA;defines the buffer size (defaults to 1000).&#xA;&lt;li>   java.util.logging.MemoryHandler.push&#xA;defines the &lt;tt>pushLevel&lt;/tt> (defaults to &lt;tt>level.SEVERE&lt;/tt>).&#xA;&lt;li>   java.util.logging.MemoryHandler.target&#xA;specifies the name of the target &lt;tt>Handler &lt;/tt> class.&#xA;(no default).&#xA;&lt;/ul>&#xA;&#xA;@version 1.24, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_834211_8739"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_928100_14574" isSubstitutable="true" general="_9_5_f720368_1110473546690_550551_8727"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_192991_8741" name="SimpleFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928310372_949446_6771" body="Print a brief summary of the LogRecord in a human readable&#xA;format.  The summary will typically be 1 or 2 lines.&#xA;&#xA;@version 1.14, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_192991_8741"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_317914_14575" isSubstitutable="true" general="_9_5_f720368_1110473546690_306222_8725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_89383_8745" name="StreamHandler">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_960037_6775" body="Stream based logging &lt;tt>Handler&lt;/tt>.&#xA;&lt;p>&#xA;This is primarily intended as a base class or support class to&#xA;be used in implementing other logging &lt;tt>Handlers&lt;/tt>.&#xA;&lt;p>&#xA;&lt;tt>LogRecords&lt;/tt> are published to a given &lt;tt>java.io.OutputStream&lt;/tt>.&#xA;&lt;p>&#xA;&lt;b>Configuration:&lt;/b>&#xA;By default each &lt;tt>StreamHandler&lt;/tt> is initialized using the following&#xA;&lt;tt>LogManager&lt;/tt> configuration properties.  If properties are not defined&#xA;(or have invalid values) then the specified default values are used.&#xA;&lt;ul>&#xA;&lt;li>   java.util.logging.StreamHandler.level&#xA;specifies the default level for the &lt;tt>Handler&lt;/tt>&#xA;(defaults to &lt;tt>Level.INFO&lt;/tt>).&#xA;&lt;li>   java.util.logging.StreamHandler.filter&#xA;specifies the name of a &lt;tt>Filter&lt;/tt> class to use&#xA;(defaults to no &lt;tt>Filter&lt;/tt>).&#xA;&lt;li>   java.util.logging.StreamHandler.formatter&#xA;specifies the name of a &lt;tt>Formatter&lt;/tt> class to use&#xA;(defaults to &lt;tt>java.util.logging.SimpleFormatter&lt;/tt>).&#xA;&lt;li>   java.util.logging.StreamHandler.encoding&#xA;the name of the character set encoding to use (defaults to&#xA;the default platform encoding).&#xA;&lt;/ul>&#xA;&#xA;@version 1.18, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_89383_8745"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_761673_14577" isSubstitutable="true" general="_9_5_f720368_1110473546690_550551_8727"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_767873_8733" name="LoggingPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310362_264882_6763" body="The permission which the SecurityManager will check when code&#xA;that is running with a SecurityManager calls one of the logging&#xA;control methods (such as Logger.setLevel).&#xA;&lt;p>&#xA;Currently there is only one named LoggingPermission.  This is &quot;control&quot;&#xA;and it grants the ability to control the logging configuration, for&#xA;example by adding or removing Handlers, by adding or removing Filters,&#xA;or by changing logging levels.&#xA;&lt;p>&#xA;Programmers do not normally create LoggingPermission objects directly.&#xA;Instead they are created by the security policy code based on reading&#xA;the security policy file.&#xA;&#xA;&#xA;@version 1.9, 12/19/03&#xA;@since 1.4&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546690_767873_8733"/>
              <generalization xmi:id="_10_5_622020d_1132928322359_857315_14570" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_863145_8729" name="Level" clientDependency="_10_5_622020d_1132928322319_975958_14558">
              <ownedComment xmi:id="_10_5_622020d_1132928310322_964842_6753" body="The Level class defines a set of standard logging levels that&#xA;can be used to control logging output.  The logging Level objects&#xA;are ordered and are specified by ordered integers.  Enabling logging&#xA;at a given level also enables logging at all higher levels.&#xA;&lt;p>&#xA;Clients should normally use the predefined Level constants such&#xA;as Level.SEVERE.&#xA;&lt;p>&#xA;The levels in descending order are:&#xA;&lt;ul>&#xA;&lt;li>SEVERE (highest value)&#xA;&lt;li>WARNING&#xA;&lt;li>INFO&#xA;&lt;li>CONFIG&#xA;&lt;li>FINE&#xA;&lt;li>FINER&#xA;&lt;li>FINEST  (lowest value)&#xA;&lt;/ul>&#xA;In addition there is a level OFF that can be used to turn&#xA;off logging, and a level ALL that can be used to enable&#xA;logging of all messages.&#xA;&lt;p>&#xA;It is possible for third parties to define additional logging&#xA;levels by subclassing Level.  In such cases subclasses should&#xA;take care to chose unique integer level values and to ensure that&#xA;they maintain the Object uniqueness property across serialization&#xA;by defining a suitable readResolve method.&#xA;&#xA;@version 1.19, 02/25/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_863145_8729"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322319_975958_14558" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546690_863145_8729" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_115354_8743" name="SocketHandler">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_527092_6773" body="Simple network logging &lt;tt>Handler&lt;/tt>.&#xA;&lt;p>&#xA;&lt;tt>LogRecords&lt;/tt> are published to a network stream connection.  By default&#xA;the &lt;tt>XMLFormatter&lt;/tt> class is used for formatting.&#xA;&lt;p>&#xA;&lt;b>Configuration:&lt;/b>&#xA;By default each &lt;tt>SocketHandler&lt;/tt> is initialized using the following&#xA;&lt;tt>LogManager&lt;/tt> configuration properties.  If properties are not defined&#xA;(or have invalid values) then the specified default values are used.&#xA;&lt;ul>&#xA;&lt;li>   java.util.logging.SocketHandler.level&#xA;specifies the default level for the &lt;tt>Handler&lt;/tt>&#xA;(defaults to &lt;tt>Level.ALL&lt;/tt>).&#xA;&lt;li>   java.util.logging.SocketHandler.filter&#xA;specifies the name of a &lt;tt>Filter&lt;/tt> class to use&#xA;(defaults to no &lt;tt>Filter&lt;/tt>).&#xA;&lt;li>   java.util.logging.SocketHandler.formatter&#xA;specifies the name of a &lt;tt>Formatter&lt;/tt> class to use&#xA;(defaults to &lt;tt>java.util.logging.XMLFormatter&lt;/tt>).&#xA;&lt;li>   java.util.logging.SocketHandler.encoding&#xA;the name of the character set encoding to use (defaults to&#xA;the default platform encoding).&#xA;&lt;li>   java.util.logging.SocketHandler.host&#xA;specifies the target host name to connect to (no default).&#xA;&lt;li>   java.util.logging.SocketHandler.port&#xA;specifies the target TCP port to use (no default).&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The output IO stream is buffered, but is flushed after each&#xA;&lt;tt>LogRecord&lt;/tt> is written.&#xA;&#xA;@version 1.18, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_115354_8743"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_310341_14576" isSubstitutable="true" general="_9_5_f720368_1110473546690_89383_8745"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_306222_8725" name="Formatter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310322_706336_6749" body="A Formatter provides support for formatting LogRecords.&#xA;&lt;p>&#xA;Typically each logging Handler will have a Formatter associated&#xA;with it.  The Formatter takes a LogRecord and converts it to&#xA;a string.&#xA;&lt;p>&#xA;Some formatters (such as the XMLFormatter) need to wrap head&#xA;and tail strings around a set of formatted records. The getHeader&#xA;and getTail methods can be used to obtain these strings.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_306222_8725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546690_195402_8747" name="XMLFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928310382_747211_6777" body="Format a LogRecord into a standard XML format.&#xA;&lt;p>&#xA;The DTD specification is provided as Appendix A to the&#xA;Java Logging APIs specification.&#xA;&lt;p>&#xA;The XMLFormatter can be used with arbitrary character encodings,&#xA;but it is recommended that it normally be used with UTF-8.  The&#xA;character encoding can be set on the output Handler.&#xA;&#xA;@version 1.24, 01/12/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_195402_8747"/>
              <generalization xmi:id="_10_5_622020d_1132928322370_125993_14578" isSubstitutable="true" general="_9_5_f720368_1110473546690_306222_8725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546690_150951_8723" name="Filter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928310322_688494_6747" body="A Filter can be used to provide fine grain control over&#xA;what is logged, beyond the control provided by log levels.&#xA;&lt;p>&#xA;Each Logger and each Handler can have a filter associated with it.&#xA;The Logger or Handler will call the isLoggable method to check&#xA;if a given LogRecord should be published.  If isLoggable returns&#xA;false, the LogRecord will be discarded.&#xA;&#xA;@version 1.5, 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546690_150951_8723"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_555617_8841" name="Collection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310883_808385_6998" body="The root interface in the &lt;i>collection hierarchy&lt;/i>.  A collection&#xA;represents a group of objects, known as its &lt;i>elements&lt;/i>.  Some&#xA;collections allow duplicate elements and others do not.  Some are ordered&#xA;and others unordered.  The JDK does not provide any &lt;i>direct&lt;/i>&#xA;implementations of this interface: it provides implementations of more&#xA;specific subinterfaces like &lt;tt>Set&lt;/tt> and &lt;tt>List&lt;/tt>.  This interface&#xA;is typically used to pass collections around and manipulate them where&#xA;maximum generality is desired.&#xA;&#xA;&lt;p>&lt;i>Bags&lt;/i> or &lt;i>multisets&lt;/i> (unordered collections that may contain&#xA;duplicate elements) should implement this interface directly.&#xA;&#xA;&lt;p>All general-purpose &lt;tt>Collection&lt;/tt> implementation classes (which&#xA;typically implement &lt;tt>Collection&lt;/tt> indirectly through one of its&#xA;subinterfaces) should provide two &quot;standard&quot; constructors: a void (no&#xA;arguments) constructor, which creates an empty collection, and a&#xA;constructor with a single argument of type &lt;tt>Collection&lt;/tt>, which&#xA;creates a new collection with the same elements as its argument.  In&#xA;effect, the latter constructor allows the user to copy any collection,&#xA;producing an equivalent collection of the desired implementation type.&#xA;There is no way to enforce this convention (as interfaces cannot contain&#xA;constructors) but all of the general-purpose &lt;tt>Collection&lt;/tt>&#xA;implementations in the Java platform libraries comply.&#xA;&#xA;&lt;p>The &quot;destructive&quot; methods contained in this interface, that is, the&#xA;methods that modify the collection on which they operate, are specified to&#xA;throw &lt;tt>UnsupportedOperationException&lt;/tt> if this collection does not&#xA;support the operation.  If this is the case, these methods may, but are not&#xA;required to, throw an &lt;tt>UnsupportedOperationException&lt;/tt> if the&#xA;invocation would have no effect on the collection.  For example, invoking&#xA;the {@link #addAll(Collection)} method on an unmodifiable collection may,&#xA;but is not required to, throw the exception if the collection to be added&#xA;is empty.&#xA;&#xA;&lt;p>Some collection implementations have restrictions on the elements that&#xA;they may contain.  For example, some implementations prohibit null elements,&#xA;and some have restrictions on the types of their elements.  Attempting to&#xA;add an ineligible element throws an unchecked exception, typically&#xA;&lt;tt>NullPointerException&lt;/tt> or &lt;tt>ClassCastException&lt;/tt>.  Attempting&#xA;to query the presence of an ineligible element may throw an exception,&#xA;or it may simply return false; some implementations will exhibit the former&#xA;behavior and some will exhibit the latter.  More generally, attempting an&#xA;operation on an ineligible element whose completion would not result in&#xA;the insertion of an ineligible element into the collection may throw an&#xA;exception or it may succeed, at the option of the implementation.&#xA;Such exceptions are marked as &quot;optional&quot; in the specification for this&#xA;interface.&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;&lt;p>Many methods in Collections Framework interfaces are defined in&#xA;terms of the {@link Object#equals(Object) equals} method.  For example,&#xA;the specification for the {@link #contains(Object) contains(Object o)}&#xA;method says: &quot;returns &lt;tt>true&lt;/tt> if and only if this collection&#xA;contains at least one element &lt;tt>e&lt;/tt> such that&#xA;&lt;tt>(o==null ? e==null : o.equals(e))&lt;/tt>.&quot;  This specification should&#xA;&lt;i>not&lt;/i> be construed to imply that invoking &lt;tt>Collection.contains&lt;/tt>&#xA;with a non-null argument &lt;tt>o&lt;/tt> will cause &lt;tt>o.equals(e)&lt;/tt> to be&#xA;invoked for any element &lt;tt>e&lt;/tt>.  Implementations are free to implement&#xA;optimizations whereby the &lt;tt>equals&lt;/tt> invocation is avoided, for&#xA;example, by first comparing the hash codes of the two elements.  (The&#xA;{@link Object#hashCode()} specification guarantees that two objects with&#xA;unequal hash codes cannot be equal.)  More generally, implementations of&#xA;the various Collections Framework interfaces are free to take advantage of&#xA;the specified behavior of underlying {@link Object} methods wherever the&#xA;implementor deems it appropriate.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.49, 06/28/04&#xA;@see&#x9;    Set&#xA;@see&#x9;    List&#xA;@see&#x9;    Map&#xA;@see&#x9;    SortedSet&#xA;@see&#x9;    SortedMap&#xA;@see&#x9;    HashSet&#xA;@see&#x9;    TreeSet&#xA;@see&#x9;    ArrayList&#xA;@see&#x9;    LinkedList&#xA;@see&#x9;    Vector&#xA;@see     Collections&#xA;@see&#x9;    Arrays&#xA;@see&#x9;    AbstractCollection&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_555617_8841"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310873_497963_6994" name="" parameter="_10_5_622020d_1132928310873_140050_6995">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310873_140050_6995" parameteredElement="_10_5_622020d_1132928310873_276319_6996">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310873_276319_6996" name="E" templateParameter="_10_5_622020d_1132928310873_140050_6995"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322480_360621_14747" isSubstitutable="true" general="_10_5_622020d_1132928322480_160438_14744"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322610_475882_15051" name="HashSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322610_16305_15052" signature="_10_5_622020d_1132928313216_611494_7269">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322610_63269_15053" formal="_10_5_622020d_1132928313216_919072_7270" actual="_10_5_622020d_1132928313276_71062_7361"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_290048_8939" name="TimeZone" clientDependency="_10_5_622020d_1132928322630_659123_15110 _10_5_622020d_1132928322630_751119_15111" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313487_412417_7494" body="&lt;code>TimeZone&lt;/code> represents a time zone offset, and also figures out daylight&#xA;savings.&#xA;&#xA;&lt;p>&#xA;Typically, you get a &lt;code>TimeZone&lt;/code> using &lt;code>getDefault&lt;/code>&#xA;which creates a &lt;code>TimeZone&lt;/code> based on the time zone where the program&#xA;is running. For example, for a program running in Japan, &lt;code>getDefault&lt;/code>&#xA;creates a &lt;code>TimeZone&lt;/code> object based on Japanese Standard Time.&#xA;&#xA;&lt;p>&#xA;You can also get a &lt;code>TimeZone&lt;/code> using &lt;code>getTimeZone&lt;/code>&#xA;along with a time zone ID. For instance, the time zone ID for the&#xA;U.S. Pacific Time zone is &quot;America/Los_Angeles&quot;. So, you can get a&#xA;U.S. Pacific Time &lt;code>TimeZone&lt;/code> object with:&#xA;&lt;blockquote>&lt;pre>&#xA;TimeZone tz = TimeZone.getTimeZone(&quot;America/Los_Angeles&quot;);&#xA;&lt;/pre>&lt;/blockquote>&#xA;You can use the &lt;code>getAvailableIDs&lt;/code> method to iterate through&#xA;all the supported time zone IDs. You can then choose a&#xA;supported ID to get a &lt;code>TimeZone&lt;/code>.&#xA;If the time zone you want is not represented by one of the&#xA;supported IDs, then a custom time zone ID can be specified to&#xA;produce a TimeZone. The syntax of a custom time zone ID is:&#xA;&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;a name=&quot;CustomID&quot;>&lt;i>CustomID:&lt;/i>&lt;/a>&#xA;&lt;code>GMT&lt;/code> &lt;i>Sign&lt;/i> &lt;i>Hours&lt;/i> &lt;code>:&lt;/code> &lt;i>Minutes&lt;/i>&#xA;&lt;code>GMT&lt;/code> &lt;i>Sign&lt;/i> &lt;i>Hours&lt;/i> &lt;i>Minutes&lt;/i>&#xA;&lt;code>GMT&lt;/code> &lt;i>Sign&lt;/i> &lt;i>Hours&lt;/i>&#xA;&lt;i>Sign:&lt;/i> one of&#xA;&lt;code>+ -&lt;/code>&#xA;&lt;i>Hours:&lt;/i>&#xA;&lt;i>Digit&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Minutes:&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Digit:&lt;/i> one of&#xA;&lt;code>0 1 2 3 4 5 6 7 8 9&lt;/code>&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;&lt;i>Hours&lt;/i> must be between 0 to 23 and &lt;i>Minutes&lt;/i> must be&#xA;between 00 to 59.  For example, &quot;GMT+10&quot; and &quot;GMT+0010&quot; mean ten&#xA;hours and ten minutes ahead of GMT, respectively.&#xA;&lt;p>&#xA;The format is locale independent and digits must be taken from the&#xA;Basic Latin block of the Unicode standard. No daylight saving time&#xA;transition schedule can be specified with a custom time zone ID. If&#xA;the specified string doesn't match the syntax, &lt;code>&quot;GMT&quot;&lt;/code>&#xA;is used.&#xA;&lt;p>&#xA;When creating a &lt;code>TimeZone&lt;/code>, the specified custom time&#xA;zone ID is normalized in the following syntax:&#xA;&lt;blockquote>&lt;pre>&#xA;&lt;a name=&quot;NormalizedCustomID&quot;>&lt;i>NormalizedCustomID:&lt;/i>&lt;/a>&#xA;&lt;code>GMT&lt;/code> &lt;i>Sign&lt;/i> &lt;i>TwoDigitHours&lt;/i> &lt;code>:&lt;/code> &lt;i>Minutes&lt;/i>&#xA;&lt;i>Sign:&lt;/i> one of&#xA;&lt;code>+ -&lt;/code>&#xA;&lt;i>TwoDigitHours:&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Minutes:&lt;/i>&#xA;&lt;i>Digit&lt;/i> &lt;i>Digit&lt;/i>&#xA;&lt;i>Digit:&lt;/i> one of&#xA;&lt;code>0 1 2 3 4 5 6 7 8 9&lt;/code>&#xA;&lt;/pre>&lt;/blockquote>&#xA;For example, TimeZone.getTimeZone(&quot;GMT-8&quot;).getID() returns &quot;GMT-08:00&quot;.&#xA;&#xA;&lt;h4>Three-letter time zone IDs&lt;/h4>&#xA;&#xA;For compatibility with JDK 1.1.x, some other three-letter time zone IDs&#xA;(such as &quot;PST&quot;, &quot;CTT&quot;, &quot;AST&quot;) are also supported. However, &lt;strong>their&#xA;use is deprecated&lt;/strong> because the same abbreviation is often used&#xA;for multiple time zones (for example, &quot;CST&quot; could be U.S. &quot;Central Standard&#xA;Time&quot; and &quot;China Standard Time&quot;), and the Java platform can then only&#xA;recognize one of them.&#xA;&#xA;&#xA;@see          Calendar&#xA;@see          GregorianCalendar&#xA;@see          SimpleTimeZone&#xA;@version      1.68 01/12/04&#xA;@author       Mark Davis, David Goldsmith, Chen-Lieh Huang, Alan Liu&#xA;@since        JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546706_290048_8939"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_659123_15110" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_290048_8939" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322630_751119_15111" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_290048_8939" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_70178_8859" name="Enumeration" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310953_486360_7191" body="An object that implements the Enumeration interface generates a&#xA;series of elements, one at a time. Successive calls to the&#xA;&lt;code>nextElement&lt;/code> method return successive elements of the&#xA;series.&#xA;&lt;p>&#xA;For example, to print all elements of a vector &lt;i>v&lt;/i>:&#xA;&lt;blockquote>&lt;pre>&#xA;for (Enumeration e = v.elements() ; e.hasMoreElements() ;) {&#xA;System.out.println(e.nextElement());&lt;br>&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&lt;p>&#xA;Methods are provided to enumerate through the elements of a&#xA;vector, the keys of a hashtable, and the values in a hashtable.&#xA;Enumerations are also used to specify the input streams to a&#xA;&lt;code>SequenceInputStream&lt;/code>.&#xA;&lt;p>&#xA;NOTE: The functionality of this interface is duplicated by the Iterator&#xA;interface.  In addition, Iterator adds an optional remove operation, and&#xA;has shorter method names.  New implementations should consider using&#xA;Iterator in preference to Enumeration.&#xA;&#xA;@see     java.util.Iterator&#xA;@see     java.io.SequenceInputStream&#xA;@see     java.util.Enumeration#nextElement()&#xA;@see     java.util.Hashtable&#xA;@see     java.util.Hashtable#elements()&#xA;@see     java.util.Hashtable#keys()&#xA;@see     java.util.Vector&#xA;@see     java.util.Vector#elements()&#xA;&#xA;@author  Lee Boynton&#xA;@version 1.22, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546706_70178_8859"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310953_589904_7187" name="" parameter="_10_5_622020d_1132928310953_916423_7188">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310953_916423_7188" parameteredElement="_10_5_622020d_1132928310953_982045_7189">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310953_982045_7189" name="E" templateParameter="_10_5_622020d_1132928310953_916423_7188"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322480_11462_14765" name="UnmodifiableSet&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322480_557650_14766" signature="_10_5_622020d_1132928310893_796667_7004">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322480_13705_14767" formal="_10_5_622020d_1132928310893_114293_7005" actual="_10_5_622020d_1132928310893_336837_7010"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_424366_8871" name="HashSet" clientDependency="_10_5_622020d_1132928322570_77308_14963 _10_5_622020d_1132928322570_329922_14962 _10_5_622020d_1132928322570_489486_14961">
            <ownedComment xmi:id="_10_5_622020d_1132928313216_433103_7273" body="This class implements the &lt;tt>Set&lt;/tt> interface, backed by a hash table&#xA;(actually a &lt;tt>HashMap&lt;/tt> instance).  It makes no guarantees as to the&#xA;iteration order of the set; in particular, it does not guarantee that the&#xA;order will remain constant over time.  This class permits the &lt;tt>null&lt;/tt>&#xA;element.&lt;p>&#xA;&#xA;This class offers constant time performance for the basic operations&#xA;(&lt;tt>add&lt;/tt>, &lt;tt>remove&lt;/tt>, &lt;tt>contains&lt;/tt> and &lt;tt>size&lt;/tt>),&#xA;assuming the hash function disperses the elements properly among the&#xA;buckets.  Iterating over this set requires time proportional to the sum of&#xA;the &lt;tt>HashSet&lt;/tt> instance's size (the number of elements) plus the&#xA;&quot;capacity&quot; of the backing &lt;tt>HashMap&lt;/tt> instance (the number of&#xA;buckets).  Thus, it's very important not to set the initial capacity too&#xA;high (or the load factor too low) if iteration performance is important.&lt;p>&#xA;&#xA;&lt;b>Note that this implementation is not synchronized.&lt;/b> If multiple&#xA;threads access a set concurrently, and at least one of the threads modifies&#xA;the set, it &lt;i>must&lt;/i> be synchronized externally.  This is typically&#xA;accomplished by synchronizing on some object that naturally encapsulates&#xA;the set.  If no such object exists, the set should be &quot;wrapped&quot; using the&#xA;&lt;tt>Collections.synchronizedSet&lt;/tt> method.  This is best done at creation&#xA;time, to prevent accidental unsynchronized access to the &lt;tt>HashSet&lt;/tt>&#xA;instance:&#xA;&#xA;&lt;pre>&#xA;Set s = Collections.synchronizedSet(new HashSet(...));&#xA;&lt;/pre>&lt;p>&#xA;&#xA;The iterators returned by this class's &lt;tt>iterator&lt;/tt> method are&#xA;&lt;i>fail-fast&lt;/i>: if the set is modified at any time after the iterator is&#xA;created, in any way except through the iterator's own &lt;tt>remove&lt;/tt>&#xA;method, the Iterator throws a &lt;tt>ConcurrentModificationException&lt;/tt>.&#xA;Thus, in the face of concurrent modification, the iterator fails quickly&#xA;and cleanly, rather than risking arbitrary, non-deterministic behavior at&#xA;an undetermined time in the future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness: &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&lt;p>&#xA;&#xA;This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.33, 12/19/03&#xA;@see&#x9;    Collection&#xA;@see&#x9;    Set&#xA;@see&#x9;    TreeSet&#xA;@see&#x9;    Collections#synchronizedSet(Set)&#xA;@see&#x9;    HashMap&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_424366_8871"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313216_611494_7269" name="" parameter="_10_5_622020d_1132928313216_919072_7270">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313216_919072_7270" parameteredElement="_10_5_622020d_1132928313216_734096_7271">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313216_734096_7271" name="E" templateParameter="_10_5_622020d_1132928313216_919072_7270"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322570_124665_14964" isSubstitutable="true" general="_10_5_622020d_1132928322269_824759_14450"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_489486_14961" name="" supplier="_10_5_622020d_1132928322470_406203_14723" client="_9_5_f720368_1110473546706_424366_8871" contract="_10_5_622020d_1132928322470_406203_14723"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_329922_14962" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_424366_8871" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322570_77308_14963" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_424366_8871" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928322490_370567_14772" name="UnmodifiableList&lt;E>">
            <templateBinding xmi:id="_10_5_622020d_1132928322490_1227_14773" signature="_10_5_622020d_1132928310893_497022_7012">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322490_11496_14774" formal="_10_5_622020d_1132928310893_217436_7013" actual="_10_5_622020d_1132928310893_382766_7018"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_796139_8845" name="Comparator" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928310923_229174_7167" body="A comparison function, which imposes a &lt;i>total ordering&lt;/i> on some&#xA;collection of objects.  Comparators can be passed to a sort method (such as&#xA;&lt;tt>Collections.sort&lt;/tt>) to allow precise control over the sort order.&#xA;Comparators can also be used to control the order of certain data&#xA;structures (such as &lt;tt>TreeSet&lt;/tt> or &lt;tt>TreeMap&lt;/tt>).&lt;p>&#xA;&#xA;The ordering imposed by a Comparator &lt;tt>c&lt;/tt> on a set of elements&#xA;&lt;tt>S&lt;/tt> is said to be &lt;i>consistent with equals&lt;/i> if and only if&#xA;&lt;tt>(compare((Object)e1, (Object)e2)==0)&lt;/tt> has the same boolean value as&#xA;&lt;tt>e1.equals((Object)e2)&lt;/tt> for every &lt;tt>e1&lt;/tt> and &lt;tt>e2&lt;/tt> in&#xA;&lt;tt>S&lt;/tt>.&lt;p>&#xA;&#xA;Caution should be exercised when using a comparator capable of imposing an&#xA;ordering inconsistent with equals to order a sorted set (or sorted map).&#xA;Suppose a sorted set (or sorted map) with an explicit Comparator &lt;tt>c&lt;/tt>&#xA;is used with elements (or keys) drawn from a set &lt;tt>S&lt;/tt>.  If the&#xA;ordering imposed by &lt;tt>c&lt;/tt> on &lt;tt>S&lt;/tt> is inconsistent with equals,&#xA;the sorted set (or sorted map) will behave &quot;strangely.&quot;  In particular the&#xA;sorted set (or sorted map) will violate the general contract for set (or&#xA;map), which is defined in terms of &lt;tt>equals&lt;/tt>.&lt;p>&#xA;&#xA;For example, if one adds two keys &lt;tt>a&lt;/tt> and &lt;tt>b&lt;/tt> such that&#xA;&lt;tt>(a.equals((Object)b) &amp;&amp; c.compare((Object)a, (Object)b) != 0)&lt;/tt> to a&#xA;sorted set with comparator &lt;tt>c&lt;/tt>, the second &lt;tt>add&lt;/tt> operation&#xA;will return false (and the size of the sorted set will not increase)&#xA;because &lt;tt>a&lt;/tt> and &lt;tt>b&lt;/tt> are equivalent from the sorted set's&#xA;perspective.&lt;p>&#xA;&#xA;Note: It is generally a good idea for comparators to implement&#xA;&lt;tt>java.io.Serializable&lt;/tt>, as they may be used as ordering methods in&#xA;serializable data structures (like &lt;tt>TreeSet&lt;/tt>, &lt;tt>TreeMap&lt;/tt>).  In&#xA;order for the data structure to serialize successfully, the comparator (if&#xA;provided) must implement &lt;tt>Serializable&lt;/tt>.&lt;p>&#xA;&#xA;For the mathematically inclined, the &lt;i>relation&lt;/i> that defines&#xA;the &lt;i>total order&lt;/i> that a given comparator &lt;tt>c&lt;/tt> imposes on a&#xA;given set of objects &lt;tt>S&lt;/tt> is:&lt;pre>&#xA;{(x, y) such that c.compare((Object)x, (Object)y) &lt;= 0}.&#xA;&lt;/pre> The &lt;i>quotient&lt;/i> for this total order is:&lt;pre>&#xA;{(x, y) such that c.compare((Object)x, (Object)y) == 0}.&#xA;&lt;/pre>&#xA;&#xA;It follows immediately from the contract for &lt;tt>compare&lt;/tt> that the&#xA;quotient is an &lt;i>equivalence relation&lt;/i> on &lt;tt>S&lt;/tt>, and that the&#xA;natural ordering is a &lt;i>total order&lt;/i> on &lt;tt>S&lt;/tt>.  When we say that&#xA;the ordering imposed by &lt;tt>c&lt;/tt> on &lt;tt>S&lt;/tt> is &lt;i>consistent with&#xA;equals&lt;/i>, we mean that the quotient for the natural ordering is the&#xA;equivalence relation defined by the objects' &lt;tt>equals(Object)&lt;/tt>&#xA;method(s):&lt;pre>&#xA;{(x, y) such that x.equals((Object)y)}.&#xA;&lt;/pre>&lt;p>&#xA;&#xA;This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@author  Neal Gafter&#xA;@version 1.22, 12/19/03&#xA;@see Comparable&#xA;@see Arrays#sort(Object[], Comparator)&#xA;@see TreeMap&#xA;@see TreeSet&#xA;@see SortedMap&#xA;@see SortedSet&#xA;@see java.io.Serializable&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_796139_8845"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928310923_924476_7163" name="" parameter="_10_5_622020d_1132928310923_956594_7164">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928310923_956594_7164" parameteredElement="_10_5_622020d_1132928310923_242045_7165">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928310923_242045_7165" name="T" templateParameter="_10_5_622020d_1132928310923_956594_7164"/>
              </ownedParameter>
            </ownedTemplateSignature>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_995864_8893" name="Map" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928313337_875707_7398" body="An object that maps keys to values.  A map cannot contain duplicate keys;&#xA;each key can map to at most one value.&#xA;&#xA;&lt;p>This interface takes the place of the &lt;tt>Dictionary&lt;/tt> class, which&#xA;was a totally abstract class rather than an interface.&#xA;&#xA;&lt;p>The &lt;tt>Map&lt;/tt> interface provides three &lt;i>collection views&lt;/i>, which&#xA;allow a map's contents to be viewed as a set of keys, collection of values,&#xA;or set of key-value mappings.  The &lt;i>order&lt;/i> of a map is defined as&#xA;the order in which the iterators on the map's collection views return their&#xA;elements.  Some map implementations, like the &lt;tt>TreeMap&lt;/tt> class, make&#xA;specific guarantees as to their order; others, like the &lt;tt>HashMap&lt;/tt>&#xA;class, do not.&#xA;&#xA;&lt;p>Note: great care must be exercised if mutable objects are used as map&#xA;keys.  The behavior of a map is not specified if the value of an object is&#xA;changed in a manner that affects equals comparisons while the object is a&#xA;key in the map.  A special case of this prohibition is that it is not&#xA;permissible for a map to contain itself as a key.  While it is permissible&#xA;for a map to contain itself as a value, extreme caution is advised: the&#xA;equals and hashCode methods are no longer well defined on a such a map.&#xA;&#xA;&lt;p>All general-purpose map implementation classes should provide two&#xA;&quot;standard&quot; constructors: a void (no arguments) constructor which creates an&#xA;empty map, and a constructor with a single argument of type &lt;tt>Map&lt;/tt>,&#xA;which creates a new map with the same key-value mappings as its argument.&#xA;In effect, the latter constructor allows the user to copy any map,&#xA;producing an equivalent map of the desired class.  There is no way to&#xA;enforce this recommendation (as interfaces cannot contain constructors) but&#xA;all of the general-purpose map implementations in the JDK comply.&#xA;&#xA;&lt;p>The &quot;destructive&quot; methods contained in this interface, that is, the&#xA;methods that modify the map on which they operate, are specified to throw&#xA;&lt;tt>UnsupportedOperationException&lt;/tt> if this map does not support the&#xA;operation.  If this is the case, these methods may, but are not required&#xA;to, throw an &lt;tt>UnsupportedOperationException&lt;/tt> if the invocation would&#xA;have no effect on the map.  For example, invoking the {@link #putAll(Map)}&#xA;method on an unmodifiable map may, but is not required to, throw the&#xA;exception if the map whose mappings are to be &quot;superimposed&quot; is empty.&#xA;&#xA;&lt;p>Some map implementations have restrictions on the keys and values they&#xA;may contain.  For example, some implementations prohibit null keys and&#xA;values, and some have restrictions on the types of their keys.  Attempting&#xA;to insert an ineligible key or value throws an unchecked exception,&#xA;typically &lt;tt>NullPointerException&lt;/tt> or &lt;tt>ClassCastException&lt;/tt>.&#xA;Attempting to query the presence of an ineligible key or value may throw an&#xA;exception, or it may simply return false; some implementations will exhibit&#xA;the former behavior and some will exhibit the latter.  More generally,&#xA;attempting an operation on an ineligible key or value whose completion&#xA;would not result in the insertion of an ineligible element into the map may&#xA;throw an exception or it may succeed, at the option of the implementation.&#xA;Such exceptions are marked as &quot;optional&quot; in the specification for this&#xA;interface.&#xA;&#xA;&lt;p>This interface is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;&lt;p>Many methods in Collections Framework interfaces are defined&#xA;in terms of the {@link Object#equals(Object) equals} method.  For&#xA;example, the specification for the {@link #containsKey(Object)&#xA;contains(Object key)} method says: &quot;returns &lt;tt>true&lt;/tt> if and&#xA;only if this map contain a mapping for a key &lt;tt>k&lt;/tt> such that&#xA;&lt;tt>(key==null ? k==null : key.equals(k))&lt;/tt>.&quot; This specification should&#xA;&lt;i>not&lt;/i> be construed to imply that invoking &lt;tt>Map.containsKey&lt;/tt>&#xA;with a non-null argument &lt;tt>key&lt;/tt> will cause &lt;tt>key.equals(k)&lt;/tt> to&#xA;be invoked for any key &lt;tt>k&lt;/tt>.  Implementations are free to&#xA;implement optimizations whereby the &lt;tt>equals&lt;/tt> invocation is avoided,&#xA;for example, by first comparing the hash codes of the two keys.  (The&#xA;{@link Object#hashCode()} specification guarantees that two objects with&#xA;unequal hash codes cannot be equal.)  More generally, implementations of&#xA;the various Collections Framework interfaces are free to take advantage of&#xA;the specified behavior of underlying {@link Object} methods wherever the&#xA;implementor deems it appropriate.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.48, 06/28/04&#xA;@see HashMap&#xA;@see TreeMap&#xA;@see Hashtable&#xA;@see SortedMap&#xA;@see Collection&#xA;@see Set&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546706_995864_8893"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313327_733811_7386" name="" parameter="_10_5_622020d_1132928313327_184813_7387 _10_5_622020d_1132928313327_22454_7389">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313327_184813_7387" parameteredElement="_10_5_622020d_1132928313327_843819_7388">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313327_843819_7388" name="K" templateParameter="_10_5_622020d_1132928313327_184813_7387"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313327_22454_7389" parameteredElement="_10_5_622020d_1132928313327_155666_7390">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313327_155666_7390" name="V" templateParameter="_10_5_622020d_1132928313327_22454_7389"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547799_877742_18990" name="Entry" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928313327_537269_7396" body="A map entry (key-value pair).  The &lt;tt>Map.entrySet&lt;/tt> method returns&#xA;a collection-view of the map, whose elements are of this class.  The&#xA;&lt;i>only&lt;/i> way to obtain a reference to a map entry is from the&#xA;iterator of this collection-view.  These &lt;tt>Map.Entry&lt;/tt> objects are&#xA;valid &lt;i>only&lt;/i> for the duration of the iteration; more formally,&#xA;the behavior of a map entry is undefined if the backing map has been&#xA;modified after the entry was returned by the iterator, except through&#xA;the &lt;tt>setValue&lt;/tt> operation on the map entry.&#xA;&#xA;@see Map#entrySet()&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547799_877742_18990"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313327_288174_7391" name="" parameter="_10_5_622020d_1132928313327_187425_7392 _10_5_622020d_1132928313327_117316_7394">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313327_187425_7392" parameteredElement="_10_5_622020d_1132928313327_788626_7393">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313327_788626_7393" name="K" templateParameter="_10_5_622020d_1132928313327_187425_7392"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313327_117316_7394" parameteredElement="_10_5_622020d_1132928313327_279848_7395">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313327_279848_7395" name="V" templateParameter="_10_5_622020d_1132928313327_117316_7394"/>
                </ownedParameter>
              </ownedTemplateSignature>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322580_607670_14982" name="Enumeration&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928322580_986062_14983" signature="_10_5_622020d_1132928310953_589904_7187">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322580_367799_14984" formal="_10_5_622020d_1132928310953_916423_7188" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_662595_8879" name="LinkedHashMap" clientDependency="_10_5_622020d_1132928322600_720335_15024">
            <ownedComment xmi:id="_10_5_622020d_1132928313276_339012_7358" body="&lt;p>Hash table and linked list implementation of the &lt;tt>Map&lt;/tt> interface,&#xA;with predictable iteration order.  This implementation differs from&#xA;&lt;tt>HashMap&lt;/tt> in that it maintains a doubly-linked list running through&#xA;all of its entries.  This linked list defines the iteration ordering,&#xA;which is normally the order in which keys were inserted into the map&#xA;(&lt;i>insertion-order&lt;/i>).  Note that insertion order is not affected&#xA;if a key is &lt;i>re-inserted&lt;/i> into the map.  (A key &lt;tt>k&lt;/tt> is&#xA;reinserted into a map &lt;tt>m&lt;/tt> if &lt;tt>m.put(k, v)&lt;/tt> is invoked when&#xA;&lt;tt>m.containsKey(k)&lt;/tt> would return &lt;tt>true&lt;/tt> immediately prior to&#xA;the invocation.)&#xA;&#xA;&lt;p>This implementation spares its clients from the unspecified, generally&#xA;chaotic ordering provided by {@link HashMap} (and {@link Hashtable}),&#xA;without incurring the increased cost associated with {@link TreeMap}.  It&#xA;can be used to produce a copy of a map that has the same order as the&#xA;original, regardless of the original map's implementation:&#xA;&lt;pre>&#xA;void foo(Map m) {&#xA;Map copy = new LinkedHashMap(m);&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;This technique is particularly useful if a module takes a map on input,&#xA;copies it, and later returns results whose order is determined by that of&#xA;the copy.  (Clients generally appreciate having things returned in the same&#xA;order they were presented.)&#xA;&#xA;&lt;p>A special {@link #LinkedHashMap(int,float,boolean) constructor} is&#xA;provided to create a linked hash map whose order of iteration is the order&#xA;in which its entries were last accessed, from least-recently accessed to&#xA;most-recently (&lt;i>access-order&lt;/i>).  This kind of map is well-suited to&#xA;building LRU caches.  Invoking the &lt;tt>put&lt;/tt> or &lt;tt>get&lt;/tt> method&#xA;results in an access to the corresponding entry (assuming it exists after&#xA;the invocation completes).  The &lt;tt>putAll&lt;/tt> method generates one entry&#xA;access for each mapping in the specified map, in the order that key-value&#xA;mappings are provided by the specified map's entry set iterator.  &lt;i>No&#xA;other methods generate entry accesses.&lt;/i> In particular, operations on&#xA;collection-views do &lt;i>not&lt;/i> affect the order of iteration of the backing&#xA;map.&#xA;&#xA;&lt;p>The {@link #removeEldestEntry(Map.Entry)} method may be overridden to&#xA;impose a policy for removing stale mappings automatically when new mappings&#xA;are added to the map.&#xA;&#xA;&lt;p>This class provides all of the optional &lt;tt>Map&lt;/tt> operations, and&#xA;permits null elements.  Like &lt;tt>HashMap&lt;/tt>, it provides constant-time&#xA;performance for the basic operations (&lt;tt>add&lt;/tt>, &lt;tt>contains&lt;/tt> and&#xA;&lt;tt>remove&lt;/tt>), assuming the hash function disperses elements&#xA;properly among the buckets.  Performance is likely to be just slightly&#xA;below that of &lt;tt>HashMap&lt;/tt>, due to the added expense of maintaining the&#xA;linked list, with one exception: Iteration over the collection-views&#xA;of a &lt;tt>LinkedHashMap&lt;/tt> requires time proportional to the &lt;i>size&lt;/i>&#xA;of the map, regardless of its capacity.  Iteration over a &lt;tt>HashMap&lt;/tt>&#xA;is likely to be more expensive, requiring time proportional to its&#xA;&lt;i>capacity&lt;/i>.&#xA;&#xA;&lt;p>A linked hash map has two parameters that affect its performance:&#xA;&lt;i>initial capacity&lt;/i> and &lt;i>load factor&lt;/i>.  They are defined precisely&#xA;as for &lt;tt>HashMap&lt;/tt>.  Note, however, that the penalty for choosing an&#xA;excessively high value for initial capacity is less severe for this class&#xA;than for &lt;tt>HashMap&lt;/tt>, as iteration times for this class are unaffected&#xA;by capacity.&#xA;&#xA;&lt;p>&lt;strong>Note that this implementation is not synchronized.&lt;/strong> If&#xA;multiple threads access a linked hash map concurrently, and at least&#xA;one of the threads modifies the map structurally, it &lt;em>must&lt;/em> be&#xA;synchronized externally.  This is typically accomplished by synchronizing&#xA;on some object that naturally encapsulates the map.  If no such object&#xA;exists, the map should be &quot;wrapped&quot; using the&#xA;&lt;tt>Collections.synchronizedMap&lt;/tt>method.  This is best done at creation&#xA;time, to prevent accidental unsynchronized access:&#xA;&lt;pre>&#xA;Map m = Collections.synchronizedMap(new LinkedHashMap(...));&#xA;&lt;/pre>&#xA;A structural modification is any operation that adds or deletes one or more&#xA;mappings or, in the case of access-ordered linked hash maps, affects&#xA;iteration order.  In insertion-ordered linked hash maps, merely changing&#xA;the value associated with a key that is already contained in the map is not&#xA;a structural modification.  &lt;strong>In access-ordered linked hash maps,&#xA;merely querying the map with &lt;tt>get&lt;/tt> is a structural&#xA;modification.&lt;/strong>)&#xA;&#xA;&lt;p>The iterators returned by the &lt;tt>iterator&lt;/tt> methods of the&#xA;collections returned by all of this class's collection view methods are&#xA;&lt;em>fail-fast&lt;/em>: if the map is structurally modified at any time after&#xA;the iterator is created, in any way except through the iterator's own&#xA;remove method, the iterator will throw a&#xA;&lt;tt>ConcurrentModificationException&lt;/tt>.  Thus, in the face of concurrent&#xA;modification, the Iterator fails quickly and cleanly, rather than risking&#xA;arbitrary, non-deterministic behavior at an undetermined time in the&#xA;future.&#xA;&#xA;&lt;p>Note that the fail-fast behavior of an iterator cannot be guaranteed&#xA;as it is, generally speaking, impossible to make any hard guarantees in the&#xA;presence of unsynchronized concurrent modification.  Fail-fast iterators&#xA;throw &lt;tt>ConcurrentModificationException&lt;/tt> on a best-effort basis.&#xA;Therefore, it would be wrong to write a program that depended on this&#xA;exception for its correctness:   &lt;i>the fail-fast behavior of iterators&#xA;should be used only to detect bugs.&lt;/i>&#xA;&#xA;&lt;p>This class is a member of the&#xA;&lt;a href=&quot;{@docRoot}/../guide/collections/index.html&quot;>&#xA;Java Collections Framework&lt;/a>.&#xA;&#xA;@author  Josh Bloch&#xA;@version 1.18, 02/19/04&#xA;@see     Object#hashCode()&#xA;@see     Collection&#xA;@see     Map&#xA;@see     HashMap&#xA;@see     TreeMap&#xA;@see     Hashtable&#xA;@since   JDK1.4&#xA;" annotatedElement="_9_5_f720368_1110473546706_662595_8879"/>
            <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_431409_7343" name="" parameter="_10_5_622020d_1132928313266_397436_7344 _10_5_622020d_1132928313266_369283_7346">
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_397436_7344" parameteredElement="_10_5_622020d_1132928313266_148305_7345">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_148305_7345" name="K" templateParameter="_10_5_622020d_1132928313266_397436_7344"/>
              </ownedParameter>
              <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_369283_7346" parameteredElement="_10_5_622020d_1132928313266_822990_7347">
                <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_822990_7347" name="V" templateParameter="_10_5_622020d_1132928313266_369283_7346"/>
              </ownedParameter>
            </ownedTemplateSignature>
            <generalization xmi:id="_10_5_622020d_1132928322600_141032_15029" isSubstitutable="true" general="_10_5_622020d_1132928322600_275131_15025"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322600_720335_15024" name="" supplier="_10_5_622020d_1132928322259_617753_14428" client="_9_5_f720368_1110473546706_662595_8879" contract="_10_5_622020d_1132928322259_617753_14428"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_693537_19538" name="Entry" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928313266_267788_7353" body="LinkedHashMap entry.&#xA;" annotatedElement="_9_5_f720368_1110473547878_693537_19538"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_185133_7348" name="" parameter="_10_5_622020d_1132928313266_561512_7349 _10_5_622020d_1132928313266_945114_7351">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_561512_7349" parameteredElement="_10_5_622020d_1132928313266_729304_7350">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_729304_7350" name="K" templateParameter="_10_5_622020d_1132928313266_561512_7349"/>
                </ownedParameter>
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_945114_7351" parameteredElement="_10_5_622020d_1132928313266_701822_7352">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_701822_7352" name="V" templateParameter="_10_5_622020d_1132928313266_945114_7351"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <generalization xmi:id="_10_5_622020d_1132928322600_20394_15034" isSubstitutable="true" general="_10_5_622020d_1132928322600_396674_15030"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_474201_19541" name="LinkedHashIterator" visibility="private" clientDependency="_10_5_622020d_1132928322600_749829_15035" isAbstract="true">
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928313266_458152_7354" name="" parameter="_10_5_622020d_1132928313266_420823_7355">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928313266_420823_7355" parameteredElement="_10_5_622020d_1132928313266_950136_7356">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928313266_950136_7356" name="T" templateParameter="_10_5_622020d_1132928313266_420823_7355"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322600_749829_15035" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_9_5_f720368_1110473547878_474201_19541" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_949547_19542" name="KeyIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322600_249987_15039" isSubstitutable="true" general="_10_5_622020d_1132928322600_126640_15036"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_937042_19543" name="ValueIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322610_162214_15043" isSubstitutable="true" general="_10_5_622020d_1132928322610_204477_15040"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547878_449234_19544" name="EntryIterator" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928322610_52241_15047" isSubstitutable="true" general="_10_5_622020d_1132928322610_496943_15044"/>
            </nestedClassifier>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547440_999992_17398" name="beans">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_119404_7313" name="PropertyChangeListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_318727_4496" body="A &quot;PropertyChange&quot; event gets fired whenever a bean changes a &quot;bound&quot;&#xA;property.  You can register a PropertyChangeListener with a source&#xA;bean so as to be notified of any bound property updates.&#xA;" annotatedElement="_9_5_f720368_1110473546596_119404_7313"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_179830_13459" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_795975_7237" name="java_lang_Class_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_256085_13424" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_975189_7333" name="VetoableChangeListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_151256_4521" body="A VetoableChange event gets fired whenever a bean changes a &quot;constrained&quot;&#xA;property.  You can register a VetoableChangeListener with a source bean&#xA;so as to be notified of any constrained property updates.&#xA;" annotatedElement="_9_5_f720368_1110473546596_975189_7333"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_713804_13467" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_836430_7193" name="ObjectInputStreamWithLoader" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_850188_4412" body="This subclass of ObjectInputStream delegates loading of classes to&#xA;an existing ClassLoader.&#xA;" annotatedElement="_9_5_f720368_1110473546596_836430_7193"/>
            <generalization xmi:id="_10_5_622020d_1132928321528_99006_13408" isSubstitutable="true" general="_9_5_f720368_1110473546596_774585_7437"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_921433_7269" name="java_awt_Container_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_798490_13440" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_744322_7199" name="Customizer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_280148_4418" body="A customizer class provides a complete custom GUI for customizing&#xA;a target Java Bean.&#xA;&lt;P>&#xA;Each customizer should inherit from the java.awt.Component class so&#xA;it can be instantiated inside an AWT dialog or panel.&#xA;&lt;P>&#xA;Each customizer should have a null constructor.&#xA;" annotatedElement="_9_5_f720368_1110473546596_744322_7199"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_925702_7275" name="java_awt_MenuBar_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_453747_13443" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_574313_7311" name="PropertyChangeEvent">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_700703_4494" body="A &quot;PropertyChange&quot; event gets delivered whenever a bean changes a &quot;bound&quot;&#xA;or &quot;constrained&quot; property.  A PropertyChangeEvent object is sent as an&#xA;argument to the PropertyChangeListener and VetoableChangeListener methods.&#xA;&lt;P>&#xA;Normally PropertyChangeEvents are accompanied by the name and the old&#xA;and new value of the changed property.  If the new value is a primitive&#xA;type (such as int or boolean) it must be wrapped as the&#xA;corresponding java.lang.* Object type (such as Integer or Boolean).&#xA;&lt;P>&#xA;Null values may be provided for the old and the new values if their&#xA;true values are not known.&#xA;&lt;P>&#xA;An event source may send a null object as the name to indicate that an&#xA;arbitrary set of if its properties have changed.  In this case the&#xA;old and new values should also be null.&#xA;" annotatedElement="_9_5_f720368_1110473546596_574313_7311"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_818764_13458" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_272126_7337" name="VetoableChangeSupport" clientDependency="_10_5_622020d_1132928321558_48833_13470">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_961589_4525" body="This is a utility class that can be used by beans that support constrained&#xA;properties.  You can use an instance of this class as a member field&#xA;of your bean and delegate various work to it.&#xA;&#xA;This class is serializable.  When it is serialized it will save&#xA;(and restore) any listeners that are themselves serializable.  Any&#xA;non-serializable listeners will be skipped during serialization.&#xA;" annotatedElement="_9_5_f720368_1110473546596_272126_7337"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321558_48833_13470" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_272126_7337" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_255263_7295" name="javax_swing_JComponent_PersistenceDelegate" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_109162_7259" name="StaticFieldsPersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_727221_13435" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_285608_7229" name="PrimitivePersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_423439_13420" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_846793_7211" name="ExceptionListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_32838_4430" body="An ExceptionListener is notified of internal exceptions.&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_846793_7211"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_609346_7335" name="VetoableChangeListenerProxy" clientDependency="_10_5_622020d_1132928321558_461932_13468">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_503033_4523" body="A class which extends the &lt;code>EventListenerProxy&lt;/code> specifically&#xA;for associating a &lt;code>VetoableChangeListener&lt;/code> with a &quot;constrained&quot;&#xA;property. Instances of this class can be added as a&#xA;&lt;code>VetoableChangeListener&lt;/code> to a bean which supports firing&#xA;VetoableChange events.&#xA;&lt;p>&#xA;If the object has a &lt;code>getVetoableChangeListeners()&lt;/code>&#xA;method then the array returned could be a mixture of&#xA;&lt;code>VetoableChangeListener&lt;/code> and&#xA;&lt;code>VetoableChangeListenerProxy&lt;/code> objects.&#xA;&lt;p>&#xA;@see java.util.EventListenerProxy&#xA;@see VetoableChangeListener&#xA;@see VetoableChangeSupport#getVetoableChangeListeners&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546596_609346_7335"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_283252_13469" isSubstitutable="true" general="_9_5_f720368_1110473546706_749379_8863"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321558_461932_13468" name="" supplier="_9_5_f720368_1110473546596_975189_7333" client="_9_5_f720368_1110473546596_609346_7335" contract="_9_5_f720368_1110473546596_975189_7333"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_384144_7303" name="MethodDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306947_884980_4486" body="A MethodDescriptor describes a particular method that a Java Bean&#xA;supports for external access from other components.&#xA;" annotatedElement="_9_5_f720368_1110473546596_384144_7303"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_438843_13456" isSubstitutable="true" general="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_767413_7203" name="DesignMode" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_60636_4422" body="&lt;p>&#xA;This interface is intended to be implemented by, or delegated from, instances&#xA;of java.beans.beancontext.BeanContext, in order to propagate to its nested hierarchy&#xA;of java.beans.beancontext.BeanContextChild instances, the current &quot;designTime&quot; property.&#xA;&lt;p>&#xA;The JavaBeans specification defines the notion of design time as is a&#xA;mode in which JavaBeans instances should function during their composition&#xA;and customization in a interactive design, composition or construction tool,&#xA;as opposed to runtime when the JavaBean is part of an applet, application,&#xA;or other live Java executable abstraction.&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.14, 12/19/03&#xA;@since 1.2&#xA;&#xA;@see java.beans.beancontext.BeanContext&#xA;@see java.beans.beancontext.BeanContextChild&#xA;@see java.beans.beancontext.BeanContextMembershipListener&#xA;@see java.beans.PropertyChangeEvent&#xA;" annotatedElement="_9_5_f720368_1110473546596_767413_7203"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_592582_7309" name="PersistenceDelegate" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_285186_4492" body="The PersistenceDelegate class takes the responsibility&#xA;for expressing the state of an instance of a given class&#xA;in terms of the methods in the class's public API. Instead&#xA;of associating the responsibility of persistence with&#xA;the class itself as is done, for example, by the&#xA;&lt;code>readObject&lt;/code> and &lt;code>writeObject&lt;/code>&#xA;methods used by the &lt;code>ObjectOutputStream&lt;/code>, streams like&#xA;the &lt;code>XMLEncoder&lt;/code> which&#xA;use this delegation model can have their behavior controlled&#xA;independently of the classes themselves. Normally, the class&#xA;is the best place to put such information and conventions&#xA;can easily be expressed in this delegation scheme to do just that.&#xA;Sometimes however, it is the case that a minor problem&#xA;in a single class prevents an entire object graph from&#xA;being written and this can leave the application&#xA;developer with no recourse but to attempt to shadow&#xA;the problematic classes locally or use alternative&#xA;persistence techniques. In situations like these, the&#xA;delegation model gives a relatively clean mechanism for&#xA;the application developer to intervene in all parts of the&#xA;serialization process without requiring that modifications&#xA;be made to the implementation of classes which are not part&#xA;of the application itself.&#xA;&lt;p>&#xA;In addition to using a delegation model, this persistence&#xA;scheme differs from traditional serialization schemes&#xA;in requiring an analog of the &lt;code>writeObject&lt;/code>&#xA;method without a corresponding &lt;code>readObject&lt;/code>&#xA;method. The &lt;code>writeObject&lt;/code> analog encodes each&#xA;instance in terms of its public API and there is no need to&#xA;define a &lt;code>readObject&lt;/code> analog&#xA;since the procedure for reading the serialized form&#xA;is defined by the semantics of method invocation as laid&#xA;out in the Java Language Specification.&#xA;Breaking the dependency between &lt;code>writeObject&lt;/code>&#xA;and &lt;code>readObject&lt;/code> implementations, which may&#xA;change from version to version, is the key factor&#xA;in making the archives produced by this technique immune&#xA;to changes in the private implementations of the classes&#xA;to which they refer.&#xA;&lt;p>&#xA;A persistence delegate, may take control of all&#xA;aspects of the persistence of an object including:&#xA;&lt;ul>&#xA;&lt;li>&#xA;Deciding whether or not an instance can be mutated&#xA;into another instance of the same class.&#xA;&lt;li>&#xA;Instantiating the object, either by calling a&#xA;public constructor or a public factory method.&#xA;&lt;li>&#xA;Performing the initialization of the object.&#xA;&lt;/ul>&#xA;@see XMLEncoder&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.11 05/05/04&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_471651_7231" name="ArrayPersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_972165_13421" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_7116_7215" name="FeatureDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_245766_4434" body="The FeatureDescriptor class is the common baseclass for PropertyDescriptor,&#xA;EventSetDescriptor, and MethodDescriptor, etc.&#xA;&lt;p>&#xA;It supports some common information that can be set and retrieved for&#xA;any of the introspection descriptors.&#xA;&lt;p>&#xA;In addition it provides an extension mechanism so that arbitrary&#xA;attribute/value pairs can be associated with a design feature.&#xA;" annotatedElement="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_284375_7291" name="javax_swing_tree_DefaultMutableTreeNode_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_794150_13451" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306827_253858_4435" name="IndexedPropertyChangeEvent">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_292129_4437" body="An &quot;IndexedPropertyChange&quot; event gets delivered whenever a component that&#xA;conforms to the JavaBeans&lt;TM> specification (a &quot;bean&quot;) changes a bound&#xA;indexed property. This class is an extension of &lt;code>PropertyChangeEvent&lt;/code>&#xA;but contains the index of the property that has changed.&#xA;&lt;P>&#xA;Null values may be provided for the old and the new values if their&#xA;true values are not known.&#xA;&lt;P>&#xA;An event source may send a null object as the name to indicate that an&#xA;arbitrary set of if its properties have changed.  In this case the&#xA;old and new values should also be null.&#xA;&#xA;@version 1.4 12/19/03&#xA;@since 1.5&#xA;@author Mark Davidson&#xA;" annotatedElement="_10_5_622020d_1132928306827_253858_4435"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_463706_13415" isSubstitutable="true" general="_9_5_f720368_1110473546596_574313_7311"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_809254_7281" name="java_awt_CardLayout_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_181955_13446" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_349880_7251" name="java_util_AbstractList_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_477557_13431" isSubstitutable="true" general="_9_5_f720368_1110473546596_554516_7245"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_400781_7339" name="Visibility" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_387956_4527" body="Under some circumstances a bean may be run on servers where a GUI&#xA;is not available.  This interface can be used to query a bean to&#xA;determine whether it absolutely needs a gui, and to advise the&#xA;bean whether a GUI is available.&#xA;&lt;p>&#xA;This interface is for expert developers, and is not needed&#xA;for normal simple beans.  To avoid confusing end-users we&#xA;avoid using getXXX setXXX design patterns for these methods.&#xA;" annotatedElement="_9_5_f720368_1110473546596_400781_7339"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_351233_7219" name="IndexedPropertyDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_136805_4439" body="An IndexedPropertyDescriptor describes a property that acts like an&#xA;array and has an indexed read and/or indexed write method to access&#xA;specific elements of the array.&#xA;&lt;p>&#xA;An indexed property may also provide simple non-indexed read and write&#xA;methods.  If these are present, they read and write arrays of the type&#xA;returned by the indexed read method.&#xA;" annotatedElement="_9_5_f720368_1110473546596_351233_7219"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_194536_13416" isSubstitutable="true" general="_9_5_f720368_1110473546596_508136_7319"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_307958_7271" name="java_awt_Choice_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_936780_13441" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_946078_7265" name="java_awt_MenuShortcut_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_870643_13438" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_508136_7319" name="PropertyDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_916651_4502" body="A PropertyDescriptor describes one property that a Java Bean&#xA;exports via a pair of accessor methods.&#xA;" annotatedElement="_9_5_f720368_1110473546596_508136_7319"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_807345_13463" isSubstitutable="true" general="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_697111_7225" name="GenericBeanInfo" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306887_932935_4445" body="Package private implementation support class for Introspector's&#xA;internal use.&#xA;&lt;p>&#xA;Mostly this is used as a placeholder for the descriptors.&#xA;" annotatedElement="_9_5_f720368_1110473546596_697111_7225"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_487423_13418" isSubstitutable="true" general="_9_5_f720368_1110473546596_264952_7329"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_576936_7217" name="IdentityHashtable" visibility="package">
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547456_166043_17475" name="InstanceWrapper" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_194823_7301" name="MetaData" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_657151_7307" name="ParameterDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_596165_4490" body="The ParameterDescriptor class allows bean implementors to provide&#xA;additional information on each of their parameters, beyond the&#xA;low level type information provided by the java.lang.reflect.Method&#xA;class.&#xA;&lt;p>&#xA;Currently all our state comes from the FeatureDescriptor base class.&#xA;" annotatedElement="_9_5_f720368_1110473546596_657151_7307"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_196276_13457" isSubstitutable="true" general="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306967_248478_4511" name="ReflectionUtils" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_138873_4515" body="A utility class for reflectively finding methods, constuctors and fields&#xA;using reflection.&#xA;" annotatedElement="_10_5_622020d_1132928306967_248478_4511"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306967_953563_4512" name="Signature" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928306967_574340_4513" body="A class that represents the unique elements of a method that will be a&#xA;key in the method cache.&#xA;" annotatedElement="_10_5_622020d_1132928306967_953563_4512"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_264924_7347" name="XMLEncoder">
            <ownedComment xmi:id="_10_5_622020d_1132928306987_943293_4531" body="The &lt;code>XMLEncoder&lt;/code> class is a complementary alternative to&#xA;the &lt;code>ObjectOutputStream&lt;/code> and can used to generate&#xA;a textual representation of a &lt;em>JavaBean&lt;/em> in the same&#xA;way that the &lt;code>ObjectOutputStream&lt;/code> can&#xA;be used to create binary representation of &lt;code>Serializable&lt;/code>&#xA;objects. For example, the following fragment can be used to create&#xA;a textual representation the supplied &lt;em>JavaBean&lt;/em>&#xA;and all its properties:&#xA;&lt;pre>&#xA;XMLEncoder e = new XMLEncoder(&#xA;new BufferedOutputStream(&#xA;new FileOutputStream(&quot;Test.xml&quot;)));&#xA;e.writeObject(new JButton(&quot;Hello, world&quot;));&#xA;e.close();&#xA;&lt;/pre>&#xA;Despite the similarity of their APIs, the &lt;code>XMLEncoder&lt;/code>&#xA;class is exclusively designed for the purpose of archiving graphs&#xA;of &lt;em>JavaBean&lt;/em>s as textual representations of their public&#xA;properties. Like Java source files, documents written this way&#xA;have a natural immunity to changes in the implementations of the classes&#xA;involved. The &lt;code>ObjectOutputStream&lt;/code> continues to be recommended&#xA;for interprocess communication and general purpose serialization.&#xA;&lt;p>&#xA;The &lt;code>XMLEncoder&lt;/code> class provides a default denotation for&#xA;&lt;em>JavaBean&lt;/em>s in which they are represented as XML documents&#xA;complying with version 1.0 of the XML specification and the&#xA;UTF-8 character encoding of the Unicode/ISO 10646 character set.&#xA;The XML documents produced by the &lt;code>XMLEncoder&lt;/code> class are:&#xA;&lt;ul>&#xA;&lt;li>&#xA;&lt;em>Portable and version resilient&lt;/em>: they have no dependencies&#xA;on the private implementation of any class and so, like Java source&#xA;files, they may be exchanged between environments which may have&#xA;different versions of some of the classes and between VMs from&#xA;different vendors.&#xA;&lt;li>&#xA;&lt;em>Structurally compact&lt;/em>: The &lt;code>XMLEncoder&lt;/code> class&#xA;uses a &lt;em>redundancy elimination&lt;/em> algorithm internally so that the&#xA;default values of a Bean's properties are not written to the stream.&#xA;&lt;li>&#xA;&lt;em>Fault tolerant&lt;/em>: Non-structural errors in the file,&#xA;caused either by damage to the file or by API changes&#xA;made to classes in an archive remain localized&#xA;so that a reader can report the error and continue to load the parts&#xA;of the document which were not affected by the error.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Below is an example of an XML archive containing&#xA;some user interface components from the &lt;em>swing&lt;/em> toolkit:&#xA;&lt;pre>&#xA;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>&#xA;&lt;java version=&quot;1.0&quot; class=&quot;java.beans.XMLDecoder&quot;>&#xA;&lt;object class=&quot;javax.swing.JFrame&quot;>&#xA;&lt;void property=&quot;name&quot;>&#xA;&lt;string>frame1&lt;/string>&#xA;&lt;/void>&#xA;&lt;void property=&quot;bounds&quot;>&#xA;&lt;object class=&quot;java.awt.Rectangle&quot;>&#xA;&lt;int>0&lt;/int>&#xA;&lt;int>0&lt;/int>&#xA;&lt;int>200&lt;/int>&#xA;&lt;int>200&lt;/int>&#xA;&lt;/object>&#xA;&lt;/void>&#xA;&lt;void property=&quot;contentPane&quot;>&#xA;&lt;void method=&quot;add&quot;>&#xA;&lt;object class=&quot;javax.swing.JButton&quot;>&#xA;&lt;void property=&quot;label&quot;>&#xA;&lt;string>Hello&lt;/string>&#xA;&lt;/void>&#xA;&lt;/object>&#xA;&lt;/void>&#xA;&lt;/void>&#xA;&lt;void property=&quot;visible&quot;>&#xA;&lt;boolean>true&lt;/boolean>&#xA;&lt;/void>&#xA;&lt;/object>&#xA;&lt;/java>&#xA;&lt;/pre>&#xA;The XML syntax uses the following conventions:&#xA;&lt;ul>&#xA;&lt;li>&#xA;Each element represents a method call.&#xA;&lt;li>&#xA;The &quot;object&quot; tag denotes an &lt;em>expression&lt;/em> whose value is&#xA;to be used as the argument to the enclosing element.&#xA;&lt;li>&#xA;The &quot;void&quot; tag denotes a &lt;em>statement&lt;/em> which will&#xA;be executed, but whose result will not be used as an&#xA;argument to the enclosing method.&#xA;&lt;li>&#xA;Elements which contain elements use those elements as arguments,&#xA;unless they have the tag: &quot;void&quot;.&#xA;&lt;li>&#xA;The name of the method is denoted by the &quot;method&quot; attribute.&#xA;&lt;li>&#xA;XML's standard &quot;id&quot; and &quot;idref&quot; attributes are used to make&#xA;references to previous expressions - so as to deal with&#xA;circularities in the object graph.&#xA;&lt;li>&#xA;The &quot;class&quot; attribute is used to specify the target of a static&#xA;method or constructor explicitly; its value being the fully&#xA;qualified name of the class.&#xA;&lt;li>&#xA;Elements with the &quot;void&quot; tag are executed using&#xA;the outer context as the target if no target is defined&#xA;by a &quot;class&quot; attribute.&#xA;&lt;li>&#xA;Java's String class is treated specially and is&#xA;written &lt;string>Hello, world&lt;/string> where&#xA;the characters of the string are converted to bytes&#xA;using the UTF-8 character encoding.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Although all object graphs may be written using just these three&#xA;tags, the following definitions are included so that common&#xA;data structures can be expressed more concisely:&#xA;&lt;p>&#xA;&lt;ul>&#xA;&lt;li>&#xA;The default method name is &quot;new&quot;.&#xA;&lt;li>&#xA;A reference to a java class is written in the form&#xA;&lt;class>javax.swing.JButton&lt;/class>.&#xA;&lt;li>&#xA;Instances of the wrapper classes for Java's primitive types are written&#xA;using the name of the primitive type as the tag. For example, an&#xA;instance of the &lt;code>Integer&lt;/code> class could be written:&#xA;&lt;int>123&lt;/int>. Note that the &lt;code>XMLEncoder&lt;/code> class&#xA;uses Java's reflection package in which the conversion between&#xA;Java's primitive types and their associated &quot;wrapper classes&quot;&#xA;is handled internally. The API for the &lt;code>XMLEncoder&lt;/code> class&#xA;itself deals only with &lt;code>Object&lt;/code>s.&#xA;&lt;li>&#xA;In an element representing a nullary method whose name&#xA;starts with &quot;get&quot;, the &quot;method&quot; attribute is replaced&#xA;with a &quot;property&quot; attribute whose value is given by removing&#xA;the &quot;get&quot; prefix and decapitalizing the result.&#xA;&lt;li>&#xA;In an element representing a monadic method whose name&#xA;starts with &quot;set&quot;, the &quot;method&quot; attribute is replaced&#xA;with a &quot;property&quot; attribute whose value is given by removing&#xA;the &quot;set&quot; prefix and decapitalizing the result.&#xA;&lt;li>&#xA;In an element representing a method named &quot;get&quot; taking one&#xA;integer argument, the &quot;method&quot; attribute is replaced&#xA;with an &quot;index&quot; attribute whose value the value of the&#xA;first argument.&#xA;&lt;li>&#xA;In an element representing a method named &quot;set&quot; taking two arguments,&#xA;the first of which is an integer, the &quot;method&quot; attribute is replaced&#xA;with an &quot;index&quot; attribute whose value the value of the&#xA;first argument.&#xA;&lt;li>&#xA;A reference to an array is written using the &quot;array&quot;&#xA;tag. The &quot;class&quot; and &quot;length&quot; attributes specify the&#xA;sub-type of the array and its length respectively.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;For more information you might also want to check out&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/products/jfc/tsc/articles/persistence4&quot;>Using XMLEncoder&lt;/a>,&#xA;an article in &lt;em>The Swing Connection.&lt;/em>&#xA;@see XMLDecoder&#xA;@see java.io.ObjectOutputStream&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.33 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_264924_7347"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_664535_13471" isSubstitutable="true" general="_9_5_f720368_1110473546596_797786_7205"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547471_415094_17502" name="ValueData" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_9005_7277" name="java_awt_List_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_983602_13444" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_273662_7345" name="ObjectHandler" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_969179_7261" name="java_awt_SystemColor_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_432533_13436" isSubstitutable="true" general="_9_5_f720368_1110473546596_109162_7259"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_575994_7227" name="NullPersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_254482_13419" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_815752_7323" name="PropertyEditorManager">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_22343_4506" body="The PropertyEditorManager can be used to locate a property editor for&#xA;any given type name.  This property editor must support the&#xA;java.beans.PropertyEditor interface for editing a given object.&#xA;&lt;P>&#xA;The PropertyEditorManager uses three techniques for locating an editor&#xA;for a given type.  First, it provides a registerEditor method to allow&#xA;an editor to be specifically registered for a given type.  Second it&#xA;tries to locate a suitable class by adding &quot;Editor&quot; to the full&#xA;qualified classname of the given type (e.g. &quot;foo.bah.FozEditor&quot;).&#xA;Finally it takes the simple classname (without the package name) adds&#xA;&quot;Editor&quot; to it and looks in a search-path of packages for a matching&#xA;class.&#xA;&lt;P>&#xA;So for an input class foo.bah.Fred, the PropertyEditorManager would&#xA;first look in its tables to see if an editor had been registered for&#xA;foo.bah.Fred and if so use that.  Then it will look for a&#xA;foo.bah.FredEditor class.  Then it will look for (say)&#xA;standardEditorsPackage.FredEditor class.&#xA;&lt;p>&#xA;Default PropertyEditors will be provided for the Java primitive types&#xA;&quot;boolean&quot;, &quot;byte&quot;, &quot;short&quot;, &quot;int&quot;, &quot;long&quot;, &quot;float&quot;, and &quot;double&quot;; and&#xA;for the classes java.lang.String. java.awt.Color, and java.awt.Font.&#xA;" annotatedElement="_9_5_f720368_1110473546596_815752_7323"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_471691_7331" name="Statement">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_451697_4519" body="A &lt;code>Statement&lt;/code> object represents a primitive statement&#xA;in which a single method is applied to a target and&#xA;a set of arguments - as in &lt;code>&quot;a.setFoo(b)&quot;&lt;/code>.&#xA;Note that where this example uses names&#xA;to denote the target and its argument, a statement&#xA;object does not require a name space and is constructed with&#xA;the values themselves.&#xA;The statement object associates the named method&#xA;with its environment as a simple set of values:&#xA;the target and an array of argument values.&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.29 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_471691_7331"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_413220_7325" name="PropertyEditorSupport" clientDependency="_10_5_622020d_1132928321548_293030_13464">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_578243_4508" body="This is a support class to help build property editors.&#xA;&lt;p>&#xA;It can be used either as a base class or as a delagatee.&#xA;" annotatedElement="_9_5_f720368_1110473546596_413220_7325"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321548_293030_13464" name="" supplier="_9_5_f720368_1110473546596_794345_7321" client="_9_5_f720368_1110473546596_413220_7325" contract="_9_5_f720368_1110473546596_794345_7321"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_73114_7297" name="javax_swing_JTabbedPane_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_685066_13453" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_512393_7289" name="javax_swing_DefaultComboBoxModel_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_597517_13450" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_997088_7317" name="PropertyChangeSupport" clientDependency="_10_5_622020d_1132928321548_897058_13462">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_296010_4500" body="This is a utility class that can be used by beans that support bound&#xA;properties.  You can use an instance of this class as a member field&#xA;of your bean and delegate various work to it.&#xA;&#xA;This class is serializable.  When it is serialized it will save&#xA;(and restore) any listeners that are themselves serializable.  Any&#xA;non-serializable listeners will be skipped during serialization.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546596_997088_7317"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321548_897058_13462" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_997088_7317" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_976172_7293" name="javax_swing_ToolTipManager_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_276861_13452" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_264952_7329" name="SimpleBeanInfo" clientDependency="_10_5_622020d_1132928321548_875022_13466">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_375616_4517" body="This is a support class to make it easier for people to provide&#xA;BeanInfo classes.&#xA;&lt;p>&#xA;It defaults to providing &quot;noop&quot; information, and can be selectively&#xA;overriden to provide more explicit information on chosen topics.&#xA;When the introspector sees the &quot;noop&quot; values, it will apply low&#xA;level introspection and design patterns to automatically analyze&#xA;the target bean.&#xA;" annotatedElement="_9_5_f720368_1110473546596_264952_7329"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321548_875022_13466" name="" supplier="_9_5_f720368_1110473546596_542264_7189" client="_9_5_f720368_1110473546596_264952_7329" contract="_9_5_f720368_1110473546596_542264_7189"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_705687_7255" name="java_util_Hashtable_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_394270_13433" isSubstitutable="true" general="_9_5_f720368_1110473546596_312830_7247"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_225268_7213" name="Expression">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_171096_4432" body="An &lt;code>Expression&lt;/code> object represents a primitive expression&#xA;in which a single method is applied to a target and a set of&#xA;arguments to return a result - as in &lt;code>&quot;a.getFoo()&quot;&lt;/code>.&#xA;&lt;p>&#xA;In addition to the properties of the super class, the&#xA;&lt;code>Expression&lt;/code> object provides a &lt;em>value&lt;/em> which&#xA;is the object returned when this expression is evaluated.&#xA;The return value is typically not provided by the caller and&#xA;is instead computed by dynamically finding the method and invoking&#xA;it when the first call to &lt;code>getValue&lt;/code> is made.&#xA;&#xA;@see #getValue&#xA;@see #setValue&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.3 11/15/00&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_225268_7213"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_163116_13414" isSubstitutable="true" general="_9_5_f720368_1110473546596_471691_7331"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_580161_7187" name="BeanDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306797_71858_4406" body="A BeanDescriptor provides global information about a &quot;bean&quot;,&#xA;including its Java class, its displayName, etc.&#xA;&lt;p>&#xA;This is one of the kinds of descriptor returned by a BeanInfo object,&#xA;which also returns descriptors for properties, method, and events.&#xA;" annotatedElement="_9_5_f720368_1110473546596_580161_7187"/>
            <generalization xmi:id="_10_5_622020d_1132928321528_121391_13407" isSubstitutable="true" general="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547440_320146_17399" name="beancontext">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_974543_7183" name="BeanContextSupport" clientDependency="_10_5_622020d_1132928321528_870040_13400 _10_5_622020d_1132928321528_250781_13401 _10_5_622020d_1132928321528_309233_13402 _10_5_622020d_1132928321528_18539_13403">
              <ownedComment xmi:id="_10_5_622020d_1132928306797_1095_4402" body="This helper class provides a utility implementation of the&#xA;java.beans.beancontext.BeanContext interface.&#xA;&lt;/p>&#xA;&lt;p>&#xA;Since this class directly implements the BeanContext interface, the class&#xA;can, and is intended to be used either by subclassing this implementation,&#xA;or via ad-hoc delegation of an instance of this class from another.&#xA;&lt;/p>&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.46, 01/13/03&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546596_974543_7183"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_783377_13404" isSubstitutable="true" general="_9_5_f720368_1110473546596_569397_7155"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321528_870040_13400" name="" supplier="_9_5_f720368_1110473546596_171017_7149" client="_9_5_f720368_1110473546596_974543_7183" contract="_9_5_f720368_1110473546596_171017_7149"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321528_250781_13401" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_974543_7183" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321528_309233_13402" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546596_974543_7183" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321528_18539_13403" name="" supplier="_9_5_f720368_1110473546596_975189_7333" client="_9_5_f720368_1110473546596_974543_7183" contract="_9_5_f720368_1110473546596_975189_7333"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547456_985895_17425" name="BCSIterator" visibility="protected" clientDependency="_10_5_622020d_1132928321528_286820_13405" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928306797_902499_4400" body="protected final subclass that encapsulates an iterator but implements&#xA;a noop remove() method.&#xA;" annotatedElement="_9_5_f720368_1110473547456_985895_17425"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321528_286820_13405" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_9_5_f720368_1110473547456_985895_17425" contract="_9_5_f720368_1110473546706_414385_8877"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547456_956536_17428" name="BCSChild" visibility="protected" clientDependency="_10_5_622020d_1132928321528_582637_13406">
                <interfaceRealization xmi:id="_10_5_622020d_1132928321528_582637_13406" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547456_956536_17428" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_569397_7155" name="BeanContextChildSupport" clientDependency="_10_5_622020d_1132928321508_800964_13381 _10_5_622020d_1132928321508_511843_13382 _10_5_622020d_1132928321518_969872_13383">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_536986_4372" body="&lt;p>&#xA;This is a general support class to provide support for implementing the&#xA;BeanContextChild protocol.&#xA;&#xA;This class may either be directly subclassed, or encapsulated and delegated&#xA;to in order to implement this interface for a given component.&#xA;&lt;/p>&#xA;&#xA;@author&#x9;Laurence P. G. Cable&#xA;@version&#x9;1.16, 03/04/04&#xA;@since&#x9;1.2&#xA;&#xA;@see&#x9;java.beans.beancontext.BeanContext&#xA;@see&#x9;java.beans.beancontext.BeanContextServices&#xA;@see&#x9;java.beans.beancontext.BeanContextChild&#xA;" annotatedElement="_9_5_f720368_1110473546596_569397_7155"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321508_800964_13381" name="" supplier="_9_5_f720368_1110473546596_415187_7151" client="_9_5_f720368_1110473546596_569397_7155" contract="_9_5_f720368_1110473546596_415187_7151"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321508_511843_13382" name="" supplier="_9_5_f720368_1110473546596_233337_7179" client="_9_5_f720368_1110473546596_569397_7155" contract="_9_5_f720368_1110473546596_233337_7179"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321518_969872_13383" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_569397_7155" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_233337_7179" name="BeanContextServicesListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306797_389974_4396" body="The listener interface for receiving&#xA;&lt;code>BeanContextServiceAvailableEvent&lt;/code> objects.&#xA;A class that is interested in processing a&#xA;&lt;code>BeanContextServiceAvailableEvent&lt;/code> implements this interface.&#xA;" annotatedElement="_9_5_f720368_1110473546596_233337_7179"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_282147_13393" isSubstitutable="true" general="_9_5_f720368_1110473546596_317340_7175"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_224203_7181" name="BeanContextServicesSupport" clientDependency="_10_5_622020d_1132928321528_413104_13394">
              <ownedComment xmi:id="_10_5_622020d_1132928306797_294764_4399" body="&lt;p>&#xA;This helper class provides a utility implementation of the&#xA;java.beans.beancontext.BeanContextServices interface.&#xA;&lt;/p>&#xA;&lt;p>&#xA;Since this class directly implements the BeanContextServices interface,&#xA;the class can, and is intended to be used either by subclassing this&#xA;implementation, or via delegation of an instance of this class&#xA;from another through the BeanContextProxy interface.&#xA;&lt;/p>&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.23, 04/15/04&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546596_224203_7181"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_130657_13395" isSubstitutable="true" general="_9_5_f720368_1110473546596_974543_7183"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321528_413104_13394" name="" supplier="_9_5_f720368_1110473546596_513516_7177" client="_9_5_f720368_1110473546596_224203_7181" contract="_9_5_f720368_1110473546596_513516_7177"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547440_406521_17417" name="BCSSChild" visibility="protected">
                <generalization xmi:id="_10_5_622020d_1132928321528_17395_13396" isSubstitutable="true" general="_9_5_f720368_1110473547456_956536_17428"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547440_518608_17418" name="BCSSCServiceClassRef" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547440_949262_17419" name="BCSSCServiceRef" visibility="package"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547440_460364_17420" name="BCSSServiceProvider" visibility="protected" clientDependency="_10_5_622020d_1132928321528_171826_13397">
                <ownedComment xmi:id="_10_5_622020d_1132928306797_934879_4397" body="subclasses may subclass this nested class to add behaviors for&#xA;each BeanContextServicesProvider.&#xA;" annotatedElement="_9_5_f720368_1110473547440_460364_17420"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321528_171826_13397" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547440_460364_17420" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547456_929434_17423" name="BCSSProxyServiceProvider" visibility="protected" clientDependency="_10_5_622020d_1132928321528_502143_13399 _10_5_622020d_1132928321528_471306_13398">
                <interfaceRealization xmi:id="_10_5_622020d_1132928321528_471306_13398" name="" supplier="_9_5_f720368_1110473546596_531262_7169" client="_9_5_f720368_1110473547456_929434_17423" contract="_9_5_f720368_1110473546596_531262_7169"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321528_502143_13399" name="" supplier="_9_5_f720368_1110473546596_317340_7175" client="_9_5_f720368_1110473547456_929434_17423" contract="_9_5_f720368_1110473546596_317340_7175"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_819521_7163" name="BeanContextMembershipListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_620402_4380" body="&lt;p>&#xA;Compliant BeanContexts fire events on this interface when the state of&#xA;the membership of the BeanContext changes.&#xA;&lt;/p>&#xA;&#xA;@author&#x9;Laurence P. G. Cable&#xA;@version&#x9;1.12, 12/19/03&#xA;@since&#x9;1.2&#xA;@see&#x9;&#x9;java.beans.beancontext.BeanContext&#xA;" annotatedElement="_9_5_f720368_1110473546596_819521_7163"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_51067_13386" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_529812_7157" name="BeanContextContainerProxy" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_568043_4374" body="&lt;p>&#xA;This interface is implemented by BeanContexts' that have an AWT Container&#xA;associated with them.&#xA;&lt;/p>&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.10, 12/19/03&#xA;@since 1.2&#xA;&#xA;@see java.beans.beancontext.BeanContext&#xA;@see java.beans.beancontext.BeanContextSupport&#xA;" annotatedElement="_9_5_f720368_1110473546596_529812_7157"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_267050_7173" name="BeanContextServiceRevokedEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_484138_4390" body="&lt;p>&#xA;This event type is used by the&#xA;&lt;code>BeanContextServiceRevokedListener&lt;/code> in order to&#xA;identify the service being revoked.&#xA;&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546596_267050_7173"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_57900_13389" isSubstitutable="true" general="_9_5_f720368_1110473546596_725071_7159"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_415187_7151" name="BeanContextChild" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_712648_4368" body="&lt;p>&#xA;JavaBeans wishing to be nested within, and obtain a reference to their&#xA;execution environment, or context, as defined by the BeanContext&#xA;sub-interface shall implement this interface.&#xA;&lt;/p>&#xA;&lt;p>&#xA;Conformant BeanContexts shall as a side effect of adding a BeanContextChild&#xA;object shall pass a reference to itself via the setBeanContext() method of&#xA;this interface.&#xA;&lt;/p>&#xA;&lt;p>&#xA;Note that a BeanContextChild may refuse a change in state by throwing&#xA;PropertyVetoedException in response.&#xA;&lt;/p>&#xA;&lt;p>&#xA;In order for persistence mechanisms to function properly on BeanContextChild&#xA;instances across a broad variety of scenarios, implementing classes of this&#xA;interface are required to define as transient, any or all fields, or&#xA;instance variables, that may contain, or represent, references to the&#xA;nesting BeanContext instance or other resources obtained&#xA;from the BeanContext via any unspecified mechanisms.&#xA;&lt;/p>&#xA;&#xA;@author&#x9;Laurence P. G. Cable&#xA;@version&#x9;1.20, 12/19/03&#xA;@since&#x9;1.2&#xA;&#xA;@see&#x9;java.beans.beancontext.BeanContext&#xA;@see&#x9;java.beans.PropertyChangeEvent&#xA;@see&#x9;java.beans.PropertyChangeListener&#xA;@see&#x9;java.beans.PropertyVetoEvent&#xA;@see&#x9;java.beans.PropertyVetoListener&#xA;@see&#x9;java.beans.PropertyVetoException&#xA;" annotatedElement="_9_5_f720368_1110473546596_415187_7151"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_741923_7153" name="BeanContextChildComponentProxy" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_846865_4370" body="&lt;p>&#xA;This interface is implemented by&#xA;&lt;code>BeanContextChildren&lt;/code> that have an AWT &lt;code>Component&lt;/code>&#xA;associated with them.&#xA;&lt;/p>&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.10, 12/19/03&#xA;@since 1.2&#xA;&#xA;@see java.beans.beancontext.BeanContext&#xA;@see java.beans.beancontext.BeanContextSupport&#xA;" annotatedElement="_9_5_f720368_1110473546596_741923_7153"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_24965_7165" name="BeanContextProxy" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_735928_4382" body="&lt;p>&#xA;This interface is implemented by a JavaBean that does&#xA;not directly have a BeanContext(Child) associated with&#xA;it (via implementing that interface or a subinterface thereof),&#xA;but has a public BeanContext(Child) delegated from it.&#xA;For example, a subclass of java.awt.Container may have a BeanContext&#xA;associated with it that all Component children of that Container shall&#xA;be contained within.&#xA;&lt;/p>&#xA;&lt;p>&#xA;An Object may not implement this interface and the&#xA;BeanContextChild interface&#xA;(or any subinterfaces thereof) they are mutually exclusive.&#xA;&lt;/p>&#xA;&lt;p>&#xA;Callers of this interface shall examine the return type in order to&#xA;obtain a particular subinterface of BeanContextChild as follows:&#xA;&lt;code>&#xA;BeanContextChild bcc = o.getBeanContextProxy();&#xA;&#xA;if (bcc instanceof BeanContext) {&#xA;...&#xA;}&#xA;&lt;/code>&#xA;or&#xA;&lt;code>&#xA;BeanContextChild bcc = o.getBeanContextProxy();&#xA;BeanContext      bc  = null;&#xA;&#xA;try {&#xA;bc = (BeanContext)bcc;&#xA;} catch (ClassCastException cce) {&#xA;cast failed, bcc is not an instanceof BeanContext&#xA;}&#xA;&lt;/code>&#xA;&lt;/p>&#xA;&lt;p>&#xA;The return value is a constant for the lifetime of the implementing&#xA;instance&#xA;&lt;/p>&#xA;@author Laurence P. G. Cable&#xA;@version 1.11, 12/19/03&#xA;@since 1.2&#xA;&#xA;@see java.beans.beancontext.BeanContextChild&#xA;@see java.beans.beancontext.BeanContextChildSupport&#xA;" annotatedElement="_9_5_f720368_1110473546596_24965_7165"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_725071_7159" name="BeanContextEvent" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_27832_4376" body="&lt;p>&#xA;&lt;code>BeanContextEvent&lt;/code> is the abstract root event class&#xA;for all events emitted&#xA;from, and pertaining to the semantics of, a &lt;code>BeanContext&lt;/code>.&#xA;This class introduces a mechanism to allow the propagation of&#xA;&lt;code>BeanContextEvent&lt;/code> subclasses through a hierarchy of&#xA;&lt;code>BeanContext&lt;/code>s. The &lt;code>setPropagatedFrom()&lt;/code>&#xA;and &lt;code>getPropagatedFrom()&lt;/code> methods allow a&#xA;&lt;code>BeanContext&lt;/code> to identify itself as the source&#xA;of a propagated event.&#xA;&lt;/p>&#xA;&#xA;@author&#x9;Laurence P. G. Cable&#xA;@version&#x9;1.14, 12/19/03&#xA;@since&#x9;1.2&#xA;@see&#x9;&#x9;java.beans.beancontext.BeanContext&#xA;" annotatedElement="_9_5_f720368_1110473546596_725071_7159"/>
              <generalization xmi:id="_10_5_622020d_1132928321518_638741_13384" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_590464_7161" name="BeanContextMembershipEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_499316_4378" body="A &lt;code>BeanContextMembershipEvent&lt;/code> encapsulates&#xA;the list of children added to, or removed from,&#xA;the membership of a particular &lt;code>BeanContext&lt;/code>.&#xA;An instance of this event is fired whenever a successful&#xA;add(), remove(), retainAll(), removeAll(), or clear() is&#xA;invoked on a given &lt;code>BeanContext&lt;/code> instance.&#xA;Objects interested in receiving events of this type must&#xA;implement the &lt;code>BeanContextMembershipListener&lt;/code>&#xA;interface, and must register their intent via the&#xA;&lt;code>BeanContext&lt;/code>'s&#xA;&lt;code>addBeanContextMembershipListener(BeanContextMembershipListener bcml)&#xA;&lt;/code> method.&#xA;&#xA;@author&#x9;Laurence P. G. Cable&#xA;@version&#x9;1.15&#xA;@since&#x9;1.2&#xA;@see&#x9;&#x9;java.beans.beancontext.BeanContext&#xA;@see&#x9;&#x9;java.beans.beancontext.BeanContextEvent&#xA;@see&#x9;&#x9;java.beans.beancontext.BeanContextMembershipListener&#xA;" annotatedElement="_9_5_f720368_1110473546596_590464_7161"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_776946_13385" isSubstitutable="true" general="_9_5_f720368_1110473546596_725071_7159"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_531262_7169" name="BeanContextServiceProvider" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_540511_4386" body="&lt;p>&#xA;One of the primary functions of a BeanContext is to act a as rendezvous&#xA;between JavaBeans, and BeanContextServiceProviders.&#xA;&lt;/p>&#xA;&lt;p>&#xA;A JavaBean nested within a BeanContext, may ask that BeanContext to&#xA;provide an instance of a &quot;service&quot;, based upon a reference to a Java&#xA;Class object that represents that service.&#xA;&lt;/p>&#xA;&lt;p>&#xA;If such a service has been registered with the context, or one of its&#xA;nesting context's, in the case where a context delegate to its context&#xA;to satisfy a service request, then the BeanContextServiceProvider associated with&#xA;the service is asked to provide an instance of that service.&#xA;&lt;/p>&#xA;&lt;p>&#xA;The ServcieProvider may always return the same instance, or it may&#xA;construct a new instance for each request.&#xA;&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546596_531262_7169"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_892941_7167" name="BeanContextServiceAvailableEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_95191_4384" body="&lt;p>&#xA;This event type is used by the BeanContextServicesListener in order to&#xA;identify the service being registered.&#xA;&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546596_892941_7167"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_897581_13387" isSubstitutable="true" general="_9_5_f720368_1110473546596_725071_7159"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_513516_7177" name="BeanContextServices" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306797_125959_4394" body="&lt;p>&#xA;The BeanContextServices interface provides a mechanism for a BeanContext&#xA;to expose generic &quot;services&quot; to the BeanContextChild objects within.&#xA;&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546596_513516_7177"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_421471_13391" isSubstitutable="true" general="_9_5_f720368_1110473546596_171017_7149"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_490887_13392" isSubstitutable="true" general="_9_5_f720368_1110473546596_233337_7179"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_284066_7171" name="BeanContextServiceProviderBeanInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_92352_4388" body="A BeanContextServiceProvider implementor who wishes to provide explicit&#xA;information about the services their bean may provide shall implement a&#xA;BeanInfo class that implements this BeanInfo subinterface and provides&#xA;explicit information about the methods, properties, events, etc, of their&#xA;services.&#xA;" annotatedElement="_9_5_f720368_1110473546596_284066_7171"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_373744_13388" isSubstitutable="true" general="_9_5_f720368_1110473546596_542264_7189"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_317340_7175" name="BeanContextServiceRevokedListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306787_20354_4392" body="The listener interface for receiving&#xA;&lt;code>BeanContextServiceRevokedEvent&lt;/code> objects. A class that is&#xA;interested in processing a &lt;code>BeanContextServiceRevokedEvent&lt;/code>&#xA;implements this interface.&#xA;" annotatedElement="_9_5_f720368_1110473546596_317340_7175"/>
              <generalization xmi:id="_10_5_622020d_1132928321528_847735_13390" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_171017_7149" name="BeanContext" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928306777_505382_4366" body="&lt;p>&#xA;The BeanContext acts a logical hierarchical container for JavaBeans.&#xA;&lt;/p>&#xA;&#xA;@author Laurence P. G. Cable&#xA;@version 1.23, 12/19/03&#xA;@since 1.2&#xA;&#xA;@see java.beans.Beans&#xA;@see java.beans.beancontext.BeanContextChild&#xA;@see java.beans.beancontext.BeanContextMembershipListener&#xA;@see java.beans.PropertyChangeEvent&#xA;@see java.beans.VetoableChangeEvent&#xA;@see java.beans.DesignMode&#xA;@see java.beans.Visibility&#xA;@see java.util.Collection&#xA;" annotatedElement="_9_5_f720368_1110473546596_171017_7149"/>
              <generalization xmi:id="_10_5_622020d_1132928321508_827029_13377" isSubstitutable="true" general="_9_5_f720368_1110473546596_415187_7151"/>
              <generalization xmi:id="_10_5_622020d_1132928321508_194006_13378" isSubstitutable="true" general="_9_5_f720368_1110473546706_555617_8841"/>
              <generalization xmi:id="_10_5_622020d_1132928321508_329266_13379" isSubstitutable="true" general="_9_5_f720368_1110473546596_767413_7203"/>
              <generalization xmi:id="_10_5_622020d_1132928321508_52878_13380" isSubstitutable="true" general="_9_5_f720368_1110473546596_400781_7339"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_741848_7239" name="java_lang_reflect_Field_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_573281_13425" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_598478_7253" name="java_util_AbstractMap_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_28455_13432" isSubstitutable="true" general="_9_5_f720368_1110473546596_312830_7247"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_959912_7223" name="Introspector">
            <ownedComment xmi:id="_10_5_622020d_1132928306887_707512_4443" body="The Introspector class provides a standard way for tools to learn about&#xA;the properties, events, and methods supported by a target Java Bean.&#xA;&lt;p>&#xA;For each of those three kinds of information, the Introspector will&#xA;separately analyze the bean's class and superclasses looking for&#xA;either explicit or implicit information and use that information to&#xA;build a BeanInfo object that comprehensively describes the target bean.&#xA;&lt;p>&#xA;For each class &quot;Foo&quot;, explicit information may be available if there exists&#xA;a corresponding &quot;FooBeanInfo&quot; class that provides a non-null value when&#xA;queried for the information.   We first look for the BeanInfo class by&#xA;taking the full package-qualified name of the target bean class and&#xA;appending &quot;BeanInfo&quot; to form a new class name.  If this fails, then&#xA;we take the final classname component of this name, and look for that&#xA;class in each of the packages specified in the BeanInfo package search&#xA;path.&#xA;&lt;p>&#xA;Thus for a class such as &quot;sun.xyz.OurButton&quot; we would first look for a&#xA;BeanInfo class called &quot;sun.xyz.OurButtonBeanInfo&quot; and if that failed we'd&#xA;look in each package in the BeanInfo search path for an OurButtonBeanInfo&#xA;class.  With the default search path, this would mean looking for&#xA;&quot;sun.beans.infos.OurButtonBeanInfo&quot;.&#xA;&lt;p>&#xA;If a class provides explicit BeanInfo about itself then we add that to&#xA;the BeanInfo information we obtained from analyzing any derived classes,&#xA;but we regard the explicit information as being definitive for the current&#xA;class and its base classes, and do not proceed any further up the superclass&#xA;chain.&#xA;&lt;p>&#xA;If we don't find explicit BeanInfo on a class, we use low-level&#xA;reflection to study the methods of the class and apply standard design&#xA;patterns to identify property accessors, event sources, or public&#xA;methods.  We then proceed to analyze the class's superclass and add&#xA;in the information from it (and possibly on up the superclass chain).&#xA;&#xA;&lt;p>&#xA;Because the Introspector caches BeanInfo classes for better performance,&#xA;take care if you use it in an application that uses&#xA;multiple class loaders.&#xA;In general, when you destroy a &lt;code>ClassLoader&lt;/code>&#xA;that has been used to introspect classes,&#xA;you should use the&#xA;{@link #flushCaches &lt;code>Introspector.flushCaches&lt;/code>}&#xA;or&#xA;{@link #flushFromCaches &lt;code>Introspector.flushFromCaches&lt;/code>} method&#xA;to flush all of the introspected classes out of the cache.&#xA;&#xA;&lt;P>&#xA;For more information about introspection and design patterns, please&#xA;consult the&#xA;&lt;a href=&quot;http://java.sun.com/products/javabeans/docs/index.html&quot;>JavaBeans specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546596_959912_7223"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_103084_7257" name="java_beans_beancontext_BeanContextSupport_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_608182_13434" isSubstitutable="true" general="_9_5_f720368_1110473546596_347326_7243"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_555923_7341" name="XMLDecoder">
            <ownedComment xmi:id="_10_5_622020d_1132928306977_640269_4529" body="The &lt;code>XMLDecoder&lt;/code> class is used to read XML documents&#xA;created using the &lt;code>XMLEncoder&lt;/code> and is used just like&#xA;the &lt;code>ObjectInputStream&lt;/code>. For example, one can use&#xA;the following fragment to read the first object defined&#xA;in an XML document written by the &lt;code>XMLEncoder&lt;/code>&#xA;class:&#xA;&lt;pre>&#xA;XMLDecoder d = new XMLDecoder(&#xA;new BufferedInputStream(&#xA;new FileInputStream(&quot;Test.xml&quot;)));&#xA;Object result = d.readObject();&#xA;d.close();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;For more information you might also want to check out&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/products/jfc/tsc/articles/persistence3&quot;>Long Term Persistence of JavaBeans Components: XML Schema&lt;/a>,&#xA;an article in &lt;em>The Swing Connection.&lt;/em>&#xA;@see XMLEncoder&#xA;@see java.io.ObjectInputStream&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.30 06/01/04&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_555923_7341"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_566044_7287" name="javax_swing_DefaultListModel_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_527262_13449" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_309203_7221" name="IntrospectionException">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_537243_4441" body="Thrown when an exception happens during Introspection.&#xA;&lt;p>&#xA;Typical causes include not being able to map a string class name&#xA;to a Class object, not being able to resolve a string method name,&#xA;or specifying a method name that has the wrong type signature for&#xA;its intended use.&#xA;" annotatedElement="_9_5_f720368_1110473546596_309203_7221"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_257844_13417" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_797786_7205" name="Encoder">
            <ownedComment xmi:id="_10_5_622020d_1132928306817_804167_4424" body="An &lt;code>Encoder&lt;/code> is a class which can be used to create&#xA;files or streams that encode the state of a collection of&#xA;JavaBeans in terms of their public APIs. The &lt;code>Encoder&lt;/code>,&#xA;in conjunction with its persistence delegates, is responsible for&#xA;breaking the object graph down into a series of &lt;code>Statements&lt;/code>s&#xA;and &lt;code>Expression&lt;/code>s which can be used to create it.&#xA;A subclass typically provides a syntax for these expressions&#xA;using some human readable form - like Java source code or XML.&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.3 11/15/00&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_797786_7205"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_340607_7327" name="PropertyVetoException">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_821363_4510" body="A PropertyVetoException is thrown when a proposed change to a&#xA;property represents an unacceptable value.&#xA;" annotatedElement="_9_5_f720368_1110473546596_340607_7327"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_452355_13465" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_514387_7197" name="BeansAppletStub" visibility="package" clientDependency="_10_5_622020d_1132928321528_610961_13410">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_855308_4416" body="Package private support class.  This provides an AppletStub&#xA;for beans which are applets.&#xA;" annotatedElement="_9_5_f720368_1110473546596_514387_7197"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321528_610961_13410" name="" supplier="_9_5_f720368_1110473546549_379369_6437" client="_9_5_f720368_1110473546596_514387_7197" contract="_9_5_f720368_1110473546549_379369_6437"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_388935_7235" name="java_lang_String_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_27743_13423" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_88088_7233" name="ProxyPersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_871136_13422" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_944600_7305" name="NameGenerator" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306947_433292_4488" body="A utility class which generates unique names for object instances.&#xA;The name will be a concatenation of the unqualified class name&#xA;and an instance number.&#xA;&lt;p>&#xA;For example, if the first object instance javax.swing.JButton&#xA;is passed into &lt;code>instanceName&lt;/code> then the returned&#xA;string identifier will be &quot;JButton0&quot;.&#xA;&#xA;@version 1.9 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_944600_7305"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_641882_7273" name="java_awt_Menu_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_411673_13442" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_667336_7283" name="java_awt_GridBagLayout_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_590985_13447" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_181663_7279" name="java_awt_BorderLayout_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_681467_13445" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_643761_7285" name="javax_swing_JFrame_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_35966_13448" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_542264_7189" name="BeanInfo" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_46908_4408" body="A bean implementor who wishes to provide explicit information about&#xA;their bean may provide a BeanInfo class that implements this BeanInfo&#xA;interface and provides explicit information about the methods,&#xA;properties, events, etc, of their  bean.&#xA;&lt;p>&#xA;A bean implementor doesn't need to provide a complete set of&#xA;explicit information.  You can pick and choose which information&#xA;you want to provide and the rest will be obtained by automatic&#xA;analysis using low-level reflection of the bean classes' methods&#xA;and applying standard design patterns.&#xA;&lt;p>&#xA;You get the opportunity to provide lots and lots of different&#xA;information as part of the various XyZDescriptor classes.  But&#xA;don't panic, you only really need to provide the minimal core&#xA;information required by the various constructors.&#xA;&lt;P>&#xA;See also the SimpleBeanInfo class which provides a convenient&#xA;&quot;noop&quot; base class for BeanInfo classes, which you can override&#xA;for those specific places where you want to return explicit info.&#xA;&lt;P>&#xA;To learn about all the behaviour of a bean see the Introspector class.&#xA;" annotatedElement="_9_5_f720368_1110473546596_542264_7189"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_773676_7195" name="BeansAppletContext" visibility="package" clientDependency="_10_5_622020d_1132928321528_362671_13409">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_136034_4414" body="Package private support class.  This provides a default AppletContext&#xA;for beans which are applets.&#xA;" annotatedElement="_9_5_f720368_1110473546596_773676_7195"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321528_362671_13409" name="" supplier="_9_5_f720368_1110473546549_858333_6435" client="_9_5_f720368_1110473546596_773676_7195" contract="_9_5_f720368_1110473546549_858333_6435"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_979518_7267" name="java_awt_Component_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_59832_13439" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_552861_7343" name="MutableExpression" visibility="package"/>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_919217_7185" name="AppletInitializer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306797_200125_4404" body="&lt;p>&#xA;This interface is designed to work in collusion with java.beans.Beans.instantiate.&#xA;The interafce is intended to provide mechanism to allow the proper&#xA;initialization of JavaBeans that are also Applets, during their&#xA;instantiation by java.beans.Beans.instantiate().&#xA;&lt;/p>&#xA;&#xA;@see java.beans.Beans#instantiate&#xA;&#xA;@version 1.12, 12/19/03&#xA;@since 1.2&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546596_919217_7185"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_754495_7241" name="java_lang_reflect_Method_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_328461_13426" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_966336_7249" name="java_util_AbstractCollection_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_110708_13430" isSubstitutable="true" general="_9_5_f720368_1110473546596_347326_7243"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_794345_7321" name="PropertyEditor" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928306967_713254_4504" body="A PropertyEditor class provides support for GUIs that want to&#xA;allow users to edit a property value of a given type.&#xA;&lt;p>&#xA;PropertyEditor supports a variety of different kinds of ways of&#xA;displaying and updating property values.  Most PropertyEditors will&#xA;only need to support a subset of the different options available in&#xA;this API.&#xA;&lt;P>&#xA;Simple PropertyEditors may only support the getAsText and setAsText&#xA;methods and need not support (say) paintValue or getCustomEditor.  More&#xA;complex types may be unable to support getAsText and setAsText but will&#xA;instead support paintValue and getCustomEditor.&#xA;&lt;p>&#xA;Every propertyEditor must support one or more of the three simple&#xA;display styles.  Thus it can either (1) support isPaintable or (2)&#xA;both return a non-null String[] from getTags() and return a non-null&#xA;value from getAsText or (3) simply return a non-null String from&#xA;getAsText().&#xA;&lt;p>&#xA;Every property editor must support a call on setValue when the argument&#xA;object is of the type for which this is the corresponding propertyEditor.&#xA;In addition, each property editor must either support a custom editor,&#xA;or support setAsText.&#xA;&lt;p>&#xA;Each PropertyEditor should have a null constructor.&#xA;" annotatedElement="_9_5_f720368_1110473546596_794345_7321"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_347326_7243" name="java_util_Collection_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_535255_13427" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_612922_7263" name="java_awt_font_TextAttribute_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_216919_13437" isSubstitutable="true" general="_9_5_f720368_1110473546596_109162_7259"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_267156_7207" name="EventHandler" clientDependency="_10_5_622020d_1132928321538_398070_13412">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_463858_4426" body="The &lt;code>EventHandler&lt;/code> class provides&#xA;support for dynamically generating event listeners whose methods&#xA;execute a simple statement involving an incoming event object&#xA;and a target object.&#xA;&lt;p>&#xA;The &lt;code>EventHandler&lt;/code> class is intended to be used by interactive tools, such as&#xA;application builders, that allow developers to make connections between&#xA;beans. Typically connections are made from a user interface bean&#xA;(the event &lt;em>source&lt;/em>)&#xA;to an application logic bean (the &lt;em>target&lt;/em>). The most effective&#xA;connections of this kind isolate the application logic from the user&#xA;interface.  For example, the &lt;code>EventHandler&lt;/code> for a&#xA;connection from a &lt;code>JCheckBox&lt;/code> to a method&#xA;that accepts a boolean value can deal with extracting the state&#xA;of the check box and passing it directly to the method so that&#xA;the method is isolated from the user interface layer.&#xA;&lt;p>&#xA;Inner classes are another, more general way to handle events from&#xA;user interfaces.  The &lt;code>EventHandler&lt;/code> class&#xA;handles only a subset of what is possible using inner&#xA;classes. However, &lt;code>EventHandler&lt;/code> works better&#xA;with the long-term persistence scheme than inner classes.&#xA;Also, using &lt;code>EventHandler&lt;/code> in large applications in&#xA;which the same interface is implemented many times can&#xA;reduce the disk and memory footprint of the application.&#xA;&lt;p>&#xA;The reason that listeners created with &lt;code>EventHandler&lt;/code>&#xA;have such a small&#xA;footprint is that the &lt;code>Proxy&lt;/code> class, on which&#xA;the &lt;code>EventHandler&lt;/code> relies, shares implementations&#xA;of identical&#xA;interfaces. For example, if you use&#xA;the &lt;code>EventHandler&lt;/code> &lt;code>create&lt;/code> methods to make&#xA;all the &lt;code>ActionListener&lt;/code>s in an application,&#xA;all the action listeners will be instances of a single class&#xA;(one created by the &lt;code>Proxy&lt;/code> class).&#xA;In general, listeners based on&#xA;the &lt;code>Proxy&lt;/code> class require one listener class&#xA;to be created per &lt;em>listener type&lt;/em> (interface),&#xA;whereas the inner class&#xA;approach requires one class to be created per &lt;em>listener&lt;/em>&#xA;(object that implements the interface).&#xA;&#xA;&lt;p>&#xA;You don't generally deal directly with &lt;code>EventHandler&lt;/code>&#xA;instances.&#xA;Instead, you use one of the &lt;code>EventHandler&lt;/code>&#xA;&lt;code>create&lt;/code> methods to create&#xA;an object that implements a given listener interface.&#xA;This listener object uses an &lt;code>EventHandler&lt;/code> object&#xA;behind the scenes to encapsulate information about the&#xA;event, the object to be sent a message when the event occurs,&#xA;the message (method) to be sent, and any argument&#xA;to the method.&#xA;The following section gives examples of how to create listener&#xA;objects using the &lt;code>create&lt;/code> methods.&#xA;&#xA;&lt;h2>Examples of Using EventHandler&lt;/h2>&#xA;&#xA;The simplest use of &lt;code>EventHandler&lt;/code> is to install&#xA;a listener that calls a method on the target object with no arguments.&#xA;In the following example we create an &lt;code>ActionListener&lt;/code>&#xA;that invokes the &lt;code>toFront&lt;/code> method on an instance&#xA;of &lt;code>javax.swing.JFrame&lt;/code>.&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;myButton.addActionListener(&#xA;(ActionListener)EventHandler.create(ActionListener.class, frame, &quot;toFront&quot;));&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;When &lt;code>myButton&lt;/code> is pressed, the statement&#xA;&lt;code>frame.toFront()&lt;/code> will be executed.  One could get&#xA;the same effect, with some additional compile-time type safety,&#xA;by defining a new implementation of the &lt;code>ActionListener&lt;/code>&#xA;interface and adding an instance of it to the button:&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Equivalent code using an inner class instead of EventHandler.&#xA;myButton.addActionListener(new ActionListener() {&#xA;public void actionPerformed(ActionEvent e) {&#xA;frame.toFront();&#xA;}&#xA;});&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;The next simplest use of &lt;code>EventHandler&lt;/code> is&#xA;to extract a property value from the first argument&#xA;of the method in the listener interface (typically an event object)&#xA;and use it to set the value of a property in the target object.&#xA;In the following example we create an &lt;code>ActionListener&lt;/code> that&#xA;sets the &lt;code>nextFocusableComponent&lt;/code> property of the target&#xA;object to the value of the &quot;source&quot; property of the event.&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;EventHandler.create(ActionListener.class, target, &quot;nextFocusableComponent&quot;, &quot;source&quot;)&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;This would correspond to the following inner class implementation:&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Equivalent code using an inner class instead of EventHandler.&#xA;new ActionListener() {&#xA;public void actionPerformed(ActionEvent e) {&#xA;button.setNextFocusableComponent((Component)e.getSource());&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;Probably the most common use of &lt;code>EventHandler&lt;/code>&#xA;is to extract a property value from the&#xA;&lt;em>source&lt;/em> of the event object and set this value as&#xA;the value of a property of the target object.&#xA;In the following example we create an &lt;code>ActionListener&lt;/code> that&#xA;sets the &quot;label&quot; property of the target&#xA;object to the value of the &quot;text&quot; property of the&#xA;source (the value of the &quot;source&quot; property) of the event.&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;EventHandler.create(ActionListener.class, button, &quot;label&quot;, &quot;source.text&quot;)&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;This would correspond to the following inner class implementation:&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Equivalent code using an inner class instead of EventHandler.&#xA;new ActionListener {&#xA;public void actionPerformed(ActionEvent e) {&#xA;button.setLabel(((JTextField)e.getSource()).getText());&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;The event property may be be &quot;qualified&quot; with an arbitrary number&#xA;of property prefixes delimited with the &quot;.&quot; character. The &quot;qualifying&quot;&#xA;names that appear before the &quot;.&quot; characters are taken as the names of&#xA;properties that should be applied, left-most first, to&#xA;the event object.&#xA;&lt;p>&#xA;For example, the following action listener&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;EventHandler.create(ActionListener.class, target, &quot;a&quot;, &quot;b.c.d&quot;)&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;might be written as the following inner class&#xA;(assuming all the properties had canonical getter methods and&#xA;returned the appropriate types):&#xA;&#xA;&lt;blockquote>&#xA;&lt;pre>&#xA;Equivalent code using an inner class instead of EventHandler.&#xA;new ActionListener {&#xA;public void actionPerformed(ActionEvent e) {&#xA;target.setA(e.getB().getC().isD());&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;/blockquote>&#xA;&#xA;@see java.lang.reflect.Proxy&#xA;@see java.util.EventObject&#xA;&#xA;@since 1.4&#xA;&#xA;@author Mark Davidson&#xA;@author Philip Milne&#xA;@author Hans Muller&#xA;&#xA;@version 1.2 10/24/00&#xA;" annotatedElement="_9_5_f720368_1110473546596_267156_7207"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321538_398070_13412" name="" supplier="_9_5_f720368_1110473546612_149432_7531" client="_9_5_f720368_1110473546596_267156_7207" contract="_9_5_f720368_1110473546612_149432_7531"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_619860_7209" name="EventSetDescriptor">
            <ownedComment xmi:id="_10_5_622020d_1132928306827_523526_4428" body="An EventSetDescriptor describes a group of events that a given Java&#xA;bean fires.&#xA;&lt;P>&#xA;The given group of events are all delivered as method calls on a single&#xA;event listener interface, and an event listener object can be registered&#xA;via a call on a registration method supplied by the event source.&#xA;" annotatedElement="_9_5_f720368_1110473546596_619860_7209"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_160637_13413" isSubstitutable="true" general="_9_5_f720368_1110473546596_7116_7215"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_818721_7299" name="javax_swing_JMenu_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_268064_13455" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_554516_7245" name="java_util_List_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_853338_13428" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_366514_7191" name="Beans">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_38191_4410" body="This class provides some general purpose beans control methods.&#xA;" annotatedElement="_9_5_f720368_1110473546596_366514_7191"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_312830_7247" name="java_util_Map_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321538_479058_13429" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928306947_591581_4481" name="javax_swing_Box_PersistenceDelegate" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321548_291152_13454" isSubstitutable="true" general="_9_5_f720368_1110473546596_999652_7201"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_730715_7315" name="PropertyChangeListenerProxy" clientDependency="_10_5_622020d_1132928321548_228479_13460">
            <ownedComment xmi:id="_10_5_622020d_1132928306957_806058_4498" body="A class which extends the &lt;code>EventListenerProxy&lt;/code> specifically&#xA;for adding a named &lt;code>PropertyChangeListener&lt;/code>. Instances of&#xA;this class can be added as &lt;code>PropertyChangeListener&lt;/code> to&#xA;an object.&#xA;&lt;p>&#xA;If the object has a &lt;code>getPropertyChangeListeners()&lt;/code>&#xA;method then the array returned could be a mixture of&#xA;&lt;code>PropertyChangeListener&lt;/code> and&#xA;&lt;code>PropertyChangeListenerProxy&lt;/code> objects.&#xA;&#xA;@see java.util.EventListenerProxy&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546596_730715_7315"/>
            <generalization xmi:id="_10_5_622020d_1132928321548_329054_13461" isSubstitutable="true" general="_9_5_f720368_1110473546706_749379_8863"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321548_228479_13460" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546596_730715_7315" contract="_9_5_f720368_1110473546596_119404_7313"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_999652_7201" name="DefaultPersistenceDelegate">
            <ownedComment xmi:id="_10_5_622020d_1132928306807_50494_4420" body="The &lt;code>DefaultPersistenceDelegate&lt;/code> is a concrete implementation of&#xA;the abstract &lt;code>PersistenceDelegate&lt;/code> class and&#xA;is the delegate used by default for classes about&#xA;which no information is available. The &lt;code>DefaultPersistenceDelegate&lt;/code>&#xA;provides, version resilient, public API-based persistence for&#xA;classes that follow the JavaBeans conventions without any class specific&#xA;configuration.&#xA;&lt;p>&#xA;The key assumptions are that the class has a nullary constructor&#xA;and that its state is accurately represented by matching pairs&#xA;of &quot;setter&quot; and &quot;getter&quot; methods in the order they are returned&#xA;by the Introspector.&#xA;In addition to providing code-free persistence for JavaBeans,&#xA;the &lt;code>DefaultPersistenceDelegate&lt;/code> provides a convenient means&#xA;to effect persistent storage for classes that have a constructor&#xA;that, while not nullary, simply requires some property values&#xA;as arguments.&#xA;&#xA;@see #DefaultPersistenceDelegate(String[])&#xA;@see java.beans.Introspector&#xA;&#xA;@since 1.4&#xA;&#xA;@version 1.17 05/05/04&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546596_999652_7201"/>
            <generalization xmi:id="_10_5_622020d_1132928321538_615843_13411" isSubstitutable="true" general="_9_5_f720368_1110473546596_592582_7309"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547690_766614_18431" name="rmi">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547690_350664_18466" name="dgc">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_176822_8155" name="VMID" clientDependency="_10_5_622020d_1132928321829_28104_14051" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_104640_5619" body="A VMID is a identifier that is unique across all Java virtual&#xA;machines.  VMIDs are used by the distributed garbage collector&#xA;to identify client VMs.&#xA;&#xA;@version&#x9;1.20, 05/18/04&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Peter Jones&#xA;" annotatedElement="_9_5_f720368_1110473546674_176822_8155"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_28104_14051" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_176822_8155" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_185369_8151" name="DGC" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_949719_5615" body="The DGC abstraction is used for the server side of the distributed&#xA;garbage collection algorithm. This interface contains the two&#xA;methods: dirty and clean. A dirty call is made when a remote&#xA;reference is unmarshaled in a client (the client is indicated by&#xA;its VMID). A corresponding clean call is made when no more&#xA;references to the remote reference exist in the client. A failed&#xA;dirty call must schedule a strong clean call so that the call's&#xA;sequence number can be retained in order to detect future calls&#xA;received out of order by the distributed garbage collector.&#xA;&#xA;A reference to a remote object is leased for a period of time by&#xA;the client holding the reference. The lease period starts when the&#xA;dirty call is received. It is the client's responsibility to renew&#xA;the leases, by making additional dirty calls, on the remote&#xA;references it holds before such leases expire. If the client does&#xA;not renew the lease before it expires, the distributed garbage&#xA;collector assumes that the remote object is no longer referenced by&#xA;that client.&#xA;&#xA;@author Ann Wollrath&#xA;" annotatedElement="_9_5_f720368_1110473546674_185369_8151"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_269310_14049" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_563530_8153" name="Lease" clientDependency="_10_5_622020d_1132928321829_905205_14050" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_701490_5617" body="A lease contains a unique VM identifier and a lease duration. A&#xA;Lease object is used to request and grant leases to remote object&#xA;references.&#xA;" annotatedElement="_9_5_f720368_1110473546674_563530_8153"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_905205_14050" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_563530_8153" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_917779_8249" name="UnexpectedException">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_862778_5751" body="An &lt;code>UnexpectedException&lt;/code> is thrown if the client of a&#xA;remote method call receives, as a result of the call, a checked&#xA;exception that is not among the checked exception types declared in the&#xA;&lt;code>throws&lt;/code> clause of the method in the remote interface.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_917779_8249"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_713310_14097" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_12659_8231" name="NotBoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_512582_5727" body="A &lt;code>NotBoundException&lt;/code> is thrown if an attempt&#xA;is made to lookup or unbind in the registry a name that has&#xA;no associated binding.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@since   JDK1.1&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@see     java.rmi.Naming#lookup(String)&#xA;@see     java.rmi.Naming#unbind(String)&#xA;@see     java.rmi.registry.Registry#lookup(String)&#xA;@see     java.rmi.registry.Registry#unbind(String)&#xA;" annotatedElement="_9_5_f720368_1110473546674_12659_8231"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_628942_14089" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_11662_8243" name="ServerException">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_287710_5742" body="A &lt;code>ServerException&lt;/code> is thrown as a result of a remote method&#xA;invocation when a &lt;code>RemoteException&lt;/code> is thrown while processing&#xA;the invocation on the server, either while unmarshalling the arguments or&#xA;executing the remote method itself.&#xA;&#xA;A &lt;code>ServerException&lt;/code> instance contains the original&#xA;&lt;code>RemoteException&lt;/code> that occurred as its cause.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_11662_8243"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_743818_14094" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_797740_8215" name="AccessException">
            <ownedComment xmi:id="_10_5_622020d_1132928309040_210570_5708" body="An &lt;code>AccessException&lt;/code> is thrown by certain methods of the&#xA;&lt;code>java.rmi.Naming&lt;/code> class (specifically &lt;code>bind&lt;/code>,&#xA;&lt;code>rebind&lt;/code>, and &lt;code>unbind&lt;/code>) and methods of the&#xA;&lt;code>java.rmi.activation.ActivationSystem&lt;/code> interface to&#xA;indicate that the caller does not have permission to perform the action&#xA;requested by the method call.  If the method was invoked from a non-local&#xA;host, then an &lt;code>AccessException&lt;/code> is thrown.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@see     java.rmi.Naming&#xA;@see     java.rmi.activation.ActivationSystem&#xA;" annotatedElement="_9_5_f720368_1110473546674_797740_8215"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_564382_14080" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_219881_8233" name="Remote" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_57680_5729" body="The &lt;code>Remote&lt;/code> interface serves to identify interfaces whose&#xA;methods may be invoked from a non-local virtual machine.  Any object that&#xA;is a remote object must directly or indirectly implement this interface.&#xA;Only those methods specified in a &quot;remote interface&quot;, an interface that&#xA;extends &lt;code>java.rmi.Remote&lt;/code> are available remotely.&#xA;&#xA;&lt;p>Implementation classes can implement any number of remote interfaces and&#xA;can extend other remote implementation classes.  RMI provides some&#xA;convenience classes that remote object implementations can extend which&#xA;facilitate remote object creation.  These classes are&#xA;&lt;code>java.rmi.server.UnicastRemoteObject&lt;/code> and&#xA;&lt;code>java.rmi.activation.Activatable&lt;/code>.&#xA;&#xA;&lt;p>For complete details on RMI, see the &lt;a&#xA;href=../../../guide/rmi/spec/rmiTOC.html>RMI Specification&lt;/a> which describes the RMI API and system.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@since   JDK1.1&#xA;@author  Ann Wollrath&#xA;@see&#x9;    java.rmi.server.UnicastRemoteObject&#xA;@see     java.rmi.activation.Activatable&#xA;" annotatedElement="_9_5_f720368_1110473546674_219881_8233"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_897103_8221" name="ConnectIOException">
            <ownedComment xmi:id="_10_5_622020d_1132928309040_111911_5714" body="A &lt;code>ConnectIOException&lt;/code> is thrown if an&#xA;&lt;code>IOException&lt;/code> occurs while making a connection&#xA;to the remote host for a remote method call.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_897103_8221"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_608513_14083" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_539854_8253" name="UnmarshalException">
            <ownedComment xmi:id="_10_5_622020d_1132928309070_901719_5755" body="An &lt;code>UnmarshalException&lt;/code> can be thrown while unmarshalling the&#xA;parameters or results of a remote method call if any of the following&#xA;conditions occur:&#xA;&lt;ul>&#xA;&lt;li> if an exception occurs while unmarshalling the call header&#xA;&lt;li> if the protocol for the return value is invalid&#xA;&lt;li> if a &lt;code>java.io.IOException&lt;/code> occurs unmarshalling&#xA;parameters (on the server side) or the return value (on the client side).&#xA;&lt;li> if a &lt;code>java.lang.ClassNotFoundException&lt;/code> occurs during&#xA;unmarshalling parameters or return values&#xA;&lt;li> if no skeleton can be loaded on the server-side; note that skeletons&#xA;are required in the 1.1 stub protocol, but not in the 1.2 stub protocol.&#xA;&lt;li> if the method hash is invalid (i.e., missing method).&#xA;&lt;li> if there is a failure to create a remote reference object for&#xA;a remote object's stub when it is unmarshalled.&#xA;&lt;/ul>&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_539854_8253"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_480064_14099" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_876526_8237" name="RMISecurityException">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_90652_5736" body="An &lt;code>RMISecurityException&lt;/code> signals that a security exception&#xA;has occurred during the execution of one of&#xA;&lt;code>java.rmi.RMISecurityManager&lt;/code>'s methods.&#xA;&#xA;@version 1.16, 05/18/04&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@deprecated Use {@link java.lang.SecurityException} instead.&#xA;Application code should never directly reference this class, and&#xA;&lt;code>RMISecurityManager&lt;/code> no longer throws this subclass of&#xA;&lt;code>java.lang.SecurityException&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546674_876526_8237"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_544221_14091" isSubstitutable="true" general="_9_5_f720368_1110473546612_219598_7677"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_499153_8251" name="UnknownHostException">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_509708_5753" body="An &lt;code>UnknownHostException&lt;/code> is thrown if a&#xA;&lt;code>java.net.UnknownHostException&lt;/code> occurs while creating&#xA;a connection to the remote host for a remote method call.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_499153_8251"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_415027_14098" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547690_337753_18473" name="registry">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_416297_8159" name="Registry" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_307845_5623" body="&lt;code>Registry&lt;/code> is a remote interface to a simple remote&#xA;object registry that provides methods for storing and retrieving&#xA;remote object references bound with arbitrary string names.  The&#xA;&lt;code>bind&lt;/code>, &lt;code>unbind&lt;/code>, and &lt;code>rebind&lt;/code>&#xA;methods are used to alter the name bindings in the registry, and&#xA;the &lt;code>lookup&lt;/code> and &lt;code>list&lt;/code> methods are used to&#xA;query the current name bindings.&#xA;&#xA;&lt;p>In its typical usage, a &lt;code>Registry&lt;/code> enables RMI client&#xA;bootstrapping: it provides a simple means for a client to obtain an&#xA;initial reference to a remote object.  Therefore, a registry's&#xA;remote object implementation is typically exported with a&#xA;well-known address, such as with a well-known {@link&#xA;java.rmi.server.ObjID#REGISTRY_ID ObjID} and TCP port number&#xA;(default is {@link #REGISTRY_PORT 1099}).&#xA;&#xA;&lt;p>The {@link LocateRegistry} class provides a programmatic API for&#xA;constructing a bootstrap reference to a &lt;code>Registry&lt;/code> at a&#xA;remote address (see the static &lt;code>getRegistry&lt;/code> methods)&#xA;and for creating and exporting a &lt;code>Registry&lt;/code> in the&#xA;current VM on a particular local address (see the static&#xA;&lt;code>createRegistry&lt;/code> methods).&#xA;&#xA;&lt;p>A &lt;code>Registry&lt;/code> implementation may choose to restrict&#xA;access to some or all of its methods (for example, methods that&#xA;mutate the registry's bindings may be restricted to calls&#xA;originating from the local host).  If a &lt;code>Registry&lt;/code>&#xA;method chooses to deny access for a given invocation, its&#xA;implementation may throw {@link java.rmi.AccessException}, which&#xA;(because it extends {@link java.rmi.RemoteException}) will be&#xA;wrapped in a {@link java.rmi.ServerException} when caught by a&#xA;remote client.&#xA;&#xA;&lt;p>The names used for bindings in a &lt;code>Registry&lt;/code> are pure&#xA;strings, not parsed.  A service which stores its remote reference&#xA;in a &lt;code>Registry&lt;/code> may wish to use a package name as a&#xA;prefix in the name binding to reduce the likelihood of name&#xA;collisions in the registry.&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.18, 03/12/19&#xA;@since&#x9;JDK1.1&#xA;@see&#x9;&#x9;LocateRegistry&#xA;" annotatedElement="_9_5_f720368_1110473546674_416297_8159"/>
              <generalization xmi:id="_10_5_622020d_1132928321829_540347_14052" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_693677_8161" name="RegistryHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_822615_5628" body="&lt;code>RegistryHandler&lt;/code> is an interface used internally by the RMI&#xA;runtime in previous implementation versions.  It should never be accessed&#xA;by application code.&#xA;&#xA;@version 1.14, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@deprecated no replacement&#xA;" annotatedElement="_9_5_f720368_1110473546674_693677_8161"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_117077_8157" name="LocateRegistry" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_301692_5621" body="&lt;code>LocateRegistry&lt;/code> is used to obtain a reference to a bootstrap&#xA;remote object registry on a particular host (including the local host), or&#xA;to create a remote object registry that accepts calls on a specific port.&#xA;&#xA;&lt;p> Note that a &lt;code>getRegistry&lt;/code> call does not actually make a&#xA;connection to the remote host.  It simply creates a local reference to&#xA;the remote registry and will succeed even if no registry is running on&#xA;the remote host.  Therefore, a subsequent method invocation to a remote&#xA;registry returned as a result of this method may fail.&#xA;&#xA;@version 1.33, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   JDK1.1&#xA;@see     java.rmi.registry.Registry&#xA;" annotatedElement="_9_5_f720368_1110473546674_117077_8157"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_284651_8235" name="RemoteException">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_466864_5731" body="A &lt;code>RemoteException&lt;/code> is the common superclass for a number of&#xA;communication-related exceptions that may occur during the execution of a&#xA;remote method call.  Each method of a remote interface, an interface that&#xA;extends &lt;code>java.rmi.Remote&lt;/code>, must list&#xA;&lt;code>RemoteException&lt;/code> in its throws clause.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;wrapped remote&#xA;exception&quot; that may be provided at construction time and accessed via&#xA;the public {@link #detail} field is now known as the &lt;i>cause&lt;/i>, and&#xA;may be accessed via the {@link Throwable#getCause()} method, as well as&#xA;the aforementioned &quot;legacy field.&quot;&#xA;&#xA;&lt;p>Invoking the method {@link Throwable#initCause(Throwable)} on an&#xA;instance of &lt;code>RemoteException&lt;/code> always throws {@link&#xA;IllegalStateException}.&#xA;&#xA;@version 1.24, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_284651_8235"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_651919_14090" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_50294_8227" name="Naming" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_977463_5723" body="The &lt;code>Naming&lt;/code> class provides methods for storing and obtaining&#xA;references to remote objects in a remote object registry.  Each method of&#xA;the &lt;code>Naming&lt;/code> class takes as one of its arguments a name that&#xA;is a &lt;code>java.lang.String&lt;/code> in URL format (without the&#xA;scheme component) of the form:&#xA;&#xA;&lt;PRE>&#xA;host:port/name&#xA;&lt;/PRE>&#xA;&#xA;&lt;P>where &lt;code>host&lt;/code> is the host (remote or local) where the registry&#xA;is located, &lt;code>port&lt;/code> is the port number on which the registry&#xA;accepts calls, and where &lt;code>name&lt;/code> is a simple string uninterpreted&#xA;by the registry. Both &lt;code>host&lt;/code> and &lt;code>port&lt;/code> are optional.&#xA;If &lt;code>host&lt;/code> is omitted, the host defaults to the local host. If&#xA;&lt;code>port&lt;/code> is omitted, then the port defaults to 1099, the&#xA;&quot;well-known&quot; port that RMI's registry, &lt;code>rmiregistry&lt;/code>, uses.&#xA;&#xA;&lt;P>&lt;em>Binding&lt;/em> a name for a remote object is associating or&#xA;registering a name for a remote object that can be used at a later time to&#xA;look up that remote object.  A remote object can be associated with a name&#xA;using the &lt;code>Naming&lt;/code> class's &lt;code>bind&lt;/code> or&#xA;&lt;code>rebind&lt;/code> methods.&#xA;&#xA;&lt;P>Once a remote object is registered (bound) with the RMI registry on the&#xA;local host, callers on a remote (or local) host can lookup the remote&#xA;object by name, obtain its reference, and then invoke remote methods on the&#xA;object.  A registry may be shared by all servers running on a host or an&#xA;individual server process may create and use its own registry if desired&#xA;(see &lt;code>java.rmi.registry.LocateRegistry.createRegistry&lt;/code> method&#xA;for details).&#xA;&#xA;@version 1.13, 09/05/99&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@see     java.rmi.registry.Registry&#xA;@see     java.rmi.registry.LocateRegistry&#xA;@see     java.rmi.registry.LocateRegistry#createRegistry(int)&#xA;" annotatedElement="_9_5_f720368_1110473546674_50294_8227"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547706_678280_18539" name="ParsedNamingURL" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928309050_45431_5721" body="Simple class to enable multiple URL return values.&#xA;" annotatedElement="_9_5_f720368_1110473547706_678280_18539"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_937157_8219" name="ConnectException">
            <ownedComment xmi:id="_10_5_622020d_1132928309040_521542_5712" body="A &lt;code>ConnectException&lt;/code> is thrown if a connection is refused&#xA;to the remote host for a remote method call.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_937157_8219"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_326101_14082" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_245989_8241" name="ServerError">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_994215_5740" body="A &lt;code>ServerError&lt;/code> is thrown as a result of a remote method&#xA;invocation when an &lt;code>Error&lt;/code> is thrown while processing&#xA;the invocation on the server, either while unmarshalling the arguments,&#xA;executing the remote method itself, or marshalling the return value.&#xA;&#xA;A &lt;code>ServerError&lt;/code> instance contains the original&#xA;&lt;code>Error&lt;/code> that occurred as its cause.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_245989_8241"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_146182_14093" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_304571_8239" name="RMISecurityManager">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_487473_5738" body="A subclass of {@link SecurityManager} used by RMI applications that use&#xA;downloaded code.  RMI's class loader will not download any classes from&#xA;remote locations if no security manager has been set.&#xA;&lt;code>RMISecurityManager&lt;/code> does not apply to applets, which run&#xA;under the protection of their browser's security manager.&#xA;&#xA;&lt;code>RMISecurityManager&lt;/code> implements a policy that&#xA;is no different than the policy implemented by {@link SecurityManager}.&#xA;Therefore an RMI application should use the &lt;code>SecurityManager&lt;/code>&#xA;class or another application-specific &lt;code>SecurityManager&lt;/code>&#xA;implementation instead of this class.&#xA;&#xA;&lt;p>To use a &lt;code>SecurityManager&lt;/code> in your application, add&#xA;the following statement to your code (it needs to be executed before RMI&#xA;can download code from remote hosts, so it most likely needs to appear&#xA;in the &lt;code>main&lt;/code> method of your application):&#xA;&#xA;&lt;pre>&#xA;System.setSecurityManager(new SecurityManager());&#xA;&lt;/pre>&#xA;&#xA;@version 1.31, 12/19/03&#xA;@author  Roger Riggs&#xA;@author  Peter Jones&#xA;@since JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_304571_8239"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_196572_14092" isSubstitutable="true" general="_9_5_f720368_1110473546612_475087_7679"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547690_953130_18478" name="server">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_794524_8169" name="ObjID" clientDependency="_10_5_622020d_1132928321829_73241_14055" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308950_128970_5642" body="An &lt;code>ObjID&lt;/code> is used to identify a remote object exported&#xA;to an RMI runtime.  When a remote object is exported, it is assigned&#xA;an object identifier either implicitly or explicitly, depending on&#xA;the API used to export.&#xA;&#xA;&lt;p>The {@link #ObjID()} constructor can be used to generate a unique&#xA;object identifier.  Such an &lt;code>ObjID&lt;/code> is unique over time&#xA;with respect to the host it is generated on.&#xA;&#xA;The {@link #ObjID(int)} constructor can be used to create a&#xA;&quot;well-known&quot; object identifier.  The scope of a well-known&#xA;&lt;code>ObjID&lt;/code> depends on the RMI runtime it is exported to.&#xA;&#xA;&lt;p>An &lt;code>ObjID&lt;/code> instance contains an object number (of type&#xA;&lt;code>long&lt;/code>) and an address space identifier (of type&#xA;{@link UID}).  In a unique &lt;code>ObjID&lt;/code>, the address space&#xA;identifier is unique with respect to a given host over time.  In a&#xA;well-known &lt;code>ObjID&lt;/code>, the address space identifier is&#xA;equivalent to one returned by invoking the {@link UID#UID(short)}&#xA;constructor with the value zero.&#xA;&#xA;&lt;p>If the system property &lt;code>java.rmi.server.randomIDs&lt;/code>&#xA;is defined to equal the string &lt;code>&quot;true&quot;&lt;/code> (case insensitive),&#xA;then the {@link #ObjID()} constructor will use a cryptographically&#xA;strong random number generator to choose the object number of the&#xA;returned &lt;code>ObjID&lt;/code>.&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.29, 03/12/19&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_794524_8169"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_73241_14055" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_794524_8169" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547690_269734_18483" name="InsecureRandom" visibility="private" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928321829_346414_14056" isSubstitutable="true" general="_9_5_f720368_1110473546706_483016_8911"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_648464_8197" name="ServerNotActiveException">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_99969_5681" body="An &lt;code>ServerNotActiveException&lt;/code> is an &lt;code>Exception&lt;/code>&#xA;thrown during a call to &lt;code>RemoteServer.getClientHost&lt;/code> if&#xA;the getClientHost method is called outside of servicing a remote&#xA;method call.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@see java.rmi.server.RemoteServer#getClientHost()&#xA;" annotatedElement="_9_5_f720368_1110473546674_648464_8197"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_700968_14073" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_658120_8183" name="RMIClassLoader">
              <ownedComment xmi:id="_10_5_622020d_1132928308990_580262_5667" body="&lt;code>RMIClassLoader&lt;/code> comprises static methods to support&#xA;dynamic class loading with RMI.  Included are methods for loading&#xA;classes from a network location (one or more URLs) and obtaining&#xA;the location from which an existing class should be loaded by&#xA;remote parties.  These methods are used by the RMI runtime when&#xA;marshalling and unmarshalling classes contained in the arguments&#xA;and return values of remote method calls, and they also may be&#xA;invoked directly by applications in order to mimic RMI's dynamic&#xA;class loading behavior.&#xA;&#xA;&lt;p>The implementation of the following static methods&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>{@link #loadClass(URL,String)}&#xA;&lt;li>{@link #loadClass(String,String)}&#xA;&lt;li>{@link #loadClass(String,String,ClassLoader)}&#xA;&lt;li>{@link #loadProxyClass(String,String[],ClassLoader)}&#xA;&lt;li>{@link #getClassLoader(String)}&#xA;&lt;li>{@link #getClassAnnotation(Class)}&#xA;&#xA;&lt;/ul>&#xA;&#xA;is provided by an instance of {@link RMIClassLoaderSpi}, the&#xA;service provider interface for those methods.  When one of the&#xA;methods is invoked, its behavior is to delegate to a corresponding&#xA;method on the service provider instance.  The details of how each&#xA;method delegates to the provider instance is described in the&#xA;documentation for each particular method.&#xA;&#xA;&lt;p>The service provider instance is chosen as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>If the system property&#xA;&lt;code>java.rmi.server.RMIClassLoaderSpi&lt;/code> is defined, then if&#xA;its value equals the string &lt;code>&quot;default&quot;&lt;/code>, the provider&#xA;instance will be the value returned by an invocation of the {@link&#xA;#getDefaultProviderInstance()} method, and for any other value, if&#xA;a class named with the value of the property can be loaded by the&#xA;system class loader (see {@link ClassLoader#getSystemClassLoader})&#xA;and that class is assignable to {@link RMIClassLoaderSpi} and has a&#xA;public no-argument constructor, then that constructor will be&#xA;invoked to create the provider instance.  If the property is&#xA;defined but any other of those conditions are not true, then an&#xA;unspecified &lt;code>Error&lt;/code> will be thrown to code that attempts&#xA;to use &lt;code>RMIClassLoader&lt;/code>, indicating the failure to&#xA;obtain a provider instance.&#xA;&#xA;&lt;li>If a resource named&#xA;&lt;code>META-INF/services/java.rmi.server.RMIClassLoaderSpi&lt;/code> is&#xA;visible to the system class loader, then the contents of that&#xA;resource are interpreted as a provider-configuration file, and the&#xA;first class name specified in that file is used as the provider&#xA;class name.  If a class with that name can be loaded by the system&#xA;class loader and that class is assignable to {@link&#xA;RMIClassLoaderSpi} and has a public no-argument constructor, then&#xA;that constructor will be invoked to create the provider instance.&#xA;If the resource is found but a provider cannot be instantiated as&#xA;described, then an unspecified &lt;code>Error&lt;/code> will be thrown to&#xA;code that attempts to use &lt;code>RMIClassLoader&lt;/code>, indicating&#xA;the failure to obtain a provider instance.&#xA;&#xA;&lt;li>Otherwise, the provider instance will be the value returned by&#xA;an invocation of the {@link #getDefaultProviderInstance()} method.&#xA;&#xA;&lt;/ul>&#xA;&#xA;@version&#x9;1.40, 04/05/18&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Peter Jones&#xA;@author&#x9;Laird Dornin&#xA;@see&#x9;&#x9;RMIClassLoaderSpi&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_658120_8183"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308950_553735_5655" name="RemoteObjectInvocationHandler" clientDependency="_10_5_622020d_1132928321829_195820_14059">
              <ownedComment xmi:id="_10_5_622020d_1132928308980_171869_5659" body="An implementation of the &lt;code>InvocationHandler&lt;/code> interface for&#xA;use with Java Remote Method Invocation (Java RMI).  This invocation&#xA;handler can be used in conjunction with a dynamic proxy instance as a&#xA;replacement for a pregenerated stub class.&#xA;&#xA;&lt;p>Applications are not expected to use this class directly.  A remote&#xA;object exported to use a dynamic proxy with {@link UnicastRemoteObject}&#xA;or {@link Activatable} has an instance of this class as that proxy's&#xA;invocation handler.&#xA;&#xA;@version 1.3, 03/12/19&#xA;@author  Ann Wollrath&#xA;@since   1.5&#xA;" annotatedElement="_10_5_622020d_1132928308950_553735_5655"/>
              <generalization xmi:id="_10_5_622020d_1132928321829_824197_14060" isSubstitutable="true" general="_9_5_f720368_1110473546674_438149_8175"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_195820_14059" name="" supplier="_9_5_f720368_1110473546612_149432_7531" client="_10_5_622020d_1132928308950_553735_5655" contract="_9_5_f720368_1110473546612_149432_7531"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928308950_741760_5656" name="MethodToHash_Maps" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928308980_148793_5657" body="A weak hash map, mapping classes to weak hash maps that map&#xA;method objects to method hashes.&#xA;" annotatedElement="_10_5_622020d_1132928308950_741760_5656"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_310544_8211" name="UnicastRemoteObject">
              <ownedComment xmi:id="_10_5_622020d_1132928309040_766995_5704" body="Used for exporting a remote object with JRMP and obtaining a stub&#xA;that communicates to the remote object.&#xA;&#xA;&lt;p>For the constructors and static &lt;code>exportObject&lt;/code> methods&#xA;below, the stub for a remote object being exported is obtained as&#xA;follows:&#xA;&#xA;&lt;p>&lt;ul>&#xA;&#xA;&lt;li>If the remote object is exported using the {@link&#xA;#exportObject(Remote) UnicastRemoteObject.exportObject(Remote)} method,&#xA;a stub class (typically pregenerated from the remote object's class&#xA;using the &lt;code>rmic&lt;/code> tool) is loaded and an instance of that stub&#xA;class is constructed as follows.&#xA;&lt;ul>&#xA;&#xA;&lt;li>A &quot;root class&quot; is determined as follows:  if the remote object's&#xA;class directly implements an interface that extends {@link Remote}, then&#xA;the remote object's class is the root class; otherwise, the root class is&#xA;the most derived superclass of the remote object's class that directly&#xA;implements an interface that extends &lt;code>Remote&lt;/code>.&#xA;&#xA;&lt;li>The name of the stub class to load is determined by concatenating&#xA;the binary name of the root class with the suffix &lt;code>&quot;_Stub&quot;&lt;/code>.&#xA;&#xA;&lt;li>The stub class is loaded by name using the class loader of the root&#xA;class.  The stub class must extend {@link RemoteStub} and must have a&#xA;public constructor that has one parameter, of type {@link RemoteRef}.&#xA;&#xA;&lt;li>Finally, an instance of the stub class is constructed with a&#xA;{@link RemoteRef}.&#xA;&lt;/ul>&#xA;&#xA;&lt;li>If the appropriate stub class could not be found, or the stub class&#xA;could not be loaded, or a problem occurs creating the stub instance, a&#xA;{@link StubNotFoundException} is thrown.&#xA;&#xA;&lt;p>&#xA;&lt;li>For all other means of exporting:&#xA;&lt;p>&lt;ul>&#xA;&#xA;&lt;li>If the remote object's stub class (as defined above) could not be&#xA;loaded or the system property&#xA;&lt;code>java.rmi.server.ignoreStubClasses&lt;/code> is set to&#xA;&lt;code>&quot;true&quot;&lt;/code> (case insensitive), a {@link&#xA;java.lang.reflect.Proxy} instance is constructed with the following&#xA;properties:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>The proxy's class is defined by the class loader of the remote&#xA;object's class.&#xA;&#xA;&lt;li>The proxy implements all the remote interfaces implemented by the&#xA;remote object's class.&#xA;&#xA;&lt;li>The proxy's invocation handler is a {@link&#xA;RemoteObjectInvocationHandler} instance constructed with a&#xA;{@link RemoteRef}.&#xA;&#xA;&lt;li>If the proxy could not be created, a {@link StubNotFoundException}&#xA;will be thrown.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;&lt;li>Otherwise, an instance of the remote object's stub class (as&#xA;described above) is used as the stub.&#xA;&#xA;&lt;/ul>&#xA;&lt;/ul>&#xA;&#xA;@version 1.32, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_310544_8211"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_909365_14079" isSubstitutable="true" general="_9_5_f720368_1110473546674_903278_8179"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_635484_8173" name="RemoteCall" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308950_469888_5652" body="&lt;code>RemoteCall&lt;/code> is an abstraction used solely by the RMI runtime&#xA;(in conjunction with stubs and skeletons of remote objects) to carry out a&#xA;call to a remote object.  The &lt;code>RemoteCall&lt;/code> interface is&#xA;deprecated in the Java 2 platform since it is only used by deprecated methods of&#xA;&lt;code>java.rmi.server.RemoteRef&lt;/code>.&#xA;&#xA;@version 1.19, 05/18/04&#xA;@since   JDK1.1&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@see     java.rmi.server.RemoteRef&#xA;@deprecated no replacement.&#xA;" annotatedElement="_9_5_f720368_1110473546674_635484_8173"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_64512_8177" name="RemoteRef" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308980_249809_5661" body="&lt;code>RemoteRef&lt;/code> represents the handle for a remote object. A&#xA;&lt;code>RemoteStub&lt;/code> uses a remote reference to carry out a&#xA;remote method invocation to a remote object.&#xA;&#xA;@version 1.23, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@see     java.rmi.server.RemoteStub&#xA;" annotatedElement="_9_5_f720368_1110473546674_64512_8177"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_996801_14067" isSubstitutable="true" general="_9_5_f720368_1110473546596_293067_7381"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_176882_8195" name="ServerCloneException">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_112604_5679" body="A &lt;code>ServerCloneException&lt;/code> is thrown if a remote exception occurs&#xA;during the cloning of a &lt;code>UnicastRemoteObject&lt;/code>.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;nested exception&quot;&#xA;that may be provided at construction time and accessed via the public&#xA;{@link #detail} field is now known as the &lt;i>cause&lt;/i>, and may be&#xA;accessed via the {@link Throwable#getCause()} method, as well as&#xA;the aforementioned &quot;legacy field.&quot;&#xA;&#xA;&lt;p>Invoking the method {@link Throwable#initCause(Throwable)} on an&#xA;instance of &lt;code>ServerCloneException&lt;/code> always throws {@link&#xA;IllegalStateException}.&#xA;&#xA;@version 1.20, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@see     java.rmi.server.UnicastRemoteObject#clone()&#xA;" annotatedElement="_9_5_f720368_1110473546674_176882_8195"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_287180_14072" isSubstitutable="true" general="_9_5_f720368_1110473546612_431813_7589"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_702698_8187" name="RMIClientSocketFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308990_67373_5671" body="An &lt;code>RMIClientSocketFactory&lt;/code> instance is used by the RMI runtime&#xA;in order to obtain client sockets for RMI calls.  A remote object can be&#xA;associated with an &lt;code>RMIClientSocketFactory&lt;/code> when it is&#xA;created/exported via the constructors or &lt;code>exportObject&lt;/code> methods&#xA;of &lt;code>java.rmi.server.UnicastRemoteObject&lt;/code> and&#xA;&lt;code>java.rmi.activation.Activatable&lt;/code> .&#xA;&#xA;&lt;p>An &lt;code>RMIClientSocketFactory&lt;/code> instance associated with a remote&#xA;object will be downloaded to clients when the remote object's reference is&#xA;transmitted in an RMI call.  This &lt;code>RMIClientSocketFactory&lt;/code> will&#xA;be used to create connections to the remote object for remote method calls.&#xA;&#xA;&lt;p>An &lt;code>RMIClientSocketFactory&lt;/code> instance can also be associated&#xA;with a remote object registry so that clients can use custom socket&#xA;communication with a remote object registry.&#xA;&#xA;&lt;p>An implementation of this interface should be serializable and&#xA;should implement {@link Object#equals} to return &lt;code>true&lt;/code> when&#xA;passed an instance that represents the same (functionally equivalent)&#xA;client socket factory, and &lt;code>false&lt;/code> otherwise (and it should also&#xA;implement {@link Object#hashCode} consistently with its&#xA;&lt;code>Object.equals&lt;/code> implementation).&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   1.2&#xA;@see     java.rmi.server.UnicastRemoteObject&#xA;@see     java.rmi.activation.Activatable&#xA;@see     java.rmi.registry.LocateRegistry&#xA;" annotatedElement="_9_5_f720368_1110473546674_702698_8187"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_798496_8193" name="RMISocketFactory" clientDependency="_10_5_622020d_1132928321839_972181_14070 _10_5_622020d_1132928321839_376570_14071" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_775429_5677" body="An &lt;code>RMISocketFactory&lt;/code> instance is used by the RMI runtime&#xA;in order to obtain client and server sockets for RMI calls.  An&#xA;application may use the &lt;code>setSocketFactory&lt;/code> method to&#xA;request that the RMI runtime use its socket factory instance&#xA;instead of the default implementation.&lt;p>&#xA;&#xA;The default socket factory implementation used goes through a&#xA;three-tiered approach to creating client sockets. First, a direct&#xA;socket connection to the remote VM is attempted.  If that fails&#xA;(due to a firewall), the runtime uses HTTP with the explicit port&#xA;number of the server.  If the firewall does not allow this type of&#xA;communication, then HTTP to a cgi-bin script on the server is used&#xA;to POST the RMI call.&lt;p>&#xA;&#xA;@version 1.21, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_798496_8193"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321839_972181_14070" name="" supplier="_9_5_f720368_1110473546674_702698_8187" client="_9_5_f720368_1110473546674_798496_8193" contract="_9_5_f720368_1110473546674_702698_8187"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321839_376570_14071" name="" supplier="_9_5_f720368_1110473546674_429907_8191" client="_9_5_f720368_1110473546674_798496_8193" contract="_9_5_f720368_1110473546674_429907_8191"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_623871_8181" name="RemoteStub" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308980_221774_5665" body="The &lt;code>RemoteStub&lt;/code> class is the common superclass to client&#xA;stubs and provides the framework to support a wide range of remote&#xA;reference semantics.  Stub objects are surrogates that support&#xA;exactly the same set of remote interfaces defined by the actual&#xA;implementation of the remote object.&#xA;&#xA;@version 1.21, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_623871_8181"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_48756_14069" isSubstitutable="true" general="_9_5_f720368_1110473546674_438149_8175"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_732470_8185" name="RMIClassLoaderSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308990_20017_5669" body="&lt;code>RMIClassLoaderSpi&lt;/code> is the service provider interface for&#xA;&lt;code>RMIClassLoader&lt;/code>.&#xA;&#xA;In particular, an &lt;code>RMIClassLoaderSpi&lt;/code> instance provides an&#xA;implementation of the following static methods of&#xA;&lt;code>RMIClassLoader&lt;/code>:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>{@link RMIClassLoader#loadClass(URL,String)}&#xA;&lt;li>{@link RMIClassLoader#loadClass(String,String)}&#xA;&lt;li>{@link RMIClassLoader#loadClass(String,String,ClassLoader)}&#xA;&lt;li>{@link RMIClassLoader#loadProxyClass(String,String[],ClassLoader)}&#xA;&lt;li>{@link RMIClassLoader#getClassLoader(String)}&#xA;&lt;li>{@link RMIClassLoader#getClassAnnotation(Class)}&#xA;&#xA;&lt;/ul>&#xA;&#xA;When one of those methods is invoked, its behavior is to delegate&#xA;to a corresponding method on an instance of this class.&#xA;The details of how each method delegates to the provider instance is&#xA;described in the documentation for each particular method.&#xA;See the documentation for {@link RMIClassLoader} for a description&#xA;of how a provider instance is chosen.&#xA;&#xA;@version&#x9;1.14, 04/05/05&#xA;@author&#x9;Peter Jones&#xA;@author&#x9;Laird Dornin&#xA;@see&#x9;&#x9;RMIClassLoader&#xA;@since&#x9;JDK1.4&#xA;" annotatedElement="_9_5_f720368_1110473546674_732470_8185"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_632655_8167" name="LogStream">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_787187_5640" body="&lt;code>LogStream&lt;/code> provides a mechanism for logging errors that are&#xA;of possible interest to those monitoring a system.&#xA;&#xA;@version 1.20, 05/18/04&#xA;@author  Ann Wollrath (lots of code stolen from Ken Arnold)&#xA;@since   JDK1.1&#xA;@deprecated no replacement&#xA;" annotatedElement="_9_5_f720368_1110473546674_632655_8167"/>
              <generalization xmi:id="_10_5_622020d_1132928321829_434770_14054" isSubstitutable="true" general="_9_5_f720368_1110473546612_482204_7467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_493406_8171" name="Operation">
              <ownedComment xmi:id="_10_5_622020d_1132928308950_854797_5647" body="An &lt;code>Operation&lt;/code> contains a description of a Java method.&#xA;&lt;code>Operation&lt;/code> objects were used in JDK1.1 version stubs and&#xA;skeletons. The &lt;code>Operation&lt;/code> class is not needed for 1.2 style&#xA;stubs (stubs generated with &lt;code>rmic -v1.2&lt;/code>); hence, this class&#xA;is deprecated.&#xA;&#xA;@version 1.17, 05/18/04&#xA;@since JDK1.1&#xA;@deprecated no replacement&#xA;" annotatedElement="_9_5_f720368_1110473546674_493406_8171"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_429907_8191" name="RMIServerSocketFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_743708_5675" body="An &lt;code>RMIServerSocketFactory&lt;/code> instance is used by the RMI runtime&#xA;in order to obtain server sockets for RMI calls.  A remote object can be&#xA;associated with an &lt;code>RMIServerSocketFactory&lt;/code> when it is&#xA;created/exported via the constructors or &lt;code>exportObject&lt;/code> methods&#xA;of &lt;code>java.rmi.server.UnicastRemoteObject&lt;/code> and&#xA;&lt;code>java.rmi.activation.Activatable&lt;/code> .&#xA;&#xA;&lt;p>An &lt;code>RMIServerSocketFactory&lt;/code> instance associated with a remote&#xA;object is used to obtain the &lt;code>ServerSocket&lt;/code> used to accept&#xA;incoming calls from clients.&#xA;&#xA;&lt;p>An &lt;code>RMIServerSocketFactory&lt;/code> instance can also be associated&#xA;with a remote object registry so that clients can use custom socket&#xA;communication with a remote object registry.&#xA;&#xA;&lt;p>An implementation of this interface&#xA;should implement {@link Object#equals} to return &lt;code>true&lt;/code> when&#xA;passed an instance that represents the same (functionally equivalent)&#xA;server socket factory, and &lt;code>false&lt;/code> otherwise (and it should also&#xA;implement {@link Object#hashCode} consistently with its&#xA;&lt;code>Object.equals&lt;/code> implementation).&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   1.2&#xA;@see     java.rmi.server.UnicastRemoteObject&#xA;@see     java.rmi.activation.Activatable&#xA;@see     java.rmi.registry.LocateRegistry&#xA;" annotatedElement="_9_5_f720368_1110473546674_429907_8191"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_792577_8203" name="SkeletonMismatchException">
              <ownedComment xmi:id="_10_5_622020d_1132928309010_674883_5693" body="This exception is thrown when a call is received that does not&#xA;match the available skeleton.  It indicates either that the&#xA;remote method names or signatures in this interface have changed or&#xA;that the stub class used to make the call and the skeleton&#xA;receiving the call were not generated by the same version of&#xA;the stub compiler (&lt;code>rmic&lt;/code>).&#xA;&#xA;@version 1.15, 05/18/04&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@deprecated no replacement.  Skeletons are no longer required for remote&#xA;method calls in the Java 2 platform v1.2 and greater.&#xA;" annotatedElement="_9_5_f720368_1110473546674_792577_8203"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_452032_14075" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_903278_8179" name="RemoteServer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308980_83019_5663" body="The &lt;code>RemoteServer&lt;/code> class is the common superclass to server&#xA;implementations and provides the framework to support a wide range&#xA;of remote reference semantics.  Specifically, the functions needed&#xA;to create and export remote objects (i.e. to make them remotely&#xA;available) are provided abstractly by &lt;code>RemoteServer&lt;/code> and&#xA;concretely by its subclass(es).&#xA;&#xA;@version 1.32, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_903278_8179"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_494426_14068" isSubstitutable="true" general="_9_5_f720368_1110473546674_438149_8175"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_10883_8163" name="ExportException">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_924406_5630" body="An &lt;code>ExportException&lt;/code> is a &lt;code>RemoteException&lt;/code>&#xA;thrown if an attempt to export a remote object fails.  A remote object is&#xA;exported via the constructors and &lt;code>exportObject&lt;/code> methods of&#xA;&lt;code>java.rmi.server.UnicastRemoteObject&lt;/code> and&#xA;&lt;code>java.rmi.activation.Activatable&lt;/code>.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@see java.rmi.server.UnicastRemoteObject&#xA;@see java.rmi.activation.Activatable&#xA;" annotatedElement="_9_5_f720368_1110473546674_10883_8163"/>
              <generalization xmi:id="_10_5_622020d_1132928321829_849507_14053" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_588185_8199" name="ServerRef" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_636059_5683" body="A ServerRef represents the server-side handle for a remote object&#xA;implementation.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_588185_8199"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_521747_14074" isSubstitutable="true" general="_9_5_f720368_1110473546674_64512_8177"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_773928_8201" name="Skeleton" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309000_495003_5688" body="The &lt;code>Skeleton&lt;/code> interface is used solely by the RMI&#xA;implementation.&#xA;&#xA;&lt;p> Every version 1.1 (and version 1.1 compatible skeletons generated in&#xA;1.2 using &lt;code>rmic -vcompat&lt;/code>) skeleton class generated by the rmic&#xA;stub compiler implements this interface. A skeleton for a remote object is&#xA;a server-side entity that dispatches calls to the actual remote object&#xA;implementation.&#xA;&#xA;@version 1.19, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@deprecated no replacement.  Skeletons are no longer required for remote&#xA;method calls in the Java 2 platform v1.2 and greater.&#xA;" annotatedElement="_9_5_f720368_1110473546674_773928_8201"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_893051_8209" name="UID" clientDependency="_10_5_622020d_1132928321839_968221_14078" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309020_957710_5702" body="A &lt;code>UID&lt;/code> represents an identifier that is unique over time&#xA;with respect to the host it is generated on, or one of 2&lt;sup>16&lt;/sup>&#xA;&quot;well-known&quot; identifiers.&#xA;&#xA;&lt;p>The {@link #UID()} constructor can be used to generate an&#xA;identifier that is unique over time with respect to the host it is&#xA;generated on.  The {@link #UID(short)} constructor can be used to&#xA;create one of 2&lt;sup>16&lt;/sup> well-known identifiers.&#xA;&#xA;&lt;p>A &lt;code>UID&lt;/code> instance contains three primitive values:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>unique&lt;/code>, an &lt;code>int&lt;/code> that uniquely identifies&#xA;the VM that this &lt;code>UID&lt;/code> was generated in, with respect to its&#xA;host and at the time represented by the &lt;code>time&lt;/code> value (an&#xA;example implementation of the &lt;code>unique&lt;/code> value would be a&#xA;process identifier),&#xA;or zero for a well-known &lt;code>UID&lt;/code>&#xA;&lt;li>&lt;code>time&lt;/code>, a &lt;code>long&lt;/code> equal to a time (as returned&#xA;by {@link System#currentTimeMillis()}) at which the VM that this&#xA;&lt;code>UID&lt;/code> was generated in was alive,&#xA;or zero for a well-known &lt;code>UID&lt;/code>&#xA;&lt;li>&lt;code>count&lt;/code>, a &lt;code>short&lt;/code> to distinguish&#xA;&lt;code>UID&lt;/code>s generated in the same VM with the same&#xA;&lt;code>time&lt;/code> value&#xA;&lt;/ul>&#xA;&#xA;&lt;p>An independently generated &lt;code>UID&lt;/code> instance is unique&#xA;over time with respect to the host it is generated on as long as&#xA;the host requires more than one millisecond to reboot and its system&#xA;clock is never set backward.  A globally unique identifier can be&#xA;constructed by pairing a &lt;code>UID&lt;/code> instance with a unique host&#xA;identifier, such as an IP address.&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.22, 03/12/19&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_893051_8209"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321839_968221_14078" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_893051_8209" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_446137_8189" name="RMIFailureHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308990_499560_5673" body="An &lt;code>RMIFailureHandler&lt;/code> can be registered via the&#xA;&lt;code>RMISocketFactory.setFailureHandler&lt;/code> call. The&#xA;&lt;code>failure&lt;/code> method of the handler is invoked when the RMI&#xA;runtime is unable to create a &lt;code>ServerSocket&lt;/code> to listen&#xA;for incoming calls. The &lt;code>failure&lt;/code> method returns a boolean&#xA;indicating whether the runtime should attempt to re-create the&#xA;&lt;code>ServerSocket&lt;/code>.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;@(#)RMIFailureHandler.java&#x9;1.11, 03/12/19&#xA;@since &#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_446137_8189"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_438149_8175" name="RemoteObject" clientDependency="_10_5_622020d_1132928321829_586101_14057 _10_5_622020d_1132928321829_303125_14058" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308950_298811_5654" body="The &lt;code>RemoteObject&lt;/code> class implements the&#xA;&lt;code>java.lang.Object&lt;/code> behavior for remote objects.&#xA;&lt;code>RemoteObject&lt;/code> provides the remote semantics of Object by&#xA;implementing methods for hashCode, equals, and toString.&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@author&#x9;Laird Dornin&#xA;@author&#x9;Peter Jones&#xA;@version&#x9;1.33, 03/12/19&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_438149_8175"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_586101_14057" name="" supplier="_9_5_f720368_1110473546674_219881_8233" client="_9_5_f720368_1110473546674_438149_8175" contract="_9_5_f720368_1110473546674_219881_8233"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321829_303125_14058" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_438149_8175" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_255439_8207" name="SocketSecurityException">
              <ownedComment xmi:id="_10_5_622020d_1132928309010_645934_5700" body="An obsolete subclass of {@link ExportException}.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_255439_8207"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_429360_14077" isSubstitutable="true" general="_9_5_f720368_1110473546674_10883_8163"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_545853_8205" name="SkeletonNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928309010_525249_5698" body="A &lt;code>SkeletonNotFoundException&lt;/code> is thrown if the&#xA;&lt;code>Skeleton&lt;/code> corresponding to the remote object being exported is&#xA;not found.  Skeletons are not required in the Java 2 platform, so this exception is&#xA;never thrown.&#xA;&#xA;@version 1.16, 05/18/04&#xA;@since   JDK1.1&#xA;@deprecated no replacement.  Skeletons are no longer required for remote&#xA;method calls in the Java 2 platform v1.2 and greater.&#xA;" annotatedElement="_9_5_f720368_1110473546674_545853_8205"/>
              <generalization xmi:id="_10_5_622020d_1132928321839_677808_14076" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_802478_8165" name="LoaderHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308940_541757_5635" body="&lt;code>LoaderHandler&lt;/code> is an interface used internally by the RMI&#xA;runtime in previous implementation versions.  It should never be accessed&#xA;by application code.&#xA;&#xA;@version 1.18, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;&#xA;@deprecated no replacement&#xA;" annotatedElement="_9_5_f720368_1110473546674_802478_8165"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_425078_8213" name="Unreferenced" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928309040_963619_5706" body="A remote object implementation should implement the&#xA;&lt;code>Unreferenced&lt;/code> interface to receive notification when there are&#xA;no more clients that reference that remote object.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_425078_8213"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_555971_8223" name="MarshalException">
            <ownedComment xmi:id="_10_5_622020d_1132928309040_361566_5716" body="A &lt;code>MarshalException&lt;/code> is thrown if a&#xA;&lt;code>java.io.IOException&lt;/code> occurs while marshalling the remote call&#xA;header, arguments or return value for a remote method call.  A&#xA;&lt;code>MarshalException&lt;/code> is also thrown if the receiver does not&#xA;support the protocol version of the sender.&#xA;&#xA;&lt;p>If a &lt;code>MarshalException&lt;/code> occurs during a remote method call,&#xA;the call may or may not have reached the server.  If the call did reach the&#xA;server, parameters may have been deserialized.  A call may not be&#xA;retransmitted after a &lt;code>MarshalException&lt;/code> and reliably preserve&#xA;&quot;at most once&quot; call semantics.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546674_555971_8223"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_678495_14084" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_519203_8217" name="AlreadyBoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928309040_456012_5710" body="An &lt;code>AlreadyBoundException&lt;/code> is thrown if an attempt&#xA;is made to bind an object in the registry to a name that already&#xA;has an associated binding.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@since   JDK1.1&#xA;@author  Ann Wollrath&#xA;@author  Roger Riggs&#xA;@see     java.rmi.Naming#bind(String, java.rmi.Remote)&#xA;@see     java.rmi.registry.Registry#bind(String, java.rmi.Remote)&#xA;" annotatedElement="_9_5_f720368_1110473546674_519203_8217"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_293146_14081" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_717935_8225" name="MarshalledObject" clientDependency="_10_5_622020d_1132928321839_413095_14085" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_10757_5720" body="A &lt;code>MarshalledObject&lt;/code> contains a byte stream with the serialized&#xA;representation of an object given to its constructor.  The &lt;code>get&lt;/code>&#xA;method returns a new copy of the original object, as deserialized from&#xA;the contained byte stream.  The contained object is serialized and&#xA;deserialized with the same serialization semantics used for marshaling&#xA;and unmarshaling parameters and return values of RMI calls:  When the&#xA;serialized form is created:&#xA;&#xA;&lt;ul>&#xA;&lt;li> classes are annotated with a codebase URL from where the class&#xA;can be loaded (if available), and&#xA;&lt;li> any remote object in the &lt;code>MarshalledObject&lt;/code> is&#xA;represented by a serialized instance of its stub.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>When copy of the object is retrieved (via the &lt;code>get&lt;/code> method),&#xA;if the class is not available locally, it will be loaded from the&#xA;appropriate location (specified the URL annotated with the class descriptor&#xA;when the class was serialized.&#xA;&#xA;&lt;p>&lt;code>MarshalledObject&lt;/code> facilitates passing objects in RMI calls&#xA;that are not automatically deserialized immediately by the remote peer.&#xA;&#xA;@version 1.33, 12/19/03&#xA;@author  Ann Wollrath&#xA;@author  Peter Jones&#xA;@since   1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_717935_8225"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321839_413095_14085" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_717935_8225" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547706_803479_18532" name="MarshalledObjectOutputStream" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928309040_46325_5717" body="This class is used to marshal objects for&#xA;&lt;code>MarshalledObject&lt;/code>.  It places the location annotations&#xA;to one side so that two &lt;code>MarshalledObject&lt;/code>s can be&#xA;compared for equality if they differ only in location&#xA;annotations.  Objects written using this stream should be read back&#xA;from a &lt;code>MarshalledObjectInputStream&lt;/code>.&#xA;&#xA;@see java.rmi.MarshalledObject&#xA;@see MarshalledObjectInputStream&#xA;" annotatedElement="_9_5_f720368_1110473547706_803479_18532"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547706_190288_18535" name="MarshalledObjectInputStream" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928309040_576928_5718" body="The counterpart to &lt;code>MarshalledObjectOutputStream&lt;/code>.&#xA;&#xA;@see MarshalledObjectOutputStream&#xA;" annotatedElement="_9_5_f720368_1110473547706_190288_18535"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547690_148481_18432" name="activation">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_401758_8149" name="UnknownObjectException">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_195679_5613" body="An &lt;code>UnknownObjectException&lt;/code> is thrown by methods of classes and&#xA;interfaces in the &lt;code>java.rmi.activation&lt;/code> package when the&#xA;&lt;code>ActivationID&lt;/code> parameter to the method is determined to be&#xA;invalid.  An &lt;code>ActivationID&lt;/code> is invalid if it is not currently&#xA;known by the &lt;code>ActivationSystem&lt;/code>.  An &lt;code>ActivationID&lt;/code>&#xA;is obtained by the &lt;code>ActivationSystem.registerObject&lt;/code> method.&#xA;An &lt;code>ActivationID&lt;/code> is also obtained during the&#xA;&lt;code>Activatable.register&lt;/code> call.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   1.2&#xA;@see     java.rmi.activation.Activatable&#xA;@see     java.rmi.activation.ActivationGroup&#xA;@see     java.rmi.activation.ActivationID&#xA;@see     java.rmi.activation.ActivationMonitor&#xA;@see     java.rmi.activation.ActivationSystem&#xA;@see     java.rmi.activation.Activator&#xA;" annotatedElement="_9_5_f720368_1110473546674_401758_8149"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_65653_14048" isSubstitutable="true" general="_9_5_f720368_1110473546674_118845_8129"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_417327_8139" name="ActivationInstantiator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_143292_5603" body="An &lt;code>ActivationInstantiator&lt;/code> is responsible for creating&#xA;instances of &quot;activatable&quot; objects. A concrete subclass of&#xA;&lt;code>ActivationGroup&lt;/code> implements the &lt;code>newInstance&lt;/code>&#xA;method to handle creating objects within the group.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.15, 12/19/03&#xA;@see &#x9;ActivationGroup&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_417327_8139"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_221816_14043" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_751507_8123" name="Activatable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308910_817747_5586" body="The &lt;code>Activatable&lt;/code> class provides support for remote&#xA;objects that require persistent access over time and that&#xA;can be activated by the system.&#xA;&#xA;&lt;p>For the constructors and static &lt;code>exportObject&lt;/code> methods,&#xA;the stub for a remote object being exported is obtained as described in&#xA;{@link java.rmi.server.UnicastRemoteObject}.&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@version&#x9;1.34, 03/12/19&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_751507_8123"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_429645_14033" isSubstitutable="true" general="_9_5_f720368_1110473546674_903278_8179"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_821738_8125" name="ActivateFailedException">
              <ownedComment xmi:id="_10_5_622020d_1132928308910_492858_5588" body="This exception is thrown by the RMI runtime when activation&#xA;fails during a remote call to an activatable object.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.10, 12/19/03&#xA;@since &#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_821738_8125"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_2256_14034" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_118845_8129" name="ActivationException">
              <ownedComment xmi:id="_10_5_622020d_1132928308910_748058_5592" body="General exception used by the activation interfaces.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;detail exception&quot;&#xA;that may be provided at construction time and accessed via the public&#xA;{@link #detail} field is now known as the &lt;i>cause&lt;/i>, and may be&#xA;accessed via the {@link Throwable#getCause()} method, as well as&#xA;the aforementioned &quot;legacy field.&quot;&#xA;&#xA;&lt;p>Invoking the method {@link Throwable#initCause(Throwable)} on an&#xA;instance of &lt;code>ActivationException&lt;/code> always throws {@link&#xA;IllegalStateException}.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.24, 12/19/03&#xA;@since &#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_118845_8129"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_153744_14036" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_271572_8145" name="Activator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_428950_5609" body="The &lt;code>Activator&lt;/code> facilitates remote object activation. A&#xA;&quot;faulting&quot; remote reference calls the activator's&#xA;&lt;code>activate&lt;/code> method to obtain a &quot;live&quot; reference to a&#xA;&quot;activatable&quot; remote object. Upon receiving a request for activation,&#xA;the activator looks up the activation descriptor for the activation&#xA;identifier, &lt;code>id&lt;/code>, determines the group in which the&#xA;object should be activated initiates object re-creation via the&#xA;group's &lt;code>ActivationInstantiator&lt;/code> (via a call to the&#xA;&lt;code>newInstance&lt;/code> method). The activator initiates the&#xA;execution of activation groups as necessary. For example, if an&#xA;activation group for a specific group identifier is not already&#xA;executing, the activator initiates the execution of a VM for the&#xA;group. &lt;p>&#xA;&#xA;The &lt;code>Activator&lt;/code> works closely with&#xA;&lt;code>ActivationSystem&lt;/code>, which provides a means for registering&#xA;groups and objects within those groups, and &lt;code>ActivationMonitor&lt;/code>,&#xA;which recives information about active and inactive objects and inactive&#xA;groups. &lt;p>&#xA;&#xA;The activator is responsible for monitoring and detecting when&#xA;activation groups fail so that it can remove stale remote references&#xA;to groups and active object's within those groups.&lt;p>&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.18, 12/19/03&#xA;@see &#x9;ActivationInstantiator&#xA;@see&#x9;&#x9;ActivationGroupDesc&#xA;@see&#x9;&#x9;ActivationGroupID&#xA;@since &#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_271572_8145"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_944728_14046" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_727641_8141" name="ActivationMonitor" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_60080_5605" body="An &lt;code>ActivationMonitor&lt;/code> is specific to an&#xA;&lt;code>ActivationGroup&lt;/code> and is obtained when a group is&#xA;reported active via a call to&#xA;&lt;code>ActivationSystem.activeGroup&lt;/code> (this is done&#xA;internally). An activation group is responsible for informing its&#xA;&lt;code>ActivationMonitor&lt;/code> when either: its objects become active or&#xA;inactive, or the group as a whole becomes inactive.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.15, 12/19/03&#xA;@see&#x9;&#x9;Activator&#xA;@see&#x9;&#x9;ActivationSystem&#xA;@see &#x9;ActivationGroup&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_727641_8141"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_830444_14044" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_590538_8137" name="ActivationID" clientDependency="_10_5_622020d_1132928321819_643704_14042">
              <ownedComment xmi:id="_10_5_622020d_1132928308920_461719_5601" body="Activation makes use of special identifiers to denote remote&#xA;objects that can be activated over time. An activation identifier&#xA;(an instance of the class &lt;code>ActivationID&lt;/code>) contains several&#xA;pieces of information needed for activating an object:&#xA;&lt;ul>&#xA;&lt;li> a remote reference to the object's activator (a {@link&#xA;java.rmi.server.RemoteRef RemoteRef}&#xA;instance), and&#xA;&lt;li> a unique identifier (a {@link java.rmi.server.UID UID}&#xA;instance) for the object. &lt;/ul> &lt;p>&#xA;&#xA;An activation identifier for an object can be obtained by registering&#xA;an object with the activation system. Registration is accomplished&#xA;in a few ways: &lt;ul>&#xA;&lt;li>via the &lt;code>Activatable.register&lt;/code> method&#xA;&lt;li>via the first &lt;code>Activatable&lt;/code> constructor (that takes&#xA;three arguments and both registers and exports the object, and&#xA;&lt;li>via the first &lt;code>Activatable.exportObject&lt;/code> method&#xA;that takes the activation descriptor, object and port as arguments;&#xA;this method both registers and exports the object. &lt;/ul>&#xA;&#xA;@author&#x9;Ann Wollrath&#xA;@version&#x9;1.28, 03/12/19&#xA;@see&#x9;&#x9;Activatable&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_590538_8137"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321819_643704_14042" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_590538_8137" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_864691_8135" name="ActivationGroupID" clientDependency="_10_5_622020d_1132928321819_857874_14041">
              <ownedComment xmi:id="_10_5_622020d_1132928308920_135185_5599" body="The identifier for a registered activation group serves several&#xA;purposes: &lt;ul>&#xA;&lt;li>identifies the group uniquely within the activation system, and&#xA;&lt;li>contains a reference to the group's activation system so that the&#xA;group can contact its activation system when necessary.&lt;/ul>&lt;p>&#xA;&#xA;The &lt;code>ActivationGroupID&lt;/code> is returned from the call to&#xA;&lt;code>ActivationSystem.registerGroup&lt;/code> and is used to identify&#xA;the group within the activation system. This group id is passed&#xA;as one of the arguments to the activation group's special constructor&#xA;when an activation group is created/recreated.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.15, 12/19/03&#xA;@see &#x9;ActivationGroup&#xA;@see&#x9;&#x9;ActivationGroupDesc&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_864691_8135"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321819_857874_14041" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_864691_8135" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_539166_8127" name="ActivationDesc" clientDependency="_10_5_622020d_1132928321819_576569_14035" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308910_605933_5590" body="An activation descriptor contains the information necessary to&#xA;activate an object: &lt;ul>&#xA;&lt;li> the object's group identifier,&#xA;&lt;li> the object's fully-qualified class name,&#xA;&lt;li> the object's code location (the location of the class), a codebase URL&#xA;path,&#xA;&lt;li> the object's restart &quot;mode&quot;, and,&#xA;&lt;li> a &quot;marshalled&quot; object that can contain object specific&#xA;initialization data. &lt;/ul>&#xA;&#xA;&lt;p>A descriptor registered with the activation system can be used to&#xA;recreate/activate the object specified by the descriptor. The&#xA;&lt;code>MarshalledObject&lt;/code> in the object's descriptor is passed&#xA;as the second argument to the remote object's constructor for&#xA;object to use during reinitialization/activation.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.27, 12/19/03&#xA;@since &#x9;1.2&#xA;@see         java.rmi.activation.Activatable&#xA;" annotatedElement="_9_5_f720368_1110473546674_539166_8127"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321819_576569_14035" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_539166_8127" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_244072_8133" name="ActivationGroupDesc" clientDependency="_10_5_622020d_1132928321819_718243_14039" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308920_49020_5597" body="An activation group descriptor contains the information necessary to&#xA;create/recreate an activation group in which to activate objects.&#xA;Such a descriptor contains: &lt;ul>&#xA;&lt;li> the group's class name,&#xA;&lt;li> the group's code location (the location of the group's class), and&#xA;&lt;li> a &quot;marshalled&quot; object that can contain group specific&#xA;initialization data. &lt;/ul> &lt;p>&#xA;&#xA;The group's class must be a concrete subclass of&#xA;&lt;code>ActivationGroup&lt;/code>. A subclass of&#xA;&lt;code>ActivationGroup&lt;/code> is created/recreated via the&#xA;&lt;code>ActivationGroup.createGroup&lt;/code> static method that invokes&#xA;a special constructor that takes two arguments: &lt;ul>&#xA;&#xA;&lt;li> the group's &lt;code>ActivationGroupID&lt;/code>, and&#xA;&lt;li> the group's initialization data (in a&#xA;&lt;code>java.rmi.MarshalledObject&lt;/code>)&lt;/ul>&lt;p>&#xA;&#xA;@version&#x9;1.28, 12/19/03&#xA;@author&#x9;Ann Wollrath&#xA;@since&#x9;1.2&#xA;@see&#x9;&#x9;ActivationGroup&#xA;@see&#x9;&#x9;ActivationGroupID&#xA;" annotatedElement="_9_5_f720368_1110473546674_244072_8133"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321819_718243_14039" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546674_244072_8133" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547690_200869_18439" name="CommandEnvironment" clientDependency="_10_5_622020d_1132928321819_343227_14040">
                <ownedComment xmi:id="_10_5_622020d_1132928308920_604490_5595" body="Startup options for ActivationGroup implementations.&#xA;&#xA;This class allows overriding default system properties and&#xA;specifying implementation-defined options for ActivationGroups.&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547690_200869_18439"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928321819_343227_14040" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473547690_200869_18439" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_189604_8147" name="UnknownGroupException">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_438096_5611" body="An &lt;code>UnknownGroupException&lt;/code> is thrown by methods of classes and&#xA;interfaces in the &lt;code>java.rmi.activation&lt;/code> package when the&#xA;&lt;code>ActivationGroupID&lt;/code> parameter to the method is determined to be&#xA;invalid, i.e., not known by the &lt;code>ActivationSystem&lt;/code>.  An&#xA;&lt;code>UnknownGroupException&lt;/code> is also thrown if the&#xA;&lt;code>ActivationGroupID&lt;/code> in an &lt;code>ActivationDesc&lt;/code> refers to&#xA;a group that is not registered with the &lt;code>ActivationSystem&lt;/code>&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   1.2&#xA;@see     java.rmi.activation.Activatable&#xA;@see     java.rmi.activation.ActivationGroup&#xA;@see     java.rmi.activation.ActivationGroupID&#xA;@see     java.rmi.activation.ActivationMonitor&#xA;@see     java.rmi.activation.ActivationSystem&#xA;" annotatedElement="_9_5_f720368_1110473546674_189604_8147"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_52909_14047" isSubstitutable="true" general="_9_5_f720368_1110473546674_118845_8129"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_203596_8131" name="ActivationGroup" clientDependency="_10_5_622020d_1132928321819_730334_14037" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308920_607737_5594" body="An &lt;code>ActivationGroup&lt;/code> is responsible for creating new&#xA;instances of &quot;activatable&quot; objects in its group, informing its&#xA;&lt;code>ActivationMonitor&lt;/code> when either: its object's become&#xA;active or inactive, or the group as a whole becomes inactive. &lt;p>&#xA;&#xA;An &lt;code>ActivationGroup&lt;/code> is &lt;i>initially&lt;/i> created in one&#xA;of several ways: &lt;ul>&#xA;&lt;li>as a side-effect of creating an &lt;code>ActivationDesc&lt;/code>&#xA;without an explicit &lt;code>ActivationGroupID&lt;/code> for the&#xA;first activatable object in the group, or&#xA;&lt;li>via the &lt;code>ActivationGroup.createGroup&lt;/code> method&#xA;&lt;li>as a side-effect of activating the first object in a group&#xA;whose &lt;code>ActivationGroupDesc&lt;/code> was only registered.&lt;/ul>&lt;p>&#xA;&#xA;Only the activator can &lt;i>recreate&lt;/i> an&#xA;&lt;code>ActivationGroup&lt;/code>.  The activator spawns, as needed, a&#xA;separate VM (as a child process, for example) for each registered&#xA;activation group and directs activation requests to the appropriate&#xA;group. It is implementation specific how VMs are spawned. An&#xA;activation group is created via the&#xA;&lt;code>ActivationGroup.createGroup&lt;/code> static method. The&#xA;&lt;code>createGroup&lt;/code> method has two requirements on the group&#xA;to be created: 1) the group must be a concrete subclass of&#xA;&lt;code>ActivationGroup&lt;/code>, and 2) the group must have a&#xA;constructor that takes two arguments:&#xA;&#xA;&lt;ul>&#xA;&lt;li> the group's &lt;code>ActivationGroupID&lt;/code>, and&#xA;&lt;li> the group's initialization data (in a&#xA;&lt;code>java.rmi.MarshalledObject&lt;/code>)&lt;/ul>&lt;p>&#xA;&#xA;When created, the default implementation of&#xA;&lt;code>ActivationGroup&lt;/code> will override the system properties&#xA;with the properties requested when its&#xA;&lt;code>ActivationGroupDesc&lt;/code> was created, and will set a&#xA;&lt;code>java.rmi.RMISecurityManager&lt;/code> as the default system&#xA;security manager.  If your application requires specific properties&#xA;to be set when objects are activated in the group, the application&#xA;should create a special &lt;code>Properties&lt;/code> object containing&#xA;these properties, then create an &lt;code>ActivationGroupDesc&lt;/code>&#xA;with the &lt;code>Properties&lt;/code> object, and use&#xA;&lt;code>ActivationGroup.createGroup&lt;/code> before creating any&#xA;&lt;code>ActivationDesc&lt;/code>s (before the default&#xA;&lt;code>ActivationGroupDesc&lt;/code> is created).  If your application&#xA;requires the use of a security manager other than&#xA;&lt;code>java.rmi.RMISecurityManager&lt;/code>, in the&#xA;ActivativationGroupDescriptor properties list you can set&#xA;&lt;code>java.security.manager&lt;/code> property to the name of the security&#xA;manager you would like to install.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.44, 03/12/19&#xA;@see &#x9;ActivationInstantiator&#xA;@see&#x9;&#x9;ActivationGroupDesc&#xA;@see&#x9;&#x9;ActivationGroupID&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_203596_8131"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_116810_14038" isSubstitutable="true" general="_9_5_f720368_1110473546674_310544_8211"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321819_730334_14037" name="" supplier="_9_5_f720368_1110473546674_417327_8139" client="_9_5_f720368_1110473546674_203596_8131" contract="_9_5_f720368_1110473546674_417327_8139"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546674_102281_8143" name="ActivationSystem" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928308930_981705_5607" body="The &lt;code>ActivationSystem&lt;/code> provides a means for registering&#xA;groups and &quot;activatable&quot; objects to be activated within those groups.&#xA;The &lt;code>ActivationSystem&lt;/code> works closely with the&#xA;&lt;code>Activator&lt;/code>, which activates objects registered via the&#xA;&lt;code>ActivationSystem&lt;/code>, and the &lt;code>ActivationMonitor&lt;/code>,&#xA;which obtains information about active and inactive objects,&#xA;and inactive groups.&#xA;&#xA;@author &#x9;Ann Wollrath&#xA;@version&#x9;1.18, 12/19/03&#xA;@see&#x9;&#x9;Activator&#xA;@see&#x9;&#x9;ActivationMonitor&#xA;@since&#x9;1.2&#xA;" annotatedElement="_9_5_f720368_1110473546674_102281_8143"/>
              <generalization xmi:id="_10_5_622020d_1132928321819_173793_14045" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_496648_8229" name="NoSuchObjectException">
            <ownedComment xmi:id="_10_5_622020d_1132928309050_97942_5725" body="A &lt;code>NoSuchObjectException&lt;/code> is thrown if an attempt is made to&#xA;invoke a method on an object that no longer exists in the remote virtual&#xA;machine.  If a &lt;code>NoSuchObjectException&lt;/code> occurs attempting to&#xA;invoke a method on a remote object, the call may be retransmitted and still&#xA;preserve RMI's &quot;at most once&quot; call semantics.&#xA;&#xA;A &lt;code>NoSuchObjectException&lt;/code> is also thrown by the method&#xA;&lt;code>java.rmi.server.RemoteObject.toStub&lt;/code> and by the&#xA;&lt;code>unexportObject&lt;/code> methods of&#xA;&lt;code>java.rmi.server.UnicastRemoteObject&lt;/code> and&#xA;&lt;code>java.rmi.activation.Activatable&lt;/code> and&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@see     java.rmi.server.RemoteObject#toStub(Remote)&#xA;@see     java.rmi.server.UnicastRemoteObject#unexportObject(Remote,boolean)&#xA;@see     java.rmi.activation.Activatable#unexportObject(Remote,boolean)&#xA;" annotatedElement="_9_5_f720368_1110473546674_496648_8229"/>
            <generalization xmi:id="_10_5_622020d_1132928321839_244163_14088" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_241232_8247" name="StubNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_626150_5749" body="A &lt;code>StubNotFoundException&lt;/code> is thrown if a valid stub class&#xA;could not be found for a remote object when it is exported.&#xA;A &lt;code>StubNotFoundException&lt;/code> may also be&#xA;thrown when an activatable object is registered via the&#xA;&lt;code>java.rmi.activation.Activatable.register&lt;/code> method.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@author  Roger Riggs&#xA;@since   JDK1.1&#xA;@see&#x9;    java.rmi.server.UnicastRemoteObject&#xA;@see     java.rmi.activation.Activatable&#xA;" annotatedElement="_9_5_f720368_1110473546674_241232_8247"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_156744_14096" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546674_194437_8245" name="ServerRuntimeException">
            <ownedComment xmi:id="_10_5_622020d_1132928309060_547963_5747" body="From a server executing on JDK&amp;nbsp;1.1, a&#xA;&lt;code>ServerRuntimeException&lt;/code> is thrown as a result of a&#xA;remote method invocation when a &lt;code>RuntimeException&lt;/code> is&#xA;thrown while processing the invocation on the server, either while&#xA;unmarshalling the arguments, executing the remote method itself, or&#xA;marshalling the return value.&#xA;&#xA;A &lt;code>ServerRuntimeException&lt;/code> instance contains the original&#xA;&lt;code>RuntimeException&lt;/code> that occurred as its cause.&#xA;&#xA;&lt;p>A &lt;code>ServerRuntimeException&lt;/code> is not thrown from servers&#xA;executing on the Java 2 platform v1.2 or later versions.&#xA;&#xA;@version 1.18, 05/18/04&#xA;@author  Ann Wollrath&#xA;@since   JDK1.1&#xA;@deprecated no replacement&#xA;" annotatedElement="_9_5_f720368_1110473546674_194437_8245"/>
            <generalization xmi:id="_10_5_622020d_1132928321849_427015_14095" isSubstitutable="true" general="_9_5_f720368_1110473546674_284651_8235"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547471_831617_17570" name="io">
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_976779_7401" name="FileReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_166188_4587" body="Convenience class for reading character files.  The constructors of this&#xA;class assume that the default character encoding and the default byte-buffer&#xA;size are appropriate.  To specify these values yourself, construct an&#xA;InputStreamReader on a FileInputStream.&#xA;&#xA;&lt;p>&lt;code>FileReader&lt;/code> is meant for reading streams of characters.&#xA;For reading streams of raw bytes, consider using a&#xA;&lt;code>FileInputStream&lt;/code>.&#xA;&#xA;@see InputStreamReader&#xA;@see FileInputStream&#xA;&#xA;@version &#x9;1.15, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_976779_7401"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_78064_13499" isSubstitutable="true" general="_9_5_f720368_1110473546596_297546_7417"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_604071_7431" name="NotActiveException">
            <ownedComment xmi:id="_10_5_622020d_1132928307308_997513_4623" body="Thrown when serialization or deserialization is not active.&#xA;&#xA;@author  unascribed&#xA;@version 1.15, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_604071_7431"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_647257_13513" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_665843_7501" name="Win32FileSystem" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928321598_141711_13564" isSubstitutable="true" general="_9_5_f720368_1110473546596_426893_7403"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_653726_7465" name="PipedWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_897939_4674" body="Piped character-output streams.&#xA;&#xA;@version &#x9;1.16, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_653726_7465"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_235712_13543" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_957082_7457" name="OutputStreamWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307368_147328_4666" body="An OutputStreamWriter is a bridge from character streams to byte streams:&#xA;Characters written to it are encoded into bytes using a specified {@link&#xA;java.nio.charset.Charset &lt;code>charset&lt;/code>}.  The charset that it uses&#xA;may be specified by name or may be given explicitly, or the platform's&#xA;default charset may be accepted.&#xA;&#xA;&lt;p> Each invocation of a write() method causes the encoding converter to be&#xA;invoked on the given character(s).  The resulting bytes are accumulated in a&#xA;buffer before being written to the underlying output stream.  The size of&#xA;this buffer may be specified, but by default it is large enough for most&#xA;purposes.  Note that the characters passed to the write() methods are not&#xA;buffered.&#xA;&#xA;&lt;p> For top efficiency, consider wrapping an OutputStreamWriter within a&#xA;BufferedWriter so as to avoid frequent converter invocations.  For example:&#xA;&#xA;&lt;pre>&#xA;Writer out&#xA;= new BufferedWriter(new OutputStreamWriter(System.out));&#xA;&lt;/pre>&#xA;&#xA;&lt;p> A &lt;i>surrogate pair&lt;/i> is a character represented by a sequence of two&#xA;&lt;tt>char&lt;/tt> values: A &lt;i>high&lt;/i> surrogate in the range '&amp;#92;uD800' to&#xA;'&amp;#92;uDBFF' followed by a &lt;i>low&lt;/i> surrogate in the range '&amp;#92;uDC00' to&#xA;'&amp;#92;uDFFF'.  If the character represented by a surrogate pair cannot be&#xA;encoded by a given charset then a charset-dependent &lt;i>substitution&#xA;sequence&lt;/i> is written to the output stream.&#xA;&#xA;&lt;p> A &lt;i>malformed surrogate element&lt;/i> is a high surrogate that is not&#xA;followed by a low surrogate or a low surrogate that is not preceded by a&#xA;high surrogate.  It is illegal to attempt to write a character stream&#xA;containing malformed surrogate elements.  The behavior of an instance of&#xA;this class when a malformed surrogate element is written is not specified.&#xA;&#xA;@see BufferedWriter&#xA;@see OutputStream&#xA;@see java.nio.charset.Charset&#xA;&#xA;@version &#x9;1.47, 04/01/12&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_957082_7457"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_868500_13539" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_187496_7365" name="CharArrayWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_739709_4549" body="This class implements a character buffer that can be used as an Writer.&#xA;The buffer automatically grows when data is written to the stream.  The data&#xA;can be retrieved using toCharArray() and toString().&#xA;&lt;P>&#xA;Note: Invoking close() on this class has no effect, and methods&#xA;of this class can be called after the stream has closed&#xA;without generating an IOException.&#xA;&#xA;@author&#x9;Herb Jellinek&#xA;@version &#x9;1.23, 07/16/04&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_187496_7365"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_340480_13479" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_244745_7355" name="BufferedReader">
            <ownedComment xmi:id="_10_5_622020d_1132928306997_209287_4539" body="Read text from a character-input stream, buffering characters so as to&#xA;provide for the efficient reading of characters, arrays, and lines.&#xA;&#xA;&lt;p> The buffer size may be specified, or the default size may be used.  The&#xA;default is large enough for most purposes.&#xA;&#xA;&lt;p> In general, each read request made of a Reader causes a corresponding&#xA;read request to be made of the underlying character or byte stream.  It is&#xA;therefore advisable to wrap a BufferedReader around any Reader whose read()&#xA;operations may be costly, such as FileReaders and InputStreamReaders.  For&#xA;example,&#xA;&#xA;&lt;pre>&#xA;BufferedReader in&#xA;= new BufferedReader(new FileReader(&quot;foo.in&quot;));&#xA;&lt;/pre>&#xA;&#xA;will buffer the input from the specified file.  Without buffering, each&#xA;invocation of read() or readLine() could cause bytes to be read from the&#xA;file, converted into characters, and then returned, which can be very&#xA;inefficient.&#xA;&#xA;&lt;p> Programs that use DataInputStreams for textual input can be localized by&#xA;replacing each DataInputStream with an appropriate BufferedReader.&#xA;&#xA;@see FileReader&#xA;@see InputStreamReader&#xA;&#xA;@version &#x9;1.33, 04/01/12&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_244745_7355"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_118321_13474" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307007_867857_4552" name="Closeable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_436177_4554" body="A &lt;tt>Closeable&lt;/tt> is a source or destination of data that can be closed.&#xA;The close method is invoked to release resources that the object is&#xA;holding (such as open files).&#xA;&#xA;@version 1.4 03/12/19&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307007_867857_4552"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_466017_7391" name="FilenameFilter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_61160_4577" body="Instances of classes that implement this interface are used to&#xA;filter filenames. These instances are used to filter directory&#xA;listings in the &lt;code>list&lt;/code> method of class&#xA;&lt;code>File&lt;/code>, and by the Abstract Window Toolkit's file&#xA;dialog component.&#xA;&#xA;@author  Arthur van Hoff&#xA;@author  Jonathan Payne&#xA;@version 1.23, 12/19/03&#xA;@see     java.awt.FileDialog#setFilenameFilter(java.io.FilenameFilter)&#xA;@see     java.io.File&#xA;@see     java.io.File#list(java.io.FilenameFilter)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_466017_7391"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_504580_7379" name="ExpiringCache" visibility="package">
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547471_304255_17586" name="Entry" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_189397_7439" name="ObjectInputValidation" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307348_243290_4638" body="Callback interface to allow validation of objects within a graph.&#xA;Allows an object to be called when a complete graph of objects has&#xA;been deserialized.&#xA;&#xA;@author  unascribed&#xA;@version 1.18, 12/19/03&#xA;@see     ObjectInputStream&#xA;@see     ObjectInputStream#registerValidation(java.io.ObjectInputValidation, int)&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_189397_7439"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_774585_7437" name="ObjectInputStream" clientDependency="_10_5_622020d_1132928321578_761294_13516 _10_5_622020d_1132928321578_363996_13517">
            <ownedComment xmi:id="_10_5_622020d_1132928307348_497084_4636" body="An ObjectInputStream deserializes primitive data and objects previously&#xA;written using an ObjectOutputStream.&#xA;&#xA;&lt;p>ObjectOutputStream and ObjectInputStream can provide an application with&#xA;persistent storage for graphs of objects when used with a FileOutputStream&#xA;and FileInputStream respectively.  ObjectInputStream is used to recover&#xA;those objects previously serialized. Other uses include passing objects&#xA;between hosts using a socket stream or for marshaling and unmarshaling&#xA;arguments and parameters in a remote communication system.&#xA;&#xA;&lt;p>ObjectInputStream ensures that the types of all objects in the graph&#xA;created from the stream match the classes present in the Java Virtual&#xA;Machine.  Classes are loaded as required using the standard mechanisms.&#xA;&#xA;&lt;p>Only objects that support the java.io.Serializable or&#xA;java.io.Externalizable interface can be read from streams.&#xA;&#xA;&lt;p>The method &lt;code>readObject&lt;/code> is used to read an object from the&#xA;stream.  Java's safe casting should be used to get the desired type.  In&#xA;Java, strings and arrays are objects and are treated as objects during&#xA;serialization. When read they need to be cast to the expected type.&#xA;&#xA;&lt;p>Primitive data types can be read from the stream using the appropriate&#xA;method on DataInput.&#xA;&#xA;&lt;p>The default deserialization mechanism for objects restores the contents&#xA;of each field to the value and type it had when it was written.  Fields&#xA;declared as transient or static are ignored by the deserialization process.&#xA;References to other objects cause those objects to be read from the stream&#xA;as necessary.  Graphs of objects are restored correctly using a reference&#xA;sharing mechanism.  New objects are always allocated when deserializing,&#xA;which prevents existing objects from being overwritten.&#xA;&#xA;&lt;p>Reading an object is analogous to running the constructors of a new&#xA;object.  Memory is allocated for the object and initialized to zero (NULL).&#xA;No-arg constructors are invoked for the non-serializable classes and then&#xA;the fields of the serializable classes are restored from the stream starting&#xA;with the serializable class closest to java.lang.object and finishing with&#xA;the object's most specific class.&#xA;&#xA;&lt;p>For example to read from a stream as written by the example in&#xA;ObjectOutputStream:&#xA;&lt;br>&#xA;&lt;pre>&#xA;FileInputStream fis = new FileInputStream(&quot;t.tmp&quot;);&#xA;ObjectInputStream ois = new ObjectInputStream(fis);&#xA;&#xA;int i = ois.readInt();&#xA;String today = (String) ois.readObject();&#xA;Date date = (Date) ois.readObject();&#xA;&#xA;ois.close();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Classes control how they are serialized by implementing either the&#xA;java.io.Serializable or java.io.Externalizable interfaces.&#xA;&#xA;&lt;p>Implementing the Serializable interface allows object serialization to&#xA;save and restore the entire state of the object and it allows classes to&#xA;evolve between the time the stream is written and the time it is read.  It&#xA;automatically traverses references between objects, saving and restoring&#xA;entire graphs.&#xA;&#xA;&lt;p>Serializable classes that require special handling during the&#xA;serialization and deserialization process should implement the following&#xA;methods:&lt;p>&#xA;&#xA;&lt;pre>&#xA;private void writeObject(java.io.ObjectOutputStream stream)&#xA;throws IOException;&#xA;private void readObject(java.io.ObjectInputStream stream)&#xA;throws IOException, ClassNotFoundException;&#xA;private void readObjectNoData()&#xA;throws ObjectStreamException;&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The readObject method is responsible for reading and restoring the state&#xA;of the object for its particular class using data written to the stream by&#xA;the corresponding writeObject method.  The method does not need to concern&#xA;itself with the state belonging to its superclasses or subclasses.  State is&#xA;restored by reading data from the ObjectInputStream for the individual&#xA;fields and making assignments to the appropriate fields of the object.&#xA;Reading primitive data types is supported by DataInput.&#xA;&#xA;&lt;p>Any attempt to read object data which exceeds the boundaries of the&#xA;custom data written by the corresponding writeObject method will cause an&#xA;OptionalDataException to be thrown with an eof field value of true.&#xA;Non-object reads which exceed the end of the allotted data will reflect the&#xA;end of data in the same way that they would indicate the end of the stream:&#xA;bytewise reads will return -1 as the byte read or number of bytes read, and&#xA;primitive reads will throw EOFExceptions.  If there is no corresponding&#xA;writeObject method, then the end of default serialized data marks the end of&#xA;the allotted data.&#xA;&#xA;&lt;p>Primitive and object read calls issued from within a readExternal method&#xA;behave in the same manner--if the stream is already positioned at the end of&#xA;data written by the corresponding writeExternal method, object reads will&#xA;throw OptionalDataExceptions with eof set to true, bytewise reads will&#xA;return -1, and primitive reads will throw EOFExceptions.  Note that this&#xA;behavior does not hold for streams written with the old&#xA;&lt;code>ObjectStreamConstants.PROTOCOL_VERSION_1&lt;/code> protocol, in which the&#xA;end of data written by writeExternal methods is not demarcated, and hence&#xA;cannot be detected.&#xA;&#xA;&lt;p>The readObjectNoData method is responsible for initializing the state of&#xA;the object for its particular class in the event that the serialization&#xA;stream does not list the given class as a superclass of the object being&#xA;deserialized.  This may occur in cases where the receiving party uses a&#xA;different version of the deserialized instance's class than the sending&#xA;party, and the receiver's version extends classes that are not extended by&#xA;the sender's version.  This may also occur if the serialization stream has&#xA;been tampered; hence, readObjectNoData is useful for initializing&#xA;deserialized objects properly despite a &quot;hostile&quot; or incomplete source&#xA;stream.&#xA;&#xA;&lt;p>Serialization does not read or assign values to the fields of any object&#xA;that does not implement the java.io.Serializable interface.  Subclasses of&#xA;Objects that are not serializable can be serializable. In this case the&#xA;non-serializable class must have a no-arg constructor to allow its fields to&#xA;be initialized.  In this case it is the responsibility of the subclass to&#xA;save and restore the state of the non-serializable class. It is frequently&#xA;the case that the fields of that class are accessible (public, package, or&#xA;protected) or that there are get and set methods that can be used to restore&#xA;the state.&#xA;&#xA;&lt;p>Any exception that occurs while deserializing an object will be caught by&#xA;the ObjectInputStream and abort the reading process.&#xA;&#xA;&lt;p>Implementing the Externalizable interface allows the object to assume&#xA;complete control over the contents and format of the object's serialized&#xA;form.  The methods of the Externalizable interface, writeExternal and&#xA;readExternal, are called to save and restore the objects state.  When&#xA;implemented by a class they can write and read their own state using all of&#xA;the methods of ObjectOutput and ObjectInput.  It is the responsibility of&#xA;the objects to handle any versioning that occurs.&#xA;&#xA;&lt;p>Enum constants are deserialized differently than ordinary serializable or&#xA;externalizable objects.  The serialized form of an enum constant consists&#xA;solely of its name; field values of the constant are not transmitted.  To&#xA;deserialize an enum constant, ObjectInputStream reads the constant name from&#xA;the stream; the deserialized constant is then obtained by calling the static&#xA;method &lt;code>Enum.valueOf(Class, String)&lt;/code> with the enum constant's&#xA;base type and the received constant name as arguments.  Like other&#xA;serializable or externalizable objects, enum constants can function as the&#xA;targets of back references appearing subsequently in the serialization&#xA;stream.  The process by which enum constants are deserialized cannot be&#xA;customized: any class-specific readObject, readObjectNoData, and readResolve&#xA;methods defined by enum types are ignored during deserialization.&#xA;Similarly, any serialPersistentFields or serialVersionUID field declarations&#xA;are also ignored--all enum types have a fixed serialVersionUID of 0L.&#xA;&#xA;@author&#x9;Mike Warres&#xA;@author&#x9;Roger Riggs&#xA;@version 1.155, 04/05/28&#xA;@see java.io.DataInput&#xA;@see java.io.ObjectOutputStream&#xA;@see java.io.Serializable&#xA;@see &lt;a href=&quot;../../../guide/serialization/spec/input.doc.html&quot;> Object Serialization Specification, Section 3, Object Input Classes&lt;/a>&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_774585_7437"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_184137_13518" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_761294_13516" name="" supplier="_9_5_f720368_1110473546596_941710_7435" client="_9_5_f720368_1110473546596_774585_7437" contract="_9_5_f720368_1110473546596_941710_7435"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_363996_13517" name="" supplier="_9_5_f720368_1110473546596_227278_7447" client="_9_5_f720368_1110473546596_774585_7437" contract="_9_5_f720368_1110473546596_227278_7447"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547034_780372_14004" name="GetField" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_465685_4628" body="Provide access to the persistent fields read from the input stream.&#xA;" annotatedElement="_9_5_f720368_1110473547034_780372_14004"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_673767_17619" name="GetFieldImpl" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_158009_4629" body="Default GetField implementation.&#xA;" annotatedElement="_9_5_f720368_1110473547487_673767_17619"/>
              <generalization xmi:id="_10_5_622020d_1132928321578_206711_13519" isSubstitutable="true" general="_9_5_f720368_1110473547034_780372_14004"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_58282_17621" name="ValidationList" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_715685_4630" body="Prioritized list of callbacks to be performed once object graph has been&#xA;completely deserialized.&#xA;" annotatedElement="_9_5_f720368_1110473547487_58282_17621"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_317699_17624" name="Callback" visibility="private"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_136042_17626" name="PeekInputStream" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_796797_4631" body="Input stream supporting single-byte peek operations.&#xA;" annotatedElement="_9_5_f720368_1110473547487_136042_17626"/>
              <generalization xmi:id="_10_5_622020d_1132928321578_795397_13520" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_636702_17629" name="BlockDataInputStream" visibility="private" clientDependency="_10_5_622020d_1132928321578_542214_13521">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_814140_4632" body="Input stream with two modes: in default mode, inputs data written in the&#xA;same format as DataOutputStream; in &quot;block data&quot; mode, inputs data&#xA;bracketed by block data markers (see object serialization specification&#xA;for details).  Buffering depends on block data mode: when in default&#xA;mode, no data is buffered in advance; when in block data mode, all data&#xA;for the current data block is read in at once (and buffered).&#xA;" annotatedElement="_9_5_f720368_1110473547487_636702_17629"/>
              <generalization xmi:id="_10_5_622020d_1132928321578_38102_13522" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321578_542214_13521" name="" supplier="_9_5_f720368_1110473546596_439635_7369" client="_9_5_f720368_1110473547487_636702_17629" contract="_9_5_f720368_1110473546596_439635_7369"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_811522_17631" name="HandleTable" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307308_731446_4634" body="Unsynchronized table which tracks wire handle to object mappings, as&#xA;well as ClassNotFoundExceptions associated with deserialized objects.&#xA;This class implements an exception-propagation algorithm for&#xA;determining which objects should have ClassNotFoundExceptions associated&#xA;with them, taking into account cycles and discontinuities (e.g., skipped&#xA;fields) in the object graph.&#xA;&#xA;&lt;p>General use of the table is as follows: during deserialization, a&#xA;given object is first assigned a handle by calling the assign method.&#xA;This method leaves the assigned handle in an &quot;open&quot; state, wherein&#xA;dependencies on the exception status of other handles can be registered&#xA;by calling the markDependency method, or an exception can be directly&#xA;associated with the handle by calling markException.  When a handle is&#xA;tagged with an exception, the HandleTable assumes responsibility for&#xA;propagating the exception to any other objects which depend&#xA;(transitively) on the exception-tagged object.&#xA;&#xA;&lt;p>Once all exception information/dependencies for the handle have been&#xA;registered, the handle should be &quot;closed&quot; by calling the finish method&#xA;on it.  The act of finishing a handle allows the exception propagation&#xA;algorithm to aggressively prune dependency links, lessening the&#xA;performance/memory impact of exception tracking.&#xA;&#xA;&lt;p>Note that the exception propagation algorithm used depends on handles&#xA;being assigned/finished in LIFO order; however, for simplicity as well&#xA;as memory conservation, it does not enforce this constraint.&#xA;" annotatedElement="_9_5_f720368_1110473547487_811522_17631"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_964519_17634" name="HandleList" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928307308_779227_4633" body="Simple growable list of (integer) handles.&#xA;" annotatedElement="_9_5_f720368_1110473547487_964519_17634"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_214556_7387" name="FileFilter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307057_240378_4573" body="A filter for abstract pathnames.&#xA;&#xA;&lt;p> Instances of this interface may be passed to the &lt;code>{@link&#xA;File#listFiles(java.io.FileFilter) listFiles(FileFilter)}&lt;/code> method&#xA;of the &lt;code>{@link java.io.File}&lt;/code> class.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546596_214556_7387"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_502964_7425" name="IOException">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_328655_4614" body="Signals that an I/O exception of some sort has occurred. This&#xA;class is the general class of exceptions produced by failed or&#xA;interrupted I/O operations.&#xA;&#xA;@author  unascribed&#xA;@version 1.22, 12/19/03&#xA;@see     java.io.InputStream&#xA;@see     java.io.OutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_502964_7425"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_217542_13510" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_504345_7497" name="UnsupportedEncodingException">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_563948_4709" body="The Character Encoding is not supported.&#xA;&#xA;@author  Asmus Freytag&#xA;@version 1.16, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_504345_7497"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_919938_13562" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_552646_7429" name="LineNumberReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307308_732309_4621" body="A buffered character-input stream that keeps track of line numbers.&#xA;This class defines methods &lt;CODE>void setLineNumber(int)&lt;/CODE> and&#xA;&lt;CODE>int getLineNumber()&lt;/CODE> for setting and getting the current&#xA;line number respectively.&#xA;&lt;P>&#xA;By default, line numbering begins at 0. This number increments as data is&#xA;read, and can be changed with a call to &lt;CODE>setLineNumber(int)&lt;/CODE>.&#xA;Note however, that &lt;CODE>setLineNumber(int)&lt;/CODE> does not actually change the current&#xA;position in the stream; it only changes the value that will be returned&#xA;by &lt;CODE>getLineNumber()&lt;/CODE>.&#xA;&lt;P>&#xA;A line is considered to be terminated by any one of a line feed ('\n'), a carriage&#xA;return ('\r'), or a carriage return followed immediately by a linefeed.&#xA;&#xA;@version &#x9;1.20, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_552646_7429"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_548273_13512" isSubstitutable="true" general="_9_5_f720368_1110473546596_244745_7355"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_363290_7353" name="BufferedOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928306997_931039_4537" body="The class implements a buffered output stream. By setting up such&#xA;an output stream, an application can write bytes to the underlying&#xA;output stream without necessarily causing a call to the underlying&#xA;system for each byte written.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.33, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_363290_7353"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_52518_13473" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_518938_7489" name="StringBufferInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_466908_4701" body="This class allows an application to create an input stream in&#xA;which the bytes read are supplied by the contents of a string.&#xA;Applications can also read bytes from a byte array by using a&#xA;&lt;code>ByteArrayInputStream&lt;/code>.&#xA;&lt;p>&#xA;Only the low eight bits of each character in the string are used by&#xA;this class.&#xA;&#xA;@author     Arthur van Hoff&#xA;@version    1.26, 05/18/04&#xA;@see        java.io.ByteArrayInputStream&#xA;@see        java.io.StringReader&#xA;@since      JDK1.0&#xA;@deprecated This class does not properly convert characters into bytes.  As&#xA;of JDK&amp;nbsp;1.1, the preferred way to create a stream from a&#xA;string is via the &lt;code>StringReader&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473546612_518938_7489"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_801740_13558" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_20244_7421" name="InvalidClassException">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_553501_4610" body="Thrown when the Serialization runtime detects one of the following&#xA;problems with a Class.&#xA;&lt;UL>&#xA;&lt;LI> The serial version of the class does not match that of the class&#xA;descriptor read from the stream&#xA;&lt;LI> The class contains unknown datatypes&#xA;&lt;LI> The class does not have an accessible no-arg constructor&#xA;&lt;/UL>&#xA;&#xA;@author  unascribed&#xA;@version 1.20, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_20244_7421"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_586755_13508" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321578_278729_13532" name="Comparable&lt;Object>">
            <templateBinding xmi:id="_10_5_622020d_1132928321578_229392_13533" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321578_170324_13534" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546612_117118_7661"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_898214_7475" name="RandomAccessFile" clientDependency="_10_5_622020d_1132928321598_691452_13550 _10_5_622020d_1132928321598_125619_13551 _10_5_622020d_1132928321598_5283_13552">
            <ownedComment xmi:id="_10_5_622020d_1132928307388_845769_4684" body="Instances of this class support both reading and writing to a&#xA;random access file. A random access file behaves like a large&#xA;array of bytes stored in the file system. There is a kind of cursor,&#xA;or index into the implied array, called the &lt;em>file pointer&lt;/em>;&#xA;input operations read bytes starting at the file pointer and advance&#xA;the file pointer past the bytes read. If the random access file is&#xA;created in read/write mode, then output operations are also available;&#xA;output operations write bytes starting at the file pointer and advance&#xA;the file pointer past the bytes written. Output operations that write&#xA;past the current end of the implied array cause the array to be&#xA;extended. The file pointer can be read by the&#xA;&lt;code>getFilePointer&lt;/code> method and set by the &lt;code>seek&lt;/code>&#xA;method.&#xA;&lt;p>&#xA;It is generally true of all the reading routines in this class that&#xA;if end-of-file is reached before the desired number of bytes has been&#xA;read, an &lt;code>EOFException&lt;/code> (which is a kind of&#xA;&lt;code>IOException&lt;/code>) is thrown. If any byte cannot be read for&#xA;any reason other than end-of-file, an &lt;code>IOException&lt;/code> other&#xA;than &lt;code>EOFException&lt;/code> is thrown. In particular, an&#xA;&lt;code>IOException&lt;/code> may be thrown if the stream has been closed.&#xA;&#xA;@author  unascribed&#xA;@version 1.78, 05/13/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_898214_7475"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_691452_13550" name="" supplier="_9_5_f720368_1110473546596_686577_7373" client="_9_5_f720368_1110473546612_898214_7475" contract="_9_5_f720368_1110473546596_686577_7373"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_125619_13551" name="" supplier="_9_5_f720368_1110473546596_439635_7369" client="_9_5_f720368_1110473546612_898214_7475" contract="_9_5_f720368_1110473546596_439635_7369"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_5283_13552" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546612_898214_7475" contract="_10_5_622020d_1132928307007_867857_4552"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_641688_7495" name="SyncFailedException">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_191382_4707" body="Signals that a sync operation has failed.&#xA;&#xA;@author  Ken Arnold&#xA;@version 1.15, 12/19/03&#xA;@see     java.io.FileDescriptor#sync&#xA;@see&#x9;    java.io.IOException&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_641688_7495"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_527142_13561" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_426893_7403" name="FileSystem" visibility="package" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_572120_4589" body="Package-private abstract class for the local filesystem abstraction.&#xA;" annotatedElement="_9_5_f720368_1110473546596_426893_7403"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_655921_7411" name="FilterReader" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307088_935371_4597" body="Abstract class for reading filtered character streams.&#xA;The abstract class &lt;code>FilterReader&lt;/code> itself&#xA;provides default methods that pass all requests to&#xA;the contained stream. Subclasses of &lt;code>FilterReader&lt;/code>&#xA;should override some of these methods and may also provide&#xA;additional methods and fields.&#xA;&#xA;@version &#x9;1.17, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_655921_7411"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_171243_13503" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_356876_7407" name="FilterInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307078_142650_4593" body="A &lt;code>FilterInputStream&lt;/code> contains&#xA;some other input stream, which it uses as&#xA;its  basic source of data, possibly transforming&#xA;the data along the way or providing  additional&#xA;functionality. The class &lt;code>FilterInputStream&lt;/code>&#xA;itself simply overrides all  methods of&#xA;&lt;code>InputStream&lt;/code> with versions that&#xA;pass all requests to the contained  input&#xA;stream. Subclasses of &lt;code>FilterInputStream&lt;/code>&#xA;may further override some of  these methods&#xA;and may also provide additional methods&#xA;and fields.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.28, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_356876_7407"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_170789_13501" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_608724_7443" name="ObjectOutputStream" clientDependency="_10_5_622020d_1132928321578_475716_13525 _10_5_622020d_1132928321578_92959_13524">
            <ownedComment xmi:id="_10_5_622020d_1132928307358_510594_4647" body="An ObjectOutputStream writes primitive data types and graphs of Java objects&#xA;to an OutputStream.  The objects can be read (reconstituted) using an&#xA;ObjectInputStream.  Persistent storage of objects can be accomplished by&#xA;using a file for the stream.  If the stream is a network socket stream, the&#xA;objects can be reconstituted on another host or in another process.&#xA;&#xA;&lt;p>Only objects that support the java.io.Serializable interface can be&#xA;written to streams.  The class of each serializable object is encoded&#xA;including the class name and signature of the class, the values of the&#xA;object's fields and arrays, and the closure of any other objects referenced&#xA;from the initial objects.&#xA;&#xA;&lt;p>The method writeObject is used to write an object to the stream.  Any&#xA;object, including Strings and arrays, is written with writeObject. Multiple&#xA;objects or primitives can be written to the stream.  The objects must be&#xA;read back from the corresponding ObjectInputstream with the same types and&#xA;in the same order as they were written.&#xA;&#xA;&lt;p>Primitive data types can also be written to the stream using the&#xA;appropriate methods from DataOutput. Strings can also be written using the&#xA;writeUTF method.&#xA;&#xA;&lt;p>The default serialization mechanism for an object writes the class of the&#xA;object, the class signature, and the values of all non-transient and&#xA;non-static fields.  References to other objects (except in transient or&#xA;static fields) cause those objects to be written also. Multiple references&#xA;to a single object are encoded using a reference sharing mechanism so that&#xA;graphs of objects can be restored to the same shape as when the original was&#xA;written.&#xA;&#xA;&lt;p>For example to write an object that can be read by the example in&#xA;ObjectInputStream:&#xA;&lt;br>&#xA;&lt;pre>&#xA;FileOutputStream fos = new FileOutputStream(&quot;t.tmp&quot;);&#xA;ObjectOutputStream oos = new ObjectOutputStream(fos);&#xA;&#xA;oos.writeInt(12345);&#xA;oos.writeObject(&quot;Today&quot;);&#xA;oos.writeObject(new Date());&#xA;&#xA;oos.close();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Classes that require special handling during the serialization and&#xA;deserialization process must implement special methods with these exact&#xA;signatures:&#xA;&lt;br>&#xA;&lt;pre>&#xA;private void readObject(java.io.ObjectInputStream stream)&#xA;throws IOException, ClassNotFoundException;&#xA;private void writeObject(java.io.ObjectOutputStream stream)&#xA;throws IOException&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The writeObject method is responsible for writing the state of the object&#xA;for its particular class so that the corresponding readObject method can&#xA;restore it.  The method does not need to concern itself with the state&#xA;belonging to the object's superclasses or subclasses.  State is saved by&#xA;writing the individual fields to the ObjectOutputStream using the&#xA;writeObject method or by using the methods for primitive data types&#xA;supported by DataOutput.&#xA;&#xA;&lt;p>Serialization does not write out the fields of any object that does not&#xA;implement the java.io.Serializable interface.  Subclasses of Objects that&#xA;are not serializable can be serializable. In this case the non-serializable&#xA;class must have a no-arg constructor to allow its fields to be initialized.&#xA;In this case it is the responsibility of the subclass to save and restore&#xA;the state of the non-serializable class. It is frequently the case that the&#xA;fields of that class are accessible (public, package, or protected) or that&#xA;there are get and set methods that can be used to restore the state.&#xA;&#xA;&lt;p>Serialization of an object can be prevented by implementing writeObject&#xA;and readObject methods that throw the NotSerializableException.  The&#xA;exception will be caught by the ObjectOutputStream and abort the&#xA;serialization process.&#xA;&#xA;&lt;p>Implementing the Externalizable interface allows the object to assume&#xA;complete control over the contents and format of the object's serialized&#xA;form.  The methods of the Externalizable interface, writeExternal and&#xA;readExternal, are called to save and restore the objects state.  When&#xA;implemented by a class they can write and read their own state using all of&#xA;the methods of ObjectOutput and ObjectInput.  It is the responsibility of&#xA;the objects to handle any versioning that occurs.&#xA;&#xA;&lt;p>Enum constants are serialized differently than ordinary serializable or&#xA;externalizable objects.  The serialized form of an enum constant consists&#xA;solely of its name; field values of the constant are not transmitted.  To&#xA;serialize an enum constant, ObjectOutputStream writes the string returned by&#xA;the constant's name method.  Like other serializable or externalizable&#xA;objects, enum constants can function as the targets of back references&#xA;appearing subsequently in the serialization stream.  The process by which&#xA;enum constants are serialized cannot be customized; any class-specific&#xA;writeObject and writeReplace methods defined by enum types are ignored&#xA;during serialization.  Similarly, any serialPersistentFields or&#xA;serialVersionUID field declarations are also ignored--all enum types have a&#xA;fixed serialVersionUID of 0L.&#xA;&#xA;&lt;p>Primitive data, excluding serializable fields and externalizable data, is&#xA;written to the ObjectOutputStream in block-data records. A block data record&#xA;is composed of a header and data. The block data header consists of a marker&#xA;and the number of bytes to follow the header.  Consecutive primitive data&#xA;writes are merged into one block-data record.  The blocking factor used for&#xA;a block-data record will be 1024 bytes.  Each block-data record will be&#xA;filled up to 1024 bytes, or be written whenever there is a termination of&#xA;block-data mode.  Calls to the ObjectOutputStream methods writeObject,&#xA;defaultWriteObject and writeFields initially terminate any existing&#xA;block-data record.&#xA;&#xA;@author&#x9;Mike Warres&#xA;@author&#x9;Roger Riggs&#xA;@version     1.145, 04/05/28&#xA;@see java.io.DataOutput&#xA;@see java.io.ObjectInputStream&#xA;@see java.io.Serializable&#xA;@see java.io.Externalizable&#xA;@see &lt;a href=&quot;../../../guide/serialization/spec/output.doc.html&quot;>Object Serialization Specification, Section 2, Object Output Classes&lt;/a>&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_608724_7443"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_251614_13526" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_92959_13524" name="" supplier="_9_5_f720368_1110473546596_514351_7441" client="_9_5_f720368_1110473546596_608724_7443" contract="_9_5_f720368_1110473546596_514351_7441"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_475716_13525" name="" supplier="_9_5_f720368_1110473546596_227278_7447" client="_9_5_f720368_1110473546596_608724_7443" contract="_9_5_f720368_1110473546596_227278_7447"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547034_257544_14015" name="PutField" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928307348_741547_4641" body="Provide programmatic access to the persistent fields to be written&#xA;to ObjectOutput.&#xA;&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473547034_257544_14015"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_479760_17642" name="PutFieldImpl" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307348_931900_4642" body="Default PutField implementation.&#xA;" annotatedElement="_9_5_f720368_1110473547487_479760_17642"/>
              <generalization xmi:id="_10_5_622020d_1132928321578_713620_13527" isSubstitutable="true" general="_9_5_f720368_1110473547034_257544_14015"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_256654_17644" name="BlockDataOutputStream" visibility="private" clientDependency="_10_5_622020d_1132928321578_752501_13528">
              <ownedComment xmi:id="_10_5_622020d_1132928307348_647219_4643" body="Buffered output stream with two modes: in default mode, outputs data in&#xA;same format as DataOutputStream; in &quot;block data&quot; mode, outputs data&#xA;bracketed by block data markers (see object serialization specification&#xA;for details).&#xA;" annotatedElement="_9_5_f720368_1110473547487_256654_17644"/>
              <generalization xmi:id="_10_5_622020d_1132928321578_235385_13529" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928321578_752501_13528" name="" supplier="_9_5_f720368_1110473546596_686577_7373" client="_9_5_f720368_1110473547487_256654_17644" contract="_9_5_f720368_1110473546596_686577_7373"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_664885_17647" name="HandleTable" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307348_150032_4644" body="Lightweight identity hash table which maps objects to integer handles,&#xA;assigned in ascending order.&#xA;" annotatedElement="_9_5_f720368_1110473547487_664885_17647"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_451299_17650" name="ReplaceTable" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307348_968453_4645" body="Lightweight identity hash table which maps objects to replacement&#xA;objects.&#xA;" annotatedElement="_9_5_f720368_1110473547487_451299_17650"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_68087_7499" name="UTFDataFormatException">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_592345_4711" body="Signals that a malformed string in&#xA;&lt;a href=&quot;DataInput.html#modified-utf-8&quot;>modified UTF-8&lt;/a>&#xA;format has been read in a data&#xA;input stream or by any class that implements the data input&#xA;interface.&#xA;See the&#xA;&lt;a href=&quot;DataInput.html#modified-utf-8&quot;>&lt;code>DataInput&lt;/code>&lt;/a>&#xA;class description for the format in&#xA;which modified UTF-8 strings are read and written.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.13, 05/13/04&#xA;@see     java.io.DataInput&#xA;@see     java.io.DataInputStream#readUTF(java.io.DataInput)&#xA;@see     java.io.IOException&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_68087_7499"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_498320_13563" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_221350_7359" name="ByteArrayInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_460312_4543" body="A &lt;code>ByteArrayInputStream&lt;/code> contains&#xA;an internal buffer that contains bytes that&#xA;may be read from the stream. An internal&#xA;counter keeps track of the next byte to&#xA;be supplied by the &lt;code>read&lt;/code> method.&#xA;&lt;p>&#xA;Closing a &lt;tt>ByteArrayInputStream&lt;/tt> has no effect. The methods in&#xA;this class can be called after the stream has been closed without&#xA;generating an &lt;tt>IOException&lt;/tt>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.44, 12/19/03&#xA;@see     java.io.StringBufferInputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_221350_7359"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_517956_13476" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_722046_7389" name="FileInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_554631_4575" body="A &lt;code>FileInputStream&lt;/code> obtains input bytes&#xA;from a file in a file system. What files&#xA;are  available depends on the host environment.&#xA;&#xA;&lt;p>&lt;code>FileInputStream&lt;/code> is meant for reading streams of raw bytes&#xA;such as image data. For reading streams of characters, consider using&#xA;&lt;code>FileReader&lt;/code>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.63, 12/19/03&#xA;@see     java.io.File&#xA;@see     java.io.FileDescriptor&#xA;@see&#x9;    java.io.FileOutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_722046_7389"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_177445_13492" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_941710_7435" name="ObjectInput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307308_910528_4627" body="ObjectInput extends the DataInput interface to include the reading of&#xA;objects. DataInput includes methods for the input of primitive types,&#xA;ObjectInput extends that interface to include objects, arrays, and Strings.&#xA;&#xA;@author  unascribed&#xA;@version 1.19, 12/19/03&#xA;@see java.io.InputStream&#xA;@see java.io.ObjectOutputStream&#xA;@see java.io.ObjectInputStream&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_941710_7435"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_402650_13515" isSubstitutable="true" general="_9_5_f720368_1110473546596_439635_7369"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_439635_7369" name="DataInput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307047_432729_4556" body="The &lt;code>DataInput&lt;/code> interface provides&#xA;for reading bytes from a binary stream and&#xA;reconstructing from them data in any of&#xA;the Java primitive types. There is also&#xA;a&#xA;facility for reconstructing a &lt;code>String&lt;/code>&#xA;from data in&#xA;&lt;a href=&quot;#modified-utf-8&quot;>modified UTF-8&lt;/a>&#xA;format.&#xA;&lt;p>&#xA;It is generally true of all the reading&#xA;routines in this interface that if end of&#xA;file is reached before the desired number&#xA;of bytes has been read, an &lt;code>EOFException&lt;/code>&#xA;(which is a kind of &lt;code>IOException&lt;/code>)&#xA;is thrown. If any byte cannot be read for&#xA;any reason other than end of file, an &lt;code>IOException&lt;/code>&#xA;other than &lt;code>EOFException&lt;/code> is&#xA;thrown. In particular, an &lt;code>IOException&lt;/code>&#xA;may be thrown if the input stream has been&#xA;closed.&#xA;&#xA;&lt;h4>&lt;a name=&quot;modified-utf-8&quot;>Modified UTF-8&lt;/a>&lt;/h4>&#xA;&lt;p>&#xA;Implementations of the DataInput and DataOutput interfaces represent&#xA;Unicode strings in a format that is a slight modification of UTF-8.&#xA;(For information regarding the standard UTF-8 format, see section&#xA;&lt;i>3.9 Unicode Encoding Forms&lt;/i> of &lt;i>The Unicode Standard, Version&#xA;4.0&lt;/i>).&#xA;Note that in the following tables, the most significant bit appears in the&#xA;far left-hand column.&#xA;&lt;p>&#xA;All characters in the range &lt;code>'&amp;#92;u0001'&lt;/code> to&#xA;&lt;code>'&amp;#92;u007F'&lt;/code> are represented by a single byte:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; width=&quot;50%&quot;&#xA;summary=&quot;Bit values and bytes&quot;>&#xA;&lt;tr>&#xA;&lt;td>&lt;/td>&#xA;&lt;th id=&quot;bit&quot;>Bit Values&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte1&quot;>Byte 1&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;7&quot;>&lt;center>bits 6-0&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The null character &lt;code>'&amp;#92;u0000'&lt;/code> and characters in the&#xA;range &lt;code>'&amp;#92;u0080'&lt;/code> to &lt;code>'&amp;#92;u07FF'&lt;/code> are&#xA;represented by a pair of bytes:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; width=&quot;50%&quot;&#xA;summary=&quot;Bit values and bytes&quot;>&#xA;&lt;tr>&#xA;&lt;td>&lt;/td>&#xA;&lt;th id=&quot;bit&quot;>Bit Values&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte1&quot;>Byte 1&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;5&quot;>&lt;center>bits 10-6&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte2&quot;>Byte 2&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;6&quot;>&lt;center>bits 5-0&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;br>&#xA;&lt;code>char&lt;/code> values in the range &lt;code>'&amp;#92;u0800'&lt;/code> to&#xA;&lt;code>'&amp;#92;uFFFF'&lt;/code> are represented by three bytes:&#xA;&#xA;&lt;blockquote>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;8&quot; width=&quot;50%&quot;&#xA;summary=&quot;Bit values and bytes&quot;>&#xA;&lt;tr>&#xA;&lt;td>&lt;/td>&#xA;&lt;th id=&quot;bit&quot;>Bit Values&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte1&quot;>Byte 1&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;4&quot;>&lt;center>bits 15-12&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte2&quot;>Byte 2&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;6&quot;>&lt;center>bits 11-6&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th id=&quot;byte3&quot;>Byte 3&lt;/th>&#xA;&lt;td>&#xA;&lt;table border=&quot;1&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;>&#xA;&lt;tr>&#xA;&lt;td width=&quot;12%&quot;>&lt;center>1&lt;/center>&#xA;&lt;td width=&quot;13%&quot;>&lt;center>0&lt;/center>&#xA;&lt;td colspan=&quot;6&quot;>&lt;center>bits 5-0&lt;/center>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;The differences between this format and the&#xA;standard UTF-8 format are the following:&#xA;&lt;ul>&#xA;&lt;li>The null byte &lt;code>'&amp;#92;u0000'&lt;/code> is encoded in 2-byte format&#xA;rather than 1-byte, so that the encoded strings never have&#xA;embedded nulls.&#xA;&lt;li>Only the 1-byte, 2-byte, and 3-byte formats are used.&#xA;&lt;li>&lt;a href=&quot;../lang/Character.html#unicode&quot;>Supplementary characters&lt;/a>&#xA;are represented in the form of surrogate pairs.&#xA;&lt;/ul>&#xA;@author  Frank Yellin&#xA;@version 1.23, 06/03/04&#xA;@see     java.io.DataInputStream&#xA;@see     java.io.DataOutput&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_439635_7369"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_562419_7385" name="FileDescriptor" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307057_778312_4571" body="Instances of the file descriptor class serve as an opaque handle&#xA;to the underlying machine-specific structure representing an open&#xA;file, an open socket, or another source or sink of bytes. The&#xA;main practical use for a file descriptor is to create a&#xA;&lt;code>FileInputStream&lt;/code> or &lt;code>FileOutputStream&lt;/code> to&#xA;contain it.&#xA;&lt;p>&#xA;Applications should not create their own file descriptors.&#xA;&#xA;@author  Pavani Diwanji&#xA;@version 1.3, 12/19/03&#xA;@see&#x9;    java.io.FileInputStream&#xA;@see&#x9;    java.io.FileOutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_562419_7385"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_916981_7507" name="Writer" clientDependency="_10_5_622020d_1132928321598_676826_13569 _10_5_622020d_1132928321598_525108_13567 _10_5_622020d_1132928321598_942927_13568" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307428_348912_4718" body="Abstract class for writing to character streams.  The only methods that a&#xA;subclass must implement are write(char[], int, int), flush(), and close().&#xA;Most subclasses, however, will override some of the methods defined here in&#xA;order to provide higher efficiency, additional functionality, or both.&#xA;&#xA;@see Writer&#xA;@see   BufferedWriter&#xA;@see   CharArrayWriter&#xA;@see   FilterWriter&#xA;@see   OutputStreamWriter&#xA;@see     FileWriter&#xA;@see   PipedWriter&#xA;@see   PrintWriter&#xA;@see   StringWriter&#xA;@see Reader&#xA;&#xA;@version &#x9;1.26, 04/07/16&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_916981_7507"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_525108_13567" name="" supplier="_10_5_622020d_1132928307869_604362_4929" client="_9_5_f720368_1110473546612_916981_7507" contract="_10_5_622020d_1132928307869_604362_4929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_942927_13568" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546612_916981_7507" contract="_10_5_622020d_1132928307007_867857_4552"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_676826_13569" name="" supplier="_10_5_622020d_1132928307088_548810_4600" client="_9_5_f720368_1110473546612_916981_7507" contract="_10_5_622020d_1132928307088_548810_4600"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_739862_7383" name="File" clientDependency="_10_5_622020d_1132928321568_766047_13491 _10_5_622020d_1132928321558_26293_13487">
            <ownedComment xmi:id="_10_5_622020d_1132928307057_316433_4569" body="An abstract representation of file and directory pathnames.&#xA;&#xA;&lt;p> User interfaces and operating systems use system-dependent &lt;em>pathname&#xA;strings&lt;/em> to name files and directories.  This class presents an&#xA;abstract, system-independent view of hierarchical pathnames.  An&#xA;&lt;em>abstract pathname&lt;/em> has two components:&#xA;&#xA;&lt;ol>&#xA;&lt;li> An optional system-dependent &lt;em>prefix&lt;/em> string,&#xA;such as a disk-drive specifier, &lt;code>&quot;/&quot;&lt;/code>&amp;nbsp;for the UNIX root&#xA;directory, or &lt;code>&quot;\\\\&quot;&lt;/code>&amp;nbsp;for a Microsoft Windows UNC pathname, and&#xA;&lt;li> A sequence of zero or more string &lt;em>names&lt;/em>.&#xA;&lt;/ol>&#xA;&#xA;Each name in an abstract pathname except for the last denotes a directory;&#xA;the last name may denote either a directory or a file.  The &lt;em>empty&lt;/em>&#xA;abstract pathname has no prefix and an empty name sequence.&#xA;&#xA;&lt;p> The conversion of a pathname string to or from an abstract pathname is&#xA;inherently system-dependent.  When an abstract pathname is converted into a&#xA;pathname string, each name is separated from the next by a single copy of&#xA;the default &lt;em>separator character&lt;/em>.  The default name-separator&#xA;character is defined by the system property &lt;code>file.separator&lt;/code>, and&#xA;is made available in the public static fields &lt;code>{@link&#xA;#separator}&lt;/code> and &lt;code>{@link #separatorChar}&lt;/code> of this class.&#xA;When a pathname string is converted into an abstract pathname, the names&#xA;within it may be separated by the default name-separator character or by any&#xA;other name-separator character that is supported by the underlying system.&#xA;&#xA;&lt;p> A pathname, whether abstract or in string form, may be either&#xA;&lt;em>absolute&lt;/em> or &lt;em>relative&lt;/em>.  An absolute pathname is complete in&#xA;that no other information is required in order to locate the file that it&#xA;denotes.  A relative pathname, in contrast, must be interpreted in terms of&#xA;information taken from some other pathname.  By default the classes in the&#xA;&lt;code>java.io&lt;/code> package always resolve relative pathnames against the&#xA;current user directory.  This directory is named by the system property&#xA;&lt;code>user.dir&lt;/code>, and is typically the directory in which the Java&#xA;virtual machine was invoked.&#xA;&#xA;&lt;p> The prefix concept is used to handle root directories on UNIX platforms,&#xA;and drive specifiers, root directories and UNC pathnames on Microsoft Windows platforms,&#xA;as follows:&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li> For UNIX platforms, the prefix of an absolute pathname is always&#xA;&lt;code>&quot;/&quot;&lt;/code>.  Relative pathnames have no prefix.  The abstract pathname&#xA;denoting the root directory has the prefix &lt;code>&quot;/&quot;&lt;/code> and an empty&#xA;name sequence.&#xA;&#xA;&lt;li> For Microsoft Windows platforms, the prefix of a pathname that contains a drive&#xA;specifier consists of the drive letter followed by &lt;code>&quot;:&quot;&lt;/code> and&#xA;possibly followed by &lt;code>&quot;\\&quot;&lt;/code> if the pathname is absolute.  The&#xA;prefix of a UNC pathname is &lt;code>&quot;\\\\&quot;&lt;/code>; the hostname and the share&#xA;name are the first two names in the name sequence.  A relative pathname that&#xA;does not specify a drive has no prefix.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p> Instances of the &lt;code>File&lt;/code> class are immutable; that is, once&#xA;created, the abstract pathname represented by a &lt;code>File&lt;/code> object&#xA;will never change.&#xA;&#xA;@version 1.122, 05/05/04&#xA;@author  unascribed&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_739862_7383"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321558_26293_13487" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_739862_7383" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321568_766047_13491" name="" supplier="_10_5_622020d_1132928321558_618875_13488" client="_9_5_f720368_1110473546596_739862_7383" contract="_10_5_622020d_1132928321558_618875_13488"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_233254_7471" name="PushbackInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307388_932435_4680" body="A &lt;code>PushbackInputStream&lt;/code> adds&#xA;functionality to another input stream, namely&#xA;the  ability to &quot;push back&quot; or &quot;unread&quot;&#xA;one byte. This is useful in situations where&#xA;it is  convenient for a fragment of code&#xA;to read an indefinite number of data bytes&#xA;that  are delimited by a particular byte&#xA;value; after reading the terminating byte,&#xA;the  code fragment can &quot;unread&quot; it, so that&#xA;the next read operation on the input stream&#xA;will reread the byte that was pushed back.&#xA;For example, bytes representing the  characters&#xA;constituting an identifier might be terminated&#xA;by a byte representing an  operator character;&#xA;a method whose job is to read just an identifier&#xA;can read until it  sees the operator and&#xA;then push the operator back to be re-read.&#xA;&#xA;@author  David Connelly&#xA;@author  Jonathan Payne&#xA;@version 1.36, 02/19/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_233254_7471"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_436940_13548" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_572173_7473" name="PushbackReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307388_381923_4682" body="A character-stream reader that allows characters to be pushed back into the&#xA;stream.&#xA;&#xA;@version &#x9;1.18, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_572173_7473"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_967491_13549" isSubstitutable="true" general="_9_5_f720368_1110473546596_655921_7411"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_779997_7479" name="SequenceInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307398_159836_4688" body="A &lt;code>SequenceInputStream&lt;/code> represents&#xA;the logical concatenation of other input&#xA;streams. It starts out with an ordered&#xA;collection of input streams and reads from&#xA;the first one until end of file is reached,&#xA;whereupon it reads from the second one,&#xA;and so on, until end of file is reached&#xA;on the last of the contained input streams.&#xA;&#xA;@author  Author van Hoff&#xA;@version 1.28, 05/12/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_779997_7479"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_755796_13555" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_514351_7441" name="ObjectOutput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307348_212989_4640" body="ObjectOutput extends the DataOutput interface to include writing of objects.&#xA;DataOutput includes methods for output of primitive types, ObjectOutput&#xA;extends that interface to include objects, arrays, and Strings.&#xA;&#xA;@author  unascribed&#xA;@version 1.16, 12/19/03&#xA;@see java.io.InputStream&#xA;@see java.io.ObjectOutputStream&#xA;@see java.io.ObjectInputStream&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_514351_7441"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_98148_13523" isSubstitutable="true" general="_9_5_f720368_1110473546596_686577_7373"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_665457_7491" name="StringReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_933253_4703" body="A character stream whose source is a string.&#xA;&#xA;@version &#x9;1.24, 04/02/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_665457_7491"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_791956_13559" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546612_364919_7481" name="Serializable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307408_81925_4690" body="Serializability of a class is enabled by the class implementing the&#xA;java.io.Serializable interface. Classes that do not implement this&#xA;interface will not have any of their state serialized or&#xA;deserialized.  All subtypes of a serializable class are themselves&#xA;serializable.  The serialization interface has no methods or fields&#xA;and serves only to identify the semantics of being serializable. &lt;p>&#xA;&#xA;To allow subtypes of non-serializable classes to be serialized, the&#xA;subtype may assume responsibility for saving and restoring the&#xA;state of the supertype's public, protected, and (if accessible)&#xA;package fields.  The subtype may assume this responsibility only if&#xA;the class it extends has an accessible no-arg constructor to&#xA;initialize the class's state.  It is an error to declare a class&#xA;Serializable if this is not the case.  The error will be detected at runtime. &lt;p>&#xA;&#xA;During deserialization, the fields of non-serializable classes will&#xA;be initialized using the public or protected no-arg constructor of&#xA;the class.  A no-arg constructor must be accessible to the subclass&#xA;that is serializable.  The fields of serializable subclasses will&#xA;be restored from the stream. &lt;p>&#xA;&#xA;When traversing a graph, an object may be encountered that does not&#xA;support the Serializable interface. In this case the&#xA;NotSerializableException will be thrown and will identify the class&#xA;of the non-serializable object. &lt;p>&#xA;&#xA;Classes that require special handling during the serialization and&#xA;deserialization process must implement special methods with these exact&#xA;signatures: &lt;p>&#xA;&#xA;&lt;PRE>&#xA;private void writeObject(java.io.ObjectOutputStream out)&#xA;throws IOException&#xA;private void readObject(java.io.ObjectInputStream in)&#xA;throws IOException, ClassNotFoundException;&#xA;&lt;/PRE>&lt;p>&#xA;&#xA;The writeObject method is responsible for writing the state of the&#xA;object for its particular class so that the corresponding&#xA;readObject method can restore it.  The default mechanism for saving&#xA;the Object's fields can be invoked by calling&#xA;out.defaultWriteObject. The method does not need to concern&#xA;itself with the state belonging to its superclasses or subclasses.&#xA;State is saved by writing the individual fields to the&#xA;ObjectOutputStream using the writeObject method or by using the&#xA;methods for primitive data types supported by DataOutput. &lt;p>&#xA;&#xA;The readObject method is responsible for reading from the stream and&#xA;restoring the classes fields. It may call in.defaultReadObject to invoke&#xA;the default mechanism for restoring the object's non-static and non-transient&#xA;fields.  The defaultReadObject method uses information in the stream to&#xA;assign the fields of the object saved in the stream with the correspondingly&#xA;named fields in the current object.  This handles the case when the class&#xA;has evolved to add new fields. The method does not need to concern&#xA;itself with the state belonging to its superclasses or subclasses.&#xA;State is saved by writing the individual fields to the&#xA;ObjectOutputStream using the writeObject method or by using the&#xA;methods for primitive data types supported by DataOutput. &lt;p>&#xA;&#xA;Serializable classes that need to designate an alternative object to be&#xA;used when writing an object to the stream should implement this&#xA;special method with the exact signature: &lt;p>&#xA;&#xA;&lt;PRE>&#xA;ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException;&#xA;&lt;/PRE>&lt;p>&#xA;&#xA;This writeReplace method is invoked by serialization if the method&#xA;exists and it would be accessible from a method defined within the&#xA;class of the object being serialized. Thus, the method can have private,&#xA;protected and package-private access. Subclass access to this method&#xA;follows java accessibility rules. &lt;p>&#xA;&#xA;Classes that need to designate a replacement when an instance of it&#xA;is read from the stream should implement this special method with the&#xA;exact signature.&lt;p>&#xA;&#xA;&lt;PRE>&#xA;ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;&#xA;&lt;/PRE>&lt;p>&#xA;&#xA;This readResolve method follows the same invocation rules and&#xA;accessibility rules as writeReplace.&lt;p>&#xA;&#xA;The serialization runtime associates with each serializable class a version&#xA;number, called a serialVersionUID, which is used during deserialization to&#xA;verify that the sender and receiver of a serialized object have loaded&#xA;classes for that object that are compatible with respect to serialization.&#xA;If the receiver has loaded a class for the object that has a different&#xA;serialVersionUID than that of the corresponding sender's class, then&#xA;deserialization will result in an {@link InvalidClassException}.  A&#xA;serializable class can declare its own serialVersionUID explicitly by&#xA;declaring a field named &lt;code>&quot;serialVersionUID&quot;&lt;/code> that must be static,&#xA;final, and of type &lt;code>long&lt;/code>:&lt;p>&#xA;&#xA;&lt;PRE>&#xA;ANY-ACCESS-MODIFIER static final long serialVersionUID = 42L;&#xA;&lt;/PRE>&#xA;&#xA;If a serializable class does not explicitly declare a serialVersionUID, then&#xA;the serialization runtime will calculate a default serialVersionUID value&#xA;for that class based on various aspects of the class, as described in the&#xA;Java(TM) Object Serialization Specification.  However, it is &lt;em>strongly&#xA;recommended&lt;/em> that all serializable classes explicitly declare&#xA;serialVersionUID values, since the default serialVersionUID computation is&#xA;highly sensitive to class details that may vary depending on compiler&#xA;implementations, and can thus result in unexpected&#xA;&lt;code>InvalidClassException&lt;/code>s during deserialization.  Therefore, to&#xA;guarantee a consistent serialVersionUID value across different java compiler&#xA;implementations, a serializable class must declare an explicit&#xA;serialVersionUID value.  It is also strongly advised that explicit&#xA;serialVersionUID declarations use the &lt;code>private&lt;/code> modifier where&#xA;possible, since such declarations apply only to the immediately declaring&#xA;class--serialVersionUID fields are not useful as inherited members.&#xA;&#xA;@author  unascribed&#xA;@version 1.22, 12/19/03&#xA;@see java.io.ObjectOutputStream&#xA;@see java.io.ObjectInputStream&#xA;@see java.io.ObjectOutput&#xA;@see java.io.ObjectInput&#xA;@see java.io.Externalizable&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_935147_7393" name="FileNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_893201_4579" body="Signals that an attempt to open the file denoted by a specified pathname&#xA;has failed.&#xA;&#xA;&lt;p> This exception will be thrown by the {@link FileInputStream}, {@link&#xA;FileOutputStream}, and {@link RandomAccessFile} constructors when a file&#xA;with the specified pathname does not exist.  It will also be thrown by these&#xA;constructors if the file does exist but for some reason is inaccessible, for&#xA;example when an attempt is made to open a read-only file for writing.&#xA;&#xA;@author  unascribed&#xA;@version 1.23, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_935147_7393"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_844232_13493" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_386914_7459" name="PipedInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_969041_4668" body="A piped input stream should be connected&#xA;to a piped output stream; the piped  input&#xA;stream then provides whatever data bytes&#xA;are written to the piped output  stream.&#xA;Typically, data is read from a &lt;code>PipedInputStream&lt;/code>&#xA;object by one thread  and data is written&#xA;to the corresponding &lt;code>PipedOutputStream&lt;/code>&#xA;by some  other thread. Attempting to use&#xA;both objects from a single thread is not&#xA;recommended, as it may deadlock the thread.&#xA;The piped input stream contains a buffer,&#xA;decoupling read operations from write operations,&#xA;within limits.&#xA;&#xA;@author  James Gosling&#xA;@version 1.35, 12/19/03&#xA;@see     java.io.PipedOutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_386914_7459"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_677177_13540" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_886481_7433" name="NotSerializableException">
            <ownedComment xmi:id="_10_5_622020d_1132928307308_439681_4625" body="Thrown when an instance is required to have a Serializable interface.&#xA;The serialization runtime or the class of the instance can throw&#xA;this exception. The argument should be the name of the class.&#xA;&#xA;@author  unascribed&#xA;@version 1.14, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_886481_7433"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_788110_13514" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_227278_7447" name="ObjectStreamConstants" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307358_962385_4656" body="Constants written into the Object Serialization Stream.&#xA;&#xA;@author  unascribed&#xA;@version 1.34, 01/12/04&#xA;@since JDK 1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_227278_7447"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_985863_7455" name="OutputStream" clientDependency="_10_5_622020d_1132928321588_221203_13537 _10_5_622020d_1132928321588_961815_13538" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307368_536807_4664" body="This abstract class is the superclass of all classes representing&#xA;an output stream of bytes. An output stream accepts output bytes&#xA;and sends them to some sink.&#xA;&lt;p>&#xA;Applications that need to define a subclass of&#xA;&lt;code>OutputStream&lt;/code> must always provide at least a method&#xA;that writes one byte of output.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.29, 04/21/04&#xA;@see     java.io.BufferedOutputStream&#xA;@see     java.io.ByteArrayOutputStream&#xA;@see     java.io.DataOutputStream&#xA;@see     java.io.FilterOutputStream&#xA;@see     java.io.InputStream&#xA;@see     java.io.OutputStream#write(int)&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_985863_7455"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321588_221203_13537" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546612_985863_7455" contract="_10_5_622020d_1132928307007_867857_4552"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321588_961815_13538" name="" supplier="_10_5_622020d_1132928307088_548810_4600" client="_9_5_f720368_1110473546612_985863_7455" contract="_10_5_622020d_1132928307088_548810_4600"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_876075_7363" name="CharArrayReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_497526_4547" body="This class implements a character buffer that can be used as a&#xA;character-input stream.&#xA;&#xA;@author&#x9;Herb Jellinek&#xA;@version &#x9;1.22, 02/19/04&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_876075_7363"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_552843_13478" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_460946_7367" name="CharConversionException">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_729256_4551" body="Base class for character conversion exceptions.&#xA;&#xA;@author      Asmus Freytag&#xA;@version &#x9;1.15, 12/19/03&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_460946_7367"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_330160_13480" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_297546_7417" name="InputStreamReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_344630_4606" body="An InputStreamReader is a bridge from byte streams to character streams: It&#xA;reads bytes and decodes them into characters using a specified {@link&#xA;java.nio.charset.Charset &lt;code>charset&lt;/code>}.  The charset that it uses&#xA;may be specified by name or may be given explicitly, or the platform's&#xA;default charset may be accepted.&#xA;&#xA;&lt;p> Each invocation of one of an InputStreamReader's read() methods may&#xA;cause one or more bytes to be read from the underlying byte-input stream.&#xA;To enable the efficient conversion of bytes to characters, more bytes may&#xA;be read ahead from the underlying stream than are necessary to satisfy the&#xA;current read operation.&#xA;&#xA;&lt;p> For top efficiency, consider wrapping an InputStreamReader within a&#xA;BufferedReader.  For example:&#xA;&#xA;&lt;pre>&#xA;BufferedReader in&#xA;= new BufferedReader(new InputStreamReader(System.in));&#xA;&lt;/pre>&#xA;&#xA;@see BufferedReader&#xA;@see InputStream&#xA;@see java.nio.charset.Charset&#xA;&#xA;@version     1.44, 03/12/19&#xA;@author      Mark Reinhold&#xA;@since       JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_297546_7417"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_551061_13506" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_333354_7377" name="EOFException">
            <ownedComment xmi:id="_10_5_622020d_1132928307047_300981_4564" body="Signals that an end of file or end of stream has been reached&#xA;unexpectedly during input.&#xA;&lt;p>&#xA;This exception is mainly used by data input streams to signal end of&#xA;stream. Note that many other input operations return a special value on&#xA;end of stream rather than throwing an exception.&#xA;&lt;p>&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.13, 12/19/03&#xA;@see     java.io.DataInputStream&#xA;@see     java.io.IOException&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_333354_7377"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_252620_13485" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_254669_7451" name="ObjectStreamField" clientDependency="_10_5_622020d_1132928321578_250671_13535">
            <ownedComment xmi:id="_10_5_622020d_1132928307368_5179_4660" body="A description of a Serializable field from a Serializable class.  An array&#xA;of ObjectStreamFields is used to declare the Serializable fields of a class.&#xA;&#xA;@author&#x9;Mike Warres&#xA;@author&#x9;Roger Riggs&#xA;@version 1.45, 04/05/05&#xA;@see ObjectStreamClass&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_254669_7451"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_250671_13535" name="" supplier="_10_5_622020d_1132928321578_278729_13532" client="_9_5_f720368_1110473546612_254669_7451" contract="_10_5_622020d_1132928321578_278729_13532"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_89850_7483" name="SerializablePermission" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307408_71631_4692" body="This class is for Serializable permissions. A SerializablePermission&#xA;contains a name (also referred to as a &quot;target name&quot;) but&#xA;no actions list; you either have the named permission&#xA;or you don't.&#xA;&#xA;&lt;P>&#xA;The target name is the name of the Serializable permission (see below).&#xA;&#xA;&lt;P>&#xA;The following table lists all the possible SerializablePermission target names,&#xA;and for each provides a description of what the permission allows&#xA;and a discussion of the risks of granting code the permission.&#xA;&lt;P>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;Permission target name, what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>enableSubclassImplementation&lt;/td>&#xA;&lt;td>Subclass implementation of ObjectOutputStream or ObjectInputStream&#xA;to override the default serialization or deserialization, respectively,&#xA;of objects&lt;/td>&#xA;&lt;td>Code can use this to serialize or&#xA;deserialize classes in a purposefully malfeasant manner. For example,&#xA;during serialization, malicious code can use this to&#xA;purposefully store confidential private field data in a way easily accessible&#xA;to attackers. Or, during deserialization it could, for example, deserialize&#xA;a class with all its private fields zeroed out.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>enableSubstitution&lt;/td>&#xA;&lt;td>Substitution of one object for another during&#xA;serialization or deserialization&lt;/td>&#xA;&lt;td>This is dangerous because malicious code&#xA;can replace the actual object with one which has incorrect or&#xA;malignant data.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;@see java.security.BasicPermission&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;@see java.lang.SecurityManager&#xA;&#xA;@version 1.19, 01/12/04&#xA;&#xA;@author Joe Fialli&#xA;@since 1.2&#xA;" annotatedElement="_9_5_f720368_1110473546612_89850_7483"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_875256_13556" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_961436_7375" name="DataOutputStream" clientDependency="_10_5_622020d_1132928321558_159071_13483">
            <ownedComment xmi:id="_10_5_622020d_1132928307047_980806_4562" body="A data output stream lets an application write primitive Java data&#xA;types to an output stream in a portable way. An application can&#xA;then use a data input stream to read the data back in.&#xA;&#xA;@author  unascribed&#xA;@version 1.43, 05/13/04&#xA;@see     java.io.DataInputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_961436_7375"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_248161_13484" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321558_159071_13483" name="" supplier="_9_5_f720368_1110473546596_686577_7373" client="_9_5_f720368_1110473546596_961436_7375" contract="_9_5_f720368_1110473546596_686577_7373"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_181413_7453" name="OptionalDataException">
            <ownedComment xmi:id="_10_5_622020d_1132928307368_816418_4662" body="Exception indicating the failure of an object read operation due to&#xA;unread primitive data, or the end of data belonging to a serialized&#xA;object in the stream.  This exception may be thrown in two cases:&#xA;&#xA;&lt;ul>&#xA;&lt;li>An attempt was made to read an object when the next element in the&#xA;stream is primitive data.  In this case, the OptionalDataException's&#xA;length field is set to the number of bytes of primitive data&#xA;immediately readable from the stream, and the eof field is set to&#xA;false.&#xA;&#xA;&lt;li>An attempt was made to read past the end of data consumable by a&#xA;class-defined readObject or readExternal method.  In this case, the&#xA;OptionalDataException's eof field is set to true, and the length field&#xA;is set to 0.&#xA;&lt;/ul>&#xA;&#xA;@author  unascribed&#xA;@version 1.18, 01/12/04&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_181413_7453"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_358645_13536" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_948993_7371" name="DataInputStream" clientDependency="_10_5_622020d_1132928321558_835823_13481">
            <ownedComment xmi:id="_10_5_622020d_1132928307047_460023_4558" body="A data input stream lets an application read primitive Java data&#xA;types from an underlying input stream in a machine-independent&#xA;way. An application uses a data output stream to write data that&#xA;can later be read by a data input stream.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.71, 05/28/04&#xA;@see     java.io.DataOutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_948993_7371"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_885399_13482" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321558_835823_13481" name="" supplier="_9_5_f720368_1110473546596_439635_7369" client="_9_5_f720368_1110473546596_948993_7371" contract="_9_5_f720368_1110473546596_439635_7369"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_677017_7415" name="InputStream" clientDependency="_10_5_622020d_1132928321568_816536_13505" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_407463_4604" body="This abstract class is the superclass of all classes representing&#xA;an input stream of bytes.&#xA;&#xA;&lt;p> Applications that need to define a subclass of &lt;code>InputStream&lt;/code>&#xA;must always provide a method that returns the next byte of input.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.45, 02/19/04&#xA;@see     java.io.BufferedInputStream&#xA;@see     java.io.ByteArrayInputStream&#xA;@see     java.io.DataInputStream&#xA;@see     java.io.FilterInputStream&#xA;@see     java.io.InputStream#read()&#xA;@see     java.io.OutputStream&#xA;@see     java.io.PushbackInputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_677017_7415"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321568_816536_13505" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546596_677017_7415" contract="_10_5_622020d_1132928307007_867857_4552"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_293067_7381" name="Externalizable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307057_718668_4567" body="Only the identity of the class of an Externalizable instance is&#xA;written in the serialization stream and it is the responsibility&#xA;of the class to save and restore the contents of its instances.&#xA;&#xA;The writeExternal and readExternal methods of the Externalizable&#xA;interface are implemented by a class to give the class complete&#xA;control over the format and contents of the stream for an object&#xA;and its supertypes. These methods must explicitly&#xA;coordinate with the supertype to save its state. These methods supersede&#xA;customized implementations of writeObject and readObject methods.&lt;br>&#xA;&#xA;Object Serialization uses the Serializable and Externalizable&#xA;interfaces.  Object persistence mechanisms can use them as well.  Each&#xA;object to be stored is tested for the Externalizable interface. If&#xA;the object supports Externalizable, the writeExternal method is called. If the&#xA;object does not support Externalizable and does implement&#xA;Serializable, the object is saved using&#xA;ObjectOutputStream. &lt;br> When an Externalizable object is&#xA;reconstructed, an instance is created using the public no-arg&#xA;constructor, then the readExternal method called.  Serializable&#xA;objects are restored by reading them from an ObjectInputStream.&lt;br>&#xA;&#xA;An Externalizable instance can designate a substitution object via&#xA;the writeReplace and readResolve methods documented in the Serializable&#xA;interface.&lt;br>&#xA;&#xA;@author  unascribed&#xA;@version 1.19, 01/12/04&#xA;@see java.io.ObjectOutputStream&#xA;@see java.io.ObjectInputStream&#xA;@see java.io.ObjectOutput&#xA;@see java.io.ObjectInput&#xA;@see java.io.Serializable&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_293067_7381"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_986035_13486" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_678938_7395" name="FileOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_121238_4581" body="A file output stream is an output stream for writing data to a&#xA;&lt;code>File&lt;/code> or to a &lt;code>FileDescriptor&lt;/code>. Whether or not&#xA;a file is available or may be created depends upon the underlying&#xA;platform.  Some platforms, in particular, allow a file to be opened&#xA;for writing by only one &lt;tt>FileOutputStream&lt;/tt> (or other&#xA;file-writing object) at a time.  In such situations the constructors in&#xA;this class will fail if the file involved is already open.&#xA;&#xA;&lt;p>&lt;code>FileOutputStream&lt;/code> is meant for writing streams of raw bytes&#xA;such as image data. For writing streams of characters, consider using&#xA;&lt;code>FileWriter&lt;/code>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.57, 12/19/03&#xA;@see     java.io.File&#xA;@see     java.io.FileDescriptor&#xA;@see     java.io.FileInputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_678938_7395"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_663471_13494" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_631397_7349" name="Bits" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928306997_413203_4533" body="Utility methods for packing/unpacking primitive values in/out of byte arrays&#xA;using big-endian byte ordering.&#xA;" annotatedElement="_9_5_f720368_1110473546596_631397_7349"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_801044_7505" name="WriteAbortedException">
            <ownedComment xmi:id="_10_5_622020d_1132928307428_532041_4716" body="Signals that one of the ObjectStreamExceptions was thrown during a&#xA;write operation.  Thrown during a read operation when one of the&#xA;ObjectStreamExceptions was thrown during a write operation.  The&#xA;exception that terminated the write can be found in the detail&#xA;field. The stream is reset to it's initial state and all references&#xA;to objects already deserialized are discarded.&#xA;&#xA;&lt;p>As of release 1.4, this exception has been retrofitted to conform to&#xA;the general purpose exception-chaining mechanism.  The &quot;exception causing&#xA;the abort&quot; that is provided at construction time and&#xA;accessed via the public {@link #detail} field is now known as the&#xA;&lt;i>cause&lt;/i>, and may be accessed via the {@link Throwable#getCause()}&#xA;method, as well as the aforementioned &quot;legacy field.&quot;&#xA;&#xA;@author  unascribed&#xA;@version 1.18, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_801044_7505"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_344997_13566" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_106057_7463" name="PipedReader">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_362795_4672" body="Piped character-input streams.&#xA;&#xA;@version &#x9;1.15, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_106057_7463"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_240129_13542" isSubstitutable="true" general="_9_5_f720368_1110473546612_910978_7477"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928321558_618875_13488" name="Comparable&lt;File>">
            <templateBinding xmi:id="_10_5_622020d_1132928321558_936385_13489" signature="_10_5_622020d_1132928307939_612079_4996">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928321558_179081_13490" formal="_10_5_622020d_1132928307939_608180_4997" actual="_9_5_f720368_1110473546596_739862_7383"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_800173_7397" name="FilePermission" clientDependency="_10_5_622020d_1132928321568_91805_13495" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_898290_4583" body="This class represents access to a file or directory.  A FilePermission consists&#xA;of a pathname and a set of actions valid for that pathname.&#xA;&lt;P>&#xA;Pathname is the pathname of the file or directory granted the specified&#xA;actions. A pathname that ends in &quot;/*&quot; (where &quot;/&quot; is&#xA;the file separator character, &lt;code>File.separatorChar&lt;/code>) indicates&#xA;all the files and directories contained in that directory. A pathname&#xA;that ends with &quot;/-&quot; indicates (recursively) all files&#xA;and subdirectories contained in that directory. A pathname consisting of&#xA;the special token &quot;&lt;&lt;ALL FILES>>&quot; matches &lt;b>any&lt;/b> file.&#xA;&lt;P>&#xA;Note: A pathname consisting of a single &quot;*&quot; indicates all the files&#xA;in the current directory, while a pathname consisting of a single &quot;-&quot;&#xA;indicates all the files in the current directory and&#xA;(recursively) all files and subdirectories contained in the current&#xA;directory.&#xA;&lt;P>&#xA;The actions to be granted are passed to the constructor in a string containing&#xA;a list of one or more comma-separated keywords. The possible keywords are&#xA;&quot;read&quot;, &quot;write&quot;, &quot;execute&quot;, and &quot;delete&quot;. Their meaning is defined as follows:&#xA;&lt;P>&#xA;&lt;DL>&#xA;&lt;DT> read &lt;DD> read permission&#xA;&lt;DT> write &lt;DD> write permission&#xA;&lt;DT> execute&#xA;&lt;DD> execute permission. Allows &lt;code>Runtime.exec&lt;/code> to&#xA;be called. Corresponds to &lt;code>SecurityManager.checkExec&lt;/code>.&#xA;&lt;DT> delete&#xA;&lt;DD> delete permission. Allows &lt;code>File.delete&lt;/code> to&#xA;be called. Corresponds to &lt;code>SecurityManager.checkDelete&lt;/code>.&#xA;&lt;/DL>&#xA;&lt;P>&#xA;The actions string is converted to lowercase before processing.&#xA;&lt;P>&#xA;Be careful when granting FilePermissions. Think about the implications&#xA;of granting read and especially write access to various files and&#xA;directories. The &quot;&lt;&lt;ALL FILES>>&quot; permission with write action is&#xA;especially dangerous. This grants permission to write to the entire&#xA;file system. One thing this effectively allows is replacement of the&#xA;system binary, including the JVM runtime environment.&#xA;&#xA;&lt;p>Please note: Code can always read a file from the same&#xA;directory it's in (or a subdirectory of that directory); it does not&#xA;need explicit permission to do so.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;&#xA;@version 1.76 04/01/12&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;@since 1.2&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546596_800173_7397"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_554076_13496" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321568_91805_13495" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_800173_7397" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_615551_7409" name="FilterOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307088_343058_4595" body="This class is the superclass of all classes that filter output&#xA;streams. These streams sit on top of an already existing output&#xA;stream (the &lt;i>underlying&lt;/i> output stream) which it uses as its&#xA;basic sink of data, but possibly transforming the data along the&#xA;way or providing additional functionality.&#xA;&lt;p>&#xA;The class &lt;code>FilterOutputStream&lt;/code> itself simply overrides&#xA;all methods of &lt;code>OutputStream&lt;/code> with versions that pass&#xA;all requests to the underlying output stream. Subclasses of&#xA;&lt;code>FilterOutputStream&lt;/code> may further override some of these&#xA;methods as well as provide additional methods and fields.&#xA;&#xA;@author  Jonathan Payne&#xA;@version 1.31, 12/19/03&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_615551_7409"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_157692_13502" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_848997_7405" name="FileWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307078_365001_4591" body="Convenience class for writing character files.  The constructors of this&#xA;class assume that the default character encoding and the default byte-buffer&#xA;size are acceptable.  To specify these values yourself, construct an&#xA;OutputStreamWriter on a FileOutputStream.&#xA;&#xA;&lt;p>Whether or not a file is available or may be created depends upon the&#xA;underlying platform.  Some platforms, in particular, allow a file to be&#xA;opened for writing by only one &lt;tt>FileWriter&lt;/tt> (or other file-writing&#xA;object) at a time.  In such situations the constructors in this class&#xA;will fail if the file involved is already open.&#xA;&#xA;&lt;p>&lt;code>FileWriter&lt;/code> is meant for writing streams of characters.&#xA;For writing streams of raw bytes, consider using a&#xA;&lt;code>FileOutputStream&lt;/code>.&#xA;&#xA;@see OutputStreamWriter&#xA;@see FileOutputStream&#xA;&#xA;@version &#x9;1.18, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_848997_7405"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_870388_13500" isSubstitutable="true" general="_9_5_f720368_1110473546612_957082_7457"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_914930_7423" name="InvalidObjectException">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_620356_4612" body="Indicates that one or more deserialized objects failed validation&#xA;tests.  The argument should provide the reason for the failure.&#xA;&#xA;@see ObjectInputValidation&#xA;@since JDK1.1&#xA;&#xA;@author  unascribed&#xA;@version 1.16, 01/12/04&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_914930_7423"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_587283_13509" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_920902_7449" name="ObjectStreamException" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307368_926645_4658" body="Superclass of all exceptions specific to Object Stream classes.&#xA;&#xA;@author  unascribed&#xA;@version 1.13, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_920902_7449"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_104627_13531" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_809909_7361" name="ByteArrayOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_143679_4545" body="This class implements an output stream in which the data is&#xA;written into a byte array. The buffer automatically grows as data&#xA;is written to it.&#xA;The data can be retrieved using &lt;code>toByteArray()&lt;/code> and&#xA;&lt;code>toString()&lt;/code>.&#xA;&lt;p>&#xA;Closing a &lt;tt>ByteArrayOutputStream&lt;/tt> has no effect. The methods in&#xA;this class can be called after the stream has been closed without&#xA;generating an &lt;tt>IOException&lt;/tt>.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.49, 05/18/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_809909_7361"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_314070_13477" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_997228_7351" name="BufferedInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928306997_866969_4535" body="A &lt;code>BufferedInputStream&lt;/code> adds&#xA;functionality to another input stream-namely,&#xA;the ability to buffer the input and to&#xA;support the &lt;code>mark&lt;/code> and &lt;code>reset&lt;/code>&#xA;methods. When  the &lt;code>BufferedInputStream&lt;/code>&#xA;is created, an internal buffer array is&#xA;created. As bytes  from the stream are read&#xA;or skipped, the internal buffer is refilled&#xA;as necessary  from the contained input stream,&#xA;many bytes at a time. The &lt;code>mark&lt;/code>&#xA;operation  remembers a point in the input&#xA;stream and the &lt;code>reset&lt;/code> operation&#xA;causes all the  bytes read since the most&#xA;recent &lt;code>mark&lt;/code> operation to be&#xA;reread before new bytes are  taken from&#xA;the contained input stream.&#xA;&#xA;@author  Arthur van Hoff&#xA;@version 1.50, 05/03/04&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_997228_7351"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_306823_13472" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928307088_548810_4600" name="Flushable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307108_156706_4602" body="A &lt;tt>Flushable&lt;/tt> is a destination of data that can be flushed.  The&#xA;flush method is invoked to write any buffered output to the underlying&#xA;stream.&#xA;&#xA;@version 1.1 04/04/21&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928307088_548810_4600"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_994549_7419" name="InterruptedIOException">
            <ownedComment xmi:id="_10_5_622020d_1132928307118_255098_4608" body="Signals that an I/O operation has been interrupted. An&#xA;&lt;code>InterruptedIOException&lt;/code> is thrown to indicate that an&#xA;input or output transfer has been terminated because the thread&#xA;performing it was interrupted. The field {@link #bytesTransferred}&#xA;indicates how many bytes were successfully transferred before&#xA;the interruption occurred.&#xA;&#xA;@author  unascribed&#xA;@version 1.19, 12/19/03&#xA;@see     java.io.InputStream&#xA;@see     java.io.OutputStream&#xA;@see     java.lang.Thread#interrupt()&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_994549_7419"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_691729_13507" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_101729_7469" name="PrintWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_891748_4678" body="Print formatted representations of objects to a text-output stream.  This&#xA;class implements all of the &lt;tt>print&lt;/tt> methods found in {@link&#xA;PrintStream}.  It does not contain methods for writing raw bytes, for which&#xA;a program should use unencoded byte streams.&#xA;&#xA;&lt;p> Unlike the {@link PrintStream} class, if automatic flushing is enabled&#xA;it will be done only when one of the &lt;tt>println&lt;/tt>, &lt;tt>printf&lt;/tt>, or&#xA;&lt;tt>format&lt;/tt> methods is invoked, rather than whenever a newline character&#xA;happens to be output.  These methods use the platform's own notion of line&#xA;separator rather than the newline character.&#xA;&#xA;&lt;p> Methods in this class never throw I/O exceptions, although some of its&#xA;constructors may.  The client may inquire as to whether any errors have&#xA;occurred by invoking {@link #checkError checkError()}.&#xA;&#xA;@version &#x9;1.37, 07/16/04&#xA;@author&#x9;Frank Yellin&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_101729_7469"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_99570_13547" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_823672_7427" name="LineNumberInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307298_318971_4619" body="This class is an input stream filter that provides the added&#xA;functionality of keeping track of the current line number.&#xA;&lt;p>&#xA;A line is a sequence of bytes ending with a carriage return&#xA;character (&lt;code>'&amp;#92;r'&lt;/code>), a newline character&#xA;(&lt;code>'&amp;#92;n'&lt;/code>), or a carriage return character followed&#xA;immediately by a linefeed character. In all three cases, the line&#xA;terminating character(s) are returned as a single newline character.&#xA;&lt;p>&#xA;The line number begins at &lt;code>0&lt;/code>, and is incremented by&#xA;&lt;code>1&lt;/code> when a &lt;code>read&lt;/code> returns a newline character.&#xA;&#xA;@author     Arthur van Hoff&#xA;@version    1.27, 05/18/04&#xA;@see        java.io.LineNumberReader&#xA;@since      JDK1.0&#xA;@deprecated This class incorrectly assumes that bytes adequately represent&#xA;characters.  As of JDK&amp;nbsp;1.1, the preferred way to operate on&#xA;character streams is via the new character-stream classes, which&#xA;include a class for counting line numbers.&#xA;" annotatedElement="_9_5_f720368_1110473546596_823672_7427"/>
            <generalization xmi:id="_10_5_622020d_1132928321578_850044_13511" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_910978_7477" name="Reader" clientDependency="_10_5_622020d_1132928321598_132947_13553 _10_5_622020d_1132928321598_616930_13554" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307388_471572_4686" body="Abstract class for reading character streams.  The only methods that a&#xA;subclass must implement are read(char[], int, int) and close().  Most&#xA;subclasses, however, will override some of the methods defined here in order&#xA;to provide higher efficiency, additional functionality, or both.&#xA;&#xA;&#xA;@see BufferedReader&#xA;@see   LineNumberReader&#xA;@see CharArrayReader&#xA;@see InputStreamReader&#xA;@see   FileReader&#xA;@see FilterReader&#xA;@see   PushbackReader&#xA;@see PipedReader&#xA;@see StringReader&#xA;@see Writer&#xA;&#xA;@version &#x9;1.27, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_910978_7477"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_132947_13553" name="" supplier="_10_5_622020d_1132928308059_262497_5125" client="_9_5_f720368_1110473546612_910978_7477" contract="_10_5_622020d_1132928308059_262497_5125"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321598_616930_13554" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546612_910978_7477" contract="_10_5_622020d_1132928307007_867857_4552"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_932881_7461" name="PipedOutputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_113894_4670" body="A piped output stream can be connected to a piped input stream&#xA;to create a communications pipe. The piped output stream is the&#xA;sending end of the pipe. Typically, data is written to a&#xA;&lt;code>PipedOutputStream&lt;/code> object by one thread and data is&#xA;read from the connected &lt;code>PipedInputStream&lt;/code> by some&#xA;other thread. Attempting to use both objects from a single thread&#xA;is not recommended as it may deadlock the thread.&#xA;&#xA;@author  James Gosling&#xA;@version 1.26, 12/19/03&#xA;@see     java.io.PipedInputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_932881_7461"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_671639_13541" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_482204_7467" name="PrintStream" clientDependency="_10_5_622020d_1132928321588_21139_13544 _10_5_622020d_1132928321588_483130_13545">
            <ownedComment xmi:id="_10_5_622020d_1132928307378_714909_4676" body="A &lt;code>PrintStream&lt;/code> adds functionality to another output stream,&#xA;namely the ability to print representations of various data values&#xA;conveniently.  Two other features are provided as well.  Unlike other output&#xA;streams, a &lt;code>PrintStream&lt;/code> never throws an&#xA;&lt;code>IOException&lt;/code>; instead, exceptional situations merely set an&#xA;internal flag that can be tested via the &lt;code>checkError&lt;/code> method.&#xA;Optionally, a &lt;code>PrintStream&lt;/code> can be created so as to flush&#xA;automatically; this means that the &lt;code>flush&lt;/code> method is&#xA;automatically invoked after a byte array is written, one of the&#xA;&lt;code>println&lt;/code> methods is invoked, or a newline character or byte&#xA;(&lt;code>'\n'&lt;/code>) is written.&#xA;&#xA;&lt;p> All characters printed by a &lt;code>PrintStream&lt;/code> are converted into&#xA;bytes using the platform's default character encoding.  The &lt;code>{@link&#xA;PrintWriter}&lt;/code> class should be used in situations that require writing&#xA;characters rather than bytes.&#xA;&#xA;@version    1.32, 04/07/16&#xA;@author     Frank Yellin&#xA;@author     Mark Reinhold&#xA;@since      JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_482204_7467"/>
            <generalization xmi:id="_10_5_622020d_1132928321588_871964_13546" isSubstitutable="true" general="_9_5_f720368_1110473546596_615551_7409"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321588_21139_13544" name="" supplier="_10_5_622020d_1132928307869_604362_4929" client="_9_5_f720368_1110473546612_482204_7467" contract="_10_5_622020d_1132928307869_604362_4929"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321588_483130_13545" name="" supplier="_10_5_622020d_1132928307007_867857_4552" client="_9_5_f720368_1110473546612_482204_7467" contract="_10_5_622020d_1132928307007_867857_4552"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_104458_7413" name="FilterWriter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307088_394385_4599" body="Abstract class for writing filtered character streams.&#xA;The abstract class &lt;code>FilterWriter&lt;/code> itself&#xA;provides default methods that pass all requests to the&#xA;contained stream. Subclasses of &lt;code>FilterWriter&lt;/code>&#xA;should override some of these methods and may also&#xA;provide additional methods and fields.&#xA;&#xA;@version &#x9;1.16, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_104458_7413"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_976825_13504" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546596_686577_7373" name="DataOutput" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307047_335239_4560" body="The &lt;code>DataOutput&lt;/code> interface provides&#xA;for converting data from any of the Java&#xA;primitive types to a series of bytes and&#xA;writing these bytes to a binary stream.&#xA;There is  also a facility for converting&#xA;a &lt;code>String&lt;/code> into&#xA;&lt;a href=&quot;DataInput.html#modified-utf-8&quot;>modified UTF-8&lt;/a>&#xA;format and writing the resulting series&#xA;of bytes.&#xA;&lt;p>&#xA;For all the methods in this interface that&#xA;write bytes, it is generally true that if&#xA;a byte cannot be written for any reason,&#xA;an &lt;code>IOException&lt;/code> is thrown.&#xA;&#xA;@author  Frank Yellin&#xA;@version 1.21, 05/13/04&#xA;@see     java.io.DataInput&#xA;@see     java.io.DataOutputStream&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546596_686577_7373"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_265573_7485" name="StreamCorruptedException">
            <ownedComment xmi:id="_10_5_622020d_1132928307408_719186_4694" body="Thrown when control information that was read from an object stream&#xA;violates internal consistency checks.&#xA;&#xA;@author  unascribed&#xA;@version 1.14, 12/19/03&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_265573_7485"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_191815_13557" isSubstitutable="true" general="_9_5_f720368_1110473546596_920902_7449"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_122934_7399" name="FilePermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928321568_942249_13497" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928307068_30361_4585" body="A FilePermissionCollection stores a set of FilePermission permissions.&#xA;FilePermission objects&#xA;must be stored in a manner that allows them to be inserted in any&#xA;order, but enable the implies function to evaluate the implies&#xA;method.&#xA;For example, if you have two FilePermissions:&#xA;&lt;OL>&#xA;&lt;LI> &quot;/tmp/-&quot;, &quot;read&quot;&#xA;&lt;LI> &quot;/tmp/scratch/foo&quot;, &quot;write&quot;&#xA;&lt;/OL>&#xA;And you are calling the implies function with the FilePermission:&#xA;&quot;/tmp/scratch/foo&quot;, &quot;read,write&quot;, then the implies function must&#xA;take into account both the /tmp/- and /tmp/scratch/foo&#xA;permissions, so the effective permission is &quot;read,write&quot;.&#xA;&#xA;@see java.security.Permission&#xA;@see java.security.Permissions&#xA;@see java.security.PermissionCollection&#xA;&#xA;@version 1.76 01/12/04&#xA;&#xA;@author Marianne Mueller&#xA;@author Roland Schemers&#xA;&#xA;@serial include&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546596_122934_7399"/>
            <generalization xmi:id="_10_5_622020d_1132928321568_71389_13498" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321568_942249_13497" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_122934_7399" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_416449_7445" name="ObjectStreamClass" clientDependency="_10_5_622020d_1132928321578_658799_13530">
            <ownedComment xmi:id="_10_5_622020d_1132928307358_12966_4654" body="Serialization's descriptor for classes.  It contains the name and&#xA;serialVersionUID of the class.  The ObjectStreamClass for a specific class&#xA;loaded in this Java VM can be found/created using the lookup method.&#xA;&#xA;&lt;p>The algorithm to compute the SerialVersionUID is described in&#xA;&lt;a href=&quot;../../../guide/serialization/spec/class.doc4.html&quot;>Object&#xA;Serialization Specification, Section 4.4, Stream Unique Identifiers&lt;/a>.&#xA;&#xA;@author&#x9;Mike Warres&#xA;@author&#x9;Roger Riggs&#xA;@version 1.98 02/02/00&#xA;@see ObjectStreamField&#xA;@see &lt;a href=&quot;../../../guide/serialization/spec/class.doc.html&quot;>Object Serialization Specification, Section 4, Class Descriptors&lt;/a>&#xA;@since   JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_416449_7445"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928321578_658799_13530" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546596_416449_7445" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_600705_17654" name="EntryFuture" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307358_341112_4648" body="Placeholder used in class descriptor and field reflector lookup tables&#xA;for an entry in the process of being initialized.  (Internal) callers&#xA;which receive an EntryFuture belonging to another thread as the result&#xA;of a lookup should call the get() method of the EntryFuture; this will&#xA;return the actual entry once it is ready for use and has been set().  To&#xA;conserve objects, EntryFutures synchronize on themselves.&#xA;" annotatedElement="_9_5_f720368_1110473547487_600705_17654"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_252382_17657" name="ClassDataSlot" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928307358_909201_4649" body="Class representing the portion of an object's serialized form allotted&#xA;to data described by a given class descriptor.  If &quot;hasData&quot; is false,&#xA;the object's serialized form does not contain data associated with the&#xA;class descriptor.&#xA;" annotatedElement="_9_5_f720368_1110473547487_252382_17657"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_672523_17660" name="MemberSignature" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307358_52880_4650" body="Class for computing and caching field/constructor/method signatures&#xA;during serialVersionUID calculation.&#xA;" annotatedElement="_9_5_f720368_1110473547487_672523_17660"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_348791_17663" name="FieldReflector" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307358_856795_4651" body="Class for setting and retrieving serializable field values in batch.&#xA;" annotatedElement="_9_5_f720368_1110473547487_348791_17663"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547487_576589_17666" name="FieldReflectorKey" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928307358_961769_4652" body="FieldReflector cache lookup key.  Keys are considered equal if they&#xA;refer to the same class and equivalent field formats.&#xA;" annotatedElement="_9_5_f720368_1110473547487_576589_17666"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_229716_7487" name="StreamTokenizer">
            <ownedComment xmi:id="_10_5_622020d_1132928307408_392754_4696" body="The &lt;code>StreamTokenizer&lt;/code> class takes an input stream and&#xA;parses it into &quot;tokens&quot;, allowing the tokens to be&#xA;read one at a time. The parsing process is controlled by a table&#xA;and a number of flags that can be set to various states. The&#xA;stream tokenizer can recognize identifiers, numbers, quoted&#xA;strings, and various comment styles.&#xA;&lt;p>&#xA;Each byte read from the input stream is regarded as a character&#xA;in the range &lt;code>'&amp;#92;u0000'&lt;/code> through &lt;code>'&amp;#92;u00FF'&lt;/code>.&#xA;The character value is used to look up five possible attributes of&#xA;the character: &lt;i>white space&lt;/i>, &lt;i>alphabetic&lt;/i>,&#xA;&lt;i>numeric&lt;/i>, &lt;i>string quote&lt;/i>, and &lt;i>comment character&lt;/i>.&#xA;Each character can have zero or more of these attributes.&#xA;&lt;p>&#xA;In addition, an instance has four flags. These flags indicate:&#xA;&lt;ul>&#xA;&lt;li>Whether line terminators are to be returned as tokens or treated&#xA;as white space that merely separates tokens.&#xA;&lt;li>Whether C-style comments are to be recognized and skipped.&#xA;&lt;li>Whether C++-style comments are to be recognized and skipped.&#xA;&lt;li>Whether the characters of identifiers are converted to lowercase.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;A typical application first constructs an instance of this class,&#xA;sets up the syntax tables, and then repeatedly loops calling the&#xA;&lt;code>nextToken&lt;/code> method in each iteration of the loop until&#xA;it returns the value &lt;code>TT_EOF&lt;/code>.&#xA;&#xA;@author  James Gosling&#xA;@version 1.44, 05/18/04&#xA;@see     java.io.StreamTokenizer#nextToken()&#xA;@see     java.io.StreamTokenizer#TT_EOF&#xA;@since   JDK1.0&#xA;" annotatedElement="_9_5_f720368_1110473546612_229716_7487"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546596_247554_7357" name="BufferedWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307007_993548_4541" body="Write text to a character-output stream, buffering characters so as to&#xA;provide for the efficient writing of single characters, arrays, and strings.&#xA;&#xA;&lt;p> The buffer size may be specified, or the default size may be accepted.&#xA;The default is large enough for most purposes.&#xA;&#xA;&lt;p> A newLine() method is provided, which uses the platform's own notion of&#xA;line separator as defined by the system property &lt;tt>line.separator&lt;/tt>.&#xA;Not all platforms use the newline character ('\n') to terminate lines.&#xA;Calling this method to terminate each output line is therefore preferred to&#xA;writing a newline character directly.&#xA;&#xA;&lt;p> In general, a Writer sends its output immediately to the underlying&#xA;character or byte stream.  Unless prompt output is required, it is advisable&#xA;to wrap a BufferedWriter around any Writer whose write() operations may be&#xA;costly, such as FileWriters and OutputStreamWriters.  For example,&#xA;&#xA;&lt;pre>&#xA;PrintWriter out&#xA;= new PrintWriter(new BufferedWriter(new FileWriter(&quot;foo.out&quot;)));&#xA;&lt;/pre>&#xA;&#xA;will buffer the PrintWriter's output to the file.  Without buffering, each&#xA;invocation of a print() method would cause characters to be converted into&#xA;bytes that would then be written immediately to the file, which can be very&#xA;inefficient.&#xA;&#xA;@see PrintWriter&#xA;@see FileWriter&#xA;@see OutputStreamWriter&#xA;&#xA;@version &#x9;1.26, 03/12/19&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546596_247554_7357"/>
            <generalization xmi:id="_10_5_622020d_1132928321558_792552_13475" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_267403_7503" name="WinNTFileSystem" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928307428_354147_4714" body="Unicode-aware FileSystem for Windows NT/2000.&#xA;&#xA;@author Konstantin Kladko&#xA;@version 1.9, 04/03/20&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546612_267403_7503"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_224787_13565" isSubstitutable="true" general="_9_5_f720368_1110473546612_665843_7501"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546612_404922_7493" name="StringWriter">
            <ownedComment xmi:id="_10_5_622020d_1132928307418_428173_4705" body="A character stream that collects its output in a string buffer, which can&#xA;then be used to construct a string.&#xA;&lt;p>&#xA;Closing a &lt;tt>StringWriter&lt;/tt> has no effect. The methods in this class&#xA;can be called after the stream has been closed without generating an&#xA;&lt;tt>IOException&lt;/tt>.&#xA;&#xA;@version &#x9;1.24, 04/07/16&#xA;@author&#x9;Mark Reinhold&#xA;@since&#x9;JDK1.1&#xA;" annotatedElement="_9_5_f720368_1110473546612_404922_7493"/>
            <generalization xmi:id="_10_5_622020d_1132928321598_560485_13560" isSubstitutable="true" general="_9_5_f720368_1110473546612_916981_7507"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_686601_25101" name="org">
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_959545_25102" name="apache">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548690_930927_26091" name="xpath">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_45182_12002" name="XPathAPI"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_584543_11974" name="DOMHelper"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548690_499577_26180" name="domapi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473375174_276294_4529" name="XPathEvaluatorImpl">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_327601_26182" name="DummyPrefixResolver" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_831541_11760" name="XPathResultImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_389390_11754" name="XPathExpressionImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_70881_11758" name="XPathNSResolverImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_268801_11756" name="XPathNamespaceImpl"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_488835_12000" name="XPath"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_749813_11998" name="WhitespaceStrippingElementMatcher" isAbstract="true"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_97175_11978" name="Expression" isAbstract="true"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_554244_12010" name="XPathProcessorException"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_780598_11990" name="NodeSetDTM"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548706_506196_26330" name="operations">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_839525_11898" name="Gte"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_527857_11924" name="String"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_893679_11892" name="Div"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_243889_11918" name="Or"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_903653_11920" name="Plus"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_108599_11902" name="Lte"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_972309_11894" name="Equals"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_207614_11890" name="Bool"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_123044_11922" name="Quo"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_586411_11888" name="And"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_314000_11914" name="Number"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_941005_11928" name="Variable"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_611308_11910" name="Neg"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_498154_11912" name="NotEquals"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_67026_11904" name="Minus"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_573882_11926" name="UnaryOperation" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_169086_11930" name="VariableSafeAbsRef"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_621217_11916" name="Operation">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_660842_26346" name="LeftExprOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_967992_11900" name="Lt"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_748465_11906" name="Mod"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_72391_11908" name="Mult"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_717402_11896" name="Gt"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548690_380010_26167" name="compiler">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_991982_11737" name="Keywords"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_198465_11751" name="XPathParser"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_357231_11747" name="PsuedoNames"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_285158_11741" name="OpCodes"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_916991_11745" name="OpMapVector"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_828717_11749" name="XPathDumper"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_334787_11739" name="Lexer" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_358652_11735" name="FunctionTable"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_691984_11733" name="FuncLoader"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_510257_11731" name="Compiler"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_851013_11743" name="OpMap"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_970293_11970" name="CachedXPathAPI"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_821283_11988" name="NodeSet"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_593417_11996" name="VariableStack"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_503380_12004" name="XPathContext">
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548721_752977_26444" name="XPathExpressionContext"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_176193_11982" name="ExpressionOwner" isAbstract="true"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548706_52484_26380" name="patterns">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_19147_11940" name="StepPattern">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_251227_26387" name="PredOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_736018_11932" name="ContextMatchStepPattern"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_520075_11934" name="FunctionPattern">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_174420_26383" name="FunctionOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_158103_11936" name="NodeTest"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_60767_11938" name="NodeTestFilter" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_317215_11942" name="UnionPattern">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_325191_26389" name="UnionPathPartOwner" visibility="package"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_919265_11972" name="DOM2Helper"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_480844_11986" name="FoundIndex"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_758564_12014" name="XPathVisitor"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_230793_11994" name="SourceTreeManager"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_985051_11992" name="SourceTree"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548706_637034_26191" name="functions">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_261899_11806" name="FuncQname"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_574726_11826" name="Function" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_378694_11778" name="FuncExtFunction">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_22312_26201" name="ArgExtOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_467494_11792" name="FuncLast"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_992970_11774" name="FuncDoclocation"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_296034_11830" name="Function3Args">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_174575_26229" name="Arg2Owner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_824350_11822" name="FuncSum"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_328349_11834" name="FunctionMultiArgs">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_37378_26232" name="ArgMultiOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_904258_11844" name="WrongNumberArgsException"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_604991_11840" name="FuncTrue"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_860897_11804" name="FuncPosition"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_31265_11782" name="FuncFalse"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_311097_11800" name="FuncNot"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_656634_11790" name="FuncLang"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_70182_11838" name="FuncTranslate"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_371668_11772" name="FuncCurrent"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_631513_11812" name="FuncString"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_427878_11768" name="FuncContains"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_43164_11824" name="FuncSystemProperty"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_695500_11776" name="FuncExtElementAvailable"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_594486_11794" name="FuncLocalPart"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_386425_11816" name="FuncSubstring"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_527028_11786" name="FuncGenerateId"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_980272_11764" name="FuncCeiling"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_270143_11788" name="FuncId"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_858846_11818" name="FuncSubstringAfter"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_818932_11762" name="FuncBoolean"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_618699_11796" name="FuncNamespace"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_553126_11810" name="FuncStartsWith"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_904558_11814" name="FuncStringLength"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_868842_11770" name="FuncCount"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_717459_11820" name="FuncSubstringBefore"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_521377_11828" name="Function2Args">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548706_90990_26227" name="Arg1Owner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_802329_11766" name="FuncConcat"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_256072_11798" name="FuncNormalizeSpace"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_866531_11842" name="FuncUnparsedEntityURI"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_847284_11808" name="FuncRound"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_207441_11780" name="FuncExtFunctionAvailable"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_118061_11784" name="FuncFloor"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_544885_11802" name="FuncNumber"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_456638_11832" name="FunctionDef1Arg"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_805084_11836" name="FunctionOneArg"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_68051_11968" name="Arg"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_774074_12008" name="XPathFactory" isAbstract="true"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_502745_12012" name="XPathVisitable" isAbstract="true"/>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_875529_11984" name="ExtensionsProvider" isAbstract="true"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548706_813539_26400" name="res">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_618698_11946" name="XPATHErrorResources"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_958144_11960" name="XPATHErrorResources_ko"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_975395_11958" name="XPATHErrorResources_ja"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_507347_11956" name="XPATHErrorResources_it"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_489428_11954" name="XPATHErrorResources_fr"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_934569_11964" name="XPATHErrorResources_zh_CN"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_402162_11950" name="XPATHErrorResources_en"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_655471_11962" name="XPATHErrorResources_sv"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_49396_11952" name="XPATHErrorResources_es"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_241789_11966" name="XPATHErrorResources_zh_TW"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_489363_11948" name="XPATHErrorResources_de"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_826625_11944" name="XPATHErrorResourceBundle"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_105518_11976" name="DOMOrder" isAbstract="true"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548690_901875_26092" name="axes">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_117527_11675" name="AttributeIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_148071_11677" name="AxesWalker"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_364905_11703" name="NodeSequence"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_52715_11715" name="RTFIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_163843_11687" name="DescendantIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_739738_11705" name="OneStepIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_803732_11689" name="FilterExprIterator">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_185234_26100" name="filterExprOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546862_824591_11685" name="ContextNodeList" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_92041_11691" name="FilterExprIteratorSimple">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_416691_26102" name="filterExprOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_97388_11725" name="WalkerFactory"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_301254_11729" name="WalkingIteratorSorted"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_791420_11723" name="UnionPathIterator">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_577153_26118" name="iterOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_805527_11681" name="ChildIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_869014_11697" name="IteratorPool"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_847789_11695" name="HasPositionalPredChecker"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_723523_11701" name="MatchPatternIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_698893_11727" name="WalkingIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_123007_11679" name="BasicTestIterator" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_261834_11713" name="ReverseAxesWalker"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546862_858068_11719" name="SubContextList" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_469905_11693" name="FilterExprWalker">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_250071_26104" name="filterExprOwner" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546862_616977_11709" name="PathComponent" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_866872_11707" name="OneStepIteratorForward"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_366184_11683" name="ChildTestIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_242964_11717" name="SelfIteratorNoPredicate"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_279584_11699" name="LocPathIterator" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_835310_11721" name="UnionChildIterator"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546862_637647_11711" name="PredicatedNodeTest" isAbstract="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548690_540563_26112" name="PredOwner" visibility="package"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546878_657583_11980" name="ExpressionNode" isAbstract="true"/>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_469755_12006" name="XPathException"/>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548706_706588_26285" name="objects">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_30595_11848" name="XBooleanStatic"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_361703_11882" name="XString"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_81124_11876" name="XObjectFactory"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_859538_11886" name="XStringForFSB"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_524414_11858" name="LessThanOrEqualComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_382028_11874" name="XObject"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_498731_11870" name="XNull"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_624137_11878" name="XRTreeFrag"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_903544_11868" name="XNodeSetForDOM"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_178657_11862" name="GreaterThanOrEqualComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_85197_11846" name="XBoolean"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_1008_11850" name="XMLStringFactoryImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_553911_11854" name="Comparator" visibility="package" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_431326_11880" name="XRTreeFragSelectWrapper"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_711701_11864" name="EqualComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_728074_11872" name="XNumber"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_975430_11866" name="NotEqualComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_129207_11860" name="GreaterThanComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_42384_11856" name="LessThanComparator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_479596_11884" name="XStringForChars"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546878_855791_11852" name="XNodeSet"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_773024_25103" name="crimson">
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548612_394927_25286" name="util">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_29188_11057" name="MessageCatalog" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_842918_11059" name="XmlChars"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_556390_11061" name="XmlNames"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_940808_25104" name="jaxp">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_121834_10955" name="DefaultValidationErrorHandler" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_765799_10961" name="SAXParserFactoryImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_557384_10959" name="DocumentBuilderImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_663516_10957" name="DocumentBuilderFactoryImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_700657_10963" name="SAXParserImpl"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548596_594183_25178" name="tree">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_942977_11015" name="DocumentEx" isAbstract="true"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_128235_11023" name="ElementFactory" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_567454_11019" name="DOMImplementationImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_618857_11007" name="CDataNode" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_806158_11031" name="NodeBase" visibility="package" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_415279_11051" name="XmlDocumentBuilderNS"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_610609_11041" name="SimpleElementFactory">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_958309_25210" name="ClassLoaderFinder" visibility="private" isAbstract="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_842993_25212" name="ClassLoaderFinderConcrete" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_387388_11045" name="TreeWalker"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_205394_11037" name="ParseContext" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_771329_11025" name="ElementNode"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_238216_11055" name="XmlWriteContext"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_619441_11033" name="NodeEx" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_262569_11029" name="NamespacedNode" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_360030_11039" name="PINode" visibility="package" isLeaf="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_921071_11003" name="AttributeNode1"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_115552_11043" name="TextNode"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_979574_11011" name="DataNode" visibility="package" isAbstract="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_110015_25185" name="NodeListImpl" visibility="package" isLeaf="true"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_457740_11049" name="XmlDocumentBuilder"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_613211_11047" name="XmlDocument">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_339280_25217" name="DocFragNode" visibility="package" isLeaf="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_328018_25219" name="EntityRefNode" visibility="package" isLeaf="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_964817_25221" name="ExtWriteContext" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_308974_25222" name="Catalog" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_885961_11021" name="ElementEx" isAbstract="true"/>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546815_97738_11053" name="XmlWritable" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_708068_11005" name="AttributeSet" visibility="package" isLeaf="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_274426_11009" name="CommentNode"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_271771_11013" name="Doctype" visibility="package" isLeaf="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_527352_25188" name="NotationNode" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_455945_25190" name="EntityNode" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_615043_25192" name="Nodemap" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_548229_11035" name="ParentNode" visibility="package" isAbstract="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_54423_25205" name="TagList" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_313806_25206" name="TagListNS" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_602008_11001" name="AttributeNode"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_338320_11027" name="ElementNode2"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_943342_11017" name="DomEx" visibility="package"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_537420_25114" name="parser">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_530127_10985" name="InputEntity" visibility="package" isLeaf="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_230193_10995" name="ValidatingParser">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_274857_25141" name="EmptyValidator" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_777989_25142" name="MixedValidator" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_820232_25143" name="ChildrenValidator" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_365485_10971" name="ContentModel" visibility="package" isLeaf="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_230188_10977" name="ElementValidator" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_143836_10981" name="EntityDecl" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_289471_10969" name="AttributesExImpl" visibility="package" isLeaf="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_670911_10991" name="Resolver"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_399834_10973" name="ContentModelState" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_985539_10983" name="ExternalEntity" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_398398_10999" name="XMLReaderImpl"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_644428_10975" name="ElementDecl" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_937231_10989" name="Parser2">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_21270_25126" name="DocLocator" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_569163_25127" name="NameCache" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_992720_25129" name="NameCacheEntry" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_119508_25131" name="NullHandler" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_711800_25133" name="Catalog" visibility="package" isLeaf="true"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_399875_10965" name="AttributeDecl" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546815_419624_10997" name="XmlReader" visibility="package" isLeaf="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_682314_25145" name="BaseReader" visibility="package" isAbstract="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_606086_25147" name="Utf8Reader" visibility="package" isLeaf="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_464688_25149" name="AsciiReader" visibility="package" isLeaf="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_606675_25151" name="Iso8859_1Reader" visibility="package" isLeaf="true"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_440653_10993" name="SimpleHashtable" visibility="package" isLeaf="true">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548596_603138_25137" name="Entry" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_965888_10967" name="AttributesEx" isAbstract="true"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_713764_10979" name="EndOfInputException" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_540580_10987" name="InternalEntity" visibility="package"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548831_102608_27432" name="w3c">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548831_889953_27433" name="dom">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_624353_13242" name="Node" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314658_663180_8994" body="The &lt;code>Node&lt;/code> interface is the primary datatype for the entire&#xA;Document Object Model. It represents a single node in the document tree.&#xA;While all objects implementing the &lt;code>Node&lt;/code> interface expose&#xA;methods for dealing with children, not all objects implementing the&#xA;&lt;code>Node&lt;/code> interface may have children. For example,&#xA;&lt;code>Text&lt;/code> nodes may not have children, and adding children to&#xA;such nodes results in a &lt;code>DOMException&lt;/code> being raised.&#xA;&lt;p>The attributes &lt;code>nodeName&lt;/code>, &lt;code>nodeValue&lt;/code> and&#xA;&lt;code>attributes&lt;/code> are included as a mechanism to get at node&#xA;information without casting down to the specific derived interface. In&#xA;cases where there is no obvious mapping of these attributes for a&#xA;specific &lt;code>nodeType&lt;/code> (e.g., &lt;code>nodeValue&lt;/code> for an&#xA;&lt;code>Element&lt;/code> or &lt;code>attributes&lt;/code> for a &lt;code>Comment&lt;/code>&#xA;), this returns &lt;code>null&lt;/code>. Note that the specialized interfaces&#xA;may contain additional and more convenient mechanisms to get and set the&#xA;relevant information.&#xA;&lt;p>The values of &lt;code>nodeName&lt;/code>,&#xA;&lt;code>nodeValue&lt;/code>, and &lt;code>attributes&lt;/code> vary according to the&#xA;node type as follows:&#xA;&lt;table border='1' cellpadding='3'>&#xA;&lt;tr>&#xA;&lt;th>Interface&lt;/th>&#xA;&lt;th>nodeName&lt;/th>&#xA;&lt;th>nodeValue&lt;/th>&#xA;&lt;th>attributes&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>Attr&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as &lt;code>Attr.name&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as&#xA;&lt;code>Attr.value&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>CDATASection&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>&quot;#cdata-section&quot;&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as &lt;code>CharacterData.data&lt;/code>, the&#xA;content of the CDATA Section&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>Comment&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>&quot;#comment&quot;&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as &lt;code>CharacterData.data&lt;/code>, the&#xA;content of the comment&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>Document&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>&quot;#document&quot;&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>DocumentFragment&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>&quot;#document-fragment&quot;&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>DocumentType&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as&#xA;&lt;code>DocumentType.name&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>Element&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as &lt;code>Element.tagName&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>NamedNodeMap&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>Entity&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>entity name&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>EntityReference&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>name of entity referenced&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>Notation&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>notation name&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>ProcessingInstruction&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same&#xA;as &lt;code>ProcessingInstruction.target&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as&#xA;&lt;code>ProcessingInstruction.data&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>Text&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;code>&quot;#text&quot;&lt;/code>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>same as &lt;code>CharacterData.data&lt;/code>, the content&#xA;of the text node&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;code>null&lt;/code>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_43454_8979" name="DOMStringList" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_35339_8981" body="The &lt;code>DOMStringList&lt;/code> interface provides the abstraction of an&#xA;ordered collection of &lt;code>DOMString&lt;/code> values, without defining or&#xA;constraining how this collection is implemented. The items in the&#xA;&lt;code>DOMStringList&lt;/code> are accessible via an integral index, starting&#xA;from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_43454_8979"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_685592_13220" name="CharacterData" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314518_461513_8948" body="The &lt;code>CharacterData&lt;/code> interface extends Node with a set of&#xA;attributes and methods for accessing character data in the DOM. For&#xA;clarity this set is defined here rather than on each object that uses&#xA;these attributes and methods. No DOM objects correspond directly to&#xA;&lt;code>CharacterData&lt;/code>, though &lt;code>Text&lt;/code> and others do&#xA;inherit the interface from it. All &lt;code>offsets&lt;/code> in this interface&#xA;start from &lt;code>0&lt;/code>.&#xA;&lt;p>As explained in the &lt;code>DOMString&lt;/code> interface, text strings in&#xA;the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In&#xA;the following, the term 16-bit units is used whenever necessary to&#xA;indicate that indexing on CharacterData is done in 16-bit units.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_685592_13220"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_611932_15708" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_977396_13224" name="Document" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314518_345995_8952" body="The &lt;code>Document&lt;/code> interface represents the entire HTML or XML&#xA;document. Conceptually, it is the root of the document tree, and provides&#xA;the primary access to the document's data.&#xA;&lt;p>Since elements, text nodes, comments, processing instructions, etc.&#xA;cannot exist outside the context of a &lt;code>Document&lt;/code>, the&#xA;&lt;code>Document&lt;/code> interface also contains the factory methods needed&#xA;to create these objects. The &lt;code>Node&lt;/code> objects created have a&#xA;&lt;code>ownerDocument&lt;/code> attribute which associates them with the&#xA;&lt;code>Document&lt;/code> within whose context they were created.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_977396_13224"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_402236_15710" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_165183_8960" name="DOMError" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_108322_8962" body="&lt;code>DOMError&lt;/code> is an interface that describes an error.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_165183_8960"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_84630_13240" name="NamedNodeMap" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314628_249913_8989" body="Objects implementing the &lt;code>NamedNodeMap&lt;/code> interface are used to&#xA;represent collections of nodes that can be accessed by name. Note that&#xA;&lt;code>NamedNodeMap&lt;/code> does not inherit from &lt;code>NodeList&lt;/code>;&#xA;&lt;code>NamedNodeMaps&lt;/code> are not maintained in any particular order.&#xA;Objects contained in an object implementing &lt;code>NamedNodeMap&lt;/code> may&#xA;also be accessed by an ordinal index, but this is simply to allow&#xA;convenient enumeration of the contents of a &lt;code>NamedNodeMap&lt;/code>,&#xA;and does not imply that the DOM specifies an order to these Nodes.&#xA;&lt;p>&lt;code>NamedNodeMap&lt;/code> objects in the DOM are live.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_84630_13240"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314628_95100_8990" name="NameList" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314628_103434_8992" body="The &lt;code>NameList&lt;/code> interface provides the abstraction of an ordered&#xA;collection of parallel pairs of name and namespace values (which could be&#xA;null values), without defining or constraining how this collection is&#xA;implemented. The items in the &lt;code>NameList&lt;/code> are accessible via an&#xA;integral index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314628_95100_8990"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548831_920998_27434" name="css">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_931624_13024" name="CSS2Properties" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_946613_8708" body="The &lt;code>CSS2Properties&lt;/code> interface represents a convenience&#xA;mechanism for retrieving and setting properties within a&#xA;&lt;code>CSSStyleDeclaration&lt;/code>. The attributes of this interface&#xA;correspond to all the properties specified in CSS2. Getting an attribute&#xA;of this interface is equivalent to calling the&#xA;&lt;code>getPropertyValue&lt;/code> method of the&#xA;&lt;code>CSSStyleDeclaration&lt;/code> interface. Setting an attribute of this&#xA;interface is equivalent to calling the &lt;code>setProperty&lt;/code> method of&#xA;the &lt;code>CSSStyleDeclaration&lt;/code> interface.&#xA;&lt;p> A conformant implementation of the CSS module is not required to&#xA;implement the &lt;code>CSS2Properties&lt;/code> interface. If an implementation&#xA;does implement this interface, the expectation is that language-specific&#xA;methods can be used to cast from an instance of the&#xA;&lt;code>CSSStyleDeclaration&lt;/code> interface to the&#xA;&lt;code>CSS2Properties&lt;/code> interface.&#xA;&lt;p> If an implementation does implement this interface, it is expected to&#xA;understand the specific syntax of the shorthand properties, and apply&#xA;their semantics; when the &lt;code>margin&lt;/code> property is set, for&#xA;example, the &lt;code>marginTop&lt;/code>, &lt;code>marginRight&lt;/code>,&#xA;&lt;code>marginBottom&lt;/code> and &lt;code>marginLeft&lt;/code> properties are&#xA;actually being set by the underlying implementation.&#xA;&lt;p> When dealing with CSS &quot;shorthand&quot; properties, the shorthand properties&#xA;should be decomposed into their component longhand properties as&#xA;appropriate, and when querying for their value, the form returned should&#xA;be the shortest form exactly equivalent to the declarations made in the&#xA;ruleset. However, if there is no shorthand declaration that could be&#xA;added to the ruleset without changing in any way the rules already&#xA;declared in the ruleset (i.e., by adding longhand rules that were&#xA;previously not declared in the ruleset), then the empty string should be&#xA;returned for the shorthand property.&#xA;&lt;p> For example, querying for the &lt;code>font&lt;/code> property should not&#xA;return &quot;normal normal normal 14pt/normal Arial, sans-serif&quot;, when &quot;14pt&#xA;Arial, sans-serif&quot; suffices. (The normals are initial values, and are&#xA;implied by use of the longhand property.)&#xA;&lt;p> If the values for all the longhand properties that compose a particular&#xA;string are the initial values, then a string consisting of all the&#xA;initial values should be returned (e.g. a &lt;code>border-width&lt;/code> value&#xA;of &quot;medium&quot; should be returned as such, not as &quot;&quot;).&#xA;&lt;p> For some shorthand properties that take missing values from other&#xA;sides, such as the &lt;code>margin&lt;/code>, &lt;code>padding&lt;/code>, and&#xA;&lt;code>border-[width|style|color]&lt;/code> properties, the minimum number of&#xA;sides possible should be used; i.e., &quot;0px 10px&quot; will be returned instead&#xA;of &quot;0px 10px 0px 10px&quot;.&#xA;&lt;p> If the value of a shorthand property can not be decomposed into its&#xA;component longhand properties, as is the case for the &lt;code>font&lt;/code>&#xA;property with a value of &quot;menu&quot;, querying for the values of the component&#xA;longhand properties should return the empty string.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_931624_13024"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_885345_13022" name="Counter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_108497_8706" body="The &lt;code>Counter&lt;/code> interface is used to represent any counter or&#xA;counters function value. This interface reflects the values in the&#xA;underlying style property.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_885345_13022"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_239566_13058" name="ElementCSSInlineStyle" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_822095_8742" body="Inline style information attached to elements is exposed through the&#xA;&lt;code>style&lt;/code> attribute. This represents the contents of the STYLE&#xA;attribute for HTML elements (or elements in other schemas or DTDs which&#xA;use the STYLE attribute in the same way). The expectation is that an&#xA;instance of the ElementCSSInlineStyle interface can be obtained by using&#xA;binding-specific casting methods on an instance of the Element interface&#xA;when the element supports inline CSS style informations.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_239566_13058"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_657088_13032" name="CSSMediaRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_49972_8716" body="The &lt;code>CSSMediaRule&lt;/code> interface represents a @media rule in a CSS&#xA;style sheet. A &lt;code>@media&lt;/code> rule can be used to delimit style&#xA;rules for specific media types.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_657088_13032"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_376953_15632" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_39799_13036" name="CSSPrimitiveValue" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_154986_8720" body="The &lt;code>CSSPrimitiveValue&lt;/code> interface represents a single CSS value&#xA;. This interface may be used to determine the value of a specific style&#xA;property currently set in a block or to set a specific style property&#xA;explicitly within the block. An instance of this interface might be&#xA;obtained from the &lt;code>getPropertyCSSValue&lt;/code> method of the&#xA;&lt;code>CSSStyleDeclaration&lt;/code> interface. A&#xA;&lt;code>CSSPrimitiveValue&lt;/code> object only occurs in a context of a CSS&#xA;property.&#xA;&lt;p> Conversions are allowed between absolute values (from millimeters to&#xA;centimeters, from degrees to radians, and so on) but not between relative&#xA;values. (For example, a pixel value cannot be converted to a centimeter&#xA;value.) Percentage values can't be converted since they are relative to&#xA;the parent value (or another property value). There is one exception for&#xA;color percentage values: since a color percentage value is relative to&#xA;the range 0-255, a color percentage value can be converted to a number;&#xA;(see also the &lt;code>RGBColor&lt;/code> interface).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_39799_13036"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_562581_15634" isSubstitutable="true" general="_9_5_f720368_1110473546940_940305_13050"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_4252_13028" name="CSSFontFaceRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_586440_8712" body="The &lt;code>CSSFontFaceRule&lt;/code> interface represents a @font-face rule in&#xA;a CSS style sheet. The &lt;code>@font-face&lt;/code> rule is used to hold a set&#xA;of font descriptions.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_4252_13028"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_751522_15630" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_991341_13062" name="RGBColor" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_695229_8746" body="The &lt;code>RGBColor&lt;/code> interface is used to represent any RGB color&#xA;value. This interface reflects the values in the underlying style&#xA;property. Hence, modifications made to the &lt;code>CSSPrimitiveValue&lt;/code>&#xA;objects modify the style property.&#xA;&lt;p> A specified RGB color is not clipped (even if the number is outside the&#xA;range 0-255 or 0%-100%). A computed RGB color is clipped depending on the&#xA;device.&#xA;&lt;p> Even if a style sheet can only contain an integer for a color value,&#xA;the internal storage of this integer is a float, and this can be used as&#xA;a float in the specified or the computed style.&#xA;&lt;p> A color percentage value can always be converted to a number and vice&#xA;versa.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_991341_13062"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_940305_13050" name="CSSValue" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_498786_8734" body="The &lt;code>CSSValue&lt;/code> interface represents a simple or a complex&#xA;value. A &lt;code>CSSValue&lt;/code> object only occurs in a context of a CSS&#xA;property.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_940305_13050"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_249598_13048" name="CSSUnknownRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_689803_8732" body="The &lt;code>CSSUnknownRule&lt;/code> interface represents an at-rule not&#xA;supported by this user agent.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_249598_13048"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_462363_15637" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_761182_13042" name="CSSStyleDeclaration" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_18008_8726" body="The &lt;code>CSSStyleDeclaration&lt;/code> interface represents a single CSS&#xA;declaration block. This interface may be used to determine the style&#xA;properties currently set in a block or to set style properties explicitly&#xA;within the block.&#xA;&lt;p> While an implementation may not recognize all CSS properties within a&#xA;CSS declaration block, it is expected to provide access to all specified&#xA;properties in the style sheet through the &lt;code>CSSStyleDeclaration&lt;/code>&#xA;interface. Furthermore, implementations that support a specific level of&#xA;CSS should correctly handle CSS shorthand properties for that level. For&#xA;a further discussion of shorthand properties, see the&#xA;&lt;code>CSS2Properties&lt;/code> interface.&#xA;&lt;p> This interface is also used to provide a read-only access to the&#xA;computed values of an element. See also the &lt;code>ViewCSS&lt;/code>&#xA;interface.  The CSS Object Model doesn't provide an access to the&#xA;specified or actual values of the CSS cascade.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_761182_13042"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_550824_13064" name="ViewCSS" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_919439_8748" body="This interface represents a CSS view. The &lt;code>getComputedStyle&lt;/code>&#xA;method provides a read only access to the computed values of an element.&#xA;&lt;p> The expectation is that an instance of the &lt;code>ViewCSS&lt;/code>&#xA;interface can be obtained by using binding-specific casting methods on an&#xA;instance of the &lt;code>AbstractView&lt;/code> interface.&#xA;&lt;p> Since a computed style is related to an &lt;code>Element&lt;/code> node, if&#xA;this element is removed from the document, the associated&#xA;&lt;code>CSSStyleDeclaration&lt;/code> and &lt;code>CSSValue&lt;/code> related to&#xA;this declaration are no longer valid.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_550824_13064"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_437294_15641" isSubstitutable="true" general="_9_5_f720368_1110473546940_430692_13212"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_365645_13052" name="CSSValueList" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_960910_8736" body="The &lt;code>CSSValueList&lt;/code> interface provides the abstraction of an&#xA;ordered collection of CSS values.&#xA;&lt;p> Some properties allow an empty list into their syntax. In that case,&#xA;these properties take the &lt;code>none&lt;/code> identifier. So, an empty list&#xA;means that the property has the value &lt;code>none&lt;/code>.&#xA;&lt;p> The items in the &lt;code>CSSValueList&lt;/code> are accessible via an&#xA;integral index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_365645_13052"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_880850_15638" isSubstitutable="true" general="_9_5_f720368_1110473546940_940305_13050"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_67573_13034" name="CSSPageRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_610718_8718" body="The &lt;code>CSSPageRule&lt;/code> interface represents a @page rule within a&#xA;CSS style sheet. The &lt;code>@page&lt;/code> rule is used to specify the&#xA;dimensions, orientation, margins, etc. of a page box for paged media.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_67573_13034"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_292089_15633" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_618861_13060" name="Rect" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_367947_8744" body="The &lt;code>Rect&lt;/code> interface is used to represent any rect value. This&#xA;interface reflects the values in the underlying style property. Hence,&#xA;modifications made to the &lt;code>CSSPrimitiveValue&lt;/code> objects modify&#xA;the style property.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_618861_13060"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_881948_13026" name="CSSCharsetRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_161856_8710" body="The &lt;code>CSSCharsetRule&lt;/code> interface represents a @charset rule in a&#xA;CSS style sheet. The value of the &lt;code>encoding&lt;/code> attribute does&#xA;not affect the encoding of text data in the DOM objects; this encoding is&#xA;always UTF-16. After a stylesheet is loaded, the value of the&#xA;&lt;code>encoding&lt;/code> attribute is the value found in the&#xA;&lt;code>@charset&lt;/code> rule. If there was no &lt;code>@charset&lt;/code> in the&#xA;original document, then no &lt;code>CSSCharsetRule&lt;/code> is created. The&#xA;value of the &lt;code>encoding&lt;/code> attribute may also be used as a hint&#xA;for the encoding used on serialization of the style sheet.&#xA;&lt;p> The value of the @charset rule (and therefore of the&#xA;&lt;code>CSSCharsetRule&lt;/code>) may not correspond to the encoding the&#xA;document actually came in; character encoding information e.g. in an HTTP&#xA;header, has priority (see CSS document representation) but this is not&#xA;reflected in the &lt;code>CSSCharsetRule&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_881948_13026"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_659603_15629" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_430894_13044" name="CSSStyleRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_574464_8728" body="The &lt;code>CSSStyleRule&lt;/code> interface represents a single rule set in a&#xA;CSS style sheet.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_430894_13044"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_303620_15635" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_63541_13030" name="CSSImportRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_331708_8714" body="The &lt;code>CSSImportRule&lt;/code> interface represents a @import rule within&#xA;a CSS style sheet. The &lt;code>@import&lt;/code> rule is used to import style&#xA;rules from other style sheets.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_63541_13030"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_259432_15631" isSubstitutable="true" general="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_50163_13054" name="DocumentCSS" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_872354_8738" body="This interface represents a document with a CSS view.&#xA;&lt;p> The &lt;code>getOverrideStyle&lt;/code> method provides a mechanism through&#xA;which a DOM author could effect immediate change to the style of an&#xA;element without modifying the explicitly linked style sheets of a&#xA;document or the inline style of elements in the style sheets. This style&#xA;sheet comes after the author style sheet in the cascade algorithm and is&#xA;called override style sheet. The override style sheet takes precedence&#xA;over author style sheets. An &quot;!important&quot; declaration still takes&#xA;precedence over a normal declaration. Override, author, and user style&#xA;sheets all may contain &quot;!important&quot; declarations. User &quot;!important&quot; rules&#xA;take precedence over both override and author &quot;!important&quot; rules, and&#xA;override &quot;!important&quot; rules take precedence over author &quot;!important&quot;&#xA;rules.&#xA;&lt;p> The expectation is that an instance of the &lt;code>DocumentCSS&lt;/code>&#xA;interface can be obtained by using binding-specific casting methods on an&#xA;instance of the &lt;code>Document&lt;/code> interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_50163_13054"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_912266_15639" isSubstitutable="true" general="_9_5_f720368_1110473546940_128156_13194"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_122944_13038" name="CSSRule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_721652_8722" body="The &lt;code>CSSRule&lt;/code> interface is the abstract base interface for any&#xA;type of CSS statement. This includes both rule sets and at-rules. An&#xA;implementation is expected to preserve all rules specified in a CSS style&#xA;sheet, even if the rule is not recognized by the parser. Unrecognized&#xA;rules are represented using the &lt;code>CSSUnknownRule&lt;/code> interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_122944_13038"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_568321_13056" name="DOMImplementationCSS" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_337561_8740" body="This interface allows the DOM user to create a &lt;code>CSSStyleSheet&lt;/code>&#xA;outside the context of a document. There is no way to associate the new&#xA;&lt;code>CSSStyleSheet&lt;/code> with a document in DOM Level 2.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM   Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_568321_13056"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_969335_15640" isSubstitutable="true" general="_9_5_f720368_1110473546940_698191_13232"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_573468_13040" name="CSSRuleList" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_766918_8724" body="The &lt;code>CSSRuleList&lt;/code> interface provides the abstraction of an&#xA;ordered collection of CSS rules.&#xA;&lt;p> The items in the &lt;code>CSSRuleList&lt;/code> are accessible via an&#xA;integral index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_573468_13040"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_553175_13046" name="CSSStyleSheet" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314338_871355_8730" body="The &lt;code>CSSStyleSheet&lt;/code> interface is a concrete interface used to&#xA;represent a CSS style sheet i.e., a style sheet whose content type is&#xA;&quot;text/css&quot;.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_553175_13046"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_802075_15636" isSubstitutable="true" general="_9_5_f720368_1110473546940_68282_13200"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314398_829926_8877" name="ls">
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314408_900179_8890" name="LSOutput" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314408_579074_8892" body="This interface represents an output destination for data.&#xA;&lt;p> This interface allows an application to encapsulate information about&#xA;an output destination in a single object, which may include a URI, a byte&#xA;stream (possibly with a specified encoding), a base URI, and/or a&#xA;character stream.&#xA;&lt;p> The exact definitions of a byte stream and a character stream are&#xA;binding dependent.&#xA;&lt;p> The application is expected to provide objects that implement this&#xA;interface whenever such objects are needed. The application can either&#xA;provide its own objects that implement this interface, or it can use the&#xA;generic factory method &lt;code>DOMImplementationLS.createLSOutput()&lt;/code>&#xA;to create objects that implement this interface.&#xA;&lt;p> The &lt;code>LSSerializer&lt;/code> will use the &lt;code>LSOutput&lt;/code> object&#xA;to determine where to serialize the output to. The&#xA;&lt;code>LSSerializer&lt;/code> will look at the different outputs specified in&#xA;the &lt;code>LSOutput&lt;/code> in the following order to know which one to&#xA;output to, the first one that is not null and not an empty string will be&#xA;used:&#xA;&lt;ol>&#xA;&lt;li> &lt;code>LSOutput.characterStream&lt;/code>&#xA;&lt;/li>&#xA;&lt;li>&#xA;&lt;code>LSOutput.byteStream&lt;/code>&#xA;&lt;/li>&#xA;&lt;li> &lt;code>LSOutput.systemId&lt;/code>&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;p> &lt;code>LSOutput&lt;/code> objects belong to the application. The DOM&#xA;implementation will never modify them (though it may make copies and&#xA;modify the copies, if necessary).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314408_900179_8890"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314408_853822_8893" name="LSParser" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314448_657444_8895" body="An interface to an object that is able to build, or augment, a DOM tree&#xA;from various input sources.&#xA;&lt;p> &lt;code>LSParser&lt;/code> provides an API for parsing XML and building the&#xA;corresponding DOM document structure. A &lt;code>LSParser&lt;/code> instance&#xA;can be obtained by invoking the&#xA;&lt;code>DOMImplementationLS.createLSParser()&lt;/code> method.&#xA;&lt;p> As specified in [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core&lt;/a>]&#xA;, when a document is first made available via the LSParser:&#xA;&lt;ul>&#xA;&lt;li> there will&#xA;never be two adjacent nodes of type NODE_TEXT, and there will never be&#xA;empty text nodes.&#xA;&lt;/li>&#xA;&lt;li> it is expected that the &lt;code>value&lt;/code> and&#xA;&lt;code>nodeValue&lt;/code> attributes of an &lt;code>Attr&lt;/code> node initially&#xA;return the &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#AVNormalize'>XML 1.0&#xA;normalized value&lt;/a>. However, if the parameters &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema'>&#xA;validate-if-schema&lt;/a>&quot; and &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization'>&#xA;datatype-normalization&lt;/a>&quot; are set to &lt;code>true&lt;/code>, depending on the attribute normalization&#xA;used, the attribute values may differ from the ones obtained by the XML&#xA;1.0 attribute normalization. If the parameters &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization'>&#xA;datatype-normalization&lt;/a>&quot; is set to &lt;code>false&lt;/code>, the XML 1.0 attribute normalization is&#xA;guaranteed to occur, and if the attributes list does not contain&#xA;namespace declarations, the &lt;code>attributes&lt;/code> attribute on&#xA;&lt;code>Element&lt;/code> node represents the property &lt;b>[attributes]&lt;/b> defined in [&lt;a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set&lt;/a>]&#xA;.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p> Asynchronous &lt;code>LSParser&lt;/code> objects are expected to also&#xA;implement the &lt;code>events::EventTarget&lt;/code> interface so that event&#xA;listeners can be registered on asynchronous &lt;code>LSParser&lt;/code>&#xA;objects.&#xA;&lt;p> Events supported by asynchronous &lt;code>LSParser&lt;/code> objects are:&#xA;&lt;dl>&#xA;&lt;dt>load&lt;/dt>&#xA;&lt;dd>&#xA;The &lt;code>LSParser&lt;/code> finishes to load the document. See also the&#xA;definition of the &lt;code>LSLoadEvent&lt;/code> interface. &lt;/dd>&#xA;&lt;dt>progress&lt;/dt>&#xA;&lt;dd> The&#xA;&lt;code>LSParser&lt;/code> signals progress as data is parsed.  This&#xA;specification does not attempt to define exactly when progress events&#xA;should be dispatched. That is intentionally left as&#xA;implementation-dependent. Here is one example of how an application might&#xA;dispatch progress events: Once the parser starts receiving data, a&#xA;progress event is dispatched to indicate that the parsing starts. From&#xA;there on, a progress event is dispatched for every 4096 bytes of data&#xA;that is received and processed. This is only one example, though, and&#xA;implementations can choose to dispatch progress events at any time while&#xA;parsing, or not dispatch them at all.  See also the definition of the&#xA;&lt;code>LSProgressEvent&lt;/code> interface. &lt;/dd>&#xA;&lt;/dl>&#xA;&lt;p >&lt;b>Note:&lt;/b>  All events defined in this specification use the&#xA;namespace URI &lt;code>&quot;http://www.w3.org/2002/DOMLS&quot;&lt;/code>.&#xA;&lt;p> While parsing an input source, errors are reported to the application&#xA;through the error handler (&lt;code>LSParser.domConfig&lt;/code>'s &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>&#xA;error-handler&lt;/a>&quot; parameter). This specification does in no way try to define all possible&#xA;errors that can occur while parsing XML, or any other markup, but some&#xA;common error cases are defined. The types (&lt;code>DOMError.type&lt;/code>) of&#xA;errors and warnings defined by this specification are:&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>&quot;check-character-normalization-failure&quot; [error]&lt;/code> &lt;/dt>&#xA;&lt;dd> Raised if&#xA;the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-check-character-normalization'>&#xA;check-character-normalization&lt;/a>&quot; is set to true and a string is encountered that fails normalization&#xA;checking. &lt;/dd>&#xA;&lt;dt>&lt;code>&quot;doctype-not-allowed&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised if the&#xA;configuration parameter &quot;disallow-doctype&quot; is set to &lt;code>true&lt;/code>&#xA;and a doctype is encountered. &lt;/dd>&#xA;&lt;dt>&lt;code>&quot;no-input-specified&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;Raised when loading a document and no input is specified in the&#xA;&lt;code>LSInput&lt;/code> object. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;pi-base-uri-not-preserved&quot; [warning]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised if a processing&#xA;instruction is encountered in a location where the base URI of the&#xA;processing instruction can not be preserved.  One example of a case where&#xA;this warning will be raised is if the configuration parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>&#xA;entities&lt;/a>&quot; is set to &lt;code>false&lt;/code> and the following XML file is parsed:&#xA;&lt;pre>&#xA;&lt;!DOCTYPE root [ &lt;!ENTITY e SYSTEM 'subdir/myentity.ent' ]>&#xA;&lt;root> &amp;e; &lt;/root>&lt;/pre>&#xA;And &lt;code>subdir/myentity.ent&lt;/code>&#xA;contains:&#xA;&lt;pre>&lt;one> &lt;two/> &lt;/one> &lt;?pi 3.14159?>&#xA;&lt;more/>&lt;/pre>&#xA;&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;unbound-prefix-in-entity&quot; [warning]&lt;/code>&lt;/dt>&#xA;&lt;dd> An&#xA;implementation dependent warning that may be raised if the configuration&#xA;parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces'>&#xA;namespaces&lt;/a>&quot; is set to &lt;code>true&lt;/code> and an unbound namespace prefix is&#xA;encountered in an entity's replacement text. Raising this warning is not&#xA;enforced since some existing parsers may not recognize unbound namespace&#xA;prefixes in the replacement text of entities. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;unknown-character-denormalization&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised if the&#xA;configuration parameter &quot;ignore-unknown-character-denormalizations&quot; is&#xA;set to &lt;code>false&lt;/code> and a character is encountered for which the&#xA;processor cannot determine the normalization properties. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;unsupported-encoding&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised if an unsupported&#xA;encoding is encountered. &lt;/dd>&#xA;&lt;dt>&lt;code>&quot;unsupported-media-type&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;Raised if the configuration parameter &quot;supported-media-types-only&quot; is set&#xA;to &lt;code>true&lt;/code> and an unsupported media type is encountered. &lt;/dd>&#xA;&lt;/dl>&#xA;&lt;p> In addition to raising the defined errors and warnings, implementations&#xA;are expected to raise implementation specific errors and warnings for any&#xA;other error and warning cases such as IO errors (file not found,&#xA;permission denied,...), XML well-formedness errors, and so on.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314408_853822_8893"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314448_429860_8905" name="LSSerializer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_12317_8907" body="A &lt;code>LSSerializer&lt;/code> provides an API for serializing (writing) a&#xA;DOM document out into XML. The XML data is written to a string or an&#xA;output stream. Any changes or fixups made during the serialization affect&#xA;only the serialized data. The &lt;code>Document&lt;/code> object and its&#xA;children are never altered by the serialization operation.&#xA;&lt;p> During serialization of XML data, namespace fixup is done as defined in [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core&lt;/a>]&#xA;, Appendix B. [&lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>DOM Level 2 Core&lt;/a>]&#xA;allows empty strings as a real namespace URI. If the&#xA;&lt;code>namespaceURI&lt;/code> of a &lt;code>Node&lt;/code> is empty string, the&#xA;serialization will treat them as &lt;code>null&lt;/code>, ignoring the prefix&#xA;if any.&#xA;&lt;p> &lt;code>LSSerializer&lt;/code> accepts any node type for serialization. For&#xA;nodes of type &lt;code>Document&lt;/code> or &lt;code>Entity&lt;/code>, well-formed&#xA;XML will be created when possible (well-formedness is guaranteed if the&#xA;document or entity comes from a parse operation and is unchanged since it&#xA;was created). The serialized output for these node types is either as a&#xA;XML document or an External XML Entity, respectively, and is acceptable&#xA;input for an XML parser. For all other types of nodes the serialized form&#xA;is implementation dependent.&#xA;&lt;p>Within a &lt;code>Document&lt;/code>, &lt;code>DocumentFragment&lt;/code>, or&#xA;&lt;code>Entity&lt;/code> being serialized, &lt;code>Nodes&lt;/code> are processed as&#xA;follows&#xA;&lt;ul>&#xA;&lt;li> &lt;code>Document&lt;/code> nodes are written, including the XML&#xA;declaration (unless the parameter &quot;xml-declaration&quot; is set to&#xA;&lt;code>false&lt;/code>) and a DTD subset, if one exists in the DOM. Writing a&#xA;&lt;code>Document&lt;/code> node serializes the entire document.&#xA;&lt;/li>&#xA;&lt;li>&#xA;&lt;code>Entity&lt;/code> nodes, when written directly by&#xA;&lt;code>LSSerializer.write&lt;/code>, outputs the entity expansion but no&#xA;namespace fixup is done. The resulting output will be valid as an&#xA;external entity.&#xA;&lt;/li>&#xA;&lt;li> If the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>&#xA;entities&lt;/a>&quot; is set to &lt;code>true&lt;/code>, &lt;code>EntityReference&lt;/code> nodes are&#xA;serialized as an entity reference of the form &quot;&#xA;&lt;code>&amp;entityName;&lt;/code>&quot; in the output. Child nodes (the expansion)&#xA;of the entity reference are ignored. If the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>&#xA;entities&lt;/a>&quot; is set to &lt;code>false&lt;/code>, only the children of the entity reference&#xA;are serialized. &lt;code>EntityReference&lt;/code> nodes with no children (no&#xA;corresponding &lt;code>Entity&lt;/code> node or the corresponding&#xA;&lt;code>Entity&lt;/code> nodes have no children) are always serialized.&#xA;&lt;/li>&#xA;&lt;li>&#xA;&lt;code>CDATAsections&lt;/code> containing content characters that cannot be&#xA;represented in the specified output encoding are handled according to the&#xA;&quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-split-cdata-sections'>&#xA;split-cdata-sections&lt;/a>&quot; parameter.  If the parameter is set to &lt;code>true&lt;/code>,&#xA;&lt;code>CDATAsections&lt;/code> are split, and the unrepresentable characters&#xA;are serialized as numeric character references in ordinary content. The&#xA;exact position and number of splits is not specified.  If the parameter&#xA;is set to &lt;code>false&lt;/code>, unrepresentable characters in a&#xA;&lt;code>CDATAsection&lt;/code> are reported as&#xA;&lt;code>&quot;wf-invalid-character&quot;&lt;/code> errors if the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed'>&#xA;well-formed&lt;/a>&quot; is set to &lt;code>true&lt;/code>. The error is not recoverable - there is no&#xA;mechanism for supplying alternative characters and continuing with the&#xA;serialization.&#xA;&lt;/li>&#xA;&lt;li> &lt;code>DocumentFragment&lt;/code> nodes are serialized by&#xA;serializing the children of the document fragment in the order they&#xA;appear in the document fragment.&#xA;&lt;/li>&#xA;&lt;li> All other node types (Element, Text,&#xA;etc.) are serialized to their corresponding XML source form.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p >&lt;b>Note:&lt;/b>  The serialization of a &lt;code>Node&lt;/code> does not always&#xA;generate a well-formed XML document, i.e. a &lt;code>LSParser&lt;/code> might&#xA;throw fatal errors when parsing the resulting serialization.&#xA;&lt;p> Within the character data of a document (outside of markup), any&#xA;characters that cannot be represented directly are replaced with&#xA;character references. Occurrences of '&lt;' and '&amp;' are replaced by&#xA;the predefined entities &lt; and &amp;. The other predefined&#xA;entities (>, ', and &quot;) might not be used, except&#xA;where needed (e.g. using > in cases such as ']]>'). Any&#xA;characters that cannot be represented directly in the output character&#xA;encoding are serialized as numeric character references (and since&#xA;character encoding standards commonly use hexadecimal representations of&#xA;characters, using the hexadecimal representation when serializing&#xA;character references is encouraged).&#xA;&lt;p> To allow attribute values to contain both single and double quotes, the&#xA;apostrophe or single-quote character (') may be represented as&#xA;&quot;'&quot;, and the double-quote character (&quot;)  as &quot;&quot;&quot;. New&#xA;line characters and other characters that cannot be represented directly&#xA;in attribute values in the output character encoding are serialized as a&#xA;numeric character reference.&#xA;&lt;p> Within markup, but outside of attributes, any occurrence of a character&#xA;that cannot be represented in the output character encoding is reported&#xA;as a &lt;code>DOMError&lt;/code> fatal error. An example would be serializing&#xA;the element &lt;LaCa\u00f1ada/> with &lt;code>encoding=&quot;us-ascii&quot;&lt;/code>.&#xA;This will result with a generation of a &lt;code>DOMError&lt;/code>&#xA;&quot;wf-invalid-character-in-node-name&quot; (as proposed in &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed'>&#xA;well-formed&lt;/a>&quot;).&#xA;&lt;p> When requested by setting the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-normalize-characters'>&#xA;normalize-characters&lt;/a>&quot; on &lt;code>LSSerializer&lt;/code> to true, character normalization is&#xA;performed according to the definition of &lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully&#xA;normalized&lt;/a> characters included in appendix E of [&lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1&lt;/a>] on all&#xA;data to be serialized, both markup and character data. The character&#xA;normalization process affects only the data as it is being written; it&#xA;does not alter the DOM's view of the document after serialization has&#xA;completed.&#xA;&lt;p> Implementations are required to support the encodings &quot;UTF-8&quot;,&#xA;&quot;UTF-16&quot;, &quot;UTF-16BE&quot;, and &quot;UTF-16LE&quot; to guarantee that data is&#xA;serializable in all encodings that are required to be supported by all&#xA;XML parsers. When the encoding is UTF-8, whether or not a byte order mark&#xA;is serialized, or if the output is big-endian or little-endian, is&#xA;implementation dependent. When the encoding is UTF-16, whether or not the&#xA;output is big-endian or little-endian is implementation dependent, but a&#xA;Byte Order Mark must be generated for non-character outputs, such as&#xA;&lt;code>LSOutput.byteStream&lt;/code> or &lt;code>LSOutput.systemId&lt;/code>. If&#xA;the Byte Order Mark is not generated, a &quot;byte-order-mark-needed&quot; warning&#xA;is reported. When the encoding is UTF-16LE or UTF-16BE, the output is&#xA;big-endian (UTF-16BE) or little-endian (UTF-16LE) and the Byte Order Mark&#xA;is not be generated. In all cases, the encoding declaration, if&#xA;generated, will correspond to the encoding used during the serialization&#xA;(e.g. &lt;code>encoding=&quot;UTF-16&quot;&lt;/code> will appear if UTF-16 was&#xA;requested).&#xA;&lt;p> Namespaces are fixed up during serialization, the serialization process&#xA;will verify that namespace declarations, namespace prefixes and the&#xA;namespace URI associated with elements and attributes are consistent. If&#xA;inconsistencies are found, the serialized form of the document will be&#xA;altered to remove them. The method used for doing the namespace fixup&#xA;while serializing a document is the algorithm defined in Appendix B.1,&#xA;&quot;Namespace normalization&quot;, of [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core&lt;/a>]&#xA;.&#xA;&lt;p> While serializing a document, the parameter &quot;discard-default-content&quot;&#xA;controls whether or not non-specified data is serialized.&#xA;&lt;p> While serializing, errors and warnings are reported to the application&#xA;through the error handler (&lt;code>LSSerializer.domConfig&lt;/code>'s &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>&#xA;error-handler&lt;/a>&quot; parameter). This specification does in no way try to define all possible&#xA;errors and warnings that can occur while serializing a DOM node, but some&#xA;common error and warning cases are defined. The types (&#xA;&lt;code>DOMError.type&lt;/code>) of errors and warnings defined by this&#xA;specification are:&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>&quot;no-output-specified&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised when&#xA;writing to a &lt;code>LSOutput&lt;/code> if no output is specified in the&#xA;&lt;code>LSOutput&lt;/code>. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;unbound-prefix-in-entity-reference&quot; [fatal]&lt;/code> &lt;/dt>&#xA;&lt;dd> Raised if the&#xA;configuration parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces'>&#xA;namespaces&lt;/a>&quot; is set to &lt;code>true&lt;/code> and an entity whose replacement text&#xA;contains unbound namespace prefixes is referenced in a location where&#xA;there are no bindings for the namespace prefixes. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;unsupported-encoding&quot; [fatal]&lt;/code>&lt;/dt>&#xA;&lt;dd> Raised if an unsupported&#xA;encoding is encountered. &lt;/dd>&#xA;&lt;/dl>&#xA;&lt;p> In addition to raising the defined errors and warnings, implementations&#xA;are expected to raise implementation specific errors and warnings for any&#xA;other error and warning cases such as IO errors (file not found,&#xA;permission denied,...) and so on.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314448_429860_8905"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314398_277011_8878" name="DOMImplementationLS" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_24242_8880" body="&lt;code>DOMImplementationLS&lt;/code> contains the factory methods for creating&#xA;Load and Save objects.&#xA;&lt;p> The expectation is that an instance of the&#xA;&lt;code>DOMImplementationLS&lt;/code> interface can be obtained by using&#xA;binding-specific casting methods on an instance of the&#xA;&lt;code>DOMImplementation&lt;/code> interface or, if the &lt;code>Document&lt;/code>&#xA;supports the feature &lt;code>&quot;Core&quot;&lt;/code> version &lt;code>&quot;3.0&quot;&lt;/code>&#xA;defined in [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core&lt;/a>]&#xA;, by using the method &lt;code>DOMImplementation.getFeature&lt;/code> with&#xA;parameter values &lt;code>&quot;LS&quot;&lt;/code> (or &lt;code>&quot;LS-Async&quot;&lt;/code>) and&#xA;&lt;code>&quot;3.0&quot;&lt;/code> (respectively).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314398_277011_8878"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314398_483870_8881" name="LSException">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_42655_8883" body="Parser or write operations may throw an &lt;code>LSException&lt;/code> if the&#xA;processing is stopped. The processing can be stopped due to a&#xA;&lt;code>DOMError&lt;/code> with a severity of&#xA;&lt;code>DOMError.SEVERITY_FATAL_ERROR&lt;/code> or a non recovered&#xA;&lt;code>DOMError.SEVERITY_ERROR&lt;/code>, or if&#xA;&lt;code>DOMErrorHandler.handleError()&lt;/code> returned &lt;code>false&lt;/code>.&#xA;&lt;p >&lt;b>Note:&lt;/b>  As suggested in the definition of the constants in the&#xA;&lt;code>DOMError&lt;/code> interface, a DOM implementation may choose to&#xA;continue after a fatal error, but the resulting DOM tree is then&#xA;implementation dependent.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314398_483870_8881"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_620082_15701" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314448_481760_8896" name="LSParserFilter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314448_581217_8898" body="&lt;code>LSParserFilter&lt;/code>s provide applications the ability to examine&#xA;nodes as they are being constructed while parsing. As each node is&#xA;examined, it may be modified or removed, or the entire parse may be&#xA;terminated early.&#xA;&lt;p> At the time any of the filter methods are called by the parser, the&#xA;owner Document and DOMImplementation objects exist and are accessible.&#xA;The document element is never passed to the &lt;code>LSParserFilter&lt;/code>&#xA;methods, i.e. it is not possible to filter out the document element.&#xA;&lt;code>Document&lt;/code>, &lt;code>DocumentType&lt;/code>, &lt;code>Notation&lt;/code>,&#xA;&lt;code>Entity&lt;/code>, and &lt;code>Attr&lt;/code> nodes are never passed to the&#xA;&lt;code>acceptNode&lt;/code> method on the filter. The child nodes of an&#xA;&lt;code>EntityReference&lt;/code> node are passed to the filter if the&#xA;parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>&#xA;entities&lt;/a>&quot; is set to &lt;code>false&lt;/code>. Note that, as described by the parameter &quot;&lt;a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>&#xA;entities&lt;/a>&quot;, unexpanded entity reference nodes are never discarded and are always&#xA;passed to the filter.&#xA;&lt;p> All validity checking while parsing a document occurs on the source&#xA;document as it appears on the input stream, not on the DOM document as it&#xA;is built in memory. With filters, the document in memory may be a subset&#xA;of the document on the stream, and its validity may have been affected by&#xA;the filtering.&#xA;&lt;p> All default attributes must be present on elements when the elements&#xA;are passed to the filter methods. All other default content must be&#xA;passed to the filter methods.&#xA;&lt;p> DOM applications must not raise exceptions in a filter. The effect of&#xA;throwing exceptions from a filter is DOM implementation dependent.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314448_481760_8896"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314398_137484_8884" name="LSInput" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314408_593624_8886" body="This interface represents an input source for data.&#xA;&lt;p> This interface allows an application to encapsulate information about&#xA;an input source in a single object, which may include a public&#xA;identifier, a system identifier, a byte stream (possibly with a specified&#xA;encoding), a base URI, and/or a character stream.&#xA;&lt;p> The exact definitions of a byte stream and a character stream are&#xA;binding dependent.&#xA;&lt;p> The application is expected to provide objects that implement this&#xA;interface whenever such objects are needed. The application can either&#xA;provide its own objects that implement this interface, or it can use the&#xA;generic factory method &lt;code>DOMImplementationLS.createLSInput()&lt;/code>&#xA;to create objects that implement this interface.&#xA;&lt;p> The &lt;code>LSParser&lt;/code> will use the &lt;code>LSInput&lt;/code> object to&#xA;determine how to read data. The &lt;code>LSParser&lt;/code> will look at the&#xA;different inputs specified in the &lt;code>LSInput&lt;/code> in the following&#xA;order to know which one to read from, the first one that is not null and&#xA;not an empty string will be used:&#xA;&lt;ol>&#xA;&lt;li> &lt;code>LSInput.characterStream&lt;/code>&#xA;&lt;/li>&#xA;&lt;li>&#xA;&lt;code>LSInput.byteStream&lt;/code>&#xA;&lt;/li>&#xA;&lt;li> &lt;code>LSInput.stringData&lt;/code>&#xA;&lt;/li>&#xA;&lt;li>&#xA;&lt;code>LSInput.systemId&lt;/code>&#xA;&lt;/li>&#xA;&lt;li> &lt;code>LSInput.publicId&lt;/code>&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;p> If all inputs are null, the &lt;code>LSParser&lt;/code> will report a&#xA;&lt;code>DOMError&lt;/code> with its &lt;code>DOMError.type&lt;/code> set to&#xA;&lt;code>&quot;no-input-specified&quot;&lt;/code> and its &lt;code>DOMError.severity&lt;/code>&#xA;set to &lt;code>DOMError.SEVERITY_FATAL_ERROR&lt;/code>.&#xA;&lt;p> &lt;code>LSInput&lt;/code> objects belong to the application. The DOM&#xA;implementation will never modify them (though it may make copies and&#xA;modify the copies, if necessary).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314398_137484_8884"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314448_501190_8899" name="LSProgressEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314448_996730_8901" body="This interface represents a progress event object that notifies the&#xA;application about progress as a document is parsed. It extends the&#xA;&lt;code>Event&lt;/code> interface defined in [&lt;a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>DOM Level 3 Events&lt;/a>]&#xA;.&#xA;&lt;p> The units used for the attributes &lt;code>position&lt;/code> and&#xA;&lt;code>totalSize&lt;/code> are not specified and can be implementation and&#xA;input dependent.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314448_501190_8899"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_43113_15703" isSubstitutable="true" general="_9_5_f720368_1110473546940_75404_13068"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314448_56956_8902" name="LSResourceResolver" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314448_593600_8904" body="&lt;code>LSResourceResolver&lt;/code> provides a way for applications to&#xA;redirect references to external resources.&#xA;&lt;p> Applications needing to implement custom handling for external&#xA;resources can implement this interface and register their implementation&#xA;by setting the &quot;resource-resolver&quot; parameter of&#xA;&lt;code>DOMConfiguration&lt;/code> objects attached to &lt;code>LSParser&lt;/code>&#xA;and &lt;code>LSSerializer&lt;/code>. It can also be register on&#xA;&lt;code>DOMConfiguration&lt;/code> objects attached to &lt;code>Document&lt;/code>&#xA;if the &quot;LS&quot; feature is supported.&#xA;&lt;p> The &lt;code>LSParser&lt;/code> will then allow the application to intercept&#xA;any external entities, including the external DTD subset and external&#xA;parameter entities, before including them. The top-level document entity&#xA;is never passed to the &lt;code>resolveResource&lt;/code> method.&#xA;&lt;p> Many DOM applications will not need to implement this interface, but it&#xA;will be especially useful for applications that build XML documents from&#xA;databases or other specialized input sources, or for applications that&#xA;use URNs.&#xA;&lt;p >&lt;b>Note:&lt;/b>  &lt;code>LSResourceResolver&lt;/code> is based on the SAX2 [&lt;a href='http://www.saxproject.org/'>SAX&lt;/a>] &lt;code>EntityResolver&lt;/code>&#xA;interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314448_56956_8902"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314468_131409_8908" name="LSSerializerFilter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_621745_8910" body="&lt;code>LSSerializerFilter&lt;/code>s provide applications the ability to&#xA;examine nodes as they are being serialized and decide what nodes should&#xA;be serialized or not. The &lt;code>LSSerializerFilter&lt;/code> interface is&#xA;based on the &lt;code>NodeFilter&lt;/code> interface defined in [&lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and      Range&lt;/a>]&#xA;.&#xA;&lt;p> &lt;code>Document&lt;/code>, &lt;code>DocumentType&lt;/code>,&#xA;&lt;code>DocumentFragment&lt;/code>, &lt;code>Notation&lt;/code>, &lt;code>Entity&lt;/code>&#xA;, and children of &lt;code>Attr&lt;/code> nodes are not passed to the filter.&#xA;The child nodes of an &lt;code>EntityReference&lt;/code> node are only passed&#xA;to the filter if the &lt;code>EntityReference&lt;/code> node is skipped by the&#xA;method &lt;code>LSParserFilter.acceptNode()&lt;/code>.&#xA;&lt;p> When serializing an &lt;code>Element&lt;/code>, the element is passed to the&#xA;filter before any of its attributes are passed to the filter. Namespace&#xA;declaration attributes, and default attributes (except in the case when &quot;&#xA;discard-default-content&quot; is set to &lt;code>false&lt;/code>), are never passed&#xA;to the filter.&#xA;&lt;p> The result of any attempt to modify a node passed to a&#xA;&lt;code>LSSerializerFilter&lt;/code> is implementation dependent.&#xA;&lt;p> DOM applications must not raise exceptions in a filter. The effect of&#xA;throwing exceptions from a filter is DOM implementation dependent.&#xA;&lt;p> For efficiency, a node passed to the filter may not be the same as the&#xA;one that is actually in the tree. And the actual node (node object&#xA;identity) may be reused during the process of filtering and serializing a&#xA;document.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314468_131409_8908"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_367996_15704" isSubstitutable="true" general="_9_5_f720368_1110473546940_225623_13206"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314408_739511_8887" name="LSLoadEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314408_300636_8889" body="This interface represents a load event object that signals the completion&#xA;of a document load.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load&#xA;and Save Specification&lt;/a>.&#xA;" annotatedElement="_10_5_622020d_1132928314408_739511_8887"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_13373_15702" isSubstitutable="true" general="_9_5_f720368_1110473546940_75404_13068"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_405634_13230" name="DOMException">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_681795_8967" body="DOM operations only raise exceptions in &quot;exceptional&quot; circumstances, i.e.,&#xA;when an operation is impossible to perform (either for logical reasons,&#xA;because data is lost, or because the implementation has become unstable).&#xA;In general, DOM methods return specific error values in ordinary&#xA;processing situations, such as out-of-bound errors when using&#xA;&lt;code>NodeList&lt;/code>.&#xA;&lt;p>Implementations should raise other exceptions under other circumstances.&#xA;For example, implementations should raise an implementation-dependent&#xA;exception if a &lt;code>null&lt;/code> argument is passed when &lt;code>null&lt;/code>&#xA;was not expected.&#xA;&lt;p>Some languages and object systems do not support the concept of&#xA;exceptions. For such systems, error conditions may be indicated using&#xA;native error reporting mechanisms. For some bindings, for example,&#xA;methods may return error codes similar to those listed in the&#xA;corresponding method descriptions.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_405634_13230"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_577288_15713" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_309373_8970" name="DOMImplementationList" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_70651_8972" body="The &lt;code>DOMImplementationList&lt;/code> interface provides the abstraction&#xA;of an ordered collection of DOM implementations, without defining or&#xA;constraining how this collection is implemented. The items in the&#xA;&lt;code>DOMImplementationList&lt;/code> are accessible via an integral index,&#xA;starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_309373_8970"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314668_320314_9006" name="UserDataHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314668_475094_9008" body="When associating an object to a key on a node using&#xA;&lt;code>Node.setUserData()&lt;/code> the application can provide a handler&#xA;that gets called when the node the object is associated to is being&#xA;cloned, imported, or renamed. This can be used by the application to&#xA;implement various behaviors regarding the data it associates to the DOM&#xA;nodes. This interface defines that handler.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314668_320314_9006"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_253885_13236" name="Entity" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314628_845407_8985" body="This interface represents a known entity, either parsed or unparsed, in an&#xA;XML document. Note that this models the entity itself &lt;em>not&lt;/em> the entity declaration.&#xA;&lt;p>The &lt;code>nodeName&lt;/code> attribute that is inherited from&#xA;&lt;code>Node&lt;/code> contains the name of the entity.&#xA;&lt;p>An XML processor may choose to completely expand entities before the&#xA;structure model is passed to the DOM; in this case there will be no&#xA;&lt;code>EntityReference&lt;/code> nodes in the document tree.&#xA;&lt;p>XML does not mandate that a non-validating XML processor read and&#xA;process entity declarations made in the external subset or declared in&#xA;parameter entities. This means that parsed entities declared in the&#xA;external subset need not be expanded by some classes of applications, and&#xA;that the replacement text of the entity may not be available. When the &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#intern-replacement'>&#xA;replacement text&lt;/a> is available, the corresponding &lt;code>Entity&lt;/code> node's child list&#xA;represents the structure of that replacement value. Otherwise, the child&#xA;list is empty.&#xA;&lt;p>DOM Level 3 does not support editing &lt;code>Entity&lt;/code> nodes; if a&#xA;user wants to make changes to the contents of an &lt;code>Entity&lt;/code>,&#xA;every related &lt;code>EntityReference&lt;/code> node has to be replaced in the&#xA;structure model by a clone of the &lt;code>Entity&lt;/code>'s contents, and&#xA;then the desired changes must be made to each of those clones instead.&#xA;&lt;code>Entity&lt;/code> nodes and all their descendants are readonly.&#xA;&lt;p>An &lt;code>Entity&lt;/code> node does not have any parent.&#xA;&lt;p >&lt;b>Note:&lt;/b> If the entity contains an unbound namespace prefix, the&#xA;&lt;code>namespaceURI&lt;/code> of the corresponding node in the&#xA;&lt;code>Entity&lt;/code> node subtree is &lt;code>null&lt;/code>. The same is true&#xA;for &lt;code>EntityReference&lt;/code> nodes that refer to this entity, when&#xA;they are created using the &lt;code>createEntityReference&lt;/code> method of&#xA;the &lt;code>Document&lt;/code> interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_253885_13236"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_120688_15715" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_630865_13226" name="DocumentFragment" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314528_634422_8954" body="&lt;code>DocumentFragment&lt;/code> is a &quot;lightweight&quot; or &quot;minimal&quot;&#xA;&lt;code>Document&lt;/code> object. It is very common to want to be able to&#xA;extract a portion of a document's tree or to create a new fragment of a&#xA;document. Imagine implementing a user command like cut or rearranging a&#xA;document by moving fragments around. It is desirable to have an object&#xA;which can hold such fragments and it is quite natural to use a Node for&#xA;this purpose. While it is true that a &lt;code>Document&lt;/code> object could&#xA;fulfill this role, a &lt;code>Document&lt;/code> object can potentially be a&#xA;heavyweight object, depending on the underlying implementation. What is&#xA;really needed for this is a very lightweight object.&#xA;&lt;code>DocumentFragment&lt;/code> is such an object.&#xA;&lt;p>Furthermore, various operations -- such as inserting nodes as children&#xA;of another &lt;code>Node&lt;/code> -- may take &lt;code>DocumentFragment&lt;/code>&#xA;objects as arguments; this results in all the child nodes of the&#xA;&lt;code>DocumentFragment&lt;/code> being moved to the child list of this node.&#xA;&lt;p>The children of a &lt;code>DocumentFragment&lt;/code> node are zero or more&#xA;nodes representing the tops of any sub-trees defining the structure of&#xA;the document. &lt;code>DocumentFragment&lt;/code> nodes do not need to be&#xA;well-formed XML documents (although they do need to follow the rules&#xA;imposed upon well-formed XML parsed entities, which can have multiple top&#xA;nodes). For example, a &lt;code>DocumentFragment&lt;/code> might have only one&#xA;child and that child node could be a &lt;code>Text&lt;/code> node. Such a&#xA;structure model represents neither an HTML document nor a well-formed XML&#xA;document.&#xA;&lt;p>When a &lt;code>DocumentFragment&lt;/code> is inserted into a&#xA;&lt;code>Document&lt;/code> (or indeed any other &lt;code>Node&lt;/code> that may&#xA;take children) the children of the &lt;code>DocumentFragment&lt;/code> and not&#xA;the &lt;code>DocumentFragment&lt;/code> itself are inserted into the&#xA;&lt;code>Node&lt;/code>. This makes the &lt;code>DocumentFragment&lt;/code> very&#xA;useful when the user wishes to create nodes that are siblings; the&#xA;&lt;code>DocumentFragment&lt;/code> acts as the parent of these nodes so that&#xA;the user can use the standard methods from the &lt;code>Node&lt;/code>&#xA;interface, such as &lt;code>Node.insertBefore&lt;/code> and&#xA;&lt;code>Node.appendChild&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_630865_13226"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_560083_15711" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548846_965106_27595" name="stylesheets">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_68282_13200" name="StyleSheet" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_156175_8928" body="The &lt;code>StyleSheet&lt;/code> interface is the abstract base interface for&#xA;any type of style sheet. It represents a single style sheet associated&#xA;with a structured document. In HTML, the StyleSheet interface represents&#xA;either an external style sheet, included via the HTML  LINK element, or&#xA;an inline  STYLE element. In XML, this interface represents an external&#xA;style sheet, included via a style sheet processing instruction.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_68282_13200"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_54361_13196" name="LinkStyle" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_101080_8924" body="The &lt;code>LinkStyle&lt;/code> interface provides a mechanism by which a style&#xA;sheet can be retrieved from the node responsible for linking it into a&#xA;document. An instance of the &lt;code>LinkStyle&lt;/code> interface can be&#xA;obtained using binding-specific casting methods on an instance of a&#xA;linking node (&lt;code>HTMLLinkElement&lt;/code>, &lt;code>HTMLStyleElement&lt;/code>&#xA;or &lt;code>ProcessingInstruction&lt;/code> in DOM Level 2).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_54361_13196"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_128156_13194" name="DocumentStyle" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_545029_8922" body="The &lt;code>DocumentStyle&lt;/code> interface provides a mechanism by which the&#xA;style sheets embedded in a document can be retrieved. The expectation is&#xA;that an instance of the &lt;code>DocumentStyle&lt;/code> interface can be&#xA;obtained by using binding-specific casting methods on an instance of the&#xA;&lt;code>Document&lt;/code> interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_128156_13194"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_704857_13198" name="MediaList" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_373659_8926" body="The &lt;code>MediaList&lt;/code> interface provides the abstraction of an&#xA;ordered collection of media, without defining or constraining how this&#xA;collection is implemented. An empty list is the same as a list that&#xA;contains the medium &lt;code>&quot;all&quot;&lt;/code>.&#xA;&lt;p> The items in the &lt;code>MediaList&lt;/code> are accessible via an integral&#xA;index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_704857_13198"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_714235_13202" name="StyleSheetList" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_848795_8930" body="The &lt;code>StyleSheetList&lt;/code> interface provides the abstraction of an&#xA;ordered collection of style sheets.&#xA;&lt;p> The items in the &lt;code>StyleSheetList&lt;/code> are accessible via an&#xA;integral index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_714235_13202"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_710232_8973" name="DOMImplementationSource" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_90389_8975" body="This interface permits a DOM implementer to supply one or more&#xA;implementations, based upon requested features and versions, as specified&#xA;in . Each implemented &lt;code>DOMImplementationSource&lt;/code> object is&#xA;listed in the binding-specific list of available sources so that its&#xA;&lt;code>DOMImplementation&lt;/code> objects are made available.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_710232_8973"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548846_582491_27601" name="traversal">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_36555_13210" name="TreeWalker" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_461746_8938" body="&lt;code>TreeWalker&lt;/code> objects are used to navigate a document tree or&#xA;subtree using the view of the document defined by their&#xA;&lt;code>whatToShow&lt;/code> flags and filter (if any). Any function which&#xA;performs navigation using a &lt;code>TreeWalker&lt;/code> will automatically&#xA;support any view defined by a &lt;code>TreeWalker&lt;/code>.&#xA;&lt;p>Omitting nodes from the logical view of a subtree can result in a&#xA;structure that is substantially different from the same subtree in the&#xA;complete, unfiltered document. Nodes that are siblings in the&#xA;&lt;code>TreeWalker&lt;/code> view may be children of different, widely&#xA;separated nodes in the original view. For instance, consider a&#xA;&lt;code>NodeFilter&lt;/code> that skips all nodes except for Text nodes and&#xA;the root node of a document. In the logical view that results, all text&#xA;nodes will be siblings and appear as direct children of the root node, no&#xA;matter how deeply nested the structure of the original document.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_36555_13210"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_225623_13206" name="NodeFilter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_823504_8934" body="Filters are objects that know how to &quot;filter out&quot; nodes. If a&#xA;&lt;code>NodeIterator&lt;/code> or &lt;code>TreeWalker&lt;/code> is given a&#xA;&lt;code>NodeFilter&lt;/code>, it applies the filter before it returns the next&#xA;node. If the filter says to accept the node, the traversal logic returns&#xA;it; otherwise, traversal looks for the next node and pretends that the&#xA;node that was rejected was not there.&#xA;&lt;p>The DOM does not provide any filters. &lt;code>NodeFilter&lt;/code> is just an&#xA;interface that users can implement to provide their own filters.&#xA;&lt;p>&lt;code>NodeFilters&lt;/code> do not need to know how to traverse from node&#xA;to node, nor do they need to know anything about the data structure that&#xA;is being traversed. This makes it very easy to write filters, since the&#xA;only thing they have to know how to do is evaluate a single node. One&#xA;filter may be used with a number of different kinds of traversals,&#xA;encouraging code reuse.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_225623_13206"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_618384_13208" name="NodeIterator" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_861597_8936" body="&lt;code>NodeIterators&lt;/code> are used to step through a set of nodes, e.g.&#xA;the set of nodes in a &lt;code>NodeList&lt;/code>, the document subtree&#xA;governed by a particular &lt;code>Node&lt;/code>, the results of a query, or&#xA;any other set of nodes. The set of nodes to be iterated is determined by&#xA;the implementation of the &lt;code>NodeIterator&lt;/code>. DOM Level 2&#xA;specifies a single &lt;code>NodeIterator&lt;/code> implementation for&#xA;document-order traversal of a document subtree. Instances of these&#xA;&lt;code>NodeIterators&lt;/code> are created by calling&#xA;&lt;code>DocumentTraversal&lt;/code>&lt;code>.createNodeIterator()&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_618384_13208"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_910952_13204" name="DocumentTraversal" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_434210_8932" body="&lt;code>DocumentTraversal&lt;/code> contains methods that create&#xA;&lt;code>NodeIterators&lt;/code> and &lt;code>TreeWalkers&lt;/code> to traverse a&#xA;node and its children in document order (depth first, pre-order&#xA;traversal, which is equivalent to the order in which the start tags occur&#xA;in the text representation of the document). In DOMs which support the&#xA;Traversal feature, &lt;code>DocumentTraversal&lt;/code> will be implemented by&#xA;the same objects that implement the Document interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_910952_13204"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314328_215605_8701" name="bootstrap">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314328_448977_8702" name="DOMImplementationRegistry" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314328_694754_8704" body="A factory that enables applications to obtain instances of&#xA;&lt;code>DOMImplementation&lt;/code>.&#xA;&#xA;&lt;p>&#xA;Example:&#xA;&lt;/p>&#xA;&#xA;&lt;pre class='example'>&#xA;get an instance of the DOMImplementation registry&#xA;DOMImplementationRegistry registry =&#xA;DOMImplementationRegistry.newInstance();&#xA;get a DOM implementation the Level 3 XML module&#xA;DOMImplementation domImpl =&#xA;registry.getDOMImplementation(&quot;XML 3.0&quot;);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;This provides an application with an implementation-independent starting&#xA;point. DOM implementations may modify this class to meet new security&#xA;standards or to provide *additional* fallbacks for the list of&#xA;DOMImplementationSources.&#xA;&lt;/p>&#xA;&#xA;@see DOMImplementation&#xA;@see DOMImplementationSource&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314328_448977_8702"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314528_461453_8957" name="DOMConfiguration" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_40289_8959" body="The &lt;code>DOMConfiguration&lt;/code> interface represents the configuration&#xA;of a document and maintains a table of recognized parameters. Using the&#xA;configuration, it is possible to change&#xA;&lt;code>Document.normalizeDocument()&lt;/code> behavior, such as replacing the&#xA;&lt;code>CDATASection&lt;/code> nodes with &lt;code>Text&lt;/code> nodes or&#xA;specifying the type of the schema that must be used when the validation&#xA;of the &lt;code>Document&lt;/code> is requested. &lt;code>DOMConfiguration&lt;/code>&#xA;objects are also used in [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save&lt;/a>]&#xA;in the &lt;code>DOMParser&lt;/code> and &lt;code>DOMSerializer&lt;/code> interfaces.&#xA;&lt;p> The parameter names used by the &lt;code>DOMConfiguration&lt;/code> object&#xA;are defined throughout the DOM Level 3 specifications. Names are&#xA;case-insensitive. To avoid possible conflicts, as a convention, names&#xA;referring to parameters defined outside the DOM specification should be&#xA;made unique. Because parameters are exposed as properties in the , names&#xA;are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not&#xA;enforced by the DOM implementation. DOM Level 3 Core Implementations are&#xA;required to recognize all parameters defined in this specification. Some&#xA;parameter values may also be required to be supported by the&#xA;implementation. Refer to the definition of the parameter to know if a&#xA;value must be supported or not.&#xA;&lt;p >&lt;b>Note:&lt;/b>  Parameters are similar to features and properties used in&#xA;SAX2 [&lt;a href='http://www.saxproject.org/'>SAX&lt;/a>].&#xA;&lt;p> The following list of parameters defined in the DOM:&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>&quot;canonical-form&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Canonicalize the document according to the rules specified in [&lt;a href='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>Canonical XML&lt;/a>],&#xA;such as removing the &lt;code>DocumentType&lt;/code> node (if any) from the&#xA;tree, or removing superfluous namespace declarations from each element.&#xA;Note that this is limited to what can be represented in the DOM; in&#xA;particular, there is no way to specify the order of the attributes in the&#xA;DOM. In addition,  Setting this parameter to &lt;code>true&lt;/code> will also&#xA;set the state of the parameters listed below. Later changes to the state&#xA;of one of those parameters will revert &quot;canonical-form&quot; back to&#xA;&lt;code>false&lt;/code>. Parameters set to &lt;code>false&lt;/code>: &quot;entities&quot;, &quot;&#xA;normalize-characters&quot;, &quot;cdata-sections&quot;. Parameters set to&#xA;&lt;code>true&lt;/code>: &quot;namespaces&quot;, &quot;namespace-declarations&quot;, &quot;well-formed&quot;,&#xA;&quot;element-content-whitespace&quot;. Other parameters are not changed unless&#xA;explicitly specified in the description of the parameters.&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Do not canonicalize the document.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;cdata-sections&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Keep &lt;code>CDATASection&lt;/code> nodes in the document.&lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>]Transform &lt;code>CDATASection&lt;/code> nodes in the document into&#xA;&lt;code>Text&lt;/code> nodes. The new &lt;code>Text&lt;/code> node is then combined&#xA;with any adjacent &lt;code>Text&lt;/code> node.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;check-character-normalization&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Check if the characters in the document are &lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully&#xA;normalized&lt;/a>, as defined in appendix B of [&lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1&lt;/a>]. When a&#xA;sequence of characters is encountered that fails normalization checking,&#xA;an error with the &lt;code>DOMError.type&lt;/code> equals to&#xA;&quot;check-character-normalization-failure&quot; is issued. &lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Do not check if characters are normalized.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;comments&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Keep &lt;code>Comment&lt;/code> nodes in the document.&lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>]Discard &lt;code>Comment&lt;/code> nodes in the document.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;datatype-normalization&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Expose schema normalized values in the tree, such as &lt;a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-nv'>XML&#xA;Schema normalized values&lt;/a> in the case of XML Schema. Since this parameter requires to have schema&#xA;information, the &quot;validate&quot; parameter will also be set to&#xA;&lt;code>true&lt;/code>. Having this parameter activated when &quot;validate&quot; is&#xA;&lt;code>false&lt;/code> has no effect and no schema-normalization will happen.&#xA;&lt;p >&lt;b>Note:&lt;/b>  Since the document contains the result of the XML 1.0&#xA;processing, this parameter does not apply to attribute value&#xA;normalization as defined in section 3.3.3 of [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>] and is only&#xA;meant for schema languages other than Document Type Definition (DTD). &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) Do not perform schema normalization on the tree. &lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;element-content-whitespace&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Keep all whitespaces in the document.&lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Discard all &lt;code>Text&lt;/code> nodes that contain whitespaces in element&#xA;content, as described in &lt;a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'>&#xA;[element content whitespace]&lt;/a>. The implementation is expected to use the attribute&#xA;&lt;code>Text.isElementContentWhitespace&lt;/code> to determine if a&#xA;&lt;code>Text&lt;/code> node should be discarded or not.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;entities&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Keep &lt;code>EntityReference&lt;/code> nodes in the document.&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] Remove all &lt;code>EntityReference&lt;/code> nodes from the document,&#xA;putting the entity expansions directly in their place. &lt;code>Text&lt;/code>&#xA;nodes are normalized, as defined in &lt;code>Node.normalize&lt;/code>. Only &lt;a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.rse'>&#xA;unexpanded entity references&lt;/a> are kept in the document. &lt;/dd>&#xA;&lt;/dl>&#xA;&lt;p >&lt;b>Note:&lt;/b>  This parameter does not affect &lt;code>Entity&lt;/code> nodes. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;error-handler&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] Contains a &lt;code>DOMErrorHandler&lt;/code> object. If an error is&#xA;encountered in the document, the implementation will call back the&#xA;&lt;code>DOMErrorHandler&lt;/code> registered using this parameter. The&#xA;implementation may provide a default &lt;code>DOMErrorHandler&lt;/code> object.&#xA;When called, &lt;code>DOMError.relatedData&lt;/code> will contain the closest&#xA;node to where the error occurred. If the implementation is unable to&#xA;determine the node where the error occurs,&#xA;&lt;code>DOMError.relatedData&lt;/code> will contain the &lt;code>Document&lt;/code>&#xA;node. Mutations to the document from within an error handler will result&#xA;in implementation dependent behavior. &lt;/dd>&#xA;&lt;dt>&lt;code>&quot;infoset&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>]Keep in the document the information defined in the XML Information Set [&lt;a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set&lt;/a>]&#xA;.This forces the following parameters to &lt;code>false&lt;/code>: &quot;&#xA;validate-if-schema&quot;, &quot;entities&quot;, &quot;datatype-normalization&quot;, &quot;cdata-sections&#xA;&quot;.This forces the following parameters to &lt;code>true&lt;/code>: &quot;&#xA;namespace-declarations&quot;, &quot;well-formed&quot;, &quot;element-content-whitespace&quot;, &quot;&#xA;comments&quot;, &quot;namespaces&quot;.Other parameters are not changed unless&#xA;explicitly specified in the description of the parameters. Note that&#xA;querying this parameter with &lt;code>getParameter&lt;/code> returns&#xA;&lt;code>true&lt;/code> only if the individual parameters specified above are&#xA;appropriately set.&lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>Setting &lt;code>infoset&lt;/code> to&#xA;&lt;code>false&lt;/code> has no effect.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;namespaces&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) Perform the namespace processing as defined in . &lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Do not perform the namespace processing. &lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;namespace-declarations&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd> This parameter has no effect if the&#xA;parameter &quot;namespaces&quot; is set to &lt;code>false&lt;/code>.&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) Include namespace declaration attributes, specified or defaulted from&#xA;the schema, in the document. See also the sections &quot;Declaring Namespaces&quot;&#xA;in [&lt;a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces&lt;/a>]&#xA;and [&lt;a href='http://www.w3.org/TR/2004/REC-xml-names11-20040204/'>XML Namespaces 1.1&lt;/a>]&#xA;.&lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>]Discard all namespace declaration attributes. The namespace prefixes (&#xA;&lt;code>Node.prefix&lt;/code>) are retained even if this parameter is set to&#xA;&lt;code>false&lt;/code>.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;normalize-characters&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] &lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>Fully&#xA;normalized&lt;/a> the characters in the document as defined in appendix B of [&lt;a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1&lt;/a>]. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Do not perform character normalization.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;schema-location&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Represent a &lt;code>DOMString&lt;/code> object containing a list of URIs,&#xA;separated by whitespaces (characters matching the &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-S'>nonterminal&#xA;production S&lt;/a> defined in section 2.3 [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]), that&#xA;represents the schemas against which validation should occur, i.e. the&#xA;current schema. The types of schemas referenced in this list must match&#xA;the type specified with &lt;code>schema-type&lt;/code>, otherwise the behavior&#xA;of an implementation is undefined.  The schemas specified using this&#xA;property take precedence to the schema information specified in the&#xA;document itself. For namespace aware schema, if a schema specified using&#xA;this property and a schema specified in the document instance (i.e. using&#xA;the &lt;code>schemaLocation&lt;/code> attribute) in a schema document (i.e.&#xA;using schema &lt;code>import&lt;/code> mechanisms) share the same&#xA;&lt;code>targetNamespace&lt;/code>, the schema specified by the user using this&#xA;property will be used. If two schemas specified using this property share&#xA;the same &lt;code>targetNamespace&lt;/code> or have no namespace, the behavior&#xA;is implementation dependent.  If no location has been provided, this&#xA;parameter is &lt;code>null&lt;/code>.&#xA;&lt;p >&lt;b>Note:&lt;/b>  The &lt;code>&quot;schema-location&quot;&lt;/code> parameter is ignored&#xA;unless the &quot;schema-type&quot; parameter value is set. It is strongly&#xA;recommended that &lt;code>Document.documentURI&lt;/code> will be set so that an&#xA;implementation can successfully resolve any external entities referenced. &lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>&quot;schema-type&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Represent a &lt;code>DOMString&lt;/code> object containing an absolute URI&#xA;and representing the type of the schema language used to validate a&#xA;document against. Note that no lexical checking is done on the absolute&#xA;URI.  If this parameter is not set, a default value may be provided by&#xA;the implementation, based on the schema languages supported and on the&#xA;schema language used at load time. If no value is provided, this&#xA;parameter is &lt;code>null&lt;/code>.&#xA;&lt;p >&lt;b>Note:&lt;/b>  For XML Schema [&lt;a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1&lt;/a>]&#xA;, applications must use the value&#xA;&lt;code>&quot;http://www.w3.org/2001/XMLSchema&quot;&lt;/code>. For XML DTD [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>],&#xA;applications must use the value&#xA;&lt;code>&quot;http://www.w3.org/TR/REC-xml&quot;&lt;/code>. Other schema languages are&#xA;outside the scope of the W3C and therefore should recommend an absolute&#xA;URI in order to use this method. &lt;/dd>&#xA;&lt;dt>&lt;code>&quot;split-cdata-sections&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&#xA;&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>)Split CDATA sections containing the CDATA section termination marker&#xA;']]>'. When a CDATA section is split a warning is issued with a&#xA;&lt;code>DOMError.type&lt;/code> equals to&#xA;&lt;code>&quot;cdata-sections-splitted&quot;&lt;/code> and&#xA;&lt;code>DOMError.relatedData&lt;/code> equals to the first&#xA;&lt;code>CDATASection&lt;/code> node in document order resulting from the split.&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>]Signal an error if a &lt;code>CDATASection&lt;/code> contains an&#xA;unrepresentable character.&lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;validate&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Require the validation against a schema (i.e. XML schema, DTD, any&#xA;other type or representation of schema) of the document as it is being&#xA;normalized as defined by [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]. If&#xA;validation errors are found, or no schema was found, the error handler is&#xA;notified. Schema-normalized values will not be exposed according to the&#xA;schema in used unless the parameter &quot;datatype-normalization&quot; is&#xA;&lt;code>true&lt;/code>.  This parameter will reevaluate:&#xA;&lt;ul>&#xA;&lt;li> Attribute nodes with&#xA;&lt;code>Attr.specified&lt;/code> equals to &lt;code>false&lt;/code>, as specified in&#xA;the description of the &lt;code>Attr&lt;/code> interface;&#xA;&lt;/li>&#xA;&lt;li> The value of the&#xA;attribute &lt;code>Text.isElementContentWhitespace&lt;/code> for all&#xA;&lt;code>Text&lt;/code> nodes;&#xA;&lt;/li>&#xA;&lt;li> The value of the attribute&#xA;&lt;code>Attr.isId&lt;/code> for all &lt;code>Attr&lt;/code> nodes;&#xA;&lt;/li>&#xA;&lt;li> The attributes&#xA;&lt;code>Element.schemaTypeInfo&lt;/code> and &lt;code>Attr.schemaTypeInfo&lt;/code>.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p >&lt;b>Note:&lt;/b>  &quot;validate-if-schema&quot; and &quot;validate&quot; are mutually&#xA;exclusive, setting one of them to &lt;code>true&lt;/code> will set the other&#xA;one to &lt;code>false&lt;/code>. Applications should also consider setting the&#xA;parameter &quot;well-formed&quot; to &lt;code>true&lt;/code>, which is the default for&#xA;that option, when validating the document. &lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) Do not accomplish schema processing, including the internal subset&#xA;processing. Default attribute values information are kept. Note that&#xA;validation might still happen if &quot;validate-if-schema&quot; is &lt;code>true&lt;/code>&#xA;. &lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;validate-if-schema&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>]Enable validation only if a declaration for the document element can be&#xA;found in a schema (independently of where it is found, i.e. XML schema,&#xA;DTD, or any other type or representation of schema). If validation is&#xA;enabled, this parameter has the same behavior as the parameter &quot;validate&quot;&#xA;set to &lt;code>true&lt;/code>.&#xA;&lt;p >&lt;b>Note:&lt;/b>  &quot;validate-if-schema&quot; and &quot;validate&quot; are mutually&#xA;exclusive, setting one of them to &lt;code>true&lt;/code> will set the other&#xA;one to &lt;code>false&lt;/code>. &lt;/dd>&#xA;&lt;dt>&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) No schema processing should be performed if the document has a schema,&#xA;including internal subset processing. Default attribute values&#xA;information are kept. Note that validation must still happen if &quot;validate&#xA;&quot; is &lt;code>true&lt;/code>. &lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;dt>&lt;code>&quot;well-formed&quot;&lt;/code>&lt;/dt>&#xA;&lt;dd>&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>true&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>required&lt;/em>] (&lt;em>default&lt;/em>) Check if all nodes are XML well formed according to the XML version in&#xA;use in &lt;code>Document.xmlVersion&lt;/code>:&#xA;&lt;ul>&#xA;&lt;li> check if the attribute&#xA;&lt;code>Node.nodeName&lt;/code> contains invalid characters according to its&#xA;node type and generate a &lt;code>DOMError&lt;/code> of type&#xA;&lt;code>&quot;wf-invalid-character-in-node-name&quot;&lt;/code>, with a&#xA;&lt;code>DOMError.SEVERITY_ERROR&lt;/code> severity, if necessary;&#xA;&lt;/li>&#xA;&lt;li> check if&#xA;the text content inside &lt;code>Attr&lt;/code>, &lt;code>Element&lt;/code>,&#xA;&lt;code>Comment&lt;/code>, &lt;code>Text&lt;/code>, &lt;code>CDATASection&lt;/code> nodes&#xA;for invalid characters and generate a &lt;code>DOMError&lt;/code> of type&#xA;&lt;code>&quot;wf-invalid-character&quot;&lt;/code>, with a&#xA;&lt;code>DOMError.SEVERITY_ERROR&lt;/code> severity, if necessary;&#xA;&lt;/li>&#xA;&lt;li> check if&#xA;the data inside &lt;code>ProcessingInstruction&lt;/code> nodes for invalid&#xA;characters and generate a &lt;code>DOMError&lt;/code> of type&#xA;&lt;code>&quot;wf-invalid-character&quot;&lt;/code>, with a&#xA;&lt;code>DOMError.SEVERITY_ERROR&lt;/code> severity, if necessary;&#xA;&lt;/li>&#xA;&lt;/ul>&lt;/dd>&#xA;&lt;dt>&#xA;&lt;code>false&lt;/code>&lt;/dt>&#xA;&lt;dd>[&lt;em>optional&lt;/em>] Do not check for XML well-formedness. &lt;/dd>&#xA;&lt;/dl>&lt;/dd>&#xA;&lt;/dl>&#xA;&lt;p> The resolution of the system identifiers associated with entities is&#xA;done using &lt;code>Document.documentURI&lt;/code>. However, when the feature&#xA;&quot;LS&quot; defined in [&lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save&lt;/a>]&#xA;is supported by the DOM implementation, the parameter&#xA;&quot;resource-resolver&quot; can also be used on &lt;code>DOMConfiguration&lt;/code>&#xA;objects attached to &lt;code>Document&lt;/code> nodes. If this parameter is&#xA;set, &lt;code>Document.normalizeDocument()&lt;/code> will invoke the resource&#xA;resolver instead of using &lt;code>Document.documentURI&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314528_461453_8957"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_365604_13234" name="Element" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_967975_8983" body="The &lt;code>Element&lt;/code> interface represents an element in an HTML or XML&#xA;document. Elements may have attributes associated with them; since the&#xA;&lt;code>Element&lt;/code> interface inherits from &lt;code>Node&lt;/code>, the&#xA;generic &lt;code>Node&lt;/code> interface attribute &lt;code>attributes&lt;/code> may&#xA;be used to retrieve the set of all attributes for an element. There are&#xA;methods on the &lt;code>Element&lt;/code> interface to retrieve either an&#xA;&lt;code>Attr&lt;/code> object by name or an attribute value by name. In XML,&#xA;where an attribute value may contain entity references, an&#xA;&lt;code>Attr&lt;/code> object should be retrieved to examine the possibly&#xA;fairly complex sub-tree representing the attribute value. On the other&#xA;hand, in HTML, where all attributes have simple string values, methods to&#xA;directly access an attribute value can safely be used as a convenience.&#xA;&lt;p >&lt;b>Note:&lt;/b> In DOM Level 2, the method &lt;code>normalize&lt;/code> is&#xA;inherited from the &lt;code>Node&lt;/code> interface where it was moved.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_365604_13234"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_635577_15714" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548846_884884_27470" name="events">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_879182_13070" name="EventException">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_6722_8754" body="Event operations may throw an &lt;code>EventException&lt;/code> as specified in&#xA;their method descriptions.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_879182_13070"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_371845_15642" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_706439_13066" name="DocumentEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_966324_8750" body="The &lt;code>DocumentEvent&lt;/code> interface provides a mechanism by which the&#xA;user can create an Event of a type supported by the implementation. It is&#xA;expected that the &lt;code>DocumentEvent&lt;/code> interface will be&#xA;implemented on the same object which implements the &lt;code>Document&lt;/code>&#xA;interface in an implementation which supports the Event model.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_706439_13066"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_951347_13076" name="MouseEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_157563_8760" body="The &lt;code>MouseEvent&lt;/code> interface provides specific contextual&#xA;information associated with Mouse events.&#xA;&lt;p>The &lt;code>detail&lt;/code> attribute inherited from &lt;code>UIEvent&lt;/code>&#xA;indicates the number of times a mouse button has been pressed and&#xA;released over the same screen location during a user action. The&#xA;attribute value is 1 when the user begins this action and increments by 1&#xA;for each full sequence of pressing and releasing. If the user moves the&#xA;mouse between the mousedown and mouseup the value will be set to 0,&#xA;indicating that no click is occurring.&#xA;&lt;p>In the case of nested elements mouse events are always targeted at the&#xA;most deeply nested element. Ancestors of the targeted element may use&#xA;bubbling to obtain notification of mouse events which occur within its&#xA;descendent elements.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_951347_13076"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_667644_15643" isSubstitutable="true" general="_9_5_f720368_1110473546940_542154_13080"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_75404_13068" name="Event" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_514904_8752" body="The &lt;code>Event&lt;/code> interface is used to provide contextual information&#xA;about an event to the handler processing the event. An object which&#xA;implements the &lt;code>Event&lt;/code> interface is generally passed as the&#xA;first parameter to an event handler. More specific context information is&#xA;passed to event handlers by deriving additional interfaces from&#xA;&lt;code>Event&lt;/code> which contain information directly relating to the&#xA;type of event they accompany. These derived interfaces are also&#xA;implemented by the object passed to the event listener.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_75404_13068"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_121023_13074" name="EventTarget" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_816235_8758" body="The &lt;code>EventTarget&lt;/code> interface is implemented by all&#xA;&lt;code>Nodes&lt;/code> in an implementation which supports the DOM Event&#xA;Model. Therefore, this interface can be obtained by using&#xA;binding-specific casting methods on an instance of the &lt;code>Node&lt;/code>&#xA;interface. The interface allows registration and removal of&#xA;&lt;code>EventListeners&lt;/code> on an &lt;code>EventTarget&lt;/code> and dispatch&#xA;of events to that &lt;code>EventTarget&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_121023_13074"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_506951_13078" name="MutationEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_896088_8762" body="The &lt;code>MutationEvent&lt;/code> interface provides specific contextual&#xA;information associated with Mutation events.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_506951_13078"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_281550_15644" isSubstitutable="true" general="_9_5_f720368_1110473546940_75404_13068"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_542154_13080" name="UIEvent" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_885791_8764" body="The &lt;code>UIEvent&lt;/code> interface provides specific contextual information&#xA;associated with User Interface events.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_542154_13080"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_380689_15645" isSubstitutable="true" general="_9_5_f720368_1110473546940_75404_13068"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_251848_13072" name="EventListener" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314348_255034_8756" body="The &lt;code>EventListener&lt;/code> interface is the primary method for&#xA;handling events. Users implement the &lt;code>EventListener&lt;/code> interface&#xA;and register their listener on an &lt;code>EventTarget&lt;/code> using the&#xA;&lt;code>AddEventListener&lt;/code> method. The users should also remove their&#xA;&lt;code>EventListener&lt;/code> from its &lt;code>EventTarget&lt;/code> after they&#xA;have completed using the listener.&#xA;&lt;p> When a &lt;code>Node&lt;/code> is copied using the &lt;code>cloneNode&lt;/code>&#xA;method the &lt;code>EventListener&lt;/code>s attached to the source&#xA;&lt;code>Node&lt;/code> are not attached to the copied &lt;code>Node&lt;/code>. If&#xA;the user wishes the same &lt;code>EventListener&lt;/code>s to be added to the&#xA;newly created copy the user must add them manually.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_251848_13072"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548846_13359_27606" name="views">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_430692_13212" name="AbstractView" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_427682_8940" body="A base interface that all views shall derive from.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_430692_13212"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_769836_13214" name="DocumentView" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314478_802692_8942" body="The &lt;code>DocumentView&lt;/code> interface is implemented by&#xA;&lt;code>Document&lt;/code> objects in DOM implementations supporting DOM&#xA;Views. It provides an attribute to retrieve the default view of a&#xA;document.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_769836_13214"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_461637_13250" name="Text" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314668_31913_9002" body="The &lt;code>Text&lt;/code> interface inherits from &lt;code>CharacterData&lt;/code>&#xA;and represents the textual content (termed &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#syntax'>character data&lt;/a> in XML) of an &lt;code>Element&lt;/code> or &lt;code>Attr&lt;/code>. If there is no&#xA;markup inside an element's content, the text is contained in a single&#xA;object implementing the &lt;code>Text&lt;/code> interface that is the only&#xA;child of the element. If there is markup, it is parsed into the&#xA;information items (elements, comments, etc.) and &lt;code>Text&lt;/code> nodes&#xA;that form the list of children of the element.&#xA;&lt;p>When a document is first made available via the DOM, there is only one&#xA;&lt;code>Text&lt;/code> node for each block of text. Users may create adjacent&#xA;&lt;code>Text&lt;/code> nodes that represent the contents of a given element&#xA;without any intervening markup, but should be aware that there is no way&#xA;to represent the separations between these nodes in XML or HTML, so they&#xA;will not (in general) persist between DOM editing sessions. The&#xA;&lt;code>Node.normalize()&lt;/code> method merges any such adjacent&#xA;&lt;code>Text&lt;/code> objects into a single node for each block of text.&#xA;&lt;p> No lexical check is done on the content of a &lt;code>Text&lt;/code> node&#xA;and, depending on its position in the document, some characters must be&#xA;escaped during serialization using character references; e.g. the&#xA;characters &quot;&lt;&amp;&quot; if the textual content is part of an element or of&#xA;an attribute, the character sequence &quot;]]>&quot; when part of an element,&#xA;the quotation mark character &quot; or the apostrophe character ' when part of&#xA;an attribute.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_461637_13250"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_58895_15719" isSubstitutable="true" general="_9_5_f720368_1110473546940_685592_13220"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_186102_13228" name="DocumentType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314528_660119_8956" body="Each &lt;code>Document&lt;/code> has a &lt;code>doctype&lt;/code> attribute whose value&#xA;is either &lt;code>null&lt;/code> or a &lt;code>DocumentType&lt;/code> object. The&#xA;&lt;code>DocumentType&lt;/code> interface in the DOM Core provides an interface&#xA;to the list of entities that are defined for the document, and little&#xA;else because the effect of namespaces and the various XML schema efforts&#xA;on DTD representation are not clearly understood as of this writing.&#xA;&lt;p>DOM Level 3 doesn't support editing &lt;code>DocumentType&lt;/code> nodes.&#xA;&lt;code>DocumentType&lt;/code> nodes are read-only.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_186102_13228"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_151879_15712" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_438894_13238" name="EntityReference" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314628_205705_8987" body="&lt;code>EntityReference&lt;/code> nodes may be used to represent an entity&#xA;reference in the tree. Note that character references and references to&#xA;predefined entities are considered to be expanded by the HTML or XML&#xA;processor so that characters are represented by their Unicode equivalent&#xA;rather than by an entity reference. Moreover, the XML processor may&#xA;completely expand references to entities while building the&#xA;&lt;code>Document&lt;/code>, instead of providing &lt;code>EntityReference&lt;/code>&#xA;nodes. If it does provide such nodes, then for an&#xA;&lt;code>EntityReference&lt;/code> node that represents a reference to a known&#xA;entity an &lt;code>Entity&lt;/code> exists, and the subtree of the&#xA;&lt;code>EntityReference&lt;/code> node is a copy of the &lt;code>Entity&lt;/code>&#xA;node subtree. However, the latter may not be true when an entity contains&#xA;an unbound namespace prefix. In such a case, because the namespace prefix&#xA;resolution depends on where the entity reference is, the descendants of&#xA;the &lt;code>EntityReference&lt;/code> node may be bound to different namespace&#xA;URIs. When an &lt;code>EntityReference&lt;/code> node represents a reference to&#xA;an unknown entity, the node has no children and its replacement value,&#xA;when used by &lt;code>Attr.value&lt;/code> for example, is empty.&#xA;&lt;p>As for &lt;code>Entity&lt;/code> nodes, &lt;code>EntityReference&lt;/code> nodes and&#xA;all their descendants are readonly.&#xA;&lt;p >&lt;b>Note:&lt;/b> &lt;code>EntityReference&lt;/code> nodes may cause element&#xA;content and attribute value normalization problems when, such as in XML&#xA;1.0 and XML Schema, the normalization is performed after entity reference&#xA;are expanded.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_438894_13238"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_194233_15716" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548846_851202_27483" name="html">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_182924_13148" name="HTMLMenuElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_355101_8832" body="Menu list. See the  MENU element definition in HTML 4.0. This element is&#xA;deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_182924_13148"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_68753_15678" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_827640_13164" name="HTMLParamElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_427474_8848" body="Parameters fed to the &lt;code>OBJECT&lt;/code> element. See the  PARAM element&#xA;definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_827640_13164"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_324731_15686" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_940705_13094" name="HTMLBRElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_632140_8778" body="Force a line break. See the  BR element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_940705_13094"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_434961_15652" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_758755_13082" name="HTMLAnchorElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_599322_8766" body="The anchor element. See the  A element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_758755_13082"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_577436_15646" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_548345_13100" name="HTMLDirectoryElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_959702_8784" body="Directory list. See the  DIR element definition in HTML 4.0. This element&#xA;is deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_548345_13100"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_725896_15654" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_783300_13108" name="HTMLDOMImplementation" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_289304_8792" body="The &lt;code>HTMLDOMImplementation&lt;/code> interface extends the&#xA;&lt;code>DOMImplementation&lt;/code> interface with a method for creating an&#xA;HTML document instance.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_9_5_f720368_1110473546940_783300_13108"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_497757_15658" isSubstitutable="true" general="_9_5_f720368_1110473546940_698191_13232"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_224092_13138" name="HTMLLabelElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_343392_8822" body="Form field label text. See the  LABEL element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_224092_13138"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_281975_15673" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_240157_13098" name="HTMLCollection" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_413186_8782" body="An &lt;code>HTMLCollection&lt;/code> is a list of nodes. An individual node may&#xA;be accessed by either ordinal index or the node's&lt;code>name&lt;/code> or&#xA;&lt;code>id&lt;/code> attributes.  Note: Collections in the HTML DOM are assumed&#xA;to be  live meaning that they are automatically updated when the&#xA;underlying document is changed.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_240157_13098"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_648161_13156" name="HTMLOListElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_525678_8840" body="Ordered list. See the  OL element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_648161_13156"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_783475_15682" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_128810_13110" name="HTMLElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_826539_8794" body="All HTML element interfaces derive from this class. Elements that only&#xA;expose the HTML core attributes are represented by the base&#xA;&lt;code>HTMLElement&lt;/code> interface. These elements are as follows:  HEAD&#xA;special: SUB, SUP, SPAN, BDO font: TT, I, B, U, S, STRIKE, BIG, SMALL&#xA;phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBR list:&#xA;DD, DT NOFRAMES, NOSCRIPT ADDRESS, CENTER The &lt;code>style&lt;/code> attribute&#xA;of an HTML element is accessible through the&#xA;&lt;code>ElementCSSInlineStyle&lt;/code> interface which is defined in the  .&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_128810_13110"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_39804_15659" isSubstitutable="true" general="_9_5_f720368_1110473546940_365604_13234"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_724964_13090" name="HTMLBaseFontElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_909124_8774" body="Base font. See the  BASEFONT element definition in HTML 4.0. This element&#xA;is deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_724964_13090"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_216784_15650" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_844675_13088" name="HTMLBaseElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_663142_8772" body="Document base URI. See the  BASE element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_844675_13088"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_733635_15649" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_478867_13168" name="HTMLQuoteElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_70922_8852" body="For the &lt;code>Q&lt;/code> and &lt;code>BLOCKQUOTE&lt;/code> elements. See the  Q&#xA;element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_478867_13168"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_726070_15688" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_675329_13182" name="HTMLTableElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_185925_8866" body="The create* and delete* methods on the table allow authors to construct&#xA;and modify tables. HTML 4.0 specifies that only one of each of the&#xA;&lt;code>CAPTION&lt;/code> , &lt;code>THEAD&lt;/code> , and &lt;code>TFOOT&lt;/code>&#xA;elements may exist in a table. Therefore, if one exists, and the&#xA;createTHead() or createTFoot() method is called, the method returns the&#xA;existing THead or TFoot element. See the  TABLE element definition in HTML&#xA;4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_675329_13182"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_283302_15695" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_880512_13188" name="HTMLTextAreaElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_699470_8872" body="Multi-line text field. See the  TEXTAREA element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_880512_13188"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_793424_15698" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_488306_13180" name="HTMLTableColElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_465318_8864" body="Regroups the &lt;code>COL&lt;/code> and &lt;code>COLGROUP&lt;/code> elements. See the&#xA;COL element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_488306_13180"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_494474_15694" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_176566_13154" name="HTMLObjectElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_998713_8838" body="Generic embedded object.  Note. In principle, all properties on the object&#xA;element are read-write but in some environments some properties may be&#xA;read-only once the underlying object is instantiated. See the  OBJECT&#xA;element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_176566_13154"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_469772_15681" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_275452_13186" name="HTMLTableSectionElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_12838_8870" body="The &lt;code>THEAD&lt;/code> , &lt;code>TFOOT&lt;/code> , and &lt;code>TBODY&lt;/code>&#xA;elements.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_275452_13186"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_620887_15697" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_23682_13114" name="HTMLFontElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_115704_8798" body="Local change to font. See the  FONT element definition in HTML 4.0. This&#xA;element is deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_23682_13114"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_49519_15661" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_654360_13084" name="HTMLAppletElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_261710_8768" body="An embedded Java applet. See the  APPLET element definition in HTML 4.0.&#xA;This element is deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_654360_13084"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_35504_15647" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_553107_13140" name="HTMLLegendElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_678163_8824" body="Provides a caption for a &lt;code>FIELDSET&lt;/code> grouping.  See the  LEGEND&#xA;element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_553107_13140"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_292086_15674" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_783605_13144" name="HTMLLinkElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_18737_8828" body="The &lt;code>LINK&lt;/code> element specifies a link to an external resource,&#xA;and defines this document's relationship to that resource (or vice versa).&#xA;See the  LINK element definition in HTML 4.0  (see also the&#xA;&lt;code>LinkStyle&lt;/code> interface in the  module).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_783605_13144"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_375480_15676" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_706471_13158" name="HTMLOptGroupElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_914307_8842" body="Group options together in logical subdivisions. See the  OPTGROUP element&#xA;definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_706471_13158"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_999250_15683" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_218337_13102" name="HTMLDivElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_239639_8786" body="Generic block container. See the  DIV element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_218337_13102"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_875986_15655" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_684956_13128" name="HTMLHtmlElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_294133_8812" body="Root of an HTML document. See the  HTML element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_684956_13128"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_401133_15668" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_344238_13190" name="HTMLTitleElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_361902_8874" body="The document title. See the  TITLE element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_344238_13190"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_356363_15699" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_850601_13086" name="HTMLAreaElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_233358_8770" body="Client-side image map area definition. See the  AREA element definition in&#xA;HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_850601_13086"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_232732_15648" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_936776_13172" name="HTMLSelectElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_456267_8856" body="The select element allows the selection of an option. The contained&#xA;options can be directly accessed through the select element as a&#xA;collection. See the  SELECT element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_936776_13172"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_107026_15690" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_278252_13178" name="HTMLTableCellElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_505916_8862" body="The object used to represent the &lt;code>TH&lt;/code> and &lt;code>TD&lt;/code>&#xA;elements. See the  TD element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_278252_13178"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_576594_15693" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_957170_13118" name="HTMLFrameElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_899410_8802" body="Create a frame. See the  FRAME element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_957170_13118"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_376312_15663" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_352231_13160" name="HTMLOptionElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_884254_8844" body="A selectable choice. See the  OPTION element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_352231_13160"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_137006_15684" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_512996_13120" name="HTMLFrameSetElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_556696_8804" body="Create a grid of frames. See the  FRAMESET element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_512996_13120"/>
                <generalization xmi:id="_10_5_622020d_1132928322850_705230_15664" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_691854_13132" name="HTMLImageElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_340878_8816" body="Embedded image. See the  IMG element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_691854_13132"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_124132_15670" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_2800_13170" name="HTMLScriptElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_473528_8854" body="Script statements. See the  SCRIPT element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_2800_13170"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_545999_15689" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_860966_13152" name="HTMLModElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_714253_8836" body="Notice of modification to part of a document. See the   INS  and  DEL&#xA;element definitions in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_860966_13152"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_555953_15680" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_703590_13146" name="HTMLMapElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_22430_8830" body="Client-side image map. See the  MAP element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_703590_13146"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_541052_15677" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_515148_13122" name="HTMLHeadElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_678838_8806" body="Document head information. See the  HEAD element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_515148_13122"/>
                <generalization xmi:id="_10_5_622020d_1132928322850_234863_15665" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_504973_13106" name="HTMLDocument" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_593303_8790" body="An &lt;code>HTMLDocument&lt;/code> is the root of the HTML hierarchy and holds&#xA;the entire content. Besides providing access to the hierarchy, it also&#xA;provides some convenience methods for accessing certain sets of&#xA;information from the document.&#xA;&lt;p> The following properties have been deprecated in favor of the&#xA;corresponding ones for the &lt;code>BODY&lt;/code> element: alinkColor background&#xA;bgColor fgColor linkColor vlinkColor In DOM Level 2, the method&#xA;&lt;code>getElementById&lt;/code> is inherited from the &lt;code>Document&lt;/code>&#xA;interface where it was moved.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_504973_13106"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_806105_15657" isSubstitutable="true" general="_9_5_f720368_1110473546940_977396_13224"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_692954_13134" name="HTMLInputElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_72093_8818" body="Form control.  Note. Depending upon the environment in which the page is&#xA;being viewed, the value property may be read-only for the file upload&#xA;input type. For the &quot;password&quot; input type, the actual value returned may&#xA;be masked to prevent unauthorized use. See the  INPUT element definition&#xA;in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_692954_13134"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_672688_15671" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_355477_13150" name="HTMLMetaElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_93187_8834" body="This contains generic meta-information about the document. See the  META&#xA;element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_355477_13150"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_599665_15679" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_296804_13176" name="HTMLTableCaptionElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_857670_8860" body="Table caption See the  CAPTION element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_296804_13176"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_552244_15692" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_53979_13166" name="HTMLPreElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_456192_8850" body="Preformatted text. See the  PRE element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_53979_13166"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_174428_15687" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_790171_13130" name="HTMLIFrameElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_436422_8814" body="Inline subwindows. See the  IFRAME element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_790171_13130"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_75071_15669" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_56368_13184" name="HTMLTableRowElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_418940_8868" body="A row in a table. See the  TR element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_56368_13184"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_749410_15696" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_314340_13124" name="HTMLHeadingElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_262755_8808" body="For the &lt;code>H1&lt;/code> to &lt;code>H6&lt;/code> elements. See the  H1 element&#xA;definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_314340_13124"/>
                <generalization xmi:id="_10_5_622020d_1132928322850_727842_15666" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_129157_13192" name="HTMLUListElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314398_3655_8876" body="Unordered list. See the  UL element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_129157_13192"/>
                <generalization xmi:id="_10_5_622020d_1132928322880_99878_15700" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_159360_13126" name="HTMLHRElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_808288_8810" body="Create a horizontal rule. See the  HR element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_159360_13126"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_30686_15667" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_101371_13142" name="HTMLLIElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_394538_8826" body="List item. See the  LI element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_101371_13142"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_516679_15675" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_583244_13174" name="HTMLStyleElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_673593_8858" body="Style information. See the  STYLE element definition in HTML 4.0, the&#xA;module and the &lt;code>LinkStyle&lt;/code> interface in the  module.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_583244_13174"/>
                <generalization xmi:id="_10_5_622020d_1132928322870_894294_15691" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_140736_13096" name="HTMLButtonElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_348403_8780" body="Push button. See the  BUTTON element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_140736_13096"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_12569_15653" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_139936_13112" name="HTMLFieldSetElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_250533_8796" body="Organizes form controls into logical groups. See the   FIELDSET  element&#xA;definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_139936_13112"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_393733_15660" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_812773_13104" name="HTMLDListElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_9627_8788" body="Definition list. See the  DL element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_812773_13104"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_824689_15656" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_474718_13092" name="HTMLBodyElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314358_389626_8776" body="The HTML document body. This element is always present in the DOM API,&#xA;even if the tags are not present in the source document. See the  BODY&#xA;element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_474718_13092"/>
                <generalization xmi:id="_10_5_622020d_1132928322830_540056_15651" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_623774_13136" name="HTMLIsIndexElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314378_145456_8820" body="This element is used for single-line text input. See the  ISINDEX element&#xA;definition in HTML 4.0. This element is deprecated in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_623774_13136"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_885355_15672" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_691108_13116" name="HTMLFormElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314368_581065_8800" body="The &lt;code>FORM&lt;/code> element encompasses behavior similar to a collection&#xA;and an element. It provides direct access to the contained input elements&#xA;as well as the attributes of the form element. See the  FORM element&#xA;definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_691108_13116"/>
                <generalization xmi:id="_10_5_622020d_1132928322840_59385_15662" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_184013_13162" name="HTMLParagraphElement" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314388_400546_8846" body="Paragraphs. See the  P element definition in HTML 4.0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_184013_13162"/>
                <generalization xmi:id="_10_5_622020d_1132928322860_331818_15685" isSubstitutable="true" general="_9_5_f720368_1110473546940_128810_13110"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_741813_13216" name="Attr" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314518_604835_8944" body="The &lt;code>Attr&lt;/code> interface represents an attribute in an&#xA;&lt;code>Element&lt;/code> object. Typically the allowable values for the&#xA;attribute are defined in a schema associated with the document.&#xA;&lt;p>&lt;code>Attr&lt;/code> objects inherit the &lt;code>Node&lt;/code> interface, but&#xA;since they are not actually child nodes of the element they describe, the&#xA;DOM does not consider them part of the document tree. Thus, the&#xA;&lt;code>Node&lt;/code> attributes &lt;code>parentNode&lt;/code>,&#xA;&lt;code>previousSibling&lt;/code>, and &lt;code>nextSibling&lt;/code> have a&#xA;&lt;code>null&lt;/code> value for &lt;code>Attr&lt;/code> objects. The DOM takes the&#xA;view that attributes are properties of elements rather than having a&#xA;separate identity from the elements they are associated with; this should&#xA;make it more efficient to implement such features as default attributes&#xA;associated with all elements of a given type. Furthermore,&#xA;&lt;code>Attr&lt;/code> nodes may not be immediate children of a&#xA;&lt;code>DocumentFragment&lt;/code>. However, they can be associated with&#xA;&lt;code>Element&lt;/code> nodes contained within a&#xA;&lt;code>DocumentFragment&lt;/code>. In short, users and implementors of the&#xA;DOM need to be aware that &lt;code>Attr&lt;/code> nodes have some things in&#xA;common with other objects inheriting the &lt;code>Node&lt;/code> interface, but&#xA;they also are quite distinct.&#xA;&lt;p>The attribute's effective value is determined as follows: if this&#xA;attribute has been explicitly assigned any value, that value is the&#xA;attribute's effective value; otherwise, if there is a declaration for&#xA;this attribute, and that declaration includes a default value, then that&#xA;default value is the attribute's effective value; otherwise, the&#xA;attribute does not exist on this element in the structure model until it&#xA;has been explicitly added. Note that the &lt;code>Node.nodeValue&lt;/code>&#xA;attribute on the &lt;code>Attr&lt;/code> instance can also be used to retrieve&#xA;the string version of the attribute's value(s).&#xA;&lt;p> If the attribute was not explicitly given a value in the instance&#xA;document but has a default value provided by the schema associated with&#xA;the document, an attribute node will be created with&#xA;&lt;code>specified&lt;/code> set to &lt;code>false&lt;/code>. Removing attribute&#xA;nodes for which a default value is defined in the schema generates a new&#xA;attribute node with the default value and &lt;code>specified&lt;/code> set to&#xA;&lt;code>false&lt;/code>. If validation occurred while invoking&#xA;&lt;code>Document.normalizeDocument()&lt;/code>, attribute nodes with&#xA;&lt;code>specified&lt;/code> equals to &lt;code>false&lt;/code> are recomputed&#xA;according to the default attribute values provided by the schema. If no&#xA;default value is associate with this attribute in the schema, the&#xA;attribute node is discarded.&#xA;&lt;p>In XML, where the value of an attribute can contain entity references,&#xA;the child nodes of the &lt;code>Attr&lt;/code> node may be either&#xA;&lt;code>Text&lt;/code> or &lt;code>EntityReference&lt;/code> nodes (when these are&#xA;in use; see the description of &lt;code>EntityReference&lt;/code> for&#xA;discussion).&#xA;&lt;p>The DOM Core represents all attribute values as simple strings, even if&#xA;the DTD or schema associated with the document declares them of some&#xA;specific type such as tokenized.&#xA;&lt;p>The way attribute value normalization is performed by the DOM&#xA;implementation depends on how much the implementation knows about the&#xA;schema in use. Typically, the &lt;code>value&lt;/code> and&#xA;&lt;code>nodeValue&lt;/code> attributes of an &lt;code>Attr&lt;/code> node initially&#xA;returns the normalized value given by the parser. It is also the case&#xA;after &lt;code>Document.normalizeDocument()&lt;/code> is called (assuming the&#xA;right options have been set). But this may not be the case after&#xA;mutation, independently of whether the mutation is performed by setting&#xA;the string value directly or by changing the &lt;code>Attr&lt;/code> child&#xA;nodes. In particular, this is true when &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#dt-charref'>character&#xA;references&lt;/a> are involved, given that they are not represented in the DOM and they&#xA;impact attribute value normalization. On the other hand, if the&#xA;implementation knows about the schema in use when the attribute value is&#xA;changed, and it is of a different type than CDATA, it may normalize it&#xA;again at that time. This is especially true of specialized DOM&#xA;implementations, such as SVG DOM implementations, which store attribute&#xA;values in an internal form different from a string.&#xA;&lt;p>The following table gives some examples of the relations between the&#xA;attribute value in the original document (parsed attribute), the value as&#xA;exposed in the DOM, and the serialization of the value:&#xA;&lt;table border='1' cellpadding='3'>&#xA;&lt;tr>&#xA;&lt;th>Examples&lt;/th>&#xA;&lt;th>Parsed&#xA;attribute value&lt;/th>&#xA;&lt;th>Initial &lt;code>Attr.value&lt;/code>&lt;/th>&#xA;&lt;th>Serialized attribute value&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;Character reference&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x&amp;#178;=5&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x\u00b2=5&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x&amp;#178;=5&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>Built-in&#xA;character entity&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;y&lt;6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;y&lt;6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;y&lt;6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>Literal newline between&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&#xA;&quot;x=5&amp;#10;y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x=5 y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x=5&amp;#10;y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>Normalized newline between&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x=5&#xA;y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x=5 y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&quot;x=5 y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>Entity &lt;code>e&lt;/code> with literal newline&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&#xA;&lt;pre>&#xA;&lt;!ENTITY e '...&amp;#10;...'> [...]> &quot;x=5&amp;e;y=6&quot;&lt;/pre>&#xA;&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;em>Dependent on Implementation and Load Options&lt;/em>&lt;/td>&#xA;&lt;td valign='top' rowspan='1' colspan='1'>&lt;em>Dependent on Implementation and Load/Save Options&lt;/em>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_741813_13216"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_213585_15706" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_698191_13232" name="DOMImplementation" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_143152_8969" body="The &lt;code>DOMImplementation&lt;/code> interface provides a number of methods&#xA;for performing operations that are independent of any particular instance&#xA;of the document object model.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_698191_13232"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_64309_8963" name="DOMErrorHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_245550_8965" body="&lt;code>DOMErrorHandler&lt;/code> is a callback interface that the DOM&#xA;implementation can call when reporting errors that happens while&#xA;processing XML data, or when doing some other processing (e.g. validating&#xA;a document). A &lt;code>DOMErrorHandler&lt;/code> object can be attached to a&#xA;&lt;code>Document&lt;/code> using the &quot;error-handler&quot; on the&#xA;&lt;code>DOMConfiguration&lt;/code> interface. If more than one error needs to&#xA;be reported during an operation, the sequence and numbers of the errors&#xA;passed to the error handler are implementation dependent.&#xA;&lt;p> The application that is using the DOM implementation is expected to&#xA;implement this interface.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_64309_8963"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314618_940187_8976" name="DOMLocator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314618_558052_8978" body="&lt;code>DOMLocator&lt;/code> is an interface that describes a location (e.g.&#xA;where an error occurred).&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314618_940187_8976"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314668_398382_9003" name="TypeInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314668_285056_9005" body="The &lt;code>TypeInfo&lt;/code> interface represents a type referenced from&#xA;&lt;code>Element&lt;/code> or &lt;code>Attr&lt;/code> nodes, specified in the schemas&#xA;associated with the document. The type is a pair of a namespace URI and&#xA;name properties, and depends on the document's schema.&#xA;&lt;p> If the document's schema is an XML DTD [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>], the values&#xA;are computed as follows:&#xA;&lt;ul>&#xA;&lt;li> If this type is referenced from an&#xA;&lt;code>Attr&lt;/code> node, &lt;code>typeNamespace&lt;/code> is&#xA;&lt;code>&quot;http://www.w3.org/TR/REC-xml&quot;&lt;/code> and &lt;code>typeName&lt;/code>&#xA;represents the &lt;b>[attribute type]&lt;/b> property in the [&lt;a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set&lt;/a>]&#xA;. If there is no declaration for the attribute, &lt;code>typeNamespace&lt;/code>&#xA;and &lt;code>typeName&lt;/code> are &lt;code>null&lt;/code>.&#xA;&lt;/li>&#xA;&lt;li> If this type is&#xA;referenced from an &lt;code>Element&lt;/code> node, &lt;code>typeNamespace&lt;/code>&#xA;and &lt;code>typeName&lt;/code> are &lt;code>null&lt;/code>.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p> If the document's schema is an XML Schema [&lt;a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1&lt;/a>]&#xA;, the values are computed as follows using the post-schema-validation&#xA;infoset contributions (also called PSVI contributions):&#xA;&lt;ul>&#xA;&lt;li> If the &lt;b>[validity]&lt;/b> property exists AND is &lt;em>&quot;invalid&quot;&lt;/em> or &lt;em>&quot;notKnown&quot;&lt;/em>: the {target namespace} and {name} properties of the declared type if&#xA;available, otherwise &lt;code>null&lt;/code>.&#xA;&lt;p >&lt;b>Note:&lt;/b>  At the time of writing, the XML Schema specification does&#xA;not require exposing the declared type. Thus, DOM implementations might&#xA;choose not to provide type information if validity is not valid.&#xA;&lt;/li>&#xA;&lt;li> If the &lt;b>[validity]&lt;/b> property exists and is &lt;em>&quot;valid&quot;&lt;/em>:&#xA;&lt;ol>&#xA;&lt;li> If &lt;b>[member type definition]&lt;/b> exists:&#xA;&lt;ol>&#xA;&lt;li>If {name} is not absent, then expose {name} and {target&#xA;namespace} properties of the &lt;b>[member type definition]&lt;/b> property;&#xA;&lt;/li>&#xA;&lt;li>Otherwise, expose the namespace and local name of the&#xA;corresponding anonymous type name.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;/li>&#xA;&lt;li> If the &lt;b>[type definition]&lt;/b> property exists:&#xA;&lt;ol>&#xA;&lt;li>If {name} is not absent, then expose {name} and {target&#xA;namespace} properties of the &lt;b>[type definition]&lt;/b> property;&#xA;&lt;/li>&#xA;&lt;li>Otherwise, expose the namespace and local name of the&#xA;corresponding anonymous type name.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;/li>&#xA;&lt;li> If the &lt;b>[member type definition anonymous]&lt;/b> exists:&#xA;&lt;ol>&#xA;&lt;li>If it is false, then expose &lt;b>[member type definition name]&lt;/b> and &lt;b>[member type definition namespace]&lt;/b> properties;&#xA;&lt;/li>&#xA;&lt;li>Otherwise, expose the namespace and local name of the&#xA;corresponding anonymous type name.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;/li>&#xA;&lt;li> If the &lt;b>[type definition anonymous]&lt;/b> exists:&#xA;&lt;ol>&#xA;&lt;li>If it is false, then expose &lt;b>[type definition name]&lt;/b> and &lt;b>[type definition namespace]&lt;/b> properties;&#xA;&lt;/li>&#xA;&lt;li>Otherwise, expose the namespace and local name of the&#xA;corresponding anonymous type name.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p >&lt;b>Note:&lt;/b>  Other schema languages are outside the scope of the W3C&#xA;and therefore should define how to represent their type systems using&#xA;&lt;code>TypeInfo&lt;/code>.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;@since DOM Level 3&#xA;" annotatedElement="_10_5_622020d_1132928314668_398382_9003"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_679503_13222" name="Comment" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314518_747995_8950" body="This interface inherits from &lt;code>CharacterData&lt;/code> and represents the&#xA;content of a comment, i.e., all the characters between the starting '&#xA;&lt;code>&lt;!--&lt;/code>' and ending '&lt;code>-->&lt;/code>'. Note that this is&#xA;the definition of a comment in XML, and, in practice, HTML, although some&#xA;HTML tools may implement the full SGML comment structure.&#xA;&lt;p> No lexical check is done on the content of a comment and it is&#xA;therefore possible to have the character sequence &lt;code>&quot;--&quot;&lt;/code>&#xA;(double-hyphen) in the content, which is illegal in a comment per section&#xA;2.5 of [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]. The&#xA;presence of this character sequence must generate a fatal error during&#xA;serialization.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_679503_13222"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_311479_15709" isSubstitutable="true" general="_9_5_f720368_1110473546940_685592_13220"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_544508_13246" name="Notation" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314668_817334_8998" body="This interface represents a notation declared in the DTD. A notation either&#xA;declares, by name, the format of an unparsed entity (see &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#Notations'>section 4.7&lt;/a> of the XML 1.0 specification [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]), or is&#xA;used for formal declaration of processing instruction targets (see &lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-pi'>section 2.6&lt;/a> of the XML 1.0 specification [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]). The&#xA;&lt;code>nodeName&lt;/code> attribute inherited from &lt;code>Node&lt;/code> is set&#xA;to the declared name of the notation.&#xA;&lt;p>The DOM Core does not support editing &lt;code>Notation&lt;/code> nodes; they&#xA;are therefore readonly.&#xA;&lt;p>A &lt;code>Notation&lt;/code> node does not have any parent.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_544508_13246"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_22088_15717" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314468_566217_8911" name="ranges">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314468_556513_8918" name="RangeException">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_160946_8920" body="Range operations may throw a &lt;code>RangeException&lt;/code> as specified in&#xA;their method descriptions.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_10_5_622020d_1132928314468_556513_8918"/>
                <generalization xmi:id="_10_5_622020d_1132928322890_511327_15705" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314468_339808_8912" name="DocumentRange" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_992587_8914" body="&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_10_5_622020d_1132928314468_339808_8912"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314468_450339_8915" name="Range" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314468_228847_8917" body="&lt;p>See also the &lt;a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification&lt;/a>.&#xA;@since DOM Level 2&#xA;" annotatedElement="_10_5_622020d_1132928314468_450339_8915"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_879463_13248" name="ProcessingInstruction" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314668_437589_9000" body="The &lt;code>ProcessingInstruction&lt;/code> interface represents a &quot;processing&#xA;instruction&quot;, used in XML as a way to keep processor-specific information&#xA;in the text of the document.&#xA;&lt;p> No lexical check is done on the content of a processing instruction and&#xA;it is therefore possible to have the character sequence&#xA;&lt;code>&quot;?>&quot;&lt;/code> in the content, which is illegal a processing&#xA;instruction per section 2.6 of [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]. The&#xA;presence of this character sequence must generate a fatal error during&#xA;serialization.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_879463_13248"/>
              <generalization xmi:id="_10_5_622020d_1132928322900_176534_15718" isSubstitutable="true" general="_9_5_f720368_1110473546940_624353_13242"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_361935_13244" name="NodeList" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314658_287293_8996" body="The &lt;code>NodeList&lt;/code> interface provides the abstraction of an ordered&#xA;collection of nodes, without defining or constraining how this collection&#xA;is implemented. &lt;code>NodeList&lt;/code> objects in the DOM are live.&#xA;&lt;p>The items in the &lt;code>NodeList&lt;/code> are accessible via an integral&#xA;index, starting from 0.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_361935_13244"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_238186_13218" name="CDATASection" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314518_630295_8946" body="CDATA sections are used to escape blocks of text containing characters that&#xA;would otherwise be regarded as markup. The only delimiter that is&#xA;recognized in a CDATA section is the &quot;]]>&quot; string that ends the CDATA&#xA;section. CDATA sections cannot be nested. Their primary purpose is for&#xA;including material such as XML fragments, without needing to escape all&#xA;the delimiters.&#xA;&lt;p>The &lt;code>CharacterData.data&lt;/code> attribute holds the text that is&#xA;contained by the CDATA section. Note that this &lt;em>may&lt;/em> contain characters that need to be escaped outside of CDATA sections and&#xA;that, depending on the character encoding (&quot;charset&quot;) chosen for&#xA;serialization, it may be impossible to write out some characters as part&#xA;of a CDATA section.&#xA;&lt;p>The &lt;code>CDATASection&lt;/code> interface inherits from the&#xA;&lt;code>CharacterData&lt;/code> interface through the &lt;code>Text&lt;/code>&#xA;interface. Adjacent &lt;code>CDATASection&lt;/code> nodes are not merged by use&#xA;of the &lt;code>normalize&lt;/code> method of the &lt;code>Node&lt;/code> interface.&#xA;&lt;p> No lexical check is done on the content of a CDATA section and it is&#xA;therefore possible to have the character sequence &lt;code>&quot;]]>&quot;&lt;/code>&#xA;in the content, which is illegal in a CDATA section per section 2.7 of [&lt;a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0&lt;/a>]. The&#xA;presence of this character sequence must generate a fatal error during&#xA;serialization or the cdata section must be splitted before the&#xA;serialization (see also the parameter &lt;code>&quot;split-cdata-sections&quot;&lt;/code>&#xA;in the &lt;code>DOMConfiguration&lt;/code> interface).&#xA;&lt;p >&lt;b>Note:&lt;/b> Because no markup is recognized within a&#xA;&lt;code>CDATASection&lt;/code>, character numeric references cannot be used as&#xA;an escape mechanism when serializing. Therefore, action needs to be taken&#xA;when serializing a &lt;code>CDATASection&lt;/code> with a character encoding&#xA;where some of the contained characters cannot be represented. Failure to&#xA;do so would not produce well-formed XML.&#xA;&lt;p >&lt;b>Note:&lt;/b> One potential solution in the serialization process is to&#xA;end the CDATA section before the character, output the character using a&#xA;character reference or entity reference, and open a new CDATA section for&#xA;any further characters in the text node. Note, however, that some code&#xA;conversion libraries at the time of writing do not return an error or&#xA;exception when a character is missing from the encoding, making the task&#xA;of ensuring that data is not corrupted on serialization more difficult.&#xA;&lt;p>See also the &lt;a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification&lt;/a>.&#xA;" annotatedElement="_9_5_f720368_1110473546940_238186_13218"/>
              <generalization xmi:id="_10_5_622020d_1132928322890_107836_15707" isSubstitutable="true" general="_9_5_f720368_1110473546940_461637_13250"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548862_282963_27641" name="xml">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548862_629088_27642" name="sax">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_65950_13284" name="DocumentHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314698_615582_9063" body="Receive notification of general document events.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This was the main event-handling interface for SAX1; in&#xA;SAX2, it has been replaced by {@link org.xml.sax.ContentHandler&#xA;ContentHandler}, which provides Namespace support and reporting&#xA;of skipped entities.  This interface is included in SAX2 only&#xA;to support legacy SAX1 applications.&lt;/p>&#xA;&#xA;&lt;p>The order of events in this interface is very important, and&#xA;mirrors the order of information in the document itself.  For&#xA;example, all of an element's content (character data, processing&#xA;instructions, and/or subelements) will appear, in order, between&#xA;the startElement event and the corresponding endElement event.&lt;/p>&#xA;&#xA;&lt;p>Application writers who do not want to implement the entire&#xA;interface can derive a class from HandlerBase, which implements&#xA;the default functionality; parser writers can instantiate&#xA;HandlerBase to obtain a default handler.  The application can find&#xA;the location of any document event using the Locator interface&#xA;supplied by the Parser through the setDocumentLocator method.&lt;/p>&#xA;&#xA;@deprecated This interface has been replaced by the SAX2&#xA;{@link org.xml.sax.ContentHandler ContentHandler}&#xA;interface, which includes Namespace support.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.Parser#setDocumentHandler&#xA;@see org.xml.sax.Locator&#xA;@see org.xml.sax.HandlerBase&#xA;" annotatedElement="_9_5_f720368_1110473546940_65950_13284"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_378985_13292" name="HandlerBase" clientDependency="_10_5_622020d_1132928322910_829580_15752 _10_5_622020d_1132928322910_411122_15749 _10_5_622020d_1132928322910_558108_15750 _10_5_622020d_1132928322910_803851_15751">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_612947_9071" body="Default base class for handlers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class implements the default behaviour for four SAX1&#xA;interfaces: EntityResolver, DTDHandler, DocumentHandler,&#xA;and ErrorHandler.  It is now obsolete, but is included in SAX2 to&#xA;support legacy SAX1 applications.  SAX2 applications should use&#xA;the {@link org.xml.sax.helpers.DefaultHandler DefaultHandler}&#xA;class instead.&lt;/p>&#xA;&#xA;&lt;p>Application writers can extend this class when they need to&#xA;implement only part of an interface; parser writers can&#xA;instantiate this class to provide default handlers when the&#xA;application has not supplied its own.&lt;/p>&#xA;&#xA;&lt;p>Note that the use of this class is optional.&lt;/p>&#xA;&#xA;@deprecated This class works with the deprecated&#xA;{@link org.xml.sax.DocumentHandler DocumentHandler}&#xA;interface.  It has been replaced by the SAX2&#xA;{@link org.xml.sax.helpers.DefaultHandler DefaultHandler}&#xA;class.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.EntityResolver&#xA;@see org.xml.sax.DTDHandler&#xA;@see org.xml.sax.DocumentHandler&#xA;@see org.xml.sax.ErrorHandler&#xA;" annotatedElement="_9_5_f720368_1110473546940_378985_13292"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_411122_15749" name="" supplier="_9_5_f720368_1110473546940_303190_13288" client="_9_5_f720368_1110473546940_378985_13292" contract="_9_5_f720368_1110473546940_303190_13288"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_558108_15750" name="" supplier="_9_5_f720368_1110473546940_692688_13286" client="_9_5_f720368_1110473546940_378985_13292" contract="_9_5_f720368_1110473546940_692688_13286"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_803851_15751" name="" supplier="_9_5_f720368_1110473546940_65950_13284" client="_9_5_f720368_1110473546940_378985_13292" contract="_9_5_f720368_1110473546940_65950_13284"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_829580_15752" name="" supplier="_9_5_f720368_1110473546940_141112_13290" client="_9_5_f720368_1110473546940_378985_13292" contract="_9_5_f720368_1110473546940_141112_13290"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548862_398139_27643" name="ext">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_633447_13252" name="DeclHandler" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_228985_9016" body="SAX2 extension handler for DTD declaration events.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This is an optional extension handler for SAX2 to provide more&#xA;complete information about DTD declarations in an XML document.&#xA;XML readers are not required to recognize this handler, and it&#xA;is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;&lt;p>Note that data-related DTD declarations (unparsed entities and&#xA;notations) are already reported through the {@link&#xA;org.xml.sax.DTDHandler DTDHandler} interface.&lt;/p>&#xA;&#xA;&lt;p>If you are using the declaration handler together with a lexical&#xA;handler, all of the events will occur between the&#xA;{@link org.xml.sax.ext.LexicalHandler#startDTD startDTD} and the&#xA;{@link org.xml.sax.ext.LexicalHandler#endDTD endDTD} events.&lt;/p>&#xA;&#xA;&lt;p>To set the DeclHandler for an XML reader, use the&#xA;{@link org.xml.sax.XMLReader#setProperty setProperty} method&#xA;with the property name&#xA;&lt;code>http://xml.org/sax/properties/declaration-handler&lt;/code>&#xA;and an object implementing this interface (or null) as the value.&#xA;If the reader does not report declaration events, it will throw a&#xA;{@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}&#xA;when you attempt to register the handler.&lt;/p>&#xA;&#xA;@since SAX 2.0 (extensions 1.0)&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_633447_13252"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314668_22422_9009" name="Attributes2" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314668_21009_9011" body="SAX2 extension to augment the per-attribute information&#xA;provided though {@link Attributes}.&#xA;If an implementation supports this extension, the attributes&#xA;provided in {@link org.xml.sax.ContentHandler#startElement&#xA;ContentHandler.startElement() } will implement this interface,&#xA;and the &lt;em>http://xml.org/sax/features/use-attributes2&lt;/em>&#xA;feature flag will have the value &lt;em>true&lt;/em>.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> XMLReader implementations are not required to support this&#xA;information, and it is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;&lt;p>Note that if an attribute was defaulted (&lt;em>!isSpecified()&lt;/em>)&#xA;it will of necessity also have been declared (&lt;em>isDeclared()&lt;/em>)&#xA;in the DTD.&#xA;Similarly if an attribute's type is anything except CDATA, then it&#xA;must have been declared.&#xA;&lt;/p>&#xA;&#xA;@since SAX 2.0 (extensions 1.1 alpha)&#xA;@author David Brownell&#xA;@version TBS&#xA;" annotatedElement="_10_5_622020d_1132928314668_22422_9009"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_463817_15720" isSubstitutable="true" general="_9_5_f720368_1110473546940_845761_13280"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314678_704733_9025" name="Locator2" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_3197_9027" body="SAX2 extension to augment the entity information provided&#xA;though a {@link Locator}.&#xA;If an implementation supports this extension, the Locator&#xA;provided in {@link org.xml.sax.ContentHandler#setDocumentLocator&#xA;ContentHandler.setDocumentLocator() } will implement this&#xA;interface, and the&#xA;&lt;em>http://xml.org/sax/features/use-locator2&lt;/em> feature&#xA;flag will have the value &lt;em>true&lt;/em>.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> XMLReader implementations are not required to support this&#xA;information, and it is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;@since SAX 2.0 (extensions 1.1 alpha)&#xA;@author David Brownell&#xA;@version TBS&#xA;" annotatedElement="_10_5_622020d_1132928314678_704733_9025"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_327820_15728" isSubstitutable="true" general="_9_5_f720368_1110473546940_452233_13296"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_555346_13254" name="LexicalHandler" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_726778_9024" body="SAX2 extension handler for lexical events.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This is an optional extension handler for SAX2 to provide&#xA;lexical information about an XML document, such as comments&#xA;and CDATA section boundaries.&#xA;XML readers are not required to recognize this handler, and it&#xA;is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;&lt;p>The events in the lexical handler apply to the entire document,&#xA;not just to the document element, and all lexical handler events&#xA;must appear between the content handler's startDocument and&#xA;endDocument events.&lt;/p>&#xA;&#xA;&lt;p>To set the LexicalHandler for an XML reader, use the&#xA;{@link org.xml.sax.XMLReader#setProperty setProperty} method&#xA;with the property name&#xA;&lt;code>http://xml.org/sax/properties/lexical-handler&lt;/code>&#xA;and an object implementing this interface (or null) as the value.&#xA;If the reader does not report lexical events, it will throw a&#xA;{@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException}&#xA;when you attempt to register the handler.&lt;/p>&#xA;&#xA;@since SAX 2.0 (extensions 1.0)&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_555346_13254"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314678_732085_9028" name="Locator2Impl" clientDependency="_10_5_622020d_1132928322900_386543_15729">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_198309_9030" body="SAX2 extension helper for holding additional Entity information,&#xA;implementing the {@link Locator2} interface.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> This is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;@since SAX 2.0.2&#xA;@author David Brownell&#xA;@version TBS&#xA;" annotatedElement="_10_5_622020d_1132928314678_732085_9028"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_62248_15730" isSubstitutable="true" general="_9_5_f720368_1110473546940_227062_13262"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_386543_15729" name="" supplier="_10_5_622020d_1132928314678_704733_9025" client="_10_5_622020d_1132928314678_732085_9028" contract="_10_5_622020d_1132928314678_704733_9025"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314678_531301_9017" name="DefaultHandler2" clientDependency="_10_5_622020d_1132928322900_248525_15723 _10_5_622020d_1132928322900_580029_15724 _10_5_622020d_1132928322900_51646_15725">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_898736_9019" body="This class extends the SAX2 base handler class to support the&#xA;SAX2 {@link LexicalHandler}, {@link DeclHandler}, and&#xA;{@link EntityResolver2} extensions.  Except for overriding the&#xA;original SAX1 {@link DefaultHandler#resolveEntity resolveEntity()}&#xA;method the added handler methods just return.  Subclassers may&#xA;override everything on a method-by-method basis.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p> &lt;em>Note:&lt;/em> this class might yet learn that the&#xA;&lt;em>ContentHandler.setDocumentLocator()&lt;/em> call might be passed a&#xA;{@link Locator2} object, and that the&#xA;&lt;em>ContentHandler.startElement()&lt;/em> call might be passed a&#xA;{@link Attributes2} object.&#xA;&#xA;@since SAX 2.0 (extensions 1.1 alpha)&#xA;@author David Brownell&#xA;@version TBS&#xA;" annotatedElement="_10_5_622020d_1132928314678_531301_9017"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_728848_15726" isSubstitutable="true" general="_9_5_f720368_1110473546940_940853_13260"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_248525_15723" name="" supplier="_9_5_f720368_1110473546940_555346_13254" client="_10_5_622020d_1132928314678_531301_9017" contract="_9_5_f720368_1110473546940_555346_13254"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_580029_15724" name="" supplier="_9_5_f720368_1110473546940_633447_13252" client="_10_5_622020d_1132928314678_531301_9017" contract="_9_5_f720368_1110473546940_633447_13252"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_51646_15725" name="" supplier="_10_5_622020d_1132928314678_448022_9020" client="_10_5_622020d_1132928314678_531301_9017" contract="_10_5_622020d_1132928314678_448022_9020"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314668_218112_9012" name="Attributes2Impl" clientDependency="_10_5_622020d_1132928322900_585640_15721">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_514973_9014" body="SAX2 extension helper for additional Attributes information,&#xA;implementing the {@link Attributes2} interface.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This is not part of core-only SAX2 distributions.&lt;/p>&#xA;&#xA;&lt;p>The &lt;em>specified&lt;/em> flag for each attribute will always&#xA;be true, unless it has been set to false in the copy constructor&#xA;or using {@link #setSpecified}.&#xA;Similarly, the &lt;em>declared&lt;/em> flag for each attribute will&#xA;always be false, except for defaulted attributes (&lt;em>specified&lt;/em>&#xA;is false), non-CDATA attributes, or when it is set to true using&#xA;{@link #setDeclared}.&#xA;If you change an attribute's type by hand, you may need to modify&#xA;its &lt;em>declared&lt;/em> flag to match.&#xA;&lt;/p>&#xA;&#xA;@since SAX 2.0 (extensions 1.1 alpha)&#xA;@author David Brownell&#xA;@version TBS&#xA;" annotatedElement="_10_5_622020d_1132928314668_218112_9012"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_315287_15722" isSubstitutable="true" general="_9_5_f720368_1110473546940_675049_13258"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_585640_15721" name="" supplier="_10_5_622020d_1132928314668_22422_9009" client="_10_5_622020d_1132928314668_218112_9012" contract="_10_5_622020d_1132928314668_22422_9009"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314678_448022_9020" name="EntityResolver2" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314678_353489_9022" body="Extended interface for mapping external entity references to input&#xA;sources, or providing a missing external subset.  The&#xA;{@link XMLReader#setEntityResolver XMLReader.setEntityResolver()} method&#xA;is used to provide implementations of this interface to parsers.&#xA;When a parser uses the methods in this interface, the&#xA;{@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()}&#xA;method (in this interface) is used &lt;em>instead of&lt;/em> the older (SAX 1.0)&#xA;{@link EntityResolver#resolveEntity EntityResolver.resolveEntity()} method.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>If a SAX application requires the customized handling which this&#xA;interface defines for external entities, it must ensure that it uses&#xA;an XMLReader with the&#xA;&lt;em>http://xml.org/sax/features/use-entity-resolver2&lt;/em> feature flag&#xA;set to &lt;em>true&lt;/em> (which is its default value when the feature is&#xA;recognized).  If that flag is unrecognized, or its value is false,&#xA;or the resolver does not implement this interface, then only the&#xA;{@link EntityResolver} method will be used.&#xA;&lt;/p>&#xA;&#xA;&lt;p>That supports three categories of application that modify entity&#xA;resolution.  &lt;em>Old Style&lt;/em> applications won't know about this interface;&#xA;they will provide an EntityResolver.&#xA;&lt;em>Transitional Mode&lt;/em> provide an EntityResolver2 and automatically&#xA;get the benefit of its methods in any systems (parsers or other tools)&#xA;supporting it, due to polymorphism.&#xA;Both &lt;em>Old Style&lt;/em> and &lt;em>Transitional Mode&lt;/em> applications will&#xA;work with any SAX2 parser.&#xA;&lt;em>New style&lt;/em> applications will fail to run except on SAX2 parsers&#xA;that support this particular feature.&#xA;They will insist that feature flag have a value of &quot;true&quot;, and the&#xA;EntityResolver2 implementation they provide  might throw an exception&#xA;if the original SAX 1.0 style entity resolution method is invoked.&#xA;&lt;/p>&#xA;&#xA;@see org.xml.sax.XMLReader#setEntityResolver&#xA;&#xA;@since SAX 2.0 (extensions 1.1 alpha)&#xA;@author David Brownell&#xA;@version TBD&#xA;" annotatedElement="_10_5_622020d_1132928314678_448022_9020"/>
                <generalization xmi:id="_10_5_622020d_1132928322900_604595_15727" isSubstitutable="true" general="_9_5_f720368_1110473546940_303190_13288"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_692688_13286" name="DTDHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314708_274497_9065" body="Receive notification of basic DTD-related events.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>If a SAX application needs information about notations and&#xA;unparsed entities, then the application implements this&#xA;interface and registers an instance with the SAX parser using&#xA;the parser's setDTDHandler method.  The parser uses the&#xA;instance to report notation and unparsed entity declarations to&#xA;the application.&lt;/p>&#xA;&#xA;&lt;p>Note that this interface includes only those DTD events that&#xA;the XML recommendation &lt;em>requires&lt;/em> processors to report:&#xA;notation and unparsed entity declarations.&lt;/p>&#xA;&#xA;&lt;p>The SAX parser may report these events in any order, regardless&#xA;of the order in which the notations and unparsed entities were&#xA;declared; however, all DTD events must be reported after the&#xA;document handler's startDocument event, and before the first&#xA;startElement event.&#xA;(If the {@link org.xml.sax.ext.LexicalHandler LexicalHandler} is&#xA;used, these events must also be reported before the endDTD event.)&#xA;&lt;/p>&#xA;&#xA;&lt;p>It is up to the application to store the information for&#xA;future use (perhaps in a hash table or object tree).&#xA;If the application encounters attributes of type &quot;NOTATION&quot;,&#xA;&quot;ENTITY&quot;, or &quot;ENTITIES&quot;, it can use the information that it&#xA;obtained through this interface to find the entity and/or&#xA;notation corresponding with the attribute value.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.XMLReader#setDTDHandler&#xA;" annotatedElement="_9_5_f720368_1110473546940_692688_13286"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546956_226789_13304" name="SAXNotSupportedException">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_605473_9083" body="Exception class for an unsupported operation.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>An XMLReader will throw this exception when it recognizes a&#xA;feature or property identifier, but cannot perform the requested&#xA;operation (setting a state or value).  Other SAX2 applications and&#xA;extensions may use this class for similar purposes.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.SAXNotRecognizedException&#xA;" annotatedElement="_9_5_f720368_1110473546956_226789_13304"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_22522_15755" isSubstitutable="true" general="_9_5_f720368_1110473546956_922933_13300"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_673522_13282" name="ContentHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314698_620550_9061" body="Receive notification of the logical content of a document.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This is the main interface that most SAX applications&#xA;implement: if the application needs to be informed of basic parsing&#xA;events, it implements this interface and registers an instance with&#xA;the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler&#xA;setContentHandler} method.  The parser uses the instance to report&#xA;basic document-related events like the start and end of elements&#xA;and character data.&lt;/p>&#xA;&#xA;&lt;p>The order of events in this interface is very important, and&#xA;mirrors the order of information in the document itself.  For&#xA;example, all of an element's content (character data, processing&#xA;instructions, and/or subelements) will appear, in order, between&#xA;the startElement event and the corresponding endElement event.&lt;/p>&#xA;&#xA;&lt;p>This interface is similar to the now-deprecated SAX 1.0&#xA;DocumentHandler interface, but it adds support for Namespaces&#xA;and for reporting skipped entities (in non-validating XML&#xA;processors).&lt;/p>&#xA;&#xA;&lt;p>Implementors should note that there is also a&#xA;&lt;code>ContentHandler&lt;/code> class in the &lt;code>java.net&lt;/code>&#xA;package; that means that it's probably a bad idea to do&lt;/p>&#xA;&#xA;&lt;pre>import java.net.*;&#xA;import org.xml.sax.*;&#xA;&lt;/pre>&#xA;&#xA;&lt;p>In fact, &quot;import ...*&quot; is usually a sign of sloppy programming&#xA;anyway, so the user should consider this a feature rather than a&#xA;bug.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1+ (sax2r3pre1)&#xA;@see org.xml.sax.XMLReader&#xA;@see org.xml.sax.DTDHandler&#xA;@see org.xml.sax.ErrorHandler&#xA;" annotatedElement="_9_5_f720368_1110473546940_673522_13282"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546956_365208_13302" name="SAXNotRecognizedException">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_919764_9081" body="Exception class for an unrecognized identifier.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>An XMLReader will throw this exception when it finds an&#xA;unrecognized feature or property identifier; SAX applications and&#xA;extensions may use this class for other, similar purposes.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.SAXNotSupportedException&#xA;" annotatedElement="_9_5_f720368_1110473546956_365208_13302"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_434107_15754" isSubstitutable="true" general="_9_5_f720368_1110473546956_922933_13300"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546956_693810_13306" name="SAXParseException">
              <ownedComment xmi:id="_10_5_622020d_1132928314749_259337_9085" body="Encapsulate an XML parse error or warning.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This exception may include information for locating the error&#xA;in the original XML document, as if it came from a {@link Locator}&#xA;object.  Note that although the application&#xA;will receive a SAXParseException as the argument to the handlers&#xA;in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface,&#xA;the application is not actually required to throw the exception;&#xA;instead, it can simply read the information in it and take a&#xA;different action.&lt;/p>&#xA;&#xA;&lt;p>Since this exception is a subclass of {@link org.xml.sax.SAXException&#xA;SAXException}, it inherits the ability to wrap another exception.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.SAXException&#xA;@see org.xml.sax.Locator&#xA;@see org.xml.sax.ErrorHandler&#xA;" annotatedElement="_9_5_f720368_1110473546956_693810_13306"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_690656_15756" isSubstitutable="true" general="_9_5_f720368_1110473546956_922933_13300"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546956_922933_13300" name="SAXException">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_767197_9079" body="Encapsulate a general SAX error or warning.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class can contain basic error or warning information from&#xA;either the XML parser or the application: a parser writer or&#xA;application writer can subclass it to provide additional&#xA;functionality.  SAX handlers may throw this exception or&#xA;any exception subclassed from it.&lt;/p>&#xA;&#xA;&lt;p>If the application needs to pass through other types of&#xA;exceptions, it must wrap those exceptions in a SAXException&#xA;or an exception derived from a SAXException.&lt;/p>&#xA;&#xA;&lt;p>If the parser or application needs to include information about a&#xA;specific location in an XML document, it should use the&#xA;{@link org.xml.sax.SAXParseException SAXParseException} subclass.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.SAXParseException&#xA;" annotatedElement="_9_5_f720368_1110473546956_922933_13300"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_766855_15753" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_754695_13294" name="InputSource">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_3891_9073" body="A single input source for an XML entity.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class allows a SAX application to encapsulate information&#xA;about an input source in a single object, which may include&#xA;a public identifier, a system identifier, a byte stream (possibly&#xA;with a specified encoding), and/or a character stream.&lt;/p>&#xA;&#xA;&lt;p>There are two places that the application can deliver an&#xA;input source to the parser: as the argument to the Parser.parse&#xA;method, or as the return value of the EntityResolver.resolveEntity&#xA;method.&lt;/p>&#xA;&#xA;&lt;p>The SAX parser will use the InputSource object to determine how&#xA;to read XML input.  If there is a character stream available, the&#xA;parser will read that stream directly, disregarding any text&#xA;encoding declaration found in that stream.&#xA;If there is no character stream, but there is&#xA;a byte stream, the parser will use that byte stream, using the&#xA;encoding specified in the InputSource or else (if no encoding is&#xA;specified) autodetecting the character encoding using an algorithm&#xA;such as the one in the XML specification.  If neither a character&#xA;stream nor a&#xA;byte stream is available, the parser will attempt to open a URI&#xA;connection to the resource identified by the system&#xA;identifier.&lt;/p>&#xA;&#xA;&lt;p>An InputSource object belongs to the application: the SAX parser&#xA;shall never modify it in any way (it may modify a copy if&#xA;necessary).  However, standard processing of both byte and&#xA;character streams is to close them on as part of end-of-parse cleanup,&#xA;so applications should not attempt to re-use such streams after they&#xA;have been handed to a parser.  &lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.XMLReader#parse(org.xml.sax.InputSource)&#xA;@see org.xml.sax.EntityResolver#resolveEntity&#xA;@see java.io.InputStream&#xA;@see java.io.Reader&#xA;" annotatedElement="_9_5_f720368_1110473546940_754695_13294"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546956_371341_13308" name="XMLFilter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314749_519522_9087" body="Interface for an XML filter.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>An XML filter is like an XML reader, except that it obtains its&#xA;events from another XML reader rather than a primary source like&#xA;an XML document or database.  Filters can modify a stream of&#xA;events as they pass on to the final application.&lt;/p>&#xA;&#xA;&lt;p>The XMLFilterImpl helper class provides a convenient base&#xA;for creating SAX2 filters, by passing on all {@link org.xml.sax.EntityResolver&#xA;EntityResolver}, {@link org.xml.sax.DTDHandler DTDHandler},&#xA;{@link org.xml.sax.ContentHandler ContentHandler} and {@link org.xml.sax.ErrorHandler&#xA;ErrorHandler} events automatically.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.helpers.XMLFilterImpl&#xA;" annotatedElement="_9_5_f720368_1110473546956_371341_13308"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_726475_15757" isSubstitutable="true" general="_9_5_f720368_1110473546956_743013_13310"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548862_999803_27646" name="helpers">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_333530_13266" name="NewInstance" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_37666_9043" body="Create a new instance of a class by name.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class contains a static method for creating an instance of a&#xA;class from an explicit class name.  It tries to use the thread's context&#xA;ClassLoader if possible and falls back to using&#xA;Class.forName(String).&lt;/p>&#xA;&#xA;&lt;p>This code is designed to compile and run on JDK version 1.1 and later&#xA;including versions of Java 2.&lt;/p>&#xA;&#xA;@author Edwin Goei, David Brownell&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_333530_13266"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_227062_13262" name="LocatorImpl" clientDependency="_10_5_622020d_1132928322900_437543_15737">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_807_9038" body="Provide an optional convenience implementation of Locator.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class is available mainly for application writers, who&#xA;can use it to make a persistent snapshot of a locator at any&#xA;point during a document parse:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;Locator locator;&#xA;Locator startloc;&#xA;&#xA;public void setLocator (Locator locator)&#xA;{&#xA;note the locator&#xA;this.locator = locator;&#xA;}&#xA;&#xA;public void startDocument ()&#xA;{&#xA;save the location of the start of the document&#xA;for future use.&#xA;Locator startloc = new LocatorImpl(locator);&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Normally, parser writers will not use this class, since it&#xA;is more efficient to provide location information only when&#xA;requested, rather than constantly updating a Locator object.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.Locator Locator&#xA;" annotatedElement="_9_5_f720368_1110473546940_227062_13262"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_437543_15737" name="" supplier="_9_5_f720368_1110473546940_452233_13296" client="_9_5_f720368_1110473546940_227062_13262" contract="_9_5_f720368_1110473546940_452233_13296"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_296412_13268" name="ParserAdapter" clientDependency="_10_5_622020d_1132928322900_146904_15739 _10_5_622020d_1132928322900_972031_15738">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_637232_9046" body="Adapt a SAX1 Parser as a SAX2 XMLReader.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class wraps a SAX1 {@link org.xml.sax.Parser Parser}&#xA;and makes it act as a SAX2 {@link org.xml.sax.XMLReader XMLReader},&#xA;with feature, property, and Namespace support.  Note&#xA;that it is not possible to report {@link org.xml.sax.ContentHandler#skippedEntity&#xA;skippedEntity} events, since SAX1 does not make that information available.&lt;/p>&#xA;&#xA;&lt;p>This adapter does not test for duplicate Namespace-qualified&#xA;attribute names.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.helpers.XMLReaderAdapter&#xA;@see org.xml.sax.XMLReader&#xA;@see org.xml.sax.Parser&#xA;" annotatedElement="_9_5_f720368_1110473546940_296412_13268"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_972031_15738" name="" supplier="_9_5_f720368_1110473546956_743013_13310" client="_9_5_f720368_1110473546940_296412_13268" contract="_9_5_f720368_1110473546956_743013_13310"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_146904_15739" name="" supplier="_9_5_f720368_1110473546940_65950_13284" client="_9_5_f720368_1110473546940_296412_13268" contract="_9_5_f720368_1110473546940_65950_13284"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548862_582958_27660" name="AttributeListAdapter" visibility="package" clientDependency="_10_5_622020d_1132928322900_267386_15740" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928314688_228068_9044" body="Adapt a SAX1 AttributeList as a SAX2 Attributes object.&#xA;&#xA;&lt;p>This class is in the Public Domain, and comes with NO&#xA;WARRANTY of any kind.&lt;/p>&#xA;&#xA;&lt;p>This wrapper class is used only when Namespace support&#xA;is disabled -- it provides pretty much a direct mapping&#xA;from SAX1 to SAX2, except that names and types are&#xA;interned whenever requested.&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473548862_582958_27660"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928322900_267386_15740" name="" supplier="_9_5_f720368_1110473546940_845761_13280" client="_9_5_f720368_1110473548862_582958_27660" contract="_9_5_f720368_1110473546940_845761_13280"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_260432_13264" name="NamespaceSupport">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_855362_9041" body="Encapsulate Namespace logic for use by applications using SAX,&#xA;or internally by SAX drivers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class encapsulates the logic of Namespace processing: it&#xA;tracks the declarations currently in force for each context and&#xA;automatically processes qualified XML names into their Namespace&#xA;parts; it can also be used in reverse for generating XML qnames&#xA;from Namespaces.&lt;/p>&#xA;&#xA;&lt;p>Namespace support objects are reusable, but the reset method&#xA;must be invoked between each session.&lt;/p>&#xA;&#xA;&lt;p>Here is a simple session:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;String parts[] = new String[3];&#xA;NamespaceSupport support = new NamespaceSupport();&#xA;&#xA;support.pushContext();&#xA;support.declarePrefix(&quot;&quot;, &quot;http://www.w3.org/1999/xhtml&quot;);&#xA;support.declarePrefix(&quot;dc&quot;, &quot;http://www.purl.org/dc#&quot;);&#xA;&#xA;parts = support.processName(&quot;p&quot;, parts, false);&#xA;System.out.println(&quot;Namespace URI: &quot; + parts[0]);&#xA;System.out.println(&quot;Local name: &quot; + parts[1]);&#xA;System.out.println(&quot;Raw name: &quot; + parts[2]);&#xA;&#xA;parts = support.processName(&quot;dc:title&quot;, parts, false);&#xA;System.out.println(&quot;Namespace URI: &quot; + parts[0]);&#xA;System.out.println(&quot;Local name: &quot; + parts[1]);&#xA;System.out.println(&quot;Raw name: &quot; + parts[2]);&#xA;&#xA;support.popContext();&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Note that this class is optimized for the use case where most&#xA;elements do not contain Namespace declarations: if the same&#xA;prefix/URI mapping is repeated for each context (for example), this&#xA;class will be somewhat less efficient.&lt;/p>&#xA;&#xA;&lt;p>Although SAX drivers (parsers) may choose to use this class to&#xA;implement namespace handling, they are not required to do so.&#xA;Applications must track namespace information themselves if they&#xA;want to use namespace information.&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_260432_13264"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548862_459457_27652" name="Context" visibility="package" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928314688_928103_9039" body="Internal class for a single Namespace context.&#xA;&#xA;&lt;p>This module caches and reuses Namespace contexts,&#xA;so the number allocated&#xA;will be equal to the element depth of the document, not to the total&#xA;number of elements (i.e. 5-10 rather than tens of thousands).&#xA;Also, data structures used to represent contexts are shared when&#xA;possible (child contexts without declarations) to further reduce&#xA;the amount of memory that's consumed.&#xA;&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473548862_459457_27652"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_940853_13260" name="DefaultHandler" clientDependency="_10_5_622020d_1132928322900_333552_15733 _10_5_622020d_1132928322900_889983_15735 _10_5_622020d_1132928322900_750927_15734 _10_5_622020d_1132928322900_830475_15736">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_970909_9036" body="Default base class for SAX2 event handlers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class is available as a convenience base class for SAX2&#xA;applications: it provides default implementations for all of the&#xA;callbacks in the four core SAX2 handler classes:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&lt;li>{@link org.xml.sax.EntityResolver EntityResolver}&lt;/li>&#xA;&lt;li>{@link org.xml.sax.DTDHandler DTDHandler}&lt;/li>&#xA;&lt;li>{@link org.xml.sax.ContentHandler ContentHandler}&lt;/li>&#xA;&lt;li>{@link org.xml.sax.ErrorHandler ErrorHandler}&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>Application writers can extend this class when they need to&#xA;implement only part of an interface; parser writers can&#xA;instantiate this class to provide default handlers when the&#xA;application has not supplied its own.&lt;/p>&#xA;&#xA;&lt;p>This class replaces the deprecated SAX1&#xA;{@link org.xml.sax.HandlerBase HandlerBase} class.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson,&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.EntityResolver&#xA;@see org.xml.sax.DTDHandler&#xA;@see org.xml.sax.ContentHandler&#xA;@see org.xml.sax.ErrorHandler&#xA;" annotatedElement="_9_5_f720368_1110473546940_940853_13260"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_333552_15733" name="" supplier="_9_5_f720368_1110473546940_303190_13288" client="_9_5_f720368_1110473546940_940853_13260" contract="_9_5_f720368_1110473546940_303190_13288"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_750927_15734" name="" supplier="_9_5_f720368_1110473546940_692688_13286" client="_9_5_f720368_1110473546940_940853_13260" contract="_9_5_f720368_1110473546940_692688_13286"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_889983_15735" name="" supplier="_9_5_f720368_1110473546940_673522_13282" client="_9_5_f720368_1110473546940_940853_13260" contract="_9_5_f720368_1110473546940_673522_13282"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_830475_15736" name="" supplier="_9_5_f720368_1110473546940_141112_13290" client="_9_5_f720368_1110473546940_940853_13260" contract="_9_5_f720368_1110473546940_141112_13290"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_842323_13274" name="XMLReaderAdapter" clientDependency="_10_5_622020d_1132928322900_266612_15746 _10_5_622020d_1132928322900_727746_15747">
                <ownedComment xmi:id="_10_5_622020d_1132928314698_992107_9053" body="Adapt a SAX2 XMLReader as a SAX1 Parser.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader}&#xA;and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}.  The XMLReader&#xA;must support a true value for the&#xA;http://xml.org/sax/features/namespace-prefixes property or parsing will fail&#xA;with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader&#xA;supports a false value for the http://xml.org/sax/features/namespaces&#xA;property, that will also be used to improve efficiency.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.Parser&#xA;@see org.xml.sax.XMLReader&#xA;" annotatedElement="_9_5_f720368_1110473546940_842323_13274"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_266612_15746" name="" supplier="_9_5_f720368_1110473546956_849409_13298" client="_9_5_f720368_1110473546940_842323_13274" contract="_9_5_f720368_1110473546956_849409_13298"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_727746_15747" name="" supplier="_9_5_f720368_1110473546940_673522_13282" client="_9_5_f720368_1110473546940_842323_13274" contract="_9_5_f720368_1110473546940_673522_13282"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548862_186936_27665" name="AttributesAdapter" visibility="package" clientDependency="_10_5_622020d_1132928322900_247631_15748" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928314688_82832_9051" body="Internal class to wrap a SAX2 Attributes object for SAX1.&#xA;" annotatedElement="_9_5_f720368_1110473548862_186936_27665"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928322900_247631_15748" name="" supplier="_9_5_f720368_1110473546940_36360_13278" client="_9_5_f720368_1110473548862_186936_27665" contract="_9_5_f720368_1110473546940_36360_13278"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_909232_13270" name="ParserFactory">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_105224_9048" body="Java-specific class for dynamically loading SAX parsers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&lt;strong>Note:&lt;/strong> This class is designed to work with the now-deprecated&#xA;SAX1 {@link org.xml.sax.Parser Parser} class.  SAX2 applications should use&#xA;{@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.&lt;/p>&#xA;&#xA;&lt;p>ParserFactory is not part of the platform-independent definition&#xA;of SAX; it is an additional convenience class designed&#xA;specifically for Java XML application writers.  SAX applications&#xA;can use the static methods in this class to allocate a SAX parser&#xA;dynamically at run-time based either on the value of the&#xA;`org.xml.sax.parser' system property or on a string containing the class&#xA;name.&lt;/p>&#xA;&#xA;&lt;p>Note that the application still requires an XML parser that&#xA;implements SAX1.&lt;/p>&#xA;&#xA;@deprecated This class works with the deprecated&#xA;{@link org.xml.sax.Parser Parser}&#xA;interface.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_909232_13270"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_961487_13272" name="XMLFilterImpl" clientDependency="_10_5_622020d_1132928322900_811157_15743 _10_5_622020d_1132928322900_11767_15742 _10_5_622020d_1132928322900_599134_15741 _10_5_622020d_1132928322900_460553_15745 _10_5_622020d_1132928322900_933949_15744">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_912896_9050" body="Base class for deriving an XML filter.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class is designed to sit between an {@link org.xml.sax.XMLReader&#xA;XMLReader} and the client application's event handlers.  By default, it&#xA;does nothing but pass requests up to the reader and events&#xA;on to the handlers unmodified, but subclasses can override&#xA;specific methods to modify the event stream or the configuration&#xA;requests as they pass through.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.XMLFilter&#xA;@see org.xml.sax.XMLReader&#xA;@see org.xml.sax.EntityResolver&#xA;@see org.xml.sax.DTDHandler&#xA;@see org.xml.sax.ContentHandler&#xA;@see org.xml.sax.ErrorHandler&#xA;" annotatedElement="_9_5_f720368_1110473546940_961487_13272"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_599134_15741" name="" supplier="_9_5_f720368_1110473546956_371341_13308" client="_9_5_f720368_1110473546940_961487_13272" contract="_9_5_f720368_1110473546956_371341_13308"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_11767_15742" name="" supplier="_9_5_f720368_1110473546940_303190_13288" client="_9_5_f720368_1110473546940_961487_13272" contract="_9_5_f720368_1110473546940_303190_13288"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_811157_15743" name="" supplier="_9_5_f720368_1110473546940_692688_13286" client="_9_5_f720368_1110473546940_961487_13272" contract="_9_5_f720368_1110473546940_692688_13286"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_933949_15744" name="" supplier="_9_5_f720368_1110473546940_673522_13282" client="_9_5_f720368_1110473546940_961487_13272" contract="_9_5_f720368_1110473546940_673522_13282"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_460553_15745" name="" supplier="_9_5_f720368_1110473546940_141112_13290" client="_9_5_f720368_1110473546940_961487_13272" contract="_9_5_f720368_1110473546940_141112_13290"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_240912_13256" name="AttributeListImpl" clientDependency="_10_5_622020d_1132928322900_156515_15731">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_773913_9032" body="Default implementation for AttributeList.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>AttributeList implements the deprecated SAX1 {@link&#xA;org.xml.sax.AttributeList AttributeList} interface, and has been&#xA;replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl&#xA;AttributesImpl} interface.&lt;/p>&#xA;&#xA;&lt;p>This class provides a convenience implementation of the SAX&#xA;{@link org.xml.sax.AttributeList AttributeList} interface.  This&#xA;implementation is useful both for SAX parser writers, who can use&#xA;it to provide attributes to the application, and for SAX application&#xA;writers, who can use it to create a persistent copy of an element's&#xA;attribute specifications:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;private AttributeList myatts;&#xA;&#xA;public void startElement (String name, AttributeList atts)&#xA;{&#xA;create a persistent copy of the attribute list&#xA;for use outside this method&#xA;myatts = new AttributeListImpl(atts);&#xA;[...]&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Please note that SAX parsers are not required to use this&#xA;class to provide an implementation of AttributeList; it is&#xA;supplied only as an optional convenience.  In particular,&#xA;parser writers are encouraged to invent more efficient&#xA;implementations.&lt;/p>&#xA;&#xA;@deprecated This class implements a deprecated interface,&#xA;{@link org.xml.sax.AttributeList AttributeList};&#xA;that interface has been replaced by&#xA;{@link org.xml.sax.Attributes Attributes},&#xA;which is implemented in the&#xA;{@link org.xml.sax.helpers.AttributesImpl&#xA;AttributesImpl} helper class.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.AttributeList&#xA;@see org.xml.sax.DocumentHandler#startElement&#xA;" annotatedElement="_9_5_f720368_1110473546940_240912_13256"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_156515_15731" name="" supplier="_9_5_f720368_1110473546940_36360_13278" client="_9_5_f720368_1110473546940_240912_13256" contract="_9_5_f720368_1110473546940_36360_13278"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_675049_13258" name="AttributesImpl" clientDependency="_10_5_622020d_1132928322900_420692_15732">
                <ownedComment xmi:id="_10_5_622020d_1132928314688_840773_9034" body="Default implementation of the Attributes interface.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class provides a default implementation of the SAX2&#xA;{@link org.xml.sax.Attributes Attributes} interface, with the&#xA;addition of manipulators so that the list can be modified or&#xA;reused.&lt;/p>&#xA;&#xA;&lt;p>There are two typical uses of this class:&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&lt;li>to take a persistent snapshot of an Attributes object&#xA;in a {@link org.xml.sax.ContentHandler#startElement startElement} event; or&lt;/li>&#xA;&lt;li>to construct or modify an Attributes object in a SAX2 driver or filter.&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;p>This class replaces the now-deprecated SAX1 {@link&#xA;org.xml.sax.helpers.AttributeListImpl AttributeListImpl}&#xA;class; in addition to supporting the updated Attributes&#xA;interface rather than the deprecated {@link org.xml.sax.AttributeList&#xA;AttributeList} interface, it also includes a much more efficient&#xA;implementation using a single array rather than a set of Vectors.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_675049_13258"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322900_420692_15732" name="" supplier="_9_5_f720368_1110473546940_845761_13280" client="_9_5_f720368_1110473546940_675049_13258" contract="_9_5_f720368_1110473546940_845761_13280"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546940_475780_13276" name="XMLReaderFactory" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314698_407718_9055" body="Factory for creating an XML reader.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This class contains static methods for creating an XML reader&#xA;from an explicit class name, or based on runtime defaults:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;try {&#xA;XMLReader myReader = XMLReaderFactory.createXMLReader();&#xA;} catch (SAXException e) {&#xA;System.err.println(e.getMessage());&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&lt;strong>Note to Distributions bundled with parsers:&lt;/strong>&#xA;You should modify the implementation of the no-arguments&#xA;&lt;em>createXMLReader&lt;/em> to handle cases where the external&#xA;configuration mechanisms aren't set up.  That method should do its&#xA;best to return a parser when one is in the class path, even when&#xA;nothing bound its class name to &lt;code>org.xml.sax.driver&lt;/code> so&#xA;those configuration mechanisms would see it.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson, David Brownell&#xA;@version 2.0.1 (sax2r2)&#xA;" annotatedElement="_9_5_f720368_1110473546940_475780_13276"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_845761_13280" name="Attributes" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314698_29352_9059" body="Interface for a list of XML attributes.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This interface allows access to a list of attributes in&#xA;three different ways:&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&lt;li>by attribute index;&lt;/li>&#xA;&lt;li>by Namespace-qualified name; or&lt;/li>&#xA;&lt;li>by qualified (prefixed) name.&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;p>The list will not contain attributes that were declared&#xA;#IMPLIED but not specified in the start tag.  It will also not&#xA;contain attributes used as Namespace declarations (xmlns*) unless&#xA;the &lt;code>http://xml.org/sax/features/namespace-prefixes&lt;/code>&#xA;feature is set to &lt;var>true&lt;/var> (it is &lt;var>false&lt;/var> by&#xA;default).&#xA;Because SAX2 conforms to the original &quot;Namespaces in XML&quot;&#xA;recommendation, it normally does not&#xA;give namespace declaration attributes a namespace URI.&#xA;&lt;/p>&#xA;&#xA;&lt;p>Some SAX2 parsers may support using an optional feature flag&#xA;(&lt;code>http://xml.org/sax/features/xmlns-uris&lt;/code>) to request&#xA;that those attributes be given URIs, conforming to a later&#xA;backwards-incompatible revision of that recommendation.  (The&#xA;attribute's &quot;local name&quot; will be the prefix, or &quot;xmlns&quot; when&#xA;defining a default element namespace.)  For portability, handler&#xA;code should always resolve that conflict, rather than requiring&#xA;parsers that can change the setting of that feature flag.  &lt;/p>&#xA;&#xA;&lt;p>If the namespace-prefixes feature (see above) is&#xA;&lt;var>false&lt;/var>, access by qualified name may not be available; if&#xA;the &lt;code>http://xml.org/sax/features/namespaces&lt;/code> feature is&#xA;&lt;var>false&lt;/var>, access by Namespace-qualified names may not be&#xA;available.&lt;/p>&#xA;&#xA;&lt;p>This interface replaces the now-deprecated SAX1 {@link&#xA;org.xml.sax.AttributeList AttributeList} interface, which does not&#xA;contain Namespace support.  In addition to Namespace support, it&#xA;adds the &lt;var>getIndex&lt;/var> methods (below).&lt;/p>&#xA;&#xA;&lt;p>The order of attributes in the list is unspecified, and will&#xA;vary from implementation to implementation.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.helpers.AttributesImpl&#xA;@see org.xml.sax.ext.DeclHandler#attributeDecl&#xA;" annotatedElement="_9_5_f720368_1110473546940_845761_13280"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_303190_13288" name="EntityResolver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314708_361485_9067" body="Basic interface for resolving entities.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>If a SAX application needs to implement customized handling&#xA;for external entities, it must implement this interface and&#xA;register an instance with the SAX driver using the&#xA;{@link org.xml.sax.XMLReader#setEntityResolver setEntityResolver}&#xA;method.&lt;/p>&#xA;&#xA;&lt;p>The XML reader will then allow the application to intercept any&#xA;external entities (including the external DTD subset and external&#xA;parameter entities, if any) before including them.&lt;/p>&#xA;&#xA;&lt;p>Many SAX applications will not need to implement this interface,&#xA;but it will be especially useful for applications that build&#xA;XML documents from databases or other specialised input sources,&#xA;or for applications that use URI types other than URLs.&lt;/p>&#xA;&#xA;&lt;p>The following resolver would provide the application&#xA;with a special character stream for the entity with the system&#xA;identifier &quot;http://www.myhost.com/today&quot;:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;import org.xml.sax.EntityResolver;&#xA;import org.xml.sax.InputSource;&#xA;&#xA;public class MyResolver implements EntityResolver {&#xA;public InputSource resolveEntity (String publicId, String systemId)&#xA;{&#xA;if (systemId.equals(&quot;http://www.myhost.com/today&quot;)) {&#xA;return a special input source&#xA;MyReader reader = new MyReader();&#xA;return new InputSource(reader);&#xA;} else {&#xA;use the default behaviour&#xA;return null;&#xA;}&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>The application can also use this interface to redirect system&#xA;identifiers to local URIs or to look up replacements in a catalog&#xA;(possibly by using the public identifier).&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.XMLReader#setEntityResolver&#xA;@see org.xml.sax.InputSource&#xA;" annotatedElement="_9_5_f720368_1110473546940_303190_13288"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_36360_13278" name="AttributeList" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314698_159345_9057" body="Interface for an element's attribute specifications.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This is the original SAX1 interface for reporting an element's&#xA;attributes.  Unlike the new {@link org.xml.sax.Attributes Attributes}&#xA;interface, it does not support Namespace-related information.&lt;/p>&#xA;&#xA;&lt;p>When an attribute list is supplied as part of a&#xA;{@link org.xml.sax.DocumentHandler#startElement startElement}&#xA;event, the list will return valid results only during the&#xA;scope of the event; once the event handler returns control&#xA;to the parser, the attribute list is invalid.  To save a&#xA;persistent copy of the attribute list, use the SAX1&#xA;{@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl}&#xA;helper class.&lt;/p>&#xA;&#xA;&lt;p>An attribute list includes only attributes that have been&#xA;specified or defaulted: #IMPLIED attributes will not be included.&lt;/p>&#xA;&#xA;&lt;p>There are two ways for the SAX application to obtain information&#xA;from the AttributeList.  First, it can iterate through the entire&#xA;list:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;public void startElement (String name, AttributeList atts) {&#xA;for (int i = 0; i &lt; atts.getLength(); i++) {&#xA;String name = atts.getName(i);&#xA;String type = atts.getType(i);&#xA;String value = atts.getValue(i);&#xA;[...]&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>(Note that the result of getLength() will be zero if there&#xA;are no attributes.)&#xA;&#xA;&lt;p>As an alternative, the application can request the value or&#xA;type of specific attributes:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;public void startElement (String name, AttributeList atts) {&#xA;String identifier = atts.getValue(&quot;id&quot;);&#xA;String label = atts.getValue(&quot;label&quot;);&#xA;[...]&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@deprecated This interface has been replaced by the SAX2&#xA;{@link org.xml.sax.Attributes Attributes}&#xA;interface, which includes Namespace support.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.DocumentHandler#startElement startElement&#xA;@see org.xml.sax.helpers.AttributeListImpl AttributeListImpl&#xA;" annotatedElement="_9_5_f720368_1110473546940_36360_13278"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546956_743013_13310" name="XMLReader" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314749_582915_9089" body="Interface for reading an XML document using callbacks.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&lt;strong>Note:&lt;/strong> despite its name, this interface does&#xA;&lt;em>not&lt;/em> extend the standard Java {@link java.io.Reader Reader}&#xA;interface, because reading XML is a fundamentally different activity&#xA;than reading character data.&lt;/p>&#xA;&#xA;&lt;p>XMLReader is the interface that an XML parser's SAX2 driver must&#xA;implement.  This interface allows an application to set and&#xA;query features and properties in the parser, to register&#xA;event handlers for document processing, and to initiate&#xA;a document parse.&lt;/p>&#xA;&#xA;&lt;p>All SAX interfaces are assumed to be synchronous: the&#xA;{@link #parse parse} methods must not return until parsing&#xA;is complete, and readers must wait for an event-handler callback&#xA;to return before reporting the next event.&lt;/p>&#xA;&#xA;&lt;p>This interface replaces the (now deprecated) SAX 1.0 {@link&#xA;org.xml.sax.Parser Parser} interface.  The XMLReader interface&#xA;contains two important enhancements over the old Parser&#xA;interface (as well as some minor ones):&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&lt;li>it adds a standard way to query and set features and&#xA;properties; and&lt;/li>&#xA;&lt;li>it adds Namespace support, which is required for many&#xA;higher-level XML standards.&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;p>There are adapters available to convert a SAX1 Parser to&#xA;a SAX2 XMLReader and vice-versa.&lt;/p>&#xA;&#xA;@since SAX 2.0&#xA;@author David Megginson&#xA;@version 2.0.1+ (sax2r3pre1)&#xA;@see org.xml.sax.XMLFilter&#xA;@see org.xml.sax.helpers.ParserAdapter&#xA;@see org.xml.sax.helpers.XMLReaderAdapter&#xA;" annotatedElement="_9_5_f720368_1110473546956_743013_13310"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_141112_13290" name="ErrorHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_225148_9069" body="Basic interface for SAX error handlers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>If a SAX application needs to implement customized error&#xA;handling, it must implement this interface and then register an&#xA;instance with the XML reader using the&#xA;{@link org.xml.sax.XMLReader#setErrorHandler setErrorHandler}&#xA;method.  The parser will then report all errors and warnings&#xA;through this interface.&lt;/p>&#xA;&#xA;&lt;p>&lt;strong>WARNING:&lt;/strong> If an application does &lt;em>not&lt;/em>&#xA;register an ErrorHandler, XML parsing errors will go unreported,&#xA;except that &lt;em>SAXParseException&lt;/em>s will be thrown for fatal errors.&#xA;In order to detect validity errors, an ErrorHandler that does something&#xA;with {@link #error error()} calls must be registered.&lt;/p>&#xA;&#xA;&lt;p>For XML processing errors, a SAX driver must use this interface&#xA;in preference to throwing an exception: it is up to the application&#xA;to decide whether to throw an exception for different types of&#xA;errors and warnings.  Note, however, that there is no requirement that&#xA;the parser continue to report additional errors after a call to&#xA;{@link #fatalError fatalError}.  In other words, a SAX driver class&#xA;may throw an exception after reporting any fatalError.&#xA;Also parsers may throw appropriate exceptions for non-XML errors.&#xA;For example, {@link XMLReader#parse XMLReader.parse()} would throw&#xA;an IOException for errors accessing entities or the document.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1+ (sax2r3pre1)&#xA;@see org.xml.sax.XMLReader#setErrorHandler&#xA;@see org.xml.sax.SAXParseException&#xA;" annotatedElement="_9_5_f720368_1110473546940_141112_13290"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546940_452233_13296" name="Locator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_959301_9075" body="Interface for associating a SAX event with a document location.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>If a SAX parser provides location information to the SAX&#xA;application, it does so by implementing this interface and then&#xA;passing an instance to the application using the content&#xA;handler's {@link org.xml.sax.ContentHandler#setDocumentLocator&#xA;setDocumentLocator} method.  The application can use the&#xA;object to obtain the location of any other SAX event&#xA;in the XML source document.&lt;/p>&#xA;&#xA;&lt;p>Note that the results returned by the object will be valid only&#xA;during the scope of each callback method: the application&#xA;will receive unpredictable results if it attempts to use the&#xA;locator at any other time, or after parsing completes.&lt;/p>&#xA;&#xA;&lt;p>SAX parsers are not required to supply a locator, but they are&#xA;very strongly encouraged to do so.  If the parser supplies a&#xA;locator, it must do so before reporting any other document events.&#xA;If no locator has been set by the time the application receives&#xA;the {@link org.xml.sax.ContentHandler#startDocument startDocument}&#xA;event, the application should assume that a locator is not&#xA;available.&lt;/p>&#xA;&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.ContentHandler#setDocumentLocator&#xA;" annotatedElement="_9_5_f720368_1110473546940_452233_13296"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546956_849409_13298" name="Parser" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314739_775128_9077" body="Basic interface for SAX (Simple API for XML) parsers.&#xA;&#xA;&lt;blockquote>&#xA;&lt;em>This module, both source code and documentation, is in the&#xA;Public Domain, and comes with &lt;strong>NO WARRANTY&lt;/strong>.&lt;/em>&#xA;See &lt;a href='http://www.saxproject.org'>http://www.saxproject.org&lt;/a>&#xA;for further information.&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>This was the main event supplier interface for SAX1; it has&#xA;been replaced in SAX2 by {@link org.xml.sax.XMLReader XMLReader},&#xA;which includes Namespace support and sophisticated configurability&#xA;and extensibility.&lt;/p>&#xA;&#xA;&lt;p>All SAX1 parsers must implement this basic interface: it allows&#xA;applications to register handlers for different types of events&#xA;and to initiate a parse from a URI, or a character stream.&lt;/p>&#xA;&#xA;&lt;p>All SAX1 parsers must also implement a zero-argument constructor&#xA;(though other constructors are also allowed).&lt;/p>&#xA;&#xA;&lt;p>SAX1 parsers are reusable but not re-entrant: the application&#xA;may reuse a parser object (possibly with a different input source)&#xA;once the first parse has completed successfully, but it may not&#xA;invoke the parse() methods recursively within a parse.&lt;/p>&#xA;&#xA;@deprecated This interface has been replaced by the SAX2&#xA;{@link org.xml.sax.XMLReader XMLReader}&#xA;interface, which includes Namespace support.&#xA;@since SAX 1.0&#xA;@author David Megginson&#xA;@version 2.0.1 (sax2r2)&#xA;@see org.xml.sax.EntityResolver&#xA;@see org.xml.sax.DTDHandler&#xA;@see org.xml.sax.DocumentHandler&#xA;@see org.xml.sax.ErrorHandler&#xA;@see org.xml.sax.HandlerBase&#xA;@see org.xml.sax.InputSource&#xA;" annotatedElement="_9_5_f720368_1110473546956_849409_13298"/>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
      <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547909_416886_19809" name="javax">
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_635917_19843" name="imageio">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_295421_9095" name="IIOParamController" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_643748_9252" body="An interface to be implemented by objects that can determine the&#xA;settings of an &lt;code>IIOParam&lt;/code> object, either by putting up a&#xA;GUI to obtain values from a user, or by other means.  This&#xA;interface merely specifies a generic &lt;code>activate&lt;/code> method&#xA;that invokes the controller, without regard for how the controller&#xA;obtains values (&lt;i>i.e.&lt;/i>, whether the controller puts up a GUI&#xA;or merely computes a set of values is irrelevant to this&#xA;interface).&#xA;&#xA;&lt;p> Within the &lt;code>activate&lt;/code> method, a controller obtains&#xA;initial values by querying the &lt;code>IIOParam&lt;/code> object's&#xA;&lt;code>get&lt;/code> methods, modifies values by whatever means, then&#xA;invokes the &lt;code>IIOParam&lt;/code> object's &lt;code>set&lt;/code> methods&#xA;to modify the appropriate settings.  Normally, these&#xA;&lt;code>set&lt;/code> methods will be invoked all at once at a final&#xA;commit in order that a cancel operation not disturb existing&#xA;values.  In general, applications may expect that when the&#xA;&lt;code>activate&lt;/code> method returns &lt;code>true&lt;/code>, the&#xA;&lt;code>IIOParam&lt;/code> object is ready for use in a read or write&#xA;operation.&#xA;&#xA;&lt;p> Vendors may choose to provide GUIs for the&#xA;&lt;code>IIOParam&lt;/code> subclasses they define for a particular&#xA;plug-in.  These can be set up as default controllers in the&#xA;corresponding &lt;code>IIOParam&lt;/code> subclasses.&#xA;&#xA;&lt;p> Applications may override any default GUIs and provide their&#xA;own controllers embedded in their own framework.  All that is&#xA;required is that the&lt;code>activate&lt;/code> method behave modally&#xA;(not returning until either cancelled or committed), though it need&#xA;not put up an explicitly modal dialog.  Such a non-modal GUI&#xA;component would be coded roughly as follows:&#xA;&#xA;&lt;br>&#xA;&lt;pre>&#xA;class MyGUI extends SomeComponent implements IIOParamController {&#xA;&#xA;public MyGUI() {&#xA;...&#xA;setEnabled(false);&#xA;}&#xA;&#xA;public boolean activate(IIOParam param) {&#xA;disable other components if desired&#xA;setEnabled(true);&#xA;go to sleep until either cancelled or committed&#xA;boolean ret = false;&#xA;if (!cancelled) {&#xA;set values on param&#xA;ret = true;&#xA;}&#xA;setEnabled(false);&#xA;enable any components disabled above&#xA;return ret;&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p> Alternatively, an algorithmic process such as a database lookup&#xA;or the parsing of a command line could be used as a controller, in&#xA;which case the &lt;code>activate&lt;/code> method would simply look up or&#xA;compute the settings, call the &lt;code>IIOParam.setXXX&lt;/code>&#xA;methods, and return &lt;code>true&lt;/code>.&#xA;&#xA;@see IIOParam#setController&#xA;@see IIOParam#getController&#xA;@see IIOParam#getDefaultController&#xA;@see IIOParam#hasController&#xA;@see IIOParam#activateController&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_295421_9095"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_525740_19844" name="event">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_362733_8999" name="IIOReadUpdateListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_162910_9153" body="An interface used by &lt;code>ImageReader&lt;/code> implementations to&#xA;notify callers of their image and thumbnail reading methods of&#xA;pixel updates.&#xA;&#xA;@see javax.imageio.ImageReader#addIIOReadUpdateListener&#xA;@see javax.imageio.ImageReader#removeIIOReadUpdateListener&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_362733_8999"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_95464_15768" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_223053_9005" name="IIOWriteWarningListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_460229_9159" body="An interface used by &lt;code>ImageWriter&lt;/code> implementations to&#xA;notify callers of their image and thumbnail reading methods of&#xA;warnings (non-fatal errors).  Fatal errors cause the relevant&#xA;read method to throw an &lt;code>IIOException&lt;/code>.&#xA;&#xA;&lt;p> Localization is handled by associating a &lt;code>Locale&lt;/code>&#xA;with each &lt;code>IIOWriteWarningListener&lt;/code> as it is registered&#xA;with an &lt;code>ImageWriter&lt;/code>.  It is up to the&#xA;&lt;code>ImageWriter&lt;/code> to provide localized messages.&#xA;&#xA;@see javax.imageio.ImageWriter#addIIOWriteWarningListener&#xA;@see javax.imageio.ImageWriter#removeIIOWriteWarningListener&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_223053_9005"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_700031_15771" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_21727_9003" name="IIOWriteProgressListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_812790_9157" body="An interface used by &lt;code>ImageWriter&lt;/code> implementations to notify&#xA;callers of their image writing methods of progress.&#xA;&#xA;@see javax.imageio.ImageWriter#write&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_21727_9003"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_386364_15770" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_375873_8997" name="IIOReadProgressListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314769_261938_9151" body="An interface used by &lt;code>ImageReader&lt;/code> implementations to&#xA;notify callers of their image and thumbnail reading methods of&#xA;progress.&#xA;&#xA;&lt;p> This interface receives general indications of decoding&#xA;progress (via the &lt;code>imageProgress&lt;/code> and&#xA;&lt;code>thumbnailProgress&lt;/code> methods), and events indicating when&#xA;an entire image has been updated (via the&#xA;&lt;code>imageStarted&lt;/code>, &lt;code>imageComplete&lt;/code>,&#xA;&lt;code>thumbnailStarted&lt;/code> and &lt;code>thumbnailComplete&lt;/code>&#xA;methods).  Applications that wish to be informed of pixel updates&#xA;as they happen (for example, during progressive decoding), should&#xA;provide an &lt;code>IIOReadUpdateListener&lt;/code>.&#xA;&#xA;@see IIOReadUpdateListener&#xA;@see javax.imageio.ImageReader#addIIOReadProgressListener&#xA;@see javax.imageio.ImageReader#removeIIOReadProgressListener&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_375873_8997"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_819858_15767" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_710266_9001" name="IIOReadWarningListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_453971_9155" body="An interface used by &lt;code>ImageReader&lt;/code> implementations to&#xA;notify callers of their image and thumbnail reading methods of&#xA;warnings (non-fatal errors).  Fatal errors cause the relevant&#xA;read method to throw an &lt;code>IIOException&lt;/code>.&#xA;&#xA;&lt;p> Localization is handled by associating a &lt;code>Locale&lt;/code>&#xA;with each &lt;code>IIOReadWarningListener&lt;/code> as it is registered&#xA;with an &lt;code>ImageReader&lt;/code>.  It is up to the&#xA;&lt;code>ImageReader&lt;/code> to provide localized messages.&#xA;&#xA;@see javax.imageio.ImageReader#addIIOReadWarningListener&#xA;@see javax.imageio.ImageReader#removeIIOReadWarningListener&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_710266_9001"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_578812_15769" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_631205_9089" name="IIOException">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_309031_9246" body="An exception class used for signaling run-time failure of reading&#xA;and writing operations.&#xA;&#xA;&lt;p> In addition to a message string, a reference to another&#xA;&lt;code>Throwable&lt;/code> (&lt;code>Error&lt;/code> or&#xA;&lt;code>Exception&lt;/code>) is maintained.  This reference, if&#xA;non-&lt;code>null&lt;/code>, refers to the event that caused this&#xA;exception to occur.  For example, an &lt;code>IOException&lt;/code> while&#xA;reading from a &lt;code>File&lt;/code> would be stored there.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_631205_9089"/>
            <generalization xmi:id="_10_5_622020d_1132928322920_248923_15809" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_526750_19912" name="stream">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_740306_9083" name="MemoryCache" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_669970_9240" body="Package-visible class consolidating common code for&#xA;&lt;code>MemoryCacheImageInputStream&lt;/code> and&#xA;&lt;code>MemoryCacheImageOutputStream&lt;/code>.&#xA;This class keeps an &lt;code>ArrayList&lt;/code> of 8K blocks,&#xA;loaded sequentially.  Blocks may only be disposed of&#xA;from the index 0 forward.  As blocks are freed, the&#xA;corresponding entries in the array list are set to&#xA;&lt;code>null&lt;/code>, but no compacting is performed.&#xA;This allows the index for each block to never change,&#xA;and the length of the cache is always the same as the&#xA;total amount of data ever cached.  Cached data is&#xA;therefore always contiguous from the point of last&#xA;disposal to the current length.&#xA;&#xA;&lt;p> The total number of blocks resident in the cache must not&#xA;exceed &lt;code>Integer.MAX_VALUE&lt;/code>.  In practice, the limit of&#xA;available memory will be exceeded long before this becomes an&#xA;issue, since a full cache would contain 8192*2^31 = 16 terabytes of&#xA;data.&#xA;&#xA;A &lt;code>MemoryCache&lt;/code> may be reused after a call&#xA;to &lt;code>reset()&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473546706_740306_9083"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_749420_9069" name="FileImageInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_327653_9226" body="An implementation of &lt;code>ImageInputStream&lt;/code> that gets its&#xA;input from a &lt;code>File&lt;/code> or &lt;code>RandomAccessFile&lt;/code>.&#xA;The file contents are assumed to be stable during the lifetime of&#xA;the object.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_749420_9069"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_701_15799" isSubstitutable="true" general="_9_5_f720368_1110473546706_959969_9077"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_959969_9077" name="ImageInputStreamImpl" clientDependency="_10_5_622020d_1132928322920_509747_15802" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_123473_9234" body="An abstract class implementing the &lt;code>ImageInputStream&lt;/code> interface.&#xA;This class is designed to reduce the number of methods that must&#xA;be implemented by subclasses.&#xA;&#xA;&lt;p> In particular, this class handles most or all of the details of&#xA;byte order interpretation, buffering, mark/reset, discarding,&#xA;closing, and disposing.&#xA;" annotatedElement="_9_5_f720368_1110473546706_959969_9077"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_509747_15802" name="" supplier="_9_5_f720368_1110473546706_804837_9075" client="_9_5_f720368_1110473546706_959969_9077" contract="_9_5_f720368_1110473546706_804837_9075"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_367826_9073" name="IIOByteBuffer">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_312052_9230" body="A class representing a mutable reference to an array of bytes and&#xA;an offset and length within that array.  &lt;code>IIOByteBuffer&lt;/code>&#xA;is used by &lt;code>ImageInputStream&lt;/code> to supply a sequence of bytes&#xA;to the caller, possibly with fewer copies than using the conventional&#xA;&lt;code>read&lt;/code> methods that take a user-supplied byte array.&#xA;&#xA;&lt;p> The byte array referenced by an &lt;code>IIOByteBuffer&lt;/code> will&#xA;generally be part of an internal data structure belonging to an&#xA;&lt;code>ImageReader&lt;/code> implementation; its contents should be&#xA;considered read-only and must not be modified.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_367826_9073"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_949575_9087" name="MemoryCacheImageOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314859_412264_9244" body="An implementation of &lt;code>ImageOutputStream&lt;/code> that writes its&#xA;output to a regular &lt;code>OutputStream&lt;/code>.  A memory buffer is&#xA;used to cache at least the data between the discard position and&#xA;the current write position.  The only constructor takes an&#xA;&lt;code>OutputStream&lt;/code>, so this class may not be used for&#xA;read/modify/write operations.  Reading can occur only on parts of&#xA;the stream that have already been written to the cache and not&#xA;yet flushed.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_949575_9087"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_294911_15808" isSubstitutable="true" general="_9_5_f720368_1110473546706_938286_9081"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_938286_9081" name="ImageOutputStreamImpl" clientDependency="_10_5_622020d_1132928322920_442020_15805" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_261473_9238" body="An abstract class implementing the &lt;code>ImageOutputStream&lt;/code> interface.&#xA;This class is designed to reduce the number of methods that must&#xA;be implemented by subclasses.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_938286_9081"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_284612_15806" isSubstitutable="true" general="_9_5_f720368_1110473546706_959969_9077"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_442020_15805" name="" supplier="_9_5_f720368_1110473546706_401406_9079" client="_9_5_f720368_1110473546706_938286_9081" contract="_9_5_f720368_1110473546706_401406_9079"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_401406_9079" name="ImageOutputStream" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_891012_9236" body="A seekable output stream interface for use by&#xA;&lt;code>ImageWriter&lt;/code>s.  Various output destinations, such as&#xA;&lt;code>OutputStream&lt;/code>s and &lt;code>File&lt;/code>s, as well as&#xA;future fast I/O destinations may be &quot;wrapped&quot; by a suitable&#xA;implementation of this interface for use by the Image I/O API.&#xA;&#xA;&lt;p> Unlike a standard &lt;code>OutputStream&lt;/code>, ImageOutputStream&#xA;extends its counterpart, &lt;code>ImageInputStream&lt;/code>.  Thus it is&#xA;possible to read from the stream as it is being written.  The same&#xA;seek and flush positions apply to both reading and writing, although&#xA;the semantics for dealing with a non-zero bit offset before a byte-aligned&#xA;write are necessarily different from the semantics for dealing with&#xA;a non-zero bit offset before a byte-aligned read.  When reading bytes,&#xA;any bit offset is set to 0 before the read; when writing bytes, a&#xA;non-zero bit offset causes the remaining bits in the byte to be written&#xA;as 0s.  The byte-aligned write then starts at the next byte position.&#xA;&#xA;@see ImageInputStream&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_401406_9079"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_46257_15803" isSubstitutable="true" general="_9_5_f720368_1110473546706_804837_9075"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_693208_15804" isSubstitutable="true" general="_9_5_f720368_1110473546596_686577_7373"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_991390_9085" name="MemoryCacheImageInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314859_23501_9242" body="An implementation of &lt;code>ImageInputStream&lt;/code> that gets its&#xA;input from a regular &lt;code>InputStream&lt;/code>.  A memory buffer is&#xA;used to cache at least the data between the discard position and&#xA;the current read position.&#xA;&#xA;&lt;p> In general, it is preferable to use a&#xA;&lt;code>FileCacheImageInputStream&lt;/code> when reading from a regular&#xA;&lt;code>InputStream&lt;/code>.  This class is provided for cases where&#xA;it is not possible to create a writable temporary file.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_991390_9085"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_881657_15807" isSubstitutable="true" general="_9_5_f720368_1110473546706_959969_9077"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_966546_9067" name="FileCacheImageOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_628713_9224" body="An implementation of &lt;code>ImageOutputStream&lt;/code> that writes its&#xA;output to a regular &lt;code>OutputStream&lt;/code>.  A file is used to&#xA;cache data until it is flushed to the output stream.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_966546_9067"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_475520_15798" isSubstitutable="true" general="_9_5_f720368_1110473546706_938286_9081"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_911068_9071" name="FileImageOutputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_855536_9228" body="An implementation of &lt;code>ImageOutputStream&lt;/code> that writes its&#xA;output directly to a &lt;code>File&lt;/code> or&#xA;&lt;code>RandomAccessFile&lt;/code>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_911068_9071"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_130447_15800" isSubstitutable="true" general="_9_5_f720368_1110473546706_938286_9081"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_804837_9075" name="ImageInputStream" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_10905_9232" body="A seekable input stream interface for use by&#xA;&lt;code>ImageReader&lt;/code>s.  Various input sources, such as&#xA;&lt;code>InputStream&lt;/code>s and &lt;code>File&lt;/code>s,&#xA;as well as future fast I/O sources may be &quot;wrapped&quot; by a suitable&#xA;implementation of this interface for use by the Image I/O API.&#xA;&#xA;@see ImageInputStreamImpl&#xA;@see FileImageInputStream&#xA;@see FileCacheImageInputStream&#xA;@see MemoryCacheImageInputStream&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_804837_9075"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_371235_15801" isSubstitutable="true" general="_9_5_f720368_1110473546596_439635_7369"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_829087_9065" name="FileCacheImageInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_202241_9222" body="An implementation of &lt;code>ImageInputStream&lt;/code> that gets its&#xA;input from a regular &lt;code>InputStream&lt;/code>.  A file is used to&#xA;cache previously read data.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_829087_9065"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_626597_15797" isSubstitutable="true" general="_9_5_f720368_1110473546706_959969_9077"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_291094_19882" name="spi">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_200463_9041" name="ImageInputStreamSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314799_993230_9195" body="The service provider interface (SPI) for&#xA;&lt;code>ImageInputStream&lt;/code>s.  For more information on service&#xA;provider interfaces, see the class comment for the&#xA;&lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;&lt;p> This interface allows arbitrary objects to be &quot;wrapped&quot; by&#xA;instances of &lt;code>ImageInputStream&lt;/code>.  For example,&#xA;a particular &lt;code>ImageInputStreamSpi&lt;/code> might allow&#xA;a generic &lt;code>InputStream&lt;/code> to be used as an input source;&#xA;another might take input from a &lt;code>URL&lt;/code>.&#xA;&#xA;&lt;p> By treating the creation of &lt;code>ImageInputStream&lt;/code>s as a&#xA;pluggable service, it becomes possible to handle future input&#xA;sources without changing the API.  Also, high-performance&#xA;implementations of &lt;code>ImageInputStream&lt;/code> (for example,&#xA;native implementations for a particular platform) can be installed&#xA;and used transparently by applications.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.stream.ImageInputStream&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_200463_9041"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_171823_15788" isSubstitutable="true" general="_9_5_f720368_1110473546706_149863_9039"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_850501_9055" name="PartialOrderIterator" visibility="package" clientDependency="_10_5_622020d_1132928322920_780155_15795">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_780155_15795" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_9_5_f720368_1110473546706_850501_9055" contract="_9_5_f720368_1110473546706_414385_8877"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_465154_9053" name="PartiallyOrderedSet" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_304519_9207" body="A set of &lt;code>Object&lt;/code>s with pairwise orderings between them.&#xA;The &lt;code>iterator&lt;/code> method provides the elements in&#xA;topologically sorted order.  Elements participating in a cycle&#xA;are not returned.&#xA;&#xA;Unlike the &lt;code>SortedSet&lt;/code> and &lt;code>SortedMap&lt;/code>&#xA;interfaces, which require their elements to implement the&#xA;&lt;code>Comparable&lt;/code> interface, this class receives ordering&#xA;information via its &lt;code>setOrdering&lt;/code> and&#xA;&lt;code>unsetPreference&lt;/code> methods.  This difference is due to&#xA;the fact that the relevant ordering between elements is unlikely to&#xA;be inherent in the elements themselves; rather, it is set&#xA;dynamically accoring to application policy.  For example, in a&#xA;service provider registry situation, an application might allow the&#xA;user to set a preference order for service provider objects&#xA;supplied by a trusted vendor over those supplied by another.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_465154_9053"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_470118_15794" isSubstitutable="true" general="_9_5_f720368_1110473546706_136303_8831"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_149863_9039" name="IIOServiceProvider" clientDependency="_10_5_622020d_1132928322920_891687_15787" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314799_381134_9193" body="A superinterface for functionality common to all Image I/O service&#xA;provider interfaces (SPIs).  For more information on service&#xA;provider classes, see the class comment for the&#xA;&lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.spi.ImageReaderSpi&#xA;@see javax.imageio.spi.ImageWriterSpi&#xA;@see javax.imageio.spi.ImageTranscoderSpi&#xA;@see javax.imageio.spi.ImageInputStreamSpi&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_149863_9039"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_891687_15787" name="" supplier="_9_5_f720368_1110473546706_31885_9057" client="_9_5_f720368_1110473546706_149863_9039" contract="_9_5_f720368_1110473546706_31885_9057"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_248093_9051" name="ImageWriterSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_258508_9205" body="The service provider interface (SPI) for &lt;code>ImageWriter&lt;/code>s.&#xA;For more information on service provider classes, see the class comment&#xA;for the &lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;&lt;p> Each &lt;code>ImageWriterSpi&lt;/code> provides several types of information&#xA;about the &lt;code>ImageWriter&lt;/code> class with which it is associated.&#xA;&#xA;&lt;p> The name of the vendor who defined the SPI class and a&#xA;brief description of the class are available via the&#xA;&lt;code>getVendorName&lt;/code>, &lt;code>getDescription&lt;/code>,&#xA;and &lt;code>getVersion&lt;/code> methods.&#xA;These methods may be internationalized to provide locale-specific&#xA;output.  These methods are intended mainly to provide short,&#xA;human-writable information that might be used to organize a pop-up&#xA;menu or other list.&#xA;&#xA;&lt;p> Lists of format names, file suffixes, and MIME types associated&#xA;with the service may be obtained by means of the&#xA;&lt;code>getFormatNames&lt;/code>, &lt;code>getFileSuffixes&lt;/code>, and&#xA;&lt;code>getMIMEType&lt;/code> methods.  These methods may be used to&#xA;identify candidate &lt;code>ImageWriter&lt;/code>s for writing a&#xA;particular file or stream based on manual format selection, file&#xA;naming, or MIME associations.&#xA;&#xA;&lt;p> A more reliable way to determine which &lt;code>ImageWriter&lt;/code>s&#xA;are likely to be able to parse a particular data stream is provided&#xA;by the &lt;code>canEncodeImage&lt;/code> method.  This methods allows the&#xA;service provider to inspect the actual image contents.&#xA;&#xA;&lt;p> Finally, an instance of the &lt;code>ImageWriter&lt;/code> class&#xA;associated with this service provider may be obtained by calling&#xA;the &lt;code>createWriterInstance&lt;/code> method.  Any heavyweight&#xA;initialization, such as the loading of native libraries or creation&#xA;of large tables, should be deferred at least until the first&#xA;invocation of this method.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.ImageTypeSpecifier&#xA;@see javax.imageio.ImageWriter&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_248093_9051"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_287101_15793" isSubstitutable="true" general="_9_5_f720368_1110473546706_62533_9047"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_824403_9043" name="ImageOutputStreamSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314799_429150_9197" body="The service provider interface (SPI) for&#xA;&lt;code>ImageOutputStream&lt;/code>s.  For more information on service&#xA;provider interfaces, see the class comment for the&#xA;&lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;&lt;p> This interface allows arbitrary objects to be &quot;wrapped&quot; by&#xA;instances of &lt;code>ImageOutputStream&lt;/code>.  For example, a&#xA;particular &lt;code>ImageOutputStreamSpi&lt;/code> might allow a generic&#xA;&lt;code>OutputStream&lt;/code> to be used as a destination; another&#xA;might output to a &lt;code>File&lt;/code> or to a device such as a serial&#xA;port.&#xA;&#xA;&lt;p> By treating the creation of &lt;code>ImageOutputStream&lt;/code>s as&#xA;a pluggable service, it becomes possible to handle future output&#xA;destinations without changing the API.  Also, high-performance&#xA;implementations of &lt;code>ImageOutputStream&lt;/code> (for example,&#xA;native implementations for a particular platform) can be installed&#xA;and used transparently by applications.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.stream.ImageOutputStream&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_824403_9043"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_412027_15789" isSubstitutable="true" general="_9_5_f720368_1110473546706_149863_9039"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_58351_9063" name="FilterIterator" visibility="package" clientDependency="_10_5_622020d_1132928322920_69607_15796">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_759488_9220" body="A class for wrapping &lt;code>Iterators&lt;/code> with a filter function.&#xA;This provides an iterator for a subset without duplication.&#xA;" annotatedElement="_9_5_f720368_1110473546706_58351_9063"/>
              <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928314849_269621_9216" name="" parameter="_10_5_622020d_1132928314849_246799_9217">
                <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928314849_246799_9217" parameteredElement="_10_5_622020d_1132928314849_692304_9218">
                  <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314849_692304_9218" name="T" templateParameter="_10_5_622020d_1132928314849_246799_9217"/>
                </ownedParameter>
              </ownedTemplateSignature>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_69607_15796" name="" supplier="_10_5_622020d_1132928322550_175403_14910" client="_9_5_f720368_1110473546706_58351_9063" contract="_10_5_622020d_1132928322550_175403_14910"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_133563_9035" name="DigraphNode" visibility="package" clientDependency="_10_5_622020d_1132928322920_462174_15785 _10_5_622020d_1132928322910_110894_15784">
              <ownedComment xmi:id="_10_5_622020d_1132928314799_327285_9189" body="A node in a directed graph.  In addition to an arbitrary&#xA;&lt;code>Object&lt;/code> containing user data associated with the node,&#xA;each node maintains a &lt;code>Set&lt;/code>s of nodes which are pointed&#xA;to by the current node (available from &lt;code>getOutNodes&lt;/code>).&#xA;The in-degree of the node (that is, number of nodes that point to&#xA;the current node) may be queried.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_133563_9035"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_110894_15784" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546706_133563_9035" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_462174_15785" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546706_133563_9035" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_62533_9047" name="ImageReaderWriterSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_670891_9201" body="A superclass containing instance variables and methods common to&#xA;&lt;code>ImageReaderSpi&lt;/code> and &lt;code>ImageWriterSpi&lt;/code>.&#xA;&#xA;@see IIORegistry&#xA;@see ImageReaderSpi&#xA;@see ImageWriterSpi&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_62533_9047"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_739934_15791" isSubstitutable="true" general="_9_5_f720368_1110473546706_149863_9039"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_974260_9045" name="ImageReaderSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_179450_9199" body="The service provider interface (SPI) for &lt;code>ImageReader&lt;/code>s.&#xA;For more information on service provider classes, see the class comment&#xA;for the &lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;&lt;p> Each &lt;code>ImageReaderSpi&lt;/code> provides several types of information&#xA;about the &lt;code>ImageReader&lt;/code> class with which it is associated.&#xA;&#xA;&lt;p> The name of the vendor who defined the SPI class and a&#xA;brief description of the class are available via the&#xA;&lt;code>getVendorName&lt;/code>, &lt;code>getDescription&lt;/code>,&#xA;and &lt;code>getVersion&lt;/code> methods.&#xA;These methods may be internationalized to provide locale-specific&#xA;output.  These methods are intended mainly to provide short,&#xA;human-readable information that might be used to organize a pop-up&#xA;menu or other list.&#xA;&#xA;&lt;p> Lists of format names, file suffixes, and MIME types associated&#xA;with the service may be obtained by means of the&#xA;&lt;code>getFormatNames&lt;/code>, &lt;code>getFileSuffixes&lt;/code>, and&#xA;&lt;code>getMIMETypes&lt;/code> methods.  These methods may be used to&#xA;identify candidate &lt;code>ImageReader&lt;/code>s for decoding a&#xA;particular file or stream based on manual format selection, file&#xA;naming, or MIME associations (for example, when accessing a file&#xA;over HTTP or as an email attachment).&#xA;&#xA;&lt;p> A more reliable way to determine which &lt;code>ImageReader&lt;/code>s&#xA;are likely to be able to parse a particular data stream is provided&#xA;by the &lt;code>canDecodeInput&lt;/code> method.  This methods allows the&#xA;service provider to inspect the actual stream contents.&#xA;&#xA;&lt;p> Finally, an instance of the &lt;code>ImageReader&lt;/code> class&#xA;associated with this service provider may be obtained by calling&#xA;the &lt;code>createReaderInstance&lt;/code> method.  Any heavyweight&#xA;initialization, such as the loading of native libraries or creation&#xA;of large tables, should be deferred at least until the first&#xA;invocation of this method.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.ImageReader&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_974260_9045"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_286955_15790" isSubstitutable="true" general="_9_5_f720368_1110473546706_62533_9047"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_816989_9049" name="ImageTranscoderSpi" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_359991_9203" body="The service provider interface (SPI) for &lt;code>ImageTranscoder&lt;/code>s.&#xA;For more information on service provider classes, see the class comment&#xA;for the &lt;code>IIORegistry&lt;/code> class.&#xA;&#xA;@see IIORegistry&#xA;@see javax.imageio.ImageTranscoder&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_816989_9049"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_294403_15792" isSubstitutable="true" general="_9_5_f720368_1110473546706_149863_9039"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_31885_9057" name="RegisterableService" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314809_297554_9210" body="An optional interface that may be provided by service provider&#xA;objects that will be registered with a&#xA;&lt;code>ServiceRegistry&lt;/code>.  If this interface is present,&#xA;notification of registration and deregistration will be performed.&#xA;&#xA;@see ServiceRegistry&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_31885_9057"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_65391_9037" name="IIORegistry" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314799_202556_9191" body="A registry for service provider instances.  Service provider&#xA;classes may be detected at run time by means of meta-information in&#xA;the JAR files containing them.  The intent is that it be relatively&#xA;inexpensive to load and inspect all available service provider&#xA;classes.  These classes may them be used to locate and instantiate&#xA;more heavyweight classes that will perform actual work, in this&#xA;case instances of &lt;code>ImageReader&lt;/code>,&#xA;&lt;code>ImageWriter&lt;/code>, &lt;code>ImageTranscoder&lt;/code>,&#xA;&lt;code>ImageInputStream&lt;/code>, and &lt;code>ImageOutputStream&lt;/code>.&#xA;&#xA;&lt;p> Service providers found on the system classpath (&lt;i>e.g.&lt;/i>,&#xA;the &lt;code>jre/lib/ext&lt;/code> directory in Sun's implementation of&#xA;JDK) are automatically loaded as soon as this class is&#xA;instantiated.&#xA;&#xA;&lt;p> When the &lt;code>registerApplicationClasspathSpis&lt;/code> method&#xA;is called, service provider instances declared in the&#xA;meta-information section of JAR files on the application class path&#xA;are loaded.  To declare a service provider, a &lt;code>services&lt;/code>&#xA;subdirectory is placed within the &lt;code>META-INF&lt;/code> directory&#xA;that is present in every JAR file.  This directory contains a file&#xA;for each service provider interface that has one or more&#xA;implementation classes present in the JAR file.  For example, if&#xA;the JAR file contained a class named&#xA;&lt;code>com.mycompany.imageio.MyFormatReaderSpi&lt;/code> which&#xA;implements the &lt;code>ImageReaderSpi&lt;/code> interface, the JAR file&#xA;would contain a file named:&#xA;&#xA;&lt;pre>&#xA;META-INF/services/javax.imageio.spi.ImageReaderSpi&#xA;&lt;/pre>&#xA;&#xA;containing the line:&#xA;&#xA;&lt;pre>&#xA;com.mycompany.imageio.MyFormatReaderSpi&#xA;&lt;/pre>&#xA;&#xA;&lt;p> The service provider classes are intended to be lightweight&#xA;and quick to load.  Implementations of these interfaces&#xA;should avoid complex dependencies on other classes and on&#xA;native code.&#xA;&#xA;&lt;p> It is also possible to manually add service providers not found&#xA;automatically, as well as to remove those that are using the&#xA;interfaces of the &lt;code>ServiceRegistry&lt;/code> class.  Thus&#xA;the application may customize the contents of the registry as it&#xA;sees fit.&#xA;&#xA;&lt;p> For more details on declaring service providers, and the JAR&#xA;format in general, see the &lt;a&#xA;href=&quot;{@docRoot}/../guide/jar/jar.html&quot;>&#xA;JAR File Specification&lt;/a>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_65391_9037"/>
              <generalization xmi:id="_10_5_622020d_1132928322920_102540_15786" isSubstitutable="true" general="_9_5_f720368_1110473546706_699100_9059"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_123684_9061" name="SubRegistry" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_30919_9215" body="A portion of a registry dealing with a single superclass or&#xA;interface.&#xA;" annotatedElement="_9_5_f720368_1110473546706_123684_9061"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_699100_9059" name="ServiceRegistry">
              <ownedComment xmi:id="_10_5_622020d_1132928314849_374851_9213" body="A registry for service provider instances.&#xA;&#xA;&lt;p> A &lt;i>service&lt;/i> is a well-known set of interfaces and (usually&#xA;abstract) classes.  A &lt;i>service provider&lt;/i> is a specific&#xA;implementation of a service.  The classes in a provider typically&#xA;implement the interface or subclass the class defined by the&#xA;service itself.&#xA;&#xA;&lt;p> Service providers are stored in one or more &lt;i>categories&lt;/i>,&#xA;each of which is defined by a class of interface (described by a&#xA;&lt;code>Class&lt;/code> object) that all of its members must implement.&#xA;The set of categories may be changed dynamically.&#xA;&#xA;&lt;p> Only a single instance of a given leaf class (that is, the&#xA;actual class returned by &lt;code>getClass()&lt;/code>, as opposed to any&#xA;inherited classes or interfaces) may be registered.  That is,&#xA;suppose that the&#xA;&lt;code>com.mycompany.mypkg.GreenServiceProvider&lt;/code> class&#xA;implements the &lt;code>com.mycompany.mypkg.MyService&lt;/code>&#xA;interface.  If a &lt;code>GreenServiceProvider&lt;/code> instance is&#xA;registered, it will be stored in the category defined by the&#xA;&lt;code>MyService&lt;/code> class.  If a new instance of&#xA;&lt;code>GreenServiceProvider&lt;/code> is registered, it will replace&#xA;the previous instance.  In practice, service provider objects are&#xA;usually singletons so this behavior is appropriate.&#xA;&#xA;&lt;p> To declare a service provider, a &lt;code>services&lt;/code>&#xA;subdirectory is placed within the &lt;code>META-INF&lt;/code> directory&#xA;that is present in every JAR file.  This directory contains a file&#xA;for each service provider interface that has one or more&#xA;implementation classes present in the JAR file.  For example, if&#xA;the JAR file contained a class named&#xA;&lt;code>com.mycompany.mypkg.MyServiceImpl&lt;/code> which implements the&#xA;&lt;code>javax.someapi.SomeService&lt;/code> interface, the JAR file&#xA;would contain a file named: &lt;pre>&#xA;META-INF/services/javax.someapi.SomeService &lt;/pre>&#xA;&#xA;containing the line:&#xA;&#xA;&lt;pre>&#xA;com.mycompany.mypkg.MyService&#xA;&lt;/pre>&#xA;&#xA;&lt;p> The service provider classes should be to be lightweight and&#xA;quick to load.  Implementations of these interfaces should avoid&#xA;complex dependencies on other classes and on native code. The usual&#xA;pattern for more complex services is to register a lightweight&#xA;proxy for the heavyweight service.&#xA;&#xA;&lt;p> An application may customize the contents of a registry as it&#xA;sees fit, so long as it has the appropriate runtime permission.&#xA;&#xA;&lt;p> For more details on declaring service providers, and the JAR&#xA;format in general, see the &lt;a&#xA;href=&quot;http://java.sun.com/products/jdk/1.3/docs/guide/jar/jar.html&quot;>&#xA;JAR File Specification&lt;/a>.&#xA;&#xA;@see RegisterableService&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_699100_9059"/>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547924_74512_19895" name="Filter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928314809_195138_9211" body="A simple filter interface used by&#xA;&lt;code>ServiceRegistry.getServiceProviders&lt;/code> to select&#xA;providers matching an arbitrary criterion.  Classes that&#xA;implement this interface should be defined in order to make use&#xA;of the &lt;code>getServiceProviders&lt;/code> method of&#xA;&lt;code>ServiceRegistry&lt;/code> that takes a &lt;code>Filter&lt;/code>.&#xA;&#xA;@see ServiceRegistry#getServiceProviders(Class, ServiceRegistry.Filter, boolean)&#xA;" annotatedElement="_9_5_f720368_1110473547924_74512_19895"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_720684_9109" name="ImageWriter" clientDependency="_10_5_622020d_1132928322940_130739_15833" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314869_643136_9267" body="An abstract superclass for encoding and writing images.  This class&#xA;must be subclassed by classes that write out images in the context&#xA;of the Java Image I/O framework.&#xA;&#xA;&lt;p> &lt;code>ImageWriter&lt;/code> objects are normally instantiated by&#xA;the service provider class for the specific format.  Service&#xA;provider classes are registered with the &lt;code>IIORegistry&lt;/code>,&#xA;which uses them for format recognition and presentation of&#xA;available format readers and writers.&#xA;&#xA;&lt;p>&#xA;&#xA;@see ImageReader&#xA;@see ImageWriteParam&#xA;@see javax.imageio.spi.IIORegistry&#xA;@see javax.imageio.spi.ImageWriterSpi&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546721_720684_9109"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322940_130739_15833" name="" supplier="_9_5_f720368_1110473546706_533238_9103" client="_9_5_f720368_1110473546721_720684_9109" contract="_9_5_f720368_1110473546706_533238_9103"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322930_846562_15821" name="Iterator&lt;ImageTranscoder>">
            <templateBinding xmi:id="_10_5_622020d_1132928322930_929767_15822" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322930_81803_15823" formal="_10_5_622020d_1132928313266_876300_7329" actual="_9_5_f720368_1110473546706_533238_9103"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_796444_9105" name="ImageTypeSpecifier">
            <ownedComment xmi:id="_10_5_622020d_1132928314869_430532_9263" body="A class that allows the format of an image (in particular, its&#xA;&lt;code>SampleModel&lt;/code> and &lt;code>ColorModel&lt;/code>) to be&#xA;specified in a convenient manner.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_796444_9105"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_355722_19963" name="Packed" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322940_71944_15827" isSubstitutable="true" general="_9_5_f720368_1110473546706_796444_9105"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_128607_19965" name="Interleaved" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322940_106336_15828" isSubstitutable="true" general="_9_5_f720368_1110473546706_796444_9105"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_129415_19967" name="Banded" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322940_886574_15829" isSubstitutable="true" general="_9_5_f720368_1110473546706_796444_9105"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_583034_19969" name="Grayscale" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322940_421576_15830" isSubstitutable="true" general="_9_5_f720368_1110473546706_796444_9105"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_674157_19971" name="Indexed" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322940_233170_15831" isSubstitutable="true" general="_9_5_f720368_1110473546706_796444_9105"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_834798_9107" name="ImageWriteParam">
            <ownedComment xmi:id="_10_5_622020d_1132928314869_806071_9265" body="A class describing how a stream is to be encoded.  Instances of&#xA;this class or its subclasses are used to supply prescriptive&#xA;&quot;how-to&quot; information to instances of &lt;code>ImageWriter&lt;/code>.&#xA;&#xA;&lt;p> A plug-in for a specific image format may define a subclass of&#xA;this class, and return objects of that class from the&#xA;&lt;code>getDefaultWriteParam&lt;/code> method of its&#xA;&lt;code>ImageWriter&lt;/code> implementation.  For example, the built-in&#xA;JPEG writer plug-in will return instances of&#xA;&lt;code>javax.imageio.plugins.jpeg.JPEGImageWriteParam&lt;/code>.&#xA;&#xA;&lt;p> The region of the image to be written is determined by first&#xA;intersecting the actual bounds of the image with the rectangle&#xA;specified by &lt;code>IIOParam.setSourceRegion&lt;/code>, if any.  If the&#xA;resulting rectangle has a width or height of zero, the writer will&#xA;throw an &lt;code>IIOException&lt;/code>. If the intersection is&#xA;non-empty, writing will commence with the first subsampled pixel&#xA;and include additional pixels within the intersected bounds&#xA;according to the horizontal and vertical subsampling factors&#xA;specified by {@link IIOParam#setSourceSubsampling&#xA;&lt;code>IIOParam.setSourceSubsampling&lt;/code>}.&#xA;&#xA;&lt;p> Individual features such as tiling, progressive encoding, and&#xA;compression may be set in one of four modes.&#xA;&lt;code>MODE_DISABLED&lt;/code> disables the features;&#xA;&lt;code>MODE_DEFAULT&lt;/code> enables the feature with&#xA;writer-controlled parameter values; &lt;code>MODE_EXPLICIT&lt;/code>&#xA;enables the feature and allows the use of a &lt;code>set&lt;/code> method&#xA;to provide additional parameters; and&#xA;&lt;code>MODE_COPY_FROM_METADATA&lt;/code> copies relevant parameter&#xA;values from the stream and image metadata objects passed to the&#xA;writer.  The default for all features is&#xA;&lt;code>MODE_COPY_FROM_METADATA&lt;/code>.  Non-standard features&#xA;supplied in subclasses are encouraged, but not required to use a&#xA;similar scheme.&#xA;&#xA;&lt;p> Plug-in writers may extend the functionality of&#xA;&lt;code>ImageWriteParam&lt;/code> by providing a subclass that implements&#xA;additional, plug-in specific interfaces.  It is up to the plug-in&#xA;to document what interfaces are available and how they are to be&#xA;used.  Writers will silently ignore any extended features of an&#xA;&lt;code>ImageWriteParam&lt;/code> subclass of which they are not aware.&#xA;Also, they may ignore any optional features that they normally&#xA;disable when creating their own &lt;code>ImageWriteParam&lt;/code>&#xA;instances via &lt;code>getDefaultWriteParam&lt;/code>.&#xA;&#xA;&lt;p> Note that unless a query method exists for a capability, it must&#xA;be supported by all &lt;code>ImageWriter&lt;/code> implementations&#xA;(&lt;i>e.g.&lt;/i> progressive encoding is optional, but subsampling must be&#xA;supported).&#xA;&#xA;@version 0.5&#xA;&#xA;@see ImageReadParam&#xA;" annotatedElement="_9_5_f720368_1110473546706_834798_9107"/>
            <generalization xmi:id="_10_5_622020d_1132928322940_33067_15832" isSubstitutable="true" general="_9_5_f720368_1110473546706_792633_9093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322930_411747_15817" name="Iterator&lt;ImageWriter>">
            <templateBinding xmi:id="_10_5_622020d_1132928322930_663107_15818" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322930_264335_15819" formal="_10_5_622020d_1132928313266_876300_7329" actual="_9_5_f720368_1110473546721_720684_9109"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_761625_9101" name="ImageReadParam">
            <ownedComment xmi:id="_10_5_622020d_1132928314869_717346_9259" body="A class describing how a stream is to be decoded.  Instances of&#xA;this class or its subclasses are used to supply prescriptive&#xA;&quot;how-to&quot; information to instances of &lt;code>ImageReader&lt;/code>.&#xA;&#xA;&lt;p> An image encoded as part of a file or stream may be thought of&#xA;extending out in multiple dimensions: the spatial dimensions of&#xA;width and height, a number of bands, and a number of progressive&#xA;decoding passes.  This class allows a contiguous (hyper)rectangular&#xA;subarea of the image in all of these dimensions to be selected for&#xA;decoding.  Additionally, the spatial dimensions may be subsampled&#xA;discontinuously.  Finally, color and format conversions may be&#xA;specified by controlling the &lt;code>ColorModel&lt;/code> and&#xA;&lt;code>SampleModel&lt;/code> of the destination image, either by&#xA;providing a &lt;code>BufferedImage&lt;/code> or by using an&#xA;&lt;code>ImageTypeSpecifier&lt;/code>.&#xA;&#xA;&lt;p> An &lt;code>ImageReadParam&lt;/code> object is used to specify how an&#xA;image, or a set of images, will be converted on input from&#xA;a stream in the context of the Java Image I/O framework.  A plug-in for a&#xA;specific image format will return instances of&#xA;&lt;code>ImageReadParam&lt;/code> from the&#xA;&lt;code>getDefaultReadParam&lt;/code> method of its&#xA;&lt;code>ImageReader&lt;/code> implementation.&#xA;&#xA;&lt;p> The state maintained by an instance of&#xA;&lt;code>ImageReadParam&lt;/code> is independent of any particular image&#xA;being decoded.  When actual decoding takes place, the values set in&#xA;the read param are combined with the actual properties of the image&#xA;being decoded from the stream and the destination&#xA;&lt;code>BufferedImage&lt;/code> that will receive the decoded pixel&#xA;data.  For example, the source region set using&#xA;&lt;code>setSourceRegion&lt;/code> will first be intersected with the&#xA;actual valid source area.  The result will be translated by the&#xA;value returned by &lt;code>getDestinationOffset&lt;/code>, and the&#xA;resulting rectangle intersected with the actual valid destination&#xA;area to yield the destination area that will be written.&#xA;&#xA;&lt;p> The parameters specified by an &lt;code>ImageReadParam&lt;/code> are&#xA;applied to an image as follows.  First, if a rendering size has&#xA;been set by &lt;code>setSourceRenderSize&lt;/code>, the entire decoded&#xA;image is rendered at the size given by&#xA;&lt;code>getSourceRenderSize&lt;/code>.  Otherwise, the image has its&#xA;natural size given by &lt;code>ImageReader.getWidth&lt;/code> and&#xA;&lt;code>ImageReader.getHeight&lt;/code>.&#xA;&#xA;&lt;p> Next, the image is clipped against the source region&#xA;specified by &lt;code>getSourceXOffset&lt;/code>, &lt;code>getSourceYOffset&lt;/code>,&#xA;&lt;code>getSourceWidth&lt;/code>, and &lt;code>getSourceHeight&lt;/code>.&#xA;&#xA;&lt;p> The resulting region is then subsampled according to the&#xA;factors given in {@link IIOParam#setSourceSubsampling&#xA;&lt;code>IIOParam.setSourceSubsampling&lt;/code>}.  The first pixel,&#xA;the number of pixels per row, and the number of rows all depend&#xA;on the subsampling settings.&#xA;Call the minimum X and Y coordinates of the resulting rectangle&#xA;(&lt;code>minX&lt;/code>, &lt;code>minY&lt;/code>), its width &lt;code>w&lt;/code>&#xA;and its height &lt;code>h&lt;/code>.&#xA;&#xA;&lt;p> This rectangle is offset by&#xA;(&lt;code>getDestinationOffset().x&lt;/code>,&#xA;&lt;code>getDestinationOffset().y&lt;/code>) and clipped against the&#xA;destination bounds.  If no destination image has been set, the&#xA;destination is defined to have a width of&#xA;&lt;code>getDestinationOffset().x&lt;/code> + &lt;code>w&lt;/code>, and a&#xA;height of &lt;code>getDestinationOffset().y&lt;/code> + &lt;code>h&lt;/code> so&#xA;that all pixels of the source region may be written to the&#xA;destination.&#xA;&#xA;&lt;p> Pixels that land, after subsampling, within the destination&#xA;image, and that are written in one of the progressive passes&#xA;specified by &lt;code>getSourceMinProgressivePass&lt;/code> and&#xA;&lt;code>getSourceNumProgressivePasses&lt;/code> are passed along to the&#xA;next step.&#xA;&#xA;&lt;p> Finally, the source samples of each pixel are mapped into&#xA;destination bands according to the algorithm described in the&#xA;comment for &lt;code>setDestinationBands&lt;/code>.&#xA;&#xA;&lt;p> Plug-in writers may extend the functionality of&#xA;&lt;code>ImageReadParam&lt;/code> by providing a subclass that implements&#xA;additional, plug-in specific interfaces.  It is up to the plug-in&#xA;to document what interfaces are available and how they are to be&#xA;used.  Readers will silently ignore any extended features of an&#xA;&lt;code>ImageReadParam&lt;/code> subclass of which they are not aware.&#xA;Also, they may ignore any optional features that they normally&#xA;disable when creating their own &lt;code>ImageReadParam&lt;/code>&#xA;instances via &lt;code>getDefaultReadParam&lt;/code>.&#xA;&#xA;&lt;p> Note that unless a query method exists for a capability, it must&#xA;be supported by all &lt;code>ImageReader&lt;/code> implementations&#xA;(&lt;i>e.g.&lt;/i> source render size is optional, but subsampling must be&#xA;supported).&#xA;&#xA;@version 0.5&#xA;&#xA;@see ImageReader&#xA;@see ImageWriter&#xA;@see ImageWriteParam&#xA;" annotatedElement="_9_5_f720368_1110473546706_761625_9101"/>
            <generalization xmi:id="_10_5_622020d_1132928322940_579251_15826" isSubstitutable="true" general="_9_5_f720368_1110473546706_792633_9093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_792633_9093" name="IIOParam" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_728344_9250" body="A superclass of all classes describing how streams should be&#xA;decoded or encoded.  This class contains all the variables and&#xA;methods that are shared by &lt;code>ImageReadParam&lt;/code> and&#xA;&lt;code>ImageWriteParam&lt;/code>.&#xA;&#xA;&lt;p> This class provides mechanisms to specify a source region and a&#xA;destination region.  When reading, the source is the stream and&#xA;the in-memory image is the destination.  When writing, these are&#xA;reversed.  In the case of writing, destination regions may be used&#xA;only with a writer that supports pixel replacement.&#xA;&lt;p>&#xA;Decimation subsampling may be specified for both readers&#xA;and writers, using a movable subsampling grid.&#xA;&lt;p>&#xA;Subsets of the source and destination bands may be selected.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_792633_9093"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_234421_19874" name="plugins">
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314789_61994_9176" name="bmp">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314789_73744_9177" name="BMPImageWriteParam">
                <ownedComment xmi:id="_10_5_622020d_1132928314789_186577_9179" body="A subclass of &lt;code>ImageWriteParam&lt;/code> for encoding images in&#xA;the BMP format.&#xA;&#xA;&lt;p> This class allows for the specification of various parameters&#xA;while writing a BMP format image file.  By default, the data layout&#xA;is bottom-up, such that the pixels are stored in bottom-up order,&#xA;the first scanline being stored last.&#xA;&#xA;&lt;p>The particular compression scheme to be used can be specified by using&#xA;the &lt;code>setCompressionType()&lt;/code> method with the appropriate type&#xA;string.  The compression scheme specified will be honored if and only if it&#xA;is compatible with the type of image being written. If the specified&#xA;compression scheme is not compatible with the type of image being written&#xA;then the &lt;code>IOException&lt;/code> will be thrown by the BMP image writer.&#xA;If the compression type is not set explicitly then &lt;code>getCompressionType()&lt;/code>&#xA;will return &lt;code>null&lt;/code>. In this case the BMP image writer will select&#xA;a compression type that supports encoding of the given image without loss&#xA;of the color resolution.&#xA;&lt;p>The compression type strings and the image type(s) each supports are&#xA;listed in the following&#xA;table:&#xA;&#xA;&lt;p>&lt;table border=1>&#xA;&lt;caption>&lt;b>Compression Types&lt;/b>&lt;/caption>&#xA;&lt;tr>&lt;th>Type String&lt;/th> &lt;th>Description&lt;/th>  &lt;th>Image Types&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>BI_RGB&lt;/td>  &lt;td>Uncompressed RLE&lt;/td> &lt;td>&lt;= 8-bits/sample&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>BI_RLE8&lt;/td> &lt;td>8-bit Run Length Encoding&lt;/td> &lt;td>&lt;= 8-bits/sample&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>BI_RLE4&lt;/td> &lt;td>4-bit Run Length Encoding&lt;/td> &lt;td>&lt;= 4-bits/sample&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>BI_BITFIELDS&lt;/td> &lt;td>Packed data&lt;/td> &lt;td> 16 or 32 bits/sample&lt;/td>&lt;/tr>&#xA;&lt;/table>&#xA;" annotatedElement="_10_5_622020d_1132928314789_73744_9177"/>
                <generalization xmi:id="_10_5_622020d_1132928322910_832830_15781" isSubstitutable="true" general="_9_5_f720368_1110473546706_834798_9107"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_149673_19875" name="jpeg">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_159264_9033" name="JPEGQTable">
                <ownedComment xmi:id="_10_5_622020d_1132928314799_561214_9187" body="A class encapsulating a single JPEG quantization table.  The&#xA;elements appear in natural order (as opposed to zig-zag order).&#xA;Static variables are provided for the &quot;standard&quot; tables taken from&#xA;Annex K of the JPEG spec, as well as the default tables&#xA;conventionally used for visually lossless encoding.&#xA;&#xA;&lt;p>&#xA;For more information about the operation of the built-in JPEG plug-ins,&#xA;see the &lt;A HREF=&quot;../../metadata/doc-files/jpeg_metadata.html&quot;>JPEG&#xA;metadata format specification and usage notes&lt;/A>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_159264_9033"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_111514_9029" name="JPEGImageReadParam">
                <ownedComment xmi:id="_10_5_622020d_1132928314789_549437_9183" body="This class adds the ability to set JPEG quantization and Huffman&#xA;tables when using the built-in JPEG reader plug-in.  An instance of&#xA;this class will be returned from the&#xA;&lt;code>getDefaultImageReadParam&lt;/code> methods of the built-in JPEG&#xA;&lt;code>ImageReader&lt;/code>.&#xA;&#xA;&lt;p> The sole purpose of these additions is to allow the&#xA;specification of tables for use in decoding abbreviated streams.&#xA;The built-in JPEG reader will also accept an ordinary&#xA;&lt;code>ImageReadParam&lt;/code>, which is sufficient for decoding&#xA;non-abbreviated streams.&#xA;&#xA;&lt;p> While tables for abbreviated streams are often obtained by&#xA;first reading another abbreviated stream containing only the&#xA;tables, in some applications the tables are fixed ahead of time.&#xA;This class allows the tables to be specified directly from client&#xA;code.  If no tables are specified either in the stream or in a&#xA;&lt;code>JPEGImageReadParam&lt;/code>, then the stream is presumed to use&#xA;the &quot;standard&quot; visually lossless tables.  See {@link JPEGQTable&#xA;&lt;code>JPEGQTable&lt;/code>} and {@link JPEGHuffmanTable&#xA;&lt;code>JPEGHuffmanTable&lt;/code>} for more information on the default&#xA;tables.&#xA;&#xA;&lt;p> The default &lt;code>JPEGImageReadParam&lt;/code> returned by the&#xA;&lt;code>getDefaultReadParam&lt;/code> method of the builtin JPEG reader&#xA;contains no tables.  Default tables may be obtained from the table&#xA;classes {@link JPEGQTable &lt;code>JPEGQTable&lt;/code>} and {@link&#xA;JPEGHuffmanTable &lt;code>JPEGHuffmanTable&lt;/code>}.&#xA;&#xA;&lt;p> If a stream does contain tables, the tables given in a&#xA;&lt;code>JPEGImageReadParam&lt;/code> are ignored.  Furthermore, if the&#xA;first image in a stream does contain tables and subsequent ones do&#xA;not, then the tables given in the first image are used for all the&#xA;abbreviated images.  Once tables have been read from a stream, they&#xA;can be overridden only by tables subsequently read from the same&#xA;stream.  In order to specify new tables, the {@link&#xA;javax.imageio.ImageReader#setInput &lt;code>setInput&lt;/code>} method of&#xA;the reader must be called to change the stream.&#xA;&#xA;&lt;p> Note that this class does not provide a means for obtaining the&#xA;tables found in a stream.  These may be extracted from a stream by&#xA;consulting the &lt;code>IIOMetadata&lt;/code> object returned by the&#xA;reader.&#xA;&#xA;&lt;p>&#xA;For more information about the operation of the built-in JPEG plug-ins,&#xA;see the &lt;A HREF=&quot;../../metadata/doc-files/jpeg_metadata.html&quot;>JPEG&#xA;metadata format specification and usage notes&lt;/A>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_111514_9029"/>
                <generalization xmi:id="_10_5_622020d_1132928322910_184952_15782" isSubstitutable="true" general="_9_5_f720368_1110473546706_761625_9101"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_955965_9027" name="JPEGHuffmanTable">
                <ownedComment xmi:id="_10_5_622020d_1132928314789_659147_9181" body="A class encapsulating a single JPEG Huffman table.  Fields are&#xA;provided for the &quot;standard&quot; tables from taken from Annex K of the&#xA;JPEG specification.  These are the tables used as defaults.&#xA;This class differs from the old unsupported&#xA;com.sun.image.codec.jpeg.JPEGHuffmanTable in two ways:&#xA;&lt;ol>&#xA;&lt;li>The lengths arrays for this class do not contain an ignored 0th&#xA;entry.  The lengths array in a JPEG stream does not contain an extra&#xA;entry, and this class is used to represent the contents of a JPEG&#xA;stream.&#xA;&lt;/li>&#xA;&lt;li>The old class incorrectly referred to Huffman &quot;symbols&quot;, while&#xA;expecting an array of values to be encoded.  This class has a&#xA;&lt;code>getValues&lt;/code> method instead of a &lt;code>getSymbols&lt;/code>&#xA;method.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;&lt;p>&#xA;For more information about the operation of the built-in JPEG plug-ins,&#xA;see the &lt;A HREF=&quot;../../metadata/doc-files/jpeg_metadata.html&quot;>JPEG&#xA;metadata format specification and usage notes&lt;/A>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_955965_9027"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_323114_9031" name="JPEGImageWriteParam">
                <ownedComment xmi:id="_10_5_622020d_1132928314799_566242_9185" body="This class adds the ability to set JPEG quantization and Huffman&#xA;tables when using the built-in JPEG writer plug-in, and to request that&#xA;optimized Huffman tables be computed for an image.  An instance of&#xA;this class will be returned from the&#xA;&lt;code>getDefaultImageWriteParam&lt;/code> methods of the built-in JPEG&#xA;&lt;code>ImageWriter&lt;/code>.&#xA;&lt;p> The principal purpose of these additions is to allow the&#xA;specification of tables to use in encoding abbreviated streams.&#xA;The built-in JPEG writer will also accept an ordinary&#xA;&lt;code>ImageWriteParam&lt;/code>, in which case the writer will&#xA;construct the necessary tables internally.&#xA;&#xA;&lt;p> In either case, the quality setting in an &lt;code>ImageWriteParam&lt;/code>&#xA;has the same meaning as for the underlying library: 1.00 means a&#xA;quantization table of all 1's, 0.75 means the &quot;standard&quot;, visually&#xA;lossless quantization table, and 0.00 means aquantization table of&#xA;all 255's.&#xA;&#xA;&lt;p> While tables for abbreviated streams are often specified by&#xA;first writing an abbreviated stream containing only the tables, in&#xA;some applications the tables are fixed ahead of time.  This class&#xA;allows the tables to be specified directly from client code.&#xA;&#xA;&lt;p> Normally, the tables are specified in the&#xA;&lt;code>IIOMetadata&lt;/code> objects passed in to the writer, and any&#xA;tables included in these objects are written to the stream.&#xA;If no tables are specified in the metadata, then an abbreviated&#xA;stream is written.  If no tables are included in the metadata and&#xA;no tables are specified in a &lt;code>JPEGImageWriteParam&lt;/code>, then&#xA;an abbreviated stream is encoded using the &quot;standard&quot; visually&#xA;lossless tables.  This class is necessary for specifying tables&#xA;when an abbreviated stream must be written without writing any tables&#xA;to a stream first.  In order to use this class, the metadata object&#xA;passed into the writer must contain no tables, and no stream metadata&#xA;must be provided.  See {@link JPEGQTable &lt;code>JPEGQTable&lt;/code>} and&#xA;{@link JPEGHuffmanTable &lt;code>JPEGHuffmanTable&lt;/code>} for more&#xA;information on the default tables.&#xA;&#xA;&lt;p> The default &lt;code>JPEGImageWriteParam&lt;/code> returned by the&#xA;&lt;code>getDefaultWriteParam&lt;/code> method of the writer contains no&#xA;tables.  Default tables are included in the default&#xA;&lt;code>IIOMetadata&lt;/code> objects returned by the writer.&#xA;&#xA;&lt;p> If the metadata does contain tables, the tables given in a&#xA;&lt;code>JPEGImageWriteParam&lt;/code> are ignored.  Furthermore, once a&#xA;set of tables has been written, only tables in the metadata can&#xA;override them for subsequent writes, whether to the same stream or&#xA;a different one.  In order to specify new tables using this class,&#xA;the {@link javax.imageio.ImageWriter#reset &lt;code>reset&lt;/code>}&#xA;method of the writer must be called.&#xA;&#xA;&lt;p>&#xA;For more information about the operation of the built-in JPEG plug-ins,&#xA;see the &lt;A HREF=&quot;../../metadata/doc-files/jpeg_metadata.html&quot;>JPEG&#xA;metadata format specification and usage notes&lt;/A>.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_323114_9031"/>
                <generalization xmi:id="_10_5_622020d_1132928322910_803272_15783" isSubstitutable="true" general="_9_5_f720368_1110473546706_834798_9107"/>
              </packagedElement>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_944051_9097" name="ImageIO" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_7003_9255" body="A class containing static convenience methods for locating&#xA;&lt;code>ImageReader&lt;/code>s and &lt;code>ImageWriter&lt;/code>s, and&#xA;performing simple encoding and decoding.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_944051_9097"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_409602_19942" name="CacheInfo" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314859_890302_9253" body="A class to hold information about caching.  Each&#xA;&lt;code>ThreadGroup&lt;/code> will have its own copy&#xA;via the &lt;code>AppContext&lt;/code> mechanism.&#xA;" annotatedElement="_9_5_f720368_1110473547940_409602_19942"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_249025_19945" name="ImageReaderIterator" visibility="package" clientDependency="_10_5_622020d_1132928322920_932956_15813">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_932956_15813" name="" supplier="_10_5_622020d_1132928322920_328313_15810" client="_9_5_f720368_1110473547940_249025_19945" contract="_10_5_622020d_1132928322920_328313_15810"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_634698_19947" name="CanDecodeInputFilter" visibility="package" clientDependency="_10_5_622020d_1132928322920_805982_15814">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_805982_15814" name="" supplier="_9_5_f720368_1110473547924_74512_19895" client="_9_5_f720368_1110473547940_634698_19947" contract="_9_5_f720368_1110473547924_74512_19895"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_199908_19949" name="CanEncodeImageAndFormatFilter" visibility="package" clientDependency="_10_5_622020d_1132928322920_516932_15815">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_516932_15815" name="" supplier="_9_5_f720368_1110473547924_74512_19895" client="_9_5_f720368_1110473547940_199908_19949" contract="_9_5_f720368_1110473547924_74512_19895"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_772906_19951" name="ContainsFilter" visibility="package" clientDependency="_10_5_622020d_1132928322920_951529_15816">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322920_951529_15816" name="" supplier="_9_5_f720368_1110473547924_74512_19895" client="_9_5_f720368_1110473547940_772906_19951" contract="_9_5_f720368_1110473547924_74512_19895"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_129966_19953" name="ImageWriterIterator" visibility="package" clientDependency="_10_5_622020d_1132928322930_526961_15820">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322930_526961_15820" name="" supplier="_10_5_622020d_1132928322930_411747_15817" client="_9_5_f720368_1110473547940_129966_19953" contract="_10_5_622020d_1132928322930_411747_15817"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_561139_19955" name="ImageTranscoderIterator" visibility="package" clientDependency="_10_5_622020d_1132928322940_21552_15824">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_21552_15824" name="" supplier="_10_5_622020d_1132928322930_846562_15821" client="_9_5_f720368_1110473547940_561139_19955" contract="_10_5_622020d_1132928322930_846562_15821"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547940_505148_19957" name="TranscoderFilter" visibility="package" clientDependency="_10_5_622020d_1132928322940_977831_15825">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_977831_15825" name="" supplier="_9_5_f720368_1110473547924_74512_19895" client="_9_5_f720368_1110473547940_505148_19957" contract="_9_5_f720368_1110473547924_74512_19895"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547924_355090_19855" name="metadata">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_939836_9021" name="IIONodeList" visibility="package" clientDependency="_10_5_622020d_1132928322910_72957_15776">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_72957_15776" name="" supplier="_9_5_f720368_1110473546940_361935_13244" client="_9_5_f720368_1110473546706_939836_9021" contract="_9_5_f720368_1110473546940_361935_13244"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_730841_9013" name="IIOMetadataFormat" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_269808_9167" body="An object describing the structure of metadata documents returned&#xA;from &lt;code>IIOMetadata.getAsTree&lt;/code> and passed to&#xA;&lt;code>IIOMetadata.setFromTree&lt;/code> and &lt;code>mergeTree&lt;/code>.&#xA;Document structures are described by a set of constraints on the&#xA;type and number of child elements that may belong to a given parent&#xA;element type, the names, types, and values of attributes that may&#xA;belong to an element, and the type and values of&#xA;&lt;code>Object&lt;/code> reference that may be stored at a node.&#xA;&#xA;&lt;p> N.B: classes that implement this interface should contain a&#xA;method declared as &lt;code>public static getInstance()&lt;/code> which&#xA;returns an instance of the class.  Commonly, an implentation will&#xA;construct only a single instance and cache it for future&#xA;invocations of &lt;code>getInstance&lt;/code>.&#xA;&#xA;&lt;p> The structures that may be described by this class are a subset&#xA;of those expressible using XML document type definitions (DTDs),&#xA;with the addition of some basic information on the datatypes of&#xA;attributes and the ability to store an &lt;code>Object&lt;/code>&#xA;reference within a node.  In the future, XML Schemas could be used&#xA;to represent these structures, and many others.&#xA;&#xA;&lt;p> The differences between&#xA;&lt;code>IIOMetadataFormat&lt;/code>-described structures and DTDs are as&#xA;follows:&#xA;&#xA;&lt;ul>&#xA;&lt;li> Elements may not contain text or mix text with embedded&#xA;tags.&#xA;&#xA;&lt;li> The children of an element must conform to one of a few simple&#xA;patterns, described in the documentation for the&#xA;&lt;code>CHILD_*&lt;/code> constants;&#xA;&#xA;&lt;li> The in-memory representation of an elements may contain a&#xA;reference to an &lt;code>Object&lt;/code>.  There is no provision for&#xA;representing such objects textually.&#xA;&lt;/ul>&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_730841_9013"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_886447_9017" name="IIODOMException" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928322910_222805_15774" isSubstitutable="true" general="_9_5_f720368_1110473546940_405634_13230"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_624939_9023" name="IIOAttr" visibility="package" clientDependency="_10_5_622020d_1132928322910_384477_15777">
              <generalization xmi:id="_10_5_622020d_1132928322910_505154_15778" isSubstitutable="true" general="_9_5_f720368_1110473546706_435467_9025"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_384477_15777" name="" supplier="_9_5_f720368_1110473546940_741813_13216" client="_9_5_f720368_1110473546706_624939_9023" contract="_9_5_f720368_1110473546940_741813_13216"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_442242_9011" name="IIOMetadataController" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_426807_9165" body="An interface to be implemented by objects that can determine the&#xA;settings of an &lt;code>IIOMetadata&lt;/code> object, either by putting&#xA;up a GUI to obtain values from a user, or by other means.  This&#xA;interface merely specifies a generic &lt;code>activate&lt;/code> method&#xA;that invokes the controller, without regard for how the controller&#xA;obtains values (&lt;i>i.e.&lt;/i>, whether the controller puts up a GUI&#xA;or merely computes a set of values is irrelevant to this&#xA;interface).&#xA;&#xA;&lt;p> Within the &lt;code>activate&lt;/code> method, a controller obtains&#xA;initial values by querying the &lt;code>IIOMetadata&lt;/code> object's&#xA;settings, either using the XML DOM tree or a plug-in specific&#xA;interface, modifies values by whatever means, then modifies the&#xA;&lt;code>IIOMetadata&lt;/code> object's settings, using either the&#xA;&lt;code>setFromTree&lt;/code> or &lt;code>mergeTree&lt;/code> methods, or a&#xA;plug-in specific interface.  In general, applications may expect&#xA;that when the &lt;code>activate&lt;/code> method returns&#xA;&lt;code>true&lt;/code>, the &lt;code>IIOMetadata&lt;/code> object is ready for&#xA;use in a write operation.&#xA;&#xA;&lt;p> Vendors may choose to provide GUIs for the&#xA;&lt;code>IIOMetadata&lt;/code> subclasses they define for a particular&#xA;plug-in.  These can be set up as default controllers in the&#xA;corresponding &lt;code>IIOMetadata&lt;/code> subclasses.&#xA;&#xA;&lt;p> Alternatively, an algorithmic process such as a database lookup&#xA;or the parsing of a command line could be used as a controller, in&#xA;which case the &lt;code>activate&lt;/code> method would simply look up or&#xA;compute the settings, call methods on &lt;code>IIOMetadata&lt;/code> to&#xA;set its state, and return &lt;code>true&lt;/code>.&#xA;&#xA;@see IIOMetadata#setController&#xA;@see IIOMetadata#getController&#xA;@see IIOMetadata#getDefaultController&#xA;@see IIOMetadata#hasController&#xA;@see IIOMetadata#activateController&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_442242_9011"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_742752_9019" name="IIONamedNodeMap" visibility="package" clientDependency="_10_5_622020d_1132928322910_294286_15775">
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_294286_15775" name="" supplier="_9_5_f720368_1110473546940_84630_13240" client="_9_5_f720368_1110473546706_742752_9019" contract="_9_5_f720368_1110473546940_84630_13240"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_98690_9015" name="IIOMetadataFormatImpl" clientDependency="_10_5_622020d_1132928322910_279996_15773" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314789_303773_9169" body="A concrete class providing a reusable implementation of the&#xA;&lt;code>IIOMetadataFormat&lt;/code> interface.  In addition, a static&#xA;instance representing the standard, plug-in neutral&#xA;&lt;code>javax_imageio_1.0&lt;/code> format is provided by the&#xA;&lt;code>getStandardFormatInstance&lt;/code> method.&#xA;&#xA;&lt;p> In order to supply localized descriptions of elements and&#xA;attributes, a &lt;code>ResourceBundle&lt;/code> with a base name of&#xA;&lt;code>this.getClass().getName() + &quot;Resources&quot;&lt;/code> should be&#xA;supplied via the usual mechanism used by&#xA;&lt;code>ResourceBundle.getBundle&lt;/code>.  Briefly, the subclasser&#xA;supplies one or more additional classes according to a naming&#xA;convention (by default, the fully-qualified name of the subclass&#xA;extending &lt;code>IIMetadataFormatImpl&lt;/code>, plus the string&#xA;&quot;Resources&quot;, plus the country, language, and variant codes&#xA;separated by underscores).  At run time, calls to&#xA;&lt;code>getElementDescription&lt;/code> or&#xA;&lt;code>getAttributeDescription&lt;/code> will attempt to load such&#xA;classes dynamically according to the supplied locale, and will use&#xA;either the element name, or the element name followed by a '/'&#xA;character followed by the attribute name as a key.  This key will&#xA;be supplied to the &lt;code>ResourceBundle&lt;/code>'s&#xA;&lt;code>getString&lt;/code> method, and the resulting localized&#xA;description of the node or attribute is returned.&#xA;&#xA;&lt;p> The subclass may supply a different base name for the resource&#xA;bundles using the &lt;code>setResourceBaseName&lt;/code> method.&#xA;&#xA;&lt;p> A subclass may choose its own localization mechanism, if so&#xA;desired, by overriding the supplied implementations of&#xA;&lt;code>getElementDescription&lt;/code> and&#xA;&lt;code>getAttributeDescription&lt;/code>.&#xA;&#xA;@see ResourceBundle#getBundle(String,Locale)&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_98690_9015"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_279996_15773" name="" supplier="_9_5_f720368_1110473546706_730841_9013" client="_9_5_f720368_1110473546706_98690_9015" contract="_9_5_f720368_1110473546706_730841_9013"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547924_145491_19861" name="Element" visibility="package"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547924_990587_19862" name="Attribute" visibility="package"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547924_337229_19863" name="ObjectValue" visibility="package"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_435467_9025" name="IIOMetadataNode" clientDependency="_10_5_622020d_1132928322910_568853_15779 _10_5_622020d_1132928322910_203481_15780">
              <ownedComment xmi:id="_10_5_622020d_1132928314789_975384_9175" body="A class representing a node in a meta-data tree, which implements&#xA;the &lt;a&#xA;href=&quot;../../../../api/org/w3c/dom/Element.html&quot;>&#xA;&lt;code>org.w3c.dom.Element&lt;/code>&lt;/a> interface and additionally allows&#xA;for the storage of non-textual objects via the&#xA;&lt;code>getUserObject&lt;/code> and &lt;code>setUserObject&lt;/code> methods.&#xA;&#xA;&lt;p> This class is not intended to be used for general XML&#xA;processing. In particular, &lt;code>Element&lt;/code> nodes created&#xA;within the Image I/O API are not compatible with those created by&#xA;Sun's standard implementation of the &lt;code>org.w3.dom&lt;/code> API.&#xA;In particular, the implementation is tuned for simple uses and may&#xA;not perform well for intensive processing.&#xA;&#xA;&lt;p> Namespaces are ignored in this implementation.  The terms &quot;tag&#xA;name&quot; and &quot;node name&quot; are always considered to be synonymous.&#xA;&#xA;@see IIOMetadata#getAsTree&#xA;@see IIOMetadata#setFromTree&#xA;@see IIOMetadata#mergeTree&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_435467_9025"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_568853_15779" name="" supplier="_9_5_f720368_1110473546940_365604_13234" client="_9_5_f720368_1110473546706_435467_9025" contract="_9_5_f720368_1110473546940_365604_13234"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322910_203481_15780" name="" supplier="_9_5_f720368_1110473546940_361935_13244" client="_9_5_f720368_1110473546706_435467_9025" contract="_9_5_f720368_1110473546940_361935_13244"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_388807_9007" name="IIOInvalidTreeException">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_56103_9161" body="An &lt;code>IIOInvalidTreeException&lt;/code> is thrown when an attempt&#xA;by an &lt;code>IIOMetadata&lt;/code> object to parse a tree of&#xA;&lt;code>IIOMetadataNode&lt;/code>s fails.  The node that led to the&#xA;parsing error may be stored.  As with any parsing error, the actual&#xA;error may occur at a different point that that where it is&#xA;detected.  The node returned by &lt;code>getOffendingNode&lt;/code>&#xA;should merely be considered as a clue to the actual nature of the&#xA;problem.&#xA;&#xA;@see IIOMetadata#setFromTree&#xA;@see IIOMetadata#mergeTree&#xA;@see IIOMetadataNode&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_388807_9007"/>
              <generalization xmi:id="_10_5_622020d_1132928322910_965398_15772" isSubstitutable="true" general="_9_5_f720368_1110473546706_631205_9089"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_158357_9009" name="IIOMetadata" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314779_351932_9163" body="An abstract class to be extended by objects that represent metadata&#xA;(non-image data) associated with images and streams.  Plug-ins&#xA;represent metadata using opaque, plug-in specific objects.  These&#xA;objects, however, provide the ability to access their internal&#xA;information as a tree of &lt;code>IIOMetadataNode&lt;/code> objects that&#xA;support the XML DOM interfaces as well as additional interfaces for&#xA;storing non-textual data and retrieving information about legal&#xA;data values.  The format of such trees is plug-in dependent, but&#xA;plug-ins may choose to support a plug-in neutral format described&#xA;below.  A single plug-in may support multiple metadata formats,&#xA;whose names maybe determined by calling&#xA;&lt;code>getMetadataFormatNames&lt;/code>.  The plug-in may also support&#xA;a single special format, referred to as the &quot;native&quot; format, which&#xA;is designed to encode its metadata losslessly.  This format will&#xA;typically be designed specifically to work with a specific file&#xA;format, so that images may be loaded and saved in the same format&#xA;with no loss of metadata, but may be less useful for transfering&#xA;metadata between an &lt;code>ImageReader&lt;/code> and an&#xA;&lt;code>ImageWriter&lt;/code> for different image formats.  To convert&#xA;between two native formats as losslessly as the image file formats&#xA;will allow, an &lt;code>ImageTranscoder&lt;/code> object must be used.&#xA;&#xA;@see javax.imageio.ImageReader#getImageMetadata&#xA;@see javax.imageio.ImageReader#getStreamMetadata&#xA;@see javax.imageio.ImageReader#readAll&#xA;@see javax.imageio.ImageWriter#getDefaultStreamMetadata&#xA;@see javax.imageio.ImageWriter#getDefaultImageMetadata&#xA;@see javax.imageio.ImageWriter#write&#xA;@see javax.imageio.ImageWriter#convertImageMetadata&#xA;@see javax.imageio.ImageWriter#convertStreamMetadata&#xA;@see javax.imageio.IIOImage&#xA;@see javax.imageio.ImageTranscoder&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_158357_9009"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_748992_9091" name="IIOImage">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_957461_9248" body="A simple container class to aggregate an image, a set of&#xA;thumbnail (preview) images, and an object representing metadata&#xA;associated with the image.&#xA;&#xA;&lt;p> The image data may take the form of either a&#xA;&lt;code>RenderedImage&lt;/code>, or a &lt;code>Raster&lt;/code>.  Reader&#xA;methods that return an &lt;code>IIOImage&lt;/code> will always return a&#xA;&lt;code>BufferedImage&lt;/code> using the &lt;code>RenderedImage&lt;/code>&#xA;reference.  Writer methods that accept an &lt;code>IIOImage&lt;/code>&#xA;will always accept a &lt;code>RenderedImage&lt;/code>, and may optionally&#xA;accept a &lt;code>Raster&lt;/code>.&#xA;&#xA;&lt;p> Exactly one of &lt;code>getRenderedImage&lt;/code> and&#xA;&lt;code>getRaster&lt;/code> will return a non-&lt;code>null&lt;/code> value.&#xA;Subclasses are responsible for ensuring this behavior.&#xA;&#xA;@see ImageReader#readAll(int, ImageReadParam)&#xA;@see ImageReader#readAll(java.util.Iterator)&#xA;@see ImageWriter#write(javax.imageio.metadata.IIOMetadata,&#xA;IIOImage, ImageWriteParam)&#xA;@see ImageWriter#write(IIOImage)&#xA;@see ImageWriter#writeToSequence(IIOImage, ImageWriteParam)&#xA;@see ImageWriter#writeInsert(int, IIOImage, ImageWriteParam)&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_748992_9091"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_590746_9099" name="ImageReader" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314859_209301_9257" body="An abstract superclass for parsing and decoding of images.  This&#xA;class must be subclassed by classes that read in images in the&#xA;context of the Java Image I/O framework.&#xA;&#xA;&lt;p> &lt;code>ImageReader&lt;/code> objects are normally instantiated by&#xA;the service provider interface (SPI) class for the specific format.&#xA;Service provider classes (e.g., instances of&#xA;&lt;code>ImageReaderSpi&lt;/code>) are registered with the&#xA;&lt;code>IIORegistry&lt;/code>, which uses them for format recognition&#xA;and presentation of available format readers and writers.&#xA;&#xA;&lt;p> When an input source is set (using the &lt;code>setInput&lt;/code>&#xA;method), it may be marked as &quot;seek forward only&quot;.  This setting&#xA;means that images contained within the input source will only be&#xA;read in order, possibly allowing the reader to avoid caching&#xA;portions of the input containing data associated with images that&#xA;have been read previously.&#xA;&#xA;@see ImageWriter&#xA;@see javax.imageio.spi.IIORegistry&#xA;@see javax.imageio.spi.ImageReaderSpi&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_590746_9099"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928322920_328313_15810" name="Iterator&lt;ImageReader>">
            <templateBinding xmi:id="_10_5_622020d_1132928322920_232529_15811" signature="_10_5_622020d_1132928313266_660412_7328">
              <parameterSubstitution xmi:id="_10_5_622020d_1132928322920_812460_15812" formal="_10_5_622020d_1132928313266_876300_7329" actual="_9_5_f720368_1110473546706_590746_9099"/>
            </templateBinding>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_533238_9103" name="ImageTranscoder" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314869_440738_9261" body="An interface providing metadata transcoding capability.&#xA;&#xA;&lt;p> Any image may be transcoded (written to a different format&#xA;than the one it was originally stored in) simply by performing&#xA;a read operation followed by a write operation.  However, loss&#xA;of data may occur in this process due to format differences.&#xA;&#xA;&lt;p> In general, the best results will be achieved when&#xA;format-specific metadata objects can be created to encapsulate as&#xA;much information about the image and its associated metadata as&#xA;possible, in terms that are understood by the specific&#xA;&lt;code>ImageWriter&lt;/code> used to perform the encoding.&#xA;&#xA;&lt;p> An &lt;code>ImageTranscoder&lt;/code> may be used to convert the&#xA;&lt;code>IIOMetadata&lt;/code> objects supplied by the&#xA;&lt;code>ImageReader&lt;/code> (representing per-stream and per-image&#xA;metadata) into corresponding objects suitable for encoding by a&#xA;particular &lt;code>ImageWriter&lt;/code>.  In the case where the methods&#xA;of this interface are being called directly on an&#xA;&lt;code>ImageWriter&lt;/code>, the output will be suitable for that&#xA;writer.&#xA;&#xA;&lt;p> The internal details of converting an &lt;code>IIOMetadata&lt;/code>&#xA;object into a writer-specific format will vary according to the&#xA;context of the operation.  Typically, an &lt;code>ImageWriter&lt;/code>&#xA;will inspect the incoming object to see if it implements additional&#xA;interfaces with which the writer is familiar.  This might be the&#xA;case, for example, if the object was obtained by means of a read&#xA;operation on a reader plug-in written by the same vendor as the&#xA;writer.  In this case, the writer may access the incoming object by&#xA;means of its plug-in specific interfaces.  In this case, the&#xA;re-encoding may be close to lossless if the image file format is&#xA;kept constant.  If the format is changing, the writer may still&#xA;attempt to preserve as much information as possible.&#xA;&#xA;&lt;p> If the incoming object does not implement any additional&#xA;interfaces known to the writer, the writer has no choice but to&#xA;access it via the standard &lt;code>IIOMetadata&lt;/code> interfaces such&#xA;as the tree view provided by &lt;code>IIOMetadata.getAsTree&lt;/code>.&#xA;In this case, there is likely to be significant loss of&#xA;information.&#xA;&#xA;&lt;p> An independent &lt;code>ImageTranscoder&lt;/code> essentially takes&#xA;on the same role as the writer plug-in in the above examples.  It&#xA;must be familiar with the private interfaces used by both the&#xA;reader and writer plug-ins, and manually instantiate an object that&#xA;will be usable by the writer.  The resulting metadata objects may&#xA;be used by the writer directly.&#xA;&#xA;&lt;p> No independent implementations of &lt;code>ImageTranscoder&lt;/code>&#xA;are provided as part of the standard API.  Instead, the intention&#xA;of this interface is to provide a way for implementations to be&#xA;created and discovered by applications as the need arises.&#xA;&#xA;@version 0.5&#xA;" annotatedElement="_9_5_f720368_1110473546706_533238_9103"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548112_91580_20929" name="sql">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_22193_9777" name="XADataSource" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316982_680195_10779" body="A factory for &lt;code>XAConnection&lt;/code> objects that is used internally.&#xA;An object that implements the &lt;code>XADataSource&lt;/code> interface is&#xA;typically registered with a naming service that uses the&#xA;Java Naming and Directory Interface&lt;sup>&lt;font size=-3>TM&lt;/font>&lt;/sup>&#xA;(JNDI).&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_22193_9777"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_460227_9775" name="XAConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316982_97396_10777" body="An object that provides support for distributed&#xA;transactions.  An &lt;code>XAConnection&lt;/code> object  may be enlisted&#xA;in a distributed transaction by means of an &lt;code>XAResource&lt;/code> object.&#xA;A transaction manager, usually part of a middle tier server, manages an&#xA;&lt;code>XAConnection&lt;/code> object through the &lt;code>XAResource&lt;/code> object.&#xA;&lt;P>&#xA;An application programmer does not use this interface directly; rather,&#xA;it is used by a transaction manager working in the middle tier server.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_460227_9775"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_812075_16665" isSubstitutable="true" general="_9_5_f720368_1110473546753_1680_9759"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_232929_9751" name="ConnectionEvent">
            <ownedComment xmi:id="_10_5_622020d_1132928316962_26326_10753" body="&lt;P>An &lt;code>Event&lt;/code> object that provides information about the&#xA;source of a connection-related event.  &lt;code>ConnectionEvent&lt;/code>&#xA;objects are generated when an application closes a pooled connection&#xA;and when an error occurs.  The &lt;code>ConnectionEvent&lt;/code> object&#xA;contains two kinds of information:&#xA;&lt;UL>&#xA;&lt;LI>The pooled connection closed by the application&#xA;&lt;LI>In the case of an error event, the &lt;code>SQLException&lt;/code>&#xA;about to be thrown to the application&#xA;&lt;/UL>&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_232929_9751"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_414862_16659" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_133680_9757" name="DataSource" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_797151_10759" body="&lt;p>A factory for connections to the physical data source that this&#xA;&lt;code>DataSource&lt;/code> object represents.  An alternative to the&#xA;&lt;code>DriverManager&lt;/code> facility, a &lt;code>DataSource&lt;/code> object&#xA;is the preferred means of getting a connection. An object that implements&#xA;the &lt;code>DataSource&lt;/code> interface will typically be&#xA;registered with a naming service based on the&#xA;Java&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> Naming and Directory (JNDI) API.&#xA;&lt;P>&#xA;The &lt;code>DataSource&lt;/code> interface is implemented by a driver vendor.&#xA;There are three types of implementations:&#xA;&lt;OL>&#xA;&lt;LI>Basic implementation -- produces a standard &lt;code>Connection&lt;/code>&#xA;object&#xA;&lt;LI>Connection pooling implementation -- produces a &lt;code>Connection&lt;/code>&#xA;object that will automatically participate in connection pooling.  This&#xA;implementation works with a middle-tier connection pooling manager.&#xA;&lt;LI>Distributed transaction implementation -- produces a&#xA;&lt;code>Connection&lt;/code> object that may be used for distributed&#xA;transactions and almost always participates in connection pooling.&#xA;This implementation works with a middle-tier&#xA;transaction manager and almost always with a connection&#xA;pooling manager.&#xA;&lt;/OL>&#xA;&lt;P>&#xA;A &lt;code>DataSource&lt;/code> object has properties that can be modified&#xA;when necessary.  For example, if the data source is moved to a different&#xA;server, the property for the server can be changed.  The benefit is that&#xA;because the data source's properties can be changed, any code accessing&#xA;that data source does not need to be changed.&#xA;&lt;P>&#xA;A driver that is accessed via a &lt;code>DataSource&lt;/code> object does not&#xA;register itself with the &lt;code>DriverManager&lt;/code>.  Rather, a&#xA;&lt;code>DataSource&lt;/code> object is retrieved though a lookup operation&#xA;and then used to create a &lt;code>Connection&lt;/code> object.  With a basic&#xA;implementation, the connection obtained through a &lt;code>DataSource&lt;/code>&#xA;object is identical to a connection obtained through the&#xA;&lt;code>DriverManager&lt;/code> facility.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_133680_9757"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_1680_9759" name="PooledConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_699187_10761" body="An object that provides hooks for connection pool management.&#xA;A &lt;code>PooledConnection&lt;/code> object&#xA;represents a physical connection to a data source.  The connection&#xA;can be recycled rather than being closed when an application is&#xA;finished with it, thus reducing the number of connections that&#xA;need to be made.&#xA;&lt;P>&#xA;An application programmer does not use the &lt;code>PooledConnection&lt;/code>&#xA;interface directly; rather, it is used by a middle tier infrastructure&#xA;that manages the pooling of connections.&#xA;&lt;P>&#xA;When an application calls the method &lt;code>DataSource.getConnection&lt;/code>,&#xA;it gets back a &lt;code>Connection&lt;/code> object.  If connection pooling is&#xA;being done, that &lt;code>Connection&lt;/code> object is actually a handle to&#xA;a &lt;code>PooledConnection&lt;/code> object, which is a physical connection.&#xA;&lt;P>&#xA;The connection pool manager, typically the application server, maintains&#xA;a pool of &lt;code>PooledConnection&lt;/code> objects.  If there is a&#xA;&lt;code>PooledConnection&lt;/code> object available in the pool, the&#xA;connection pool manager returns a &lt;code>Connection&lt;/code> object that&#xA;is a handle to that physical connection.&#xA;If no &lt;code>PooledConnection&lt;/code> object is available, the&#xA;connection pool manager calls the &lt;code>PooledConnection&lt;/code>&#xA;method &lt;code>getConnection&lt;/code> to create a new physical connection and&#xA;returns a handle to it.&#xA;&lt;P>&#xA;When an application closes a connection, it calls the &lt;code>Connection&lt;/code>&#xA;method &lt;code>close&lt;/code>. When connection pooling is being done,&#xA;the connection pool manager is notified because it has registered itself as&#xA;a &lt;code>ConnectionEventListener&lt;/code> object using the&#xA;&lt;code>ConnectionPool&lt;/code> method &lt;code>addConnectionEventListener&lt;/code>.&#xA;The connection pool manager deactivates the handle to&#xA;the &lt;code>PooledConnection&lt;/code> object and  returns the&#xA;&lt;code>PooledConnection&lt;/code> object to the pool of connections so that&#xA;it can be used again.  Thus, when an application closes its connection,&#xA;the underlying physical connection is recycled rather than being closed.&#xA;&lt;P>&#xA;The physical connection is not closed until the connection pool manager&#xA;calls the &lt;code>PooledConnection&lt;/code> method &lt;code>close&lt;/code>.&#xA;This method is generally called to have an orderly shutdown of the server or&#xA;if a fatal error has made the connection unusable.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_1680_9759"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_793360_9769" name="RowSetMetaData" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_120218_10771" body="An object that contains information about the columns in a&#xA;&lt;code>RowSet&lt;/code> object.  This interface is&#xA;an extension of the &lt;code>ResultSetMetaData&lt;/code> interface with&#xA;methods for setting the values in a &lt;code>RowSetMetaData&lt;/code> object.&#xA;When a &lt;code>RowSetReader&lt;/code> object reads data into a &lt;code>RowSet&lt;/code>&#xA;object, it creates a &lt;code>RowSetMetaData&lt;/code> object and initializes it&#xA;using the methods in the &lt;code>RowSetMetaData&lt;/code> interface.  Then the&#xA;reader passes the &lt;code>RowSetMetaData&lt;/code> object to the rowset.&#xA;&lt;P>&#xA;The methods in this interface are invoked internally when an application&#xA;calls the method &lt;code>RowSet.execute&lt;/code>; an application&#xA;programmer would not use them directly.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_793360_9769"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_145397_16664" isSubstitutable="true" general="_9_5_f720368_1110473546690_588872_8581"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_507789_9773" name="RowSetWriter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316982_459090_10775" body="An object that implements the &lt;code>RowSetWriter&lt;/code> interface,&#xA;called a &lt;i>writer&lt;/i>. A writer may be registered with a &lt;code>RowSet&lt;/code>&#xA;object that supports the reader/writer paradigm.&#xA;&lt;P>&#xA;If a disconnected &lt;code>RowSet&lt;/code> object modifies some of its data,&#xA;and it has a writer associated with it, it may be implemented so that it&#xA;calls on the writer's &lt;code>writeData&lt;/code> method internally&#xA;to write the updates back to the data source. In order to do this, the writer&#xA;must first establish a connection with the rowset's data source.&#xA;&lt;P>&#xA;If the data to be updated has already been changed in the data source, there&#xA;is a conflict, in which case the writer will not write&#xA;the changes to the data source.  The algorithm the writer uses for preventing&#xA;or limiting conflicts depends entirely on its implementation.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_507789_9773"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_943654_9763" name="RowSetEvent">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_980807_10765" body="An &lt;code>Event&lt;/code> object generated when an event occurs to a&#xA;&lt;code>RowSet&lt;/code> object.  A &lt;code>RowSetEvent&lt;/code> object is&#xA;generated when a single row in a rowset is changed, the whole rowset&#xA;is changed, or the rowset cursor moves.&#xA;&lt;P>&#xA;When an event occurs on a &lt;code>RowSet&lt;/code> object, one of the&#xA;&lt;code>RowSetListener&lt;/code> methods will be sent to all registered&#xA;listeners to notify them of the event.  An &lt;code>Event&lt;/code> object&#xA;is supplied to the &lt;code>RowSetListener&lt;/code> method so that the&#xA;listener can use it to find out which &lt;code>RowSet&lt;/code> object is&#xA;the source of the event.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_943654_9763"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_895118_16662" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_47048_9767" name="RowSetListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_201626_10769" body="An interface that must be implemented by a&#xA;component that wants to be notified when a significant&#xA;event happens in the life of a &lt;code>RowSet&lt;/code> object.&#xA;A component becomes a listener by being registered with a&#xA;&lt;code>RowSet&lt;/code> object via the method &lt;code>RowSet.addRowSetListener&lt;/code>.&#xA;How a registered component implements this interface determines what it does&#xA;when it is notified of an event.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_47048_9767"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_844346_16663" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_419892_9761" name="RowSet" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_768446_10763" body="The interface that adds support to the JDBC API for the&#xA;JavaBeans&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> component model.&#xA;A rowset, which can be used as a JavaBeans component in&#xA;a visual Bean development environment, can be created and&#xA;configured at design time and executed at run time.&#xA;&lt;P>&#xA;The &lt;code>RowSet&lt;/code>&#xA;interface provides a set of JavaBeans properties that allow a &lt;code>RowSet&lt;/code>&#xA;instance to be configured to connect to a JDBC data source and read&#xA;some data from the data source.  A group of setter methods (&lt;code>setInt&lt;/code>,&#xA;&lt;code>setBytes&lt;/code>, &lt;code>setString&lt;/code>, and so on)&#xA;provide a way to pass input parameters to a rowset's command property.&#xA;This command is the SQL query the rowset uses when it gets its data from&#xA;a relational database, which is generally the case.&#xA;&lt;P>&#xA;The &lt;code>RowSet&lt;/code>&#xA;interface supports JavaBeans events, allowing other components in an&#xA;application to be notified when an event occurs on a rowset,&#xA;such as a change in its value.&#xA;&#xA;&lt;P>The &lt;code>RowSet&lt;/code> interface is unique in that it is intended to be&#xA;implemented using the rest of the JDBC API.  In other words, a&#xA;&lt;code>RowSet&lt;/code> implementation is a layer of software that executes &quot;on top&quot;&#xA;of a JDBC driver.  Implementations of the &lt;code>RowSet&lt;/code> interface can&#xA;be provided by anyone, including JDBC driver vendors who want to&#xA;provide a &lt;code>RowSet&lt;/code> implementation as part of their JDBC products.&#xA;&lt;P>&#xA;A &lt;code>RowSet&lt;/code> object may make a connection with a data source and&#xA;maintain that connection throughout its life cycle, in which case it is&#xA;called a &lt;i>connected&lt;/i> rowset.  A rowset may also make a connection with&#xA;a data source, get data from it, and then close the connection. Such a rowset&#xA;is called a &lt;i>disconnected&lt;/i> rowset.  A disconnected rowset may make&#xA;changes to its data while it is disconnected and then send the changes back&#xA;to the original source of the data, but it must reestablish a connection to do so.&#xA;&lt;P>&#xA;A disconnected rowset may have a reader (a &lt;code>RowSetReader&lt;/code> object)&#xA;and a writer (a &lt;code>RowSetWriter&lt;/code> object) associated with it.&#xA;The reader may be implemented in many different ways to populate a rowset&#xA;with data, including getting data from a non-relational data source. The&#xA;writer can also be implemented in many different ways to propagate changes&#xA;made to the rowset's data back to the underlying data source.&#xA;&lt;P>&#xA;Rowsets are easy to use.  The &lt;code>RowSet&lt;/code> interface extends the standard&#xA;&lt;code>java.sql.ResultSet&lt;/code> interface.  The &lt;code>RowSetMetaData&lt;/code>&#xA;interface extends the &lt;code>java.sql.ResultSetMetaData&lt;/code> interface.&#xA;Thus, developers familiar&#xA;with the JDBC API will have to learn a minimal number of new APIs to&#xA;use rowsets.  In addition, third-party software tools that work with&#xA;JDBC &lt;code>ResultSet&lt;/code> objects will also easily be made to work with rowsets.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_419892_9761"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_461133_16661" isSubstitutable="true" general="_9_5_f720368_1110473546690_728645_8579"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_15016_9755" name="ConnectionPoolDataSource" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_6232_10757" body="A factory for &lt;code>PooledConnection&lt;/code>&#xA;objects.  An object that implements this interface will typically be&#xA;registered with a naming service that is based on the&#xA;Java&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> Naming and Directory Interface&#xA;(JNDI).&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_15016_9755"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_489232_9771" name="RowSetReader" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316982_100542_10773" body="The facility that a disconnected &lt;code>RowSet&lt;/code> object calls on&#xA;to populate itself with rows of data. A reader (an object implementing the&#xA;&lt;code>RowSetReader&lt;/code> interface) may be registered with&#xA;a &lt;code>RowSet&lt;/code> object that supports the reader/writer paradigm.&#xA;When the &lt;code>RowSet&lt;/code> object's &lt;code>execute&lt;/code> method is&#xA;called, it in turn calls the reader's &lt;code>readData&lt;/code> method.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_489232_9771"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928316281_93165_10659" name="rowset">
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316781_354065_10727" name="FilteredRowSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316781_611558_10729" body="The standard interface that all standard implementations of&#xA;&lt;code>FilteredRowSet&lt;/code> must implement. The &lt;code>FilteredRowSetImpl&lt;/code> class&#xA;provides the reference implementation which may be extended if required.&#xA;Alternatively, a vendor is free to implement its own version&#xA;by implementing this interface.&#xA;&#xA;&lt;h3>1.0 Background&lt;/h3>&#xA;&#xA;There are occasions when a &lt;code>RowSet&lt;/code> object has a need to provide a degree&#xA;of filtering to its contents. One possible solution is to provide&#xA;a query language for all standard &lt;code>RowSet&lt;/code> implementations; however,&#xA;this is an impractical approach for lightweight components such as disconnected&#xA;&lt;code>RowSet&lt;/code>&#xA;objects. The &lt;code>FilteredRowSet&lt;/code> interface seeks to address this need&#xA;without supplying a heavyweight query language along with the processing that&#xA;such a query language would require.&#xA;&lt;p>&#xA;A JDBC &lt;code>FilteredRowSet&lt;/code> standard implementation implements the&#xA;&lt;code>RowSet&lt;/code> interfaces and extends the&#xA;&lt;code>CachedRowSet&lt;/code>&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> class. The&#xA;&lt;code>CachedRowSet&lt;/code> class provides a set of protected cursor manipulation&#xA;methods, which a &lt;code>FilteredRowSet&lt;/code> implementation can override&#xA;to supply filtering support.&#xA;&#xA;&lt;h3>2.0 Predicate Sharing&lt;/h3>&#xA;&#xA;If a &lt;code>FilteredRowSet&lt;/code> implementation is shared using the&#xA;inherited &lt;code>createShared&lt;/code> method in parent interfaces, the&#xA;&lt;code>Predicate&lt;/code> should be shared without modification by all&#xA;&lt;code>FilteredRowSet&lt;/code> instance clones.&#xA;&#xA;&lt;h3>3.0 Usage&lt;/h3>&#xA;&lt;p>&#xA;By implementing a &lt;code>Predicate&lt;/code> (see example in &lt;a href=&quot;Predicate.html&quot;>Predicate&lt;/a>&#xA;class JavaDoc), a &lt;code>FilteredRowSet&lt;/code> could then be used as described&#xA;below.&#xA;&lt;P>&#xA;&lt;code>&#xA;&lt;pre>&#xA;FilteredRowSet frs = new FilteredRowSetImpl();&#xA;frs.populate(rs);&#xA;&#xA;Range name = new Range(&quot;Alpha&quot;, &quot;Bravo&quot;, &quot;columnName&quot;);&#xA;frs.setFilter(name);&#xA;&#xA;frs.next() // only names from &quot;Alpha&quot; to &quot;Bravo&quot; will be returned&#xA;&lt;/pre>&#xA;&lt;/code>&#xA;In the example above, we initialize a &lt;code>Range&lt;/code> object which&#xA;implements the &lt;code>Predicate&lt;/code> interface. This object expresses&#xA;the following constraints: All rows outputted or modified from this&#xA;&lt;code>FilteredRowSet&lt;/code> object must fall between the values 'Alpha' and&#xA;'Bravo' both values inclusive, in the column 'columnName'. If a filter is&#xA;applied to a &lt;code>FilteredRowSet&lt;/code> object that contains no data that&#xA;falls within the range of the filter, no rows are returned.&#xA;&lt;p>&#xA;This framework allows multiple classes implementing predicates to be&#xA;used in combination to achieved the required filtering result with&#xA;out the need for query language processing.&#xA;&lt;p>&#xA;&lt;h3>4.0 Updating a &lt;code>FilteredRowSet&lt;/code> Object&lt;/h3>&#xA;The predicate set on a &lt;code>FilteredRowSet&lt;/code> object&#xA;applies a criterion on all rows in a&#xA;&lt;code>RowSet&lt;/code> object to manage a subset of rows in a &lt;code>RowSet&lt;/code>&#xA;object. This criterion governs the subset of rows that are visible and also&#xA;defines which rows can be modified, deleted or inserted.&#xA;&lt;p>&#xA;Therefore, the predicate set on a &lt;code>FilteredRowSet&lt;/code> object must be&#xA;considered as bi-directional and the set criterion as the gating mechanism&#xA;for all views and updates to the &lt;code>FilteredRowSet&lt;/code> object. Any attempt&#xA;to update the &lt;code>FilteredRowSet&lt;/code> that violates the criterion will&#xA;result in a &lt;code>SQLException&lt;/code> object being thrown.&#xA;&lt;p>&#xA;The &lt;code>FilteredRowSet&lt;/code> range criterion can be modified by applying&#xA;a new &lt;code>Predicate&lt;/code> object to the &lt;code>FilteredRowSet&lt;/code>&#xA;instance at any time. This is  possible if no additional references to the&#xA;&lt;code>FilteredRowSet&lt;/code> object are detected. A new filter has has an&#xA;immediate effect on criterion enforcement within the&#xA;&lt;code>FilteredRowSet&lt;/code> object, and all subsequent views and updates will be&#xA;subject to similar enforcement.&#xA;&lt;p>&#xA;&lt;h3>5.0 Behavior of Rows Outside the Filter&lt;/h3>&#xA;Rows that fall outside of the filter set on a &lt;code>FilteredRowSet&lt;/code>&#xA;object cannot be modified until the filter is removed or a&#xA;new filter is applied.&#xA;&lt;p>&#xA;Furthermore, only rows that fall within the bounds of a filter will be&#xA;synchronized with the data source.&#xA;&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316781_354065_10727"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_622195_16650" isSubstitutable="true" general="_10_5_622020d_1132928316842_953328_10749"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316842_387521_10746" name="RowSetWarning">
              <ownedComment xmi:id="_10_5_622020d_1132928316842_205905_10748" body="An extension of &lt;code>SQLException&lt;/code> that provides information&#xA;about database warnings set on &lt;code>RowSet&lt;/code> objects.&#xA;Warnings are silently chained to the object whose method call&#xA;caused it to be reported.&#xA;This class complements the &lt;code>SQLWarning&lt;/code> class.&#xA;&lt;P>&#xA;Rowset warnings may be retrieved from &lt;code>JdbcRowSet&lt;/code>,&#xA;&lt;code>CachedRowSet&lt;/code>&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup>,&#xA;&lt;code>WebRowSet&lt;/code>, &lt;code>FilteredRowSet&lt;/code>, or &lt;code>JoinRowSet&lt;/code>&#xA;implementations. To retrieve the first warning reported on any&#xA;&lt;code>RowSet&lt;/code>&#xA;implementation,  use the method &lt;code>getRowSetWarnings&lt;/code> defined&#xA;in the &lt;code>JdbcRowSet&lt;/code> interface or the &lt;code>CachedRowSet&lt;/code>&#xA;interface. To retrieve a warning chained to the first warning, use the&#xA;&lt;code>RowSetWarning&lt;/code> method&#xA;&lt;code>getNextWarning&lt;/code>. To retrieve subsequent warnings, call&#xA;&lt;code>getNextWarning&lt;/code> on each &lt;code>RowSetWarning&lt;/code> object that is&#xA;returned.&#xA;&lt;P>&#xA;The inherited methods &lt;code>getMessage&lt;/code>, &lt;code>getSQLState&lt;/code>,&#xA;and &lt;code>getErrorCode&lt;/code> retrieve information contained in a&#xA;&lt;code>RowSetWarning&lt;/code> object.&#xA;" annotatedElement="_10_5_622020d_1132928316842_387521_10746"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_424607_16657" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316781_129544_10730" name="JdbcRowSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316791_379537_10732" body="The standard interface that all standard implementations of&#xA;&lt;code>JdbcRowSet&lt;/code> must implement.&#xA;&#xA;&lt;h3>1.0 Overview&lt;/h3>&#xA;A wrapper around a &lt;code>ResultSet&lt;/code> object that makes it possible&#xA;to use the result set as a JavaBeans&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup>&#xA;component.  Thus, a &lt;code>JdbcRowSet&lt;/code> object can be one of the Beans that&#xA;a tool makes available for composing an application.  Because&#xA;a &lt;code>JdbcRowSet&lt;/code> is a connected rowset, that is, it continually&#xA;maintains its connection to a database using a JDBC technology-enabled&#xA;driver, it also effectively makes the driver a JavaBeans component.&#xA;&lt;P>&#xA;Because it is always connected to its database, an instance of&#xA;&lt;code>JdbcRowSet&lt;/code>&#xA;can simply take calls invoked on it and in turn call them on its&#xA;&lt;code>ResultSet&lt;/code> object. As a consequence, a result set can, for&#xA;example, be a component in a Swing application.&#xA;&lt;P>&#xA;Another advantage of a &lt;code>JdbcRowSet&lt;/code> object is that it can be&#xA;used to make a &lt;code>ResultSet&lt;/code> object scrollable and updatable.  All&#xA;&lt;code>RowSet&lt;/code> objects are by default scrollable and updatable. If&#xA;the driver and database being used do not support scrolling and/or updating&#xA;of result sets, an application can populate a &lt;code>JdbcRowSet&lt;/code> object&#xA;with the data of a &lt;code>ResultSet&lt;/code> object and then operate on the&#xA;&lt;code>JdbcRowSet&lt;/code> object as if it were the &lt;code>ResultSet&lt;/code>&#xA;object.&#xA;&lt;P>&#xA;&lt;h3>2.0 Creating a &lt;code>JdbcRowSet&lt;/code> Object&lt;/h3>&#xA;The reference implementation of the &lt;code>JdbcRowSet&lt;/code> interface,&#xA;&lt;code>JdbcRowSetImpl&lt;/code>, provides an implementation of&#xA;the default constructor.  A new instance is initialized with&#xA;default values, which can be set with new values as needed. A&#xA;new instance is not really functional until its &lt;code>execute&lt;/code>&#xA;method is called. In general, this method does the following:&#xA;&lt;UL>&#xA;&lt;LI> establishes a connection with a database&#xA;&lt;LI> creates a &lt;code>PreparedStatement&lt;/code> object and sets any of its&#xA;placeholder parameters&#xA;&lt;LI> executes the statement to create a &lt;code>ResultSet&lt;/code> object&#xA;&lt;/UL>&#xA;If the &lt;code>execute&lt;/code> method is successful, it will set the&#xA;appropriate private &lt;code>JdbcRowSet&lt;/code> fields with the following:&#xA;&lt;UL>&#xA;&lt;LI> a &lt;code>Connection&lt;/code> object -- the connection between the rowset&#xA;and the database&#xA;&lt;LI> a &lt;code>PreparedStatement&lt;/code> object -- the query that produces&#xA;the result set&#xA;&lt;LI> a &lt;code>ResultSet&lt;/code> object -- the result set that the rowset's&#xA;command produced and that is being made, in effect, a JavaBeans&#xA;component&#xA;&lt;/UL>&#xA;If these fields have not been set, meaning that the &lt;code>execute&lt;/code>&#xA;method has not executed successfully, no methods other than&#xA;&lt;code>execute&lt;/code> and &lt;code>close&lt;/code> may be called on the&#xA;rowset.  All other public methods will throw an exception.&#xA;&lt;P>&#xA;Before calling the &lt;code>execute&lt;/code> method, however, the command&#xA;and properties needed for establishing a connection must be set.&#xA;The following code fragment creates a &lt;code>JdbcRowSetImpl&lt;/code> object,&#xA;sets the command and connection properties, sets the placeholder parameter,&#xA;and then invokes the method &lt;code>execute&lt;/code>.&#xA;&lt;PRE>&#xA;JdbcRowSetImpl jrs = new JdbcRowSetImpl();&#xA;jrs.setCommand(&quot;SELECT * FROM TITLES WHERE TYPE = ?&quot;);&#xA;jrs.setURL(&quot;jdbc:myDriver:myAttribute&quot;);&#xA;jrs.setUsername(&quot;cervantes&quot;);&#xA;jrs.setPassword(&quot;sancho&quot;);&#xA;jrs.setString(1, &quot;BIOGRAPHY&quot;);&#xA;jrs.execute();&#xA;&lt;/PRE>&#xA;The variable &lt;code>jrs&lt;/code> now represents an instance of&#xA;&lt;code>JdbcRowSetImpl&lt;/code> that is a thin wrapper around the&#xA;&lt;code>ResultSet&lt;/code> object containing all the rows in the&#xA;table &lt;code>TITLES&lt;/code> where the type of book is biography.&#xA;At this point, operations called on &lt;code>jrs&lt;/code> will&#xA;affect the rows in the result set, which is effectively a JavaBeans&#xA;component.&#xA;&lt;P>&#xA;The implementation of the &lt;code>RowSet&lt;/code> method &lt;code>execute&lt;/code> in the&#xA;&lt;code>JdbcRowSet&lt;/code> reference implementation differs from that in the&#xA;&lt;code>CachedRowSet&lt;/code>&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup>&#xA;reference implementation to account for the different&#xA;requirements of connected and disconnected &lt;code>RowSet&lt;/code> objects.&#xA;&lt;p>&#xA;&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316781_129544_10730"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_187218_16651" isSubstitutable="true" general="_9_5_f720368_1110473546753_419892_9761"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_952295_16652" isSubstitutable="true" general="_10_5_622020d_1132928316791_93808_10733"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928316291_669465_10693" name="spi">
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316401_674496_10718" name="XmlWriter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316401_338343_10720" body="A specialized interface that facilitates an extension of the&#xA;&lt;code>SyncProvider&lt;/code> abstract class for XML orientated&#xA;synchronization providers.&#xA;&lt;p>&#xA;&lt;code>SyncProvider&lt;/code>  implementations that supply XML data writer&#xA;capabilities such as output XML stream capabilities can implement this&#xA;interface to provider standard &lt;code>XmlWriter&lt;/code> objects to&#xA;&lt;code>WebRowSet&lt;/code> implementations.&#xA;&lt;P>&#xA;Writing a &lt;code>WebRowSet&lt;/code> object includes printing the&#xA;rowset's data, metadata, and properties, all with the&#xA;appropriate XML tags.&#xA;" annotatedElement="_10_5_622020d_1132928316401_674496_10718"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_659738_16645" isSubstitutable="true" general="_9_5_f720368_1110473546753_507789_9773"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316291_724524_10694" name="SyncFactory">
                <ownedComment xmi:id="_10_5_622020d_1132928316331_301729_10696" body="The Service Provider Interface (SPI) mechanism that generates &lt;code>SyncProvider&lt;/code>&#xA;instances to be used by disconnected &lt;code>RowSet&lt;/code> objects.&#xA;The &lt;code>SyncProvider&lt;/code> instances in turn provide the&#xA;&lt;code>javax.sql.RowSetReader&lt;/code> object the &lt;code>RowSet&lt;/code> object&#xA;needs to populate itself with data and the&#xA;&lt;code>javax.sql.RowSetWriter&lt;/code> object it needs to&#xA;propagate changes to its&#xA;data back to the underlying data source.&#xA;&lt;P>&#xA;Because the methods in the &lt;code>SyncFactory&lt;/code> class are all static,&#xA;there is only one &lt;code>SyncFactory&lt;/code> object&#xA;per Java VM at any one time. This ensures that there is a single source from which a&#xA;&lt;code>RowSet&lt;/code> implementation can obtain its &lt;code>SyncProvider&lt;/code>&#xA;implementation.&#xA;&lt;p>&#xA;&lt;h3>1.0 Overview&lt;/h3>&#xA;The &lt;code>SyncFactory&lt;/code> class provides an internal registry of available&#xA;synchronization provider implementations (&lt;code>SyncProvider&lt;/code> objects).&#xA;This registry may be queried to determine which&#xA;synchronization providers are available.&#xA;The following line of code gets an enumeration of the providers currently registered.&#xA;&lt;PRE>&#xA;java.util.Enumeration e = SyncFactory.getRegisteredProviders();&#xA;&lt;/PRE>&#xA;All standard &lt;code>RowSet&lt;/code> implementations must provide at least two providers:&#xA;&lt;UL>&#xA;&lt;LI>an optimistic provider for use with a &lt;code>CachedRowSet&lt;/code> implementation&#xA;or an implementation derived from it&#xA;&lt;LI>an XML provider, which is used for reading and writing XML, such as with&#xA;&lt;code>WebRowSet&lt;/code> objects&#xA;&lt;/UL>&#xA;Note that the JDBC RowSet Implementations include the &lt;code>SyncProvider&lt;/code>&#xA;implemtations &lt;code>RIOptimisticProvider&lt;/code> and &lt;code>RIXmlProvider&lt;/code>,&#xA;which satisfy this requirement.&#xA;&lt;P>&#xA;The &lt;code>SyncFactory&lt;/code> class provides accessor methods to assist&#xA;applications in determining which synchronization providers are currently&#xA;registered with the &lt;code>SyncFactory&lt;/code>.&#xA;&lt;p>&#xA;Other methods let &lt;code>RowSet&lt;/code> persistence providers be&#xA;registered or de-registered with the factory mechanism. This&#xA;allows additional synchronization provider implementations to be made&#xA;available to &lt;code>RowSet&lt;/code> objects at run time.&#xA;&lt;p>&#xA;Applications can apply a degree of filtering to determine the level of&#xA;synchronization that a &lt;code>SyncProvider&lt;/code> implementation offers.&#xA;The following criteria determine whether a provider is&#xA;made available to a &lt;code>RowSet&lt;/code> object:&#xA;&lt;ol>&#xA;&lt;li>If a particular provider is specified by a &lt;code>RowSet&lt;/code> object, and&#xA;the &lt;code>SyncFactory&lt;/code> does not contain a reference to this provider,&#xA;a &lt;code>SyncFactoryException&lt;/code> is thrown stating that the synchronization&#xA;provider could not be found.&#xA;&lt;p>&#xA;&lt;li>If a &lt;code>RowSet&lt;/code> implementation is instantiated with a specified&#xA;provider and the specified provider has been properly registered, the&#xA;requested provider is supplied. Otherwise a &lt;code>SyncFactoryException&lt;/code>&#xA;is thrown.&#xA;&lt;p>&#xA;&lt;li>If a &lt;code>RowSet&lt;/code> object does not specify a&#xA;&lt;code>SyncProvider&lt;/code> implementation and no additional&#xA;&lt;code>SyncProvider&lt;/code> implementations are available, the reference&#xA;implementation providers are supplied.&#xA;&lt;/ol>&#xA;&lt;h3>2.0 Registering &lt;code>SyncProvider&lt;/code> Implementations&lt;/h3>&#xA;&lt;p>&#xA;Both vendors and developers can register &lt;code>SyncProvider&lt;/code>&#xA;implementations using one of the following mechanisms.&#xA;&lt;ul>&#xA;&lt;LI>&lt;B>Using the command line&lt;/B>&lt;BR>&#xA;The name of the provider is supplied on the command line, which will add&#xA;the provider to the system properties.&#xA;For example:&#xA;&lt;PRE>&#xA;-Drowset.provider.classname=com.fred.providers.HighAvailabilityProvider&#xA;&lt;/PRE>&#xA;&lt;li>&lt;b>Using the Standard Properties File&lt;/b>&lt;BR>&#xA;The reference implementation is targeted&#xA;to ship with J2SE 1.5, which will include an additional resource file&#xA;that may be edited by hand. Here is an example of the properties file&#xA;included in the reference implementation:&#xA;&lt;PRE>&#xA;#Default JDBC RowSet sync providers listing&#xA;#&#xA;&#xA;# Optimistic synchronization provider&#xA;rowset.provider.classname.0=com.sun.rowset.providers.RIOptimisticProvider&#xA;rowset.provider.vendor.0=Sun Microsystems Inc&#xA;rowset.provider.version.0=1.0&#xA;&#xA;# XML Provider using standard XML schema&#xA;rowset.provider.classname.1=com.sun.rowset.providers.RIXMLProvider&#xA;rowset.provider.vendor.1=Sun Microsystems Inc.&#xA;rowset.provider.version.1=1.0&#xA;&lt;/PRE>&#xA;The &lt;code>SyncFactory&lt;/code> checks this file and registers the&#xA;&lt;code>SyncProvider&lt;/code> implementations that it contains. A&#xA;developer or vendor can add other implementations to this file.&#xA;For example, here is a possible addition:&#xA;&lt;PRE>&#xA;rowset.provider.classname.2=com.fred.providers.HighAvailabilityProvider&#xA;rowset.provider.vendor.2=Fred, Inc.&#xA;rowset.provider.version.2=1.0&#xA;&lt;/PRE>&#xA;&lt;p>&#xA;&lt;li>&lt;b>Using a JNDI Context&lt;/b>&lt;BR>&#xA;Available providers can be registered on a JNDI&#xA;context, and the &lt;code>SyncFactory&lt;/code> will attempt to load&#xA;&lt;code>SyncProvider&lt;/code> implementations from that JNDI context.&#xA;For example, the following code fragment registers a provider implementation&#xA;on a JNDI context.  This is something a deployer would normally do. In this&#xA;example, &lt;code>MyProvider&lt;/code> is being registered on a CosNaming&#xA;namespace, which is the namespace used by J2EE resources.&#xA;&lt;PRE>&#xA;import javax.naming.*;&#xA;&#xA;Hashtable svrEnv = new  Hashtable();&#xA;srvEnv.put(Context.INITIAL_CONTEXT_FACTORY, &quot;CosNaming&quot;);&#xA;&#xA;Context ctx = new InitialContext(svrEnv);&#xA;com.fred.providers.MyProvider = new MyProvider();&#xA;ctx.rebind(&quot;providers/MyProvider&quot;, syncProvider);&#xA;&lt;/PRE>&#xA;&lt;/ul>&#xA;Next, an application will register the JNDI context with the&#xA;&lt;code>SyncFactory&lt;/code> instance.  This allows the &lt;code>SyncFactory&lt;/code>&#xA;to browse within the JNDI context looking for &lt;code>SyncProvider&lt;/code>&#xA;implementations.&#xA;&lt;PRE>&#xA;Hashtable appEnv = new Hashtable();&#xA;appEnv.put(Context.INITIAL_CONTEXT_FACTORY, &quot;CosNaming&quot;);&#xA;appEnv.put(Context.PROVIDER_URL, &quot;iiop://hostname/providers&quot;);&#xA;Context ctx = new InitialContext(appEnv);&#xA;&#xA;SyncFactory.registerJNDIContext(ctx);&#xA;&lt;/PRE>&#xA;If a &lt;code>RowSet&lt;/code> object attempts to obtain a &lt;code>MyProvider&lt;/code>&#xA;object, the &lt;code>SyncFactory&lt;/code> will try to locate it. First it searches&#xA;for it in the system properties, then it looks in the resource files, and&#xA;finally it checks the JNDI context that has been set. The &lt;code>SyncFactory&lt;/code>&#xA;instance verifies that the requested provider is a valid extension of the&#xA;&lt;code>SyncProvider&lt;/code> abstract class and then gives it to the&#xA;&lt;code>RowSet&lt;/code> object. In the following code fragment, a new&#xA;&lt;code>CachedRowSet&lt;/code> object is created and initialized with&#xA;&lt;i>env&lt;/i>, which contains the binding to &lt;code>MyProvider&lt;/code>.&#xA;&lt;PRE>&#xA;Hashtable env = new Hashtable();&#xA;env.put(SyncFactory.ROWSET_SYNC_PROVIDER, &quot;com.fred.providers.MyProvider&quot;);&#xA;CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(env);&#xA;&lt;/PRE>&#xA;Further details on these mechanisms are available in the&#xA;&lt;code>javax.sql.rowset.spi&lt;/code> package specification.&#xA;&#xA;@author  Jonathan Bruce&#xA;@see javax.sql.rowset.spi.SyncProvider&#xA;@see javax.sql.rowset.spi.SyncFactoryException&#xA;" annotatedElement="_10_5_622020d_1132928316291_724524_10694"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316401_474803_10712" name="TransactionalWriter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316401_536158_10714" body="A specialized interface that facilitates an extension of the standard&#xA;&lt;code>SyncProvider&lt;/code> abstract class so that it has finer grained&#xA;transaction control.&#xA;&lt;p>&#xA;If one or more disconnected &lt;code>RowSet&lt;/code> objects are particating&#xA;in a global transaction, they may wish to coordinate their synchronization&#xA;commits to preserve data integrity and reduce the number of&#xA;sychronization exceptions. If this is the case, an application should set&#xA;the &lt;code>CachedRowSet&lt;/code> constant &lt;code>COMMIT_ON_ACCEPT_CHANGES&lt;/code>&#xA;to &lt;code>false&lt;/code> and use the &lt;code>commit&lt;/code> and &lt;code>rollback&lt;/code>&#xA;methods defined in this interface to manage transaction boundaries.&#xA;" annotatedElement="_10_5_622020d_1132928316401_474803_10712"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_27532_16643" isSubstitutable="true" general="_9_5_f720368_1110473546753_507789_9773"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316351_115988_10706" name="SyncProviderException">
                <ownedComment xmi:id="_10_5_622020d_1132928316351_332026_10708" body="Indicates an error with the &lt;code>SyncProvider&lt;/code> mechanism. This exception&#xA;is created by a &lt;code>SyncProvider&lt;/code> abstract class extension if it&#xA;encounters violations in reading from or writing to the originating data source.&#xA;&lt;P>&#xA;If it is implemented to do so, the &lt;code>SyncProvider&lt;/code> object may also create a&#xA;&lt;code>SyncResolver&lt;/code> object and either initialize the &lt;code>SyncProviderException&lt;/code>&#xA;object with it at construction time or set it with the &lt;code>SyncProvider&lt;/code> object at&#xA;a later time.&#xA;&lt;P>&#xA;The method &lt;code>acceptChanges&lt;/code> will throw this exception after the writer&#xA;has finished checking for conflicts and has found one or more conflicts. An&#xA;application may catch a &lt;code>SyncProviderException&lt;/code> object and call its&#xA;&lt;code>getSyncResolver&lt;/code> method to get its &lt;code>SyncResolver&lt;/code> object.&#xA;See the code fragment in the interface comment for&#xA;&lt;a href=&quot;SyncResolver.java&quot;>&lt;code>SyncResolver&lt;/code>&lt;/a> for an example.&#xA;This &lt;code>SyncResolver&lt;/code> object will mirror the &lt;code>RowSet&lt;/code>&#xA;object that generated the exception, except that it will contain only the values&#xA;from the data source that are in conflict.  All other values in the &lt;code>SyncResolver&lt;/code>&#xA;object will be &lt;code>null&lt;/code>.&#xA;&lt;P>&#xA;The &lt;code>SyncResolver&lt;/code> object may be used to examine and resolve&#xA;each conflict in a row and then go to the next row with a conflict to&#xA;repeat the procedure.&#xA;&lt;P>&#xA;A &lt;code>SyncProviderException&lt;/code> object may or may not contain a description of the&#xA;condition causing the exception.  The inherited method &lt;code>getMessage&lt;/code> may be&#xA;called to retrieve the description if there is one.&#xA;&#xA;@author Jonathan Bruce&#xA;@see javax.sql.rowset.spi.SyncFactory&#xA;@see javax.sql.rowset.spi.SyncResolver&#xA;@see javax.sql.rowset.spi.SyncFactoryException&#xA;" annotatedElement="_10_5_622020d_1132928316351_115988_10706"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_455248_16641" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316341_99164_10703" name="SyncProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316351_728716_10705" body="The synchronization mechanism that provides reader/writer capabilities for&#xA;disconnected &lt;code>RowSet&lt;/code> objects.&#xA;A &lt;code>SyncProvider&lt;/code> implementation is a class that extends the&#xA;&lt;code>SyncProvider&lt;/code> abstract class.&#xA;&lt;P>&#xA;A &lt;code>SyncProvider&lt;/code> implementation is&#xA;identified by a unique ID, which is its fully qualified class name.&#xA;This name must be registered with the&#xA;&lt;code>SyncFactory&lt;/code> SPI, thus making the implementation available to&#xA;all &lt;code>RowSet&lt;/code> implementations.&#xA;The factory mechanism in the reference implementation uses this name to instantiate&#xA;the implementation, which can then provide a &lt;code>RowSet&lt;/code> object with its&#xA;reader (a &lt;code>javax.sql.RowSetReader&lt;/code> object) and its writer (a&#xA;&lt;code>javax.sql.RowSetWriter&lt;/code> object).&#xA;&lt;P>&#xA;The Jdbc &lt;code>RowSet&lt;/code> Implementations specification provides two&#xA;reference implementations of the &lt;code>SyncProvider&lt;/code> abstract class:&#xA;&lt;code>RIOptimisticProvider&lt;/code> and &lt;code>RIXMLProvider&lt;/code>.&#xA;The &lt;code>RIOptimisticProvider&lt;/code> can set any &lt;code>RowSet&lt;/code>&#xA;implementation with a &lt;code>RowSetReader&lt;/code> object and a&#xA;&lt;code>RowSetWriter&lt;/code> object.  However, only the &lt;code>RIXMLProvider&lt;/code>&#xA;implementation can set an &lt;code>XmlReader&lt;/code> object and an&#xA;&lt;code>XmlWriter&lt;/code> object. A &lt;code>WebRowSet&lt;/code> object uses the&#xA;&lt;code>XmlReader&lt;/code> object to read data in XML format to populate itself with that&#xA;data.  It uses the &lt;code>XmlWriter&lt;/code> object to write itself to a stream or&#xA;&lt;code>java.io.Writer&lt;/code> object in XML format.&#xA;&lt;P>&#xA;&lt;h3>1.0 Naming Convention for Implementations&lt;/h3>&#xA;As a guide  to naming &lt;code>SyncProvider&lt;/code>&#xA;implementations, the following should be noted:&#xA;&lt;UL>&#xA;&lt;li>The name for a &lt;code>SyncProvider&lt;/code> implementation&#xA;is its fully qualified class name.&#xA;&lt;li>It is recommended that vendors supply a&#xA;&lt;code>SyncProvider&lt;/code> implementation in a package named &lt;code>providers&lt;/code>.&#xA;&lt;/UL>&#xA;&lt;p>&#xA;For instance, if a vendor named Fred, Inc. offered a&#xA;&lt;code>SyncProvider&lt;/code> implementation, you could have the following:&#xA;&lt;PRE>&#xA;Vendor name:  Fred, Inc.&#xA;Domain name of vendor:  com.fred&#xA;Package name:  com.fred.providers&#xA;SyncProvider implementation class name:  HighAvailabilityProvider&#xA;&#xA;Fully qualified class name of SyncProvider implementation:&#xA;com.fred.providers.HighAvailabilityProvider&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The following line of code uses the fully qualified name to register&#xA;this implementation with the &lt;code>SyncFactory&lt;/code> static instance.&#xA;&lt;PRE>&#xA;SyncFactory.registerProvider(&#xA;&quot;com.fred.providers.HighAvailabilityProvider&quot;);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The default &lt;code>SyncProvider&lt;/code> object provided with the reference&#xA;implementation uses the following name:&#xA;&lt;pre>&#xA;com.sun.rowset.providers.RIOptimisticProvider&#xA;&lt;/pre>&#xA;&lt;p>&#xA;A vendor can register a &lt;code>SyncProvider&lt;/code> implementation class name&#xA;with Sun Microsystems, Inc. by sending email to jdbc@sun.com.&#xA;Sun will maintain a database listing the&#xA;available &lt;code>SyncProvider&lt;/code> implementations for use with compliant&#xA;&lt;code>RowSet&lt;/code> implementations.  This database will be similar to the&#xA;one already maintained to list available JDBC drivers.&#xA;&lt;P>&#xA;Vendors should refer to the reference implementation synchronization&#xA;providers for additional guidance on how to implement a new&#xA;&lt;code>SyncProvider&lt;/code> implementation.&#xA;&#xA;&lt;h3>2.0 How a &lt;code>RowSet&lt;/code> Object Gets Its Provider&lt;/h3>&#xA;&#xA;A disconnected &lt;code>Rowset&lt;/code> object may get access to a&#xA;&lt;code>SyncProvider&lt;/code> object in one of the following two ways:&#xA;&lt;UL>&#xA;&lt;LI>Using a constructor&lt;BR>&#xA;&lt;PRE>&#xA;CachedRowSet crs = new CachedRowSet(&#xA;&quot;com.fred.providers.HighAvailabilitySyncProvider&quot;);&#xA;&lt;/PRE>&#xA;&lt;LI>Using the &lt;code>setSyncProvider&lt;/code> method&#xA;&lt;PRE>&#xA;CachedRowSet crs = new CachedRowSet();&#xA;crs.setSyncProvider(&quot;com.fred.providers.HighAvailabilitySyncProvider&quot;);&#xA;&lt;/PRE>&#xA;&lt;/UL>&#xA;&lt;p>&#xA;By default, the reference implementations of the &lt;code>RowSet&lt;/code> synchronization&#xA;providers are always available to the Java platform.&#xA;If no other pluggable synchronization providers have been correctly&#xA;registered, the &lt;code>SyncFactory&lt;/code> will automatically generate&#xA;an instance of the default &lt;code>SyncProvider&lt;/code> reference implementation.&#xA;Thus, in the preceding code fragment, if no implementation named&#xA;&lt;code>com.fred.providers.HighAvailabilitySyncProvider&lt;/code> has been&#xA;registered with the &lt;code>SyncFactory&lt;/code> instance, &lt;i>crs&lt;/i> will be&#xA;assigned the default provider in the reference implementation, which is&#xA;&lt;code>com.sun.rowset.providers.RIOptimisticProvider&lt;/code>.&#xA;&lt;p>&#xA;&lt;h3>3.0 Violations and Synchronization Issues&lt;/h3>&#xA;If an update between a disconnected &lt;code>RowSet&lt;/code> object&#xA;and a data source violates&#xA;the original query or the underlying data source constraints, this will&#xA;result in undefined behavior for all disconnected &lt;code>RowSet&lt;/code> implementations&#xA;and their designated &lt;code>SyncProvider&lt;/code> implementations.&#xA;Not defining the behavior when such violations occur offers greater flexibility&#xA;for a &lt;code>SyncProvider&lt;/code>&#xA;implementation to determine its own best course of action.&#xA;&lt;p>&#xA;A &lt;code>SyncProvider&lt;/code> implementation&#xA;may choose to implement a specific handler to&#xA;handle a subset of query violations.&#xA;However if an original query violation or a more general data source constraint&#xA;violation is not handled by the &lt;code>SyncProvider&lt;/code> implementation,&#xA;all &lt;code>SyncProvider&lt;/code>&#xA;objects must throw a &lt;code>SyncProviderException&lt;/code>.&#xA;&lt;p>&#xA;&lt;h3>4.0 Updatable SQL VIEWs&lt;/h3>&#xA;It is possible for any disconnected or connected &lt;code>RowSet&lt;/code> object to be populated&#xA;from an SQL query that is formulated originally from an SQL &lt;code>VIEW&lt;/code>.&#xA;While in many cases it is possible for an update to be performed to an&#xA;underlying view, such an update requires additional metadata, which may vary.&#xA;The &lt;code>SyncProvider&lt;/code> class provides two constants to indicate whether&#xA;an implementation supports updating an SQL &lt;code>VIEW&lt;/code>.&#xA;&lt;ul>&#xA;&lt;li>&lt;code>&lt;b>NONUPDATABLE_VIEW_SYNC&lt;/b>&lt;/code> - Indicates that a &lt;code>SyncProvider&lt;/code>&#xA;implementation does not support synchronization with an SQL &lt;code>VIEW&lt;/code> as the&#xA;underlying source of data for the &lt;code>RowSet&lt;/code> object.&#xA;&lt;li>&lt;code>&lt;b>UPDATABLE_VIEW_SYNC&lt;/b>&lt;/code> - Indicates that a&#xA;&lt;code>SyncProvider&lt;/code> implementation&#xA;supports synchronization with an SQL &lt;code>VIEW&lt;/code> as the underlying source&#xA;of data.&#xA;&lt;/ul>&#xA;&lt;P>&#xA;The default is for a &lt;code>RowSet&lt;/code> object not to be updatable if it was&#xA;populated with data from an SQL &lt;code>VIEW&lt;/code>.&#xA;&lt;P>&#xA;&lt;h3>5.0 &lt;code>SyncProvider&lt;/code> Constants&lt;/h3>&#xA;The &lt;code>SyncProvider&lt;/code> class provides three sets of constants that&#xA;are used as return values or parameters for &lt;code>SyncProvider&lt;/code> methods.&#xA;&lt;code>SyncProvider&lt;/code> objects may be implemented to perform synchronization&#xA;between a &lt;code>RowSet&lt;/code> object and its underlying data source with varying&#xA;degrees of of care. The first group of constants indicate how synchronization&#xA;is handled. For example, &lt;code>GRADE_NONE&lt;/code> indicates that a&#xA;&lt;code>SyncProvider&lt;/code> object will not take any care to see what data is&#xA;valid and will simply write the &lt;code>RowSet&lt;/code> data to the data source.&#xA;&lt;code>GRADE_MODIFIED_AT_COMMIT&lt;/code> indicates that the provider will check&#xA;only modified data for validity.  Other grades check all data for validity&#xA;or set locks when data is modified or loaded.&#xA;&lt;OL>&#xA;&lt;LI>Constants to indicate the synchronization grade of a&#xA;&lt;code>SyncProvider&lt;/code> object&#xA;&lt;UL>&#xA;&lt;LI>SyncProvider.GRADE_NONE&#xA;&lt;LI>SyncProvider.GRADE_MODIFIED_AT_COMMIT&#xA;&lt;LI>SyncProvider.GRADE_CHECK_ALL_AT_COMMIT&#xA;&lt;LI>SyncProvider.GRADE_LOCK_WHEN_MODIFIED&#xA;&lt;LI>SyncProvider.GRADE_LOCK_WHEN_LOADED&#xA;&lt;/UL>&#xA;&lt;LI>Constants to indicate what locks are set on the data source&#xA;&lt;UL>&#xA;&lt;LI>SyncProvider.DATASOURCE_NO_LOCK&#xA;&lt;LI>SyncProvider.DATASOURCE_ROW_LOCK&#xA;&lt;LI>SyncProvider.DATASOURCE_TABLE_LOCK&#xA;&lt;LI>SyncProvider.DATASOURCE_DB_LOCK&#xA;&lt;/UL>&#xA;&lt;LI>Constants to indicate whether a &lt;code>SyncProvider&lt;/code> object can&#xA;perform updates to an SQL &lt;code>VIEW&lt;/code> &lt;BR>&#xA;These constants are explained in the preceding section (4.0).&#xA;&lt;UL>&#xA;&lt;LI>SyncProvider.UPDATABLE_VIEW_SYNC&#xA;&lt;LI>SyncProvider.NONUPDATABLE_VIEW_SYNC&#xA;&lt;/UL>&#xA;&lt;/OL>&#xA;&#xA;@author Jonathan Bruce&#xA;@see javax.sql.rowset.spi.SyncFactory&#xA;@see javax.sql.rowset.spi.SyncFactoryException&#xA;" annotatedElement="_10_5_622020d_1132928316341_99164_10703"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316401_983153_10715" name="XmlReader" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316401_18320_10717" body="A specialized interface that facilitates an extension of the&#xA;&lt;code>SyncProvider&lt;/code> abstract class for XML orientated&#xA;synchronization providers.&#xA;&lt;P>&#xA;&lt;code>SyncProvider&lt;/code>  implementations that supply XML data reader&#xA;capabilities such as output XML stream capabilities can implement this&#xA;interface to provider standard &lt;code>XmlReader&lt;/code> objects to&#xA;&lt;code>WebRowSet&lt;/code> implementations.&#xA;&lt;p>&#xA;An &lt;code>XmlReader&lt;/code> object is registered as the&#xA;XML reader for a &lt;code>WebRowSet&lt;/code> by being assigned to the&#xA;rowset's &lt;code>xmlReader&lt;/code> field. When the &lt;code>WebRowSet&lt;/code>&#xA;object's &lt;code>readXml&lt;/code> method is invoked, it in turn invokes&#xA;its XML reader's &lt;code>readXML&lt;/code> method.&#xA;" annotatedElement="_10_5_622020d_1132928316401_983153_10715"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_24516_16644" isSubstitutable="true" general="_9_5_f720368_1110473546753_489232_9771"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316351_820130_10709" name="SyncResolver" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316401_226730_10711" body="Defines a framework that allows applications to use a manual decision tree&#xA;to decide what should be done when a synchronization conflict occurs.&#xA;Although it is not mandatory for&#xA;applications to resolve synchronization conflicts manually, this&#xA;framework provides the means to delegate to the application when conflicts&#xA;arise.&#xA;&lt;p>&#xA;Note that a conflict is a situation where the &lt;code>RowSet&lt;/code> object's original&#xA;values for a row do not match the values in the data source, which indicates that&#xA;the data source row has been modified since the last synchronization. Note also that&#xA;a &lt;code>RowSet&lt;/code> object's original values are the values it had just prior to the&#xA;the last synchronization, which are not necessarily its initial values.&#xA;&lt;p>&#xA;&#xA;&lt;H2>Description of a &lt;code>SyncResolver&lt;/code> Object&lt;/H2>&#xA;&#xA;A &lt;code>SyncResolver&lt;/code> object is a specialized &lt;code>RowSet&lt;/code> object&#xA;that implements the &lt;code>SyncResolver&lt;/code> interface.&#xA;It &lt;b>may&lt;/b> operate as either a connected &lt;code>RowSet&lt;/code> object (an&#xA;implementation of the &lt;code>JdbcRowSet&lt;/code> interface) or a connected&#xA;&lt;code>RowSet&lt;/code> object (an implementation of the&#xA;&lt;code>CachedRowSet&lt;/code> interface or one of its subinterfaces). For information&#xA;on the subinterfaces, see the&#xA;&lt;a href=&quot;../package-summary.html&quot;>&lt;code>javax.sql.rowset&lt;/code>&lt;/a> package&#xA;description. The reference implementation for &lt;code>SyncResolver&lt;/code> implements&#xA;the &lt;code>CachedRowSet&lt;/code> interface, but other implementations&#xA;may choose to implement the &lt;code>JdbcRowSet&lt;/code> interface to satisfy&#xA;particular needs.&#xA;&lt;P>&#xA;After an application has attempted to synchronize a &lt;code>RowSet&lt;/code> object with&#xA;the data source (by calling the &lt;code>CachedRowSet&lt;/code>&#xA;method &lt;code>acceptChanges&lt;/code>), and one or more conflicts have been found,&#xA;a rowset's &lt;code>SyncProvider&lt;/code> object creates an instance of&#xA;&lt;code>SyncResolver&lt;/code>. This new &lt;code>SyncResolver&lt;/code> object has&#xA;the same number of rows and columns as the&#xA;&lt;code>RowSet&lt;/code> object that was attempting the synchronization. The&#xA;&lt;code>SyncResolver&lt;/code> object contains the values from the data source that caused&#xA;the conflict(s) and &lt;code>null&lt;/code> for all other values.&#xA;In addition, it contains information about each conflict.&#xA;&lt;P>&#xA;&#xA;&lt;H2>Getting and Using a &lt;code>SyncResolver&lt;/code> Object&lt;/H2>&#xA;&#xA;When the method &lt;code>acceptChanges&lt;/code> encounters conflicts, the&#xA;&lt;code>SyncProvider&lt;/code> object creates a &lt;code>SyncProviderException&lt;/code>&#xA;object and sets it with the new &lt;code>SyncResolver&lt;/code> object. The method&#xA;&lt;code>acceptChanges&lt;/code> will throw this exception, which&#xA;the application can then catch and use to retrieve the&#xA;&lt;code>SyncResolver&lt;/code> object it contains. The following code snippet uses the&#xA;&lt;code>SyncProviderException&lt;/code> method &lt;code>getSyncResolver&lt;/code> to get&#xA;the &lt;code>SyncResolver&lt;/code> object &lt;i>resolver&lt;/i>.&#xA;&lt;PRE>&#xA;} catch (SyncProviderException spe) {&#xA;SyncResolver resolver = spe.getSyncResolver();&#xA;...&#xA;}&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;With &lt;i>resolver&lt;/i> in hand, an application can use it to get the information&#xA;it contains about the conflict or conflicts.  A &lt;code>SyncResolver&lt;/code> object&#xA;such as &lt;i>resolver&lt;/i> keeps&#xA;track of the conflicts for each row in which there is a conflict.  It also places a&#xA;lock on the table or tables affected by the rowset's command so that no more&#xA;conflicts can occur while the current conflicts are being resolved.&#xA;&lt;P>&#xA;The following kinds of information can be obtained from a &lt;code>SyncResolver&lt;/code>&#xA;object:&#xA;&lt;P>&#xA;&lt;LI>What operation was being attempted when a conflict occurred&lt;BR>&#xA;The &lt;code>SyncProvider&lt;/code> interface defines four constants&#xA;describing states that may occur. Three&#xA;constants describe the type of operation (update, delete, or insert) that a&#xA;&lt;code>RowSet&lt;/code> object was attempting to perform when a conflict was discovered,&#xA;and the fourth indicates that there is no conflict.&#xA;These constants are the possible return values when a &lt;code>SyncResolver&lt;/code> object&#xA;calls the method &lt;code>getStatus&lt;/code>.&#xA;&lt;PRE>&#xA;int operation = resolver.getStatus();&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;&lt;LI>The value in the data source that caused a conflict&lt;BR>&#xA;A conflict exists when a value that a &lt;code>RowSet&lt;/code> object has changed&#xA;and is attempting to write to the data source&#xA;has also been changed in the data source since the last synchronization.  An&#xA;application can call the &lt;code>SyncResolver&lt;/code> method&#xA;&lt;code>getConflictValue&lt;/code > to retrieve the&#xA;value in the data source that is the cause of the conflict because the values in a&#xA;&lt;code>SyncResolver&lt;/code> object are the conflict values from the data source.&#xA;&lt;PRE>&#xA;java.lang.Object conflictValue = resolver.getConflictValue(2);&#xA;&lt;/PRE>&#xA;Note that the column in &lt;i>resolver&lt;/i> can be designated by the column number,&#xA;as is done in the preceding line of code, or by the column name.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;With the information retrieved from the methods &lt;code>getStatus&lt;/code> and&#xA;&lt;code>getConflictValue&lt;/code>, the application may make a determination as to&#xA;which value should be persisted in the data source. The application then calls the&#xA;&lt;code>SyncResolver&lt;/code> method &lt;code>setResolvedValue&lt;/code>, which sets the value&#xA;to be persisted in the &lt;code>RowSet&lt;/code> object and also in the data source.&#xA;&lt;PRE>&#xA;resolver.setResolvedValue(&quot;DEPT&quot;, 8390426);&#xA;&lt;/PRE>&#xA;In the preceding line of code,&#xA;the column name designates the column in the &lt;code>RowSet&lt;/code> object&#xA;that is to be set with the given value. The column number can also be used to&#xA;designate the column.&#xA;&lt;P>&#xA;An application calls the method &lt;code>setResolvedValue&lt;/code> after it has&#xA;resolved all of the conflicts in the current conflict row and repeats this process&#xA;for each conflict row in the &lt;code>SyncResolver&lt;/code> object.&#xA;&lt;P>&#xA;&#xA;&lt;H2>Navigating a &lt;code>SyncResolver&lt;/code> Object&lt;/H2>&#xA;&#xA;Because a &lt;code>SyncResolver&lt;/code> object is a &lt;code>RowSet&lt;/code> object, an&#xA;application can use all of the &lt;code>RowSet&lt;/code> methods for moving the cursor&#xA;to navigate a &lt;code>SyncResolver&lt;/code> object. For example, an application can&#xA;use the &lt;code>RowSet&lt;/code> method &lt;code>next&lt;/code> to get to each row and then&#xA;call the &lt;code>SyncResolver&lt;/code> method &lt;code>getStatus&lt;/code> to see if the row&#xA;contains a conflict.  In a row with one or more conflicts, the application can&#xA;iterate through the columns to find any non-null values, which will be the values&#xA;from the data source that are in conflict.&#xA;&lt;P>&#xA;To make it easier to navigate a &lt;code>SyncResolver&lt;/code> object, especially when&#xA;there are large numbers of rows with no conflicts, the &lt;code>SyncResolver&lt;/code>&#xA;interface defines the methods &lt;code>nextConflict&lt;/code> and&#xA;&lt;code>previousConflict&lt;/code>, which move only to rows&#xA;that contain at least one conflict value. Then an application can call the&#xA;&lt;code>SyncResolver&lt;/code> method &lt;code>getConflictValue&lt;/code>, supplying it&#xA;with the column number, to get the conflict value itself. The code fragment in the&#xA;next section gives an example.&#xA;&#xA;&lt;H2>Code Example&lt;/H2>&#xA;&#xA;The following code fragment demonstrates how a disconnected &lt;code>RowSet&lt;/code>&#xA;object &lt;i>crs&lt;/i> might attempt to synchronize itself with the&#xA;underlying data source and then resolve the conflicts. In the &lt;code>try&lt;/code>&#xA;block, &lt;i>crs&lt;/i> calls the method &lt;code>acceptChanges&lt;/code>, passing it the&#xA;&lt;code>Connection&lt;/code> object &lt;i>con&lt;/i>.  If there are no conflicts, the&#xA;changes in &lt;i>crs&lt;/i> are simply written to the data source.  However, if there&#xA;is a conflict, the method &lt;code>acceptChanges&lt;/code> throws a&#xA;&lt;code>SyncProviderException&lt;/code> object, and the&#xA;&lt;code>catch&lt;/code> block takes effect.  In this example, which&#xA;illustrates one of the many ways a &lt;code>SyncResolver&lt;/code> object can be used,&#xA;the &lt;code>SyncResolver&lt;/code> method &lt;code>nextConflict&lt;/code> is used in a&#xA;&lt;code>while&lt;/code> loop. The loop will end when &lt;code>nextConflict&lt;/code> returns&#xA;&lt;code>false&lt;/code>, which will occur when there are no more conflict rows in the&#xA;&lt;code>SyncResolver&lt;/code> object &lt;i>resolver&lt;/i>. In This particular code fragment,&#xA;&lt;i>resolver&lt;/i> looks for rows that have update conflicts (rows with the status&#xA;&lt;code>SyncResolver.UPDATE_ROW_CONFLICT&lt;/code>), and the rest of this code fragment&#xA;executes only for rows where conflicts occurred because &lt;i>crs&lt;/i> was attempting an&#xA;update.&#xA;&lt;P>&#xA;After the cursor for &lt;i>resolver&lt;/i> has moved to the next conflict row that&#xA;has an update conflict, the method &lt;code>getRow&lt;/code> indicates the number of the&#xA;current row, and&#xA;the cursor for the &lt;code>CachedRowSet&lt;/code> object &lt;i>crs&lt;/i> is moved to&#xA;the comparable row in &lt;i>crs&lt;/i>. By iterating&#xA;through the columns of that row in both &lt;i>resolver&lt;/i> and &lt;i>crs&lt;/i>, the conflicting&#xA;values can be retrieved and compared to decide which one should be persisted. In this&#xA;code fragment, the value in &lt;i>crs&lt;/i> is the one set as the resolved value, which means&#xA;that it will be used to overwrite the conflict value in the data source.&#xA;&#xA;&lt;PRE>&#xA;try {&#xA;&#xA;crs.acceptChanges(con);&#xA;&#xA;} catch (SyncProviderException spe) {&#xA;&#xA;SyncResolver resolver = spe.getSyncResolver();&#xA;&#xA;Object crsValue;  // value in the &lt;code>RowSet&lt;/code> object&#xA;Object resolverValue:  // value in the &lt;code>SyncResolver&lt;/code> object&#xA;Object resolvedValue:  // value to be persisted&#xA;&#xA;while(resolver.nextConflict())  {&#xA;if(resolver.getStatus() == SyncResolver.UPDATE_ROW_CONFLICT)  {&#xA;int row = resolver.getRow();&#xA;crs.absolute(row);&#xA;&#xA;int colCount = crs.getMetaData().getColumnCount();&#xA;for(int j = 1; j &lt;= colCount; j++) {&#xA;if (resolver.getConflictValue(j) != null)  {&#xA;crsValue = crs.getObject(j);&#xA;resolverValue = resolver.getConflictValue(j);&#xA;. . .&#xA;compare crsValue and resolverValue to determine&#xA;which should be the resolved value (the value to persist)&#xA;resolvedValue = crsValue;&#xA;&#xA;resolver.setResolvedValue(j, resolvedValue);&#xA;}&#xA;}&#xA;}&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;@author  Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316351_820130_10709"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_284174_16642" isSubstitutable="true" general="_9_5_f720368_1110473546753_419892_9761"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316331_299108_10700" name="SyncFactoryException">
                <ownedComment xmi:id="_10_5_622020d_1132928316341_775803_10702" body="Indicates an error with &lt;code>SyncFactory&lt;/code> mechanism. A disconnected&#xA;RowSet implementation cannot be used  without a &lt;code>SyncProvider&lt;/code>&#xA;being successfully instantiated&#xA;&#xA;@version 0.2&#xA;@author Jonathan Bruce&#xA;@see javax.sql.rowset.spi.SyncFactory&#xA;@see javax.sql.rowset.spi.SyncFactoryException&#xA;" annotatedElement="_10_5_622020d_1132928316331_299108_10700"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_255392_16640" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316331_489495_10697" name="ProviderImpl" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928316331_580158_10699" body="Internal class that defines the lazy reference construct for each registered&#xA;SyncProvider implementation.&#xA;" annotatedElement="_10_5_622020d_1132928316331_489495_10697"/>
                <generalization xmi:id="_10_5_622020d_1132928323371_718145_16639" isSubstitutable="true" general="_10_5_622020d_1132928316341_99164_10703"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316401_881359_10721" name="BaseRowSet" clientDependency="_10_5_622020d_1132928323371_920658_16647 _10_5_622020d_1132928323371_492458_16646" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316471_778781_10723" body="An abstract class providing a &lt;code>RowSet&lt;/code> object with its basic functionality.&#xA;The basic functions include having properties and sending event notifications,&#xA;which all JavaBeans&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> components must implement.&#xA;&lt;P>&#xA;&lt;h3>1.0 Overview&lt;/h3>&#xA;The &lt;code>BaseRowSet&lt;/code> class provides the core functionality&#xA;for all &lt;code>RowSet&lt;/code> implementations,&#xA;and all standard implementations &lt;b>may&lt;/b> use this class in combination with&#xA;one or more &lt;code>RowSet&lt;/code> interfaces in order to provide a standard&#xA;vendor-specific implementation.  To clarify, all implementations must implement&#xA;at least one of the &lt;code>RowSet&lt;/code> interfaces (&lt;code>JdbcRowSet&lt;/code>,&#xA;&lt;code>CachedRowSet&lt;/code>, &lt;code>JoinRowSet&lt;/code>, &lt;code>FilteredRowSet&lt;/code>,&#xA;or &lt;code>WebRowSet&lt;/code>). This means that any implementation that extends&#xA;the &lt;code>BaseRowSet&lt;/code> class must also implement one of the &lt;code>RowSet&lt;/code>&#xA;interfaces.&#xA;&lt;p>&#xA;The &lt;code>BaseRowSet&lt;/code> class provides the following:&#xA;&lt;p>&#xA;&lt;UL>&#xA;&lt;LI>&lt;b>Properties&lt;/b>&#xA;&lt;ul>&#xA;&lt;li>Fields for storing current properties&#xA;&lt;li>Methods for getting and setting properties&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;LI>&lt;b>Event notification&lt;/b>&#xA;&lt;P>&#xA;&lt;LI>&lt;b>A complete set of setter methods&lt;/b> for setting the parameters in a&#xA;&lt;code>RowSet&lt;/code> object's command&#xA;&lt;p>&#xA;&lt;LI> &lt;b>Streams&lt;/b>&#xA;&lt;ul>&#xA;&lt;li>Fields for storing stream instances&#xA;&lt;li>Constants for indicating the type of a stream&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;/UL>&#xA;&#xA;&lt;h3>2.0 Setting Properties&lt;/h3>&#xA;All rowsets maintain a set of properties, which will usually be set using&#xA;a tool.  The number and kinds of properties a rowset has will vary,&#xA;depending on what the &lt;code>RowSet&lt;/code> implementation does and how it gets&#xA;its data.  For example,&#xA;rowsets that get their data from a &lt;code>ResultSet&lt;/code> object need to&#xA;set the properties that are required for making a database connection.&#xA;If a &lt;code>RowSet&lt;/code> object uses the &lt;code>DriverManager&lt;/code> facility to make a&#xA;connection, it needs to set a property for the JDBC URL that identifies the&#xA;appropriate driver, and it needs to set the properties that give the&#xA;user name and password.&#xA;If, on the other hand, the rowset uses a &lt;code>DataSource&lt;/code> object&#xA;to make the connection, which is the preferred method, it does not need to&#xA;set the property for the JDBC URL.  Instead, it needs to set the property&#xA;for the logical name of the data source along with the properties for&#xA;the user name and password.&#xA;&lt;P>&#xA;NOTE:  In order to use a &lt;code>DataSource&lt;/code> object for making a&#xA;connection, the &lt;code>DataSource&lt;/code> object must have been registered&#xA;with a naming service that uses the Java Naming and Directory&#xA;Interface&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> (JNDI) API.  This registration&#xA;is usually done by a person acting in the capacity of a system administrator.&#xA;&lt;P>&#xA;&lt;h3>3.0 Setting the Command and Its Parameters&lt;/h3>&#xA;When a rowset gets its data from a relational database, it executes a command (a query)&#xA;that produces a &lt;code>ResultSet&lt;/code> object.  This query is the command that is set&#xA;for the &lt;code>RowSet&lt;/code> object's command property.  The rowset populates itself with data by reading the&#xA;data from the &lt;code>ResultSet&lt;/code> object into itself. If the query&#xA;contains placeholders for values to be set, the &lt;code>BaseRowSet&lt;/code> setter methods&#xA;are used to set these values. All setter methods allow these values to be set&#xA;to &lt;code>null&lt;/code> if required.&#xA;&lt;P>&#xA;The following code fragment illustrates how the&#xA;&lt;code>CachedRowSet&lt;/code>&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup>&#xA;object &lt;code>crs&lt;/code> might have its command property set.  Note that if a&#xA;tool is used to set properties, this is the code that the tool would use.&#xA;&lt;PRE>&#xA;crs.setCommand(&quot;SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS&quot; +&#xA;&quot;WHERE CREDIT_LIMIT > ? AND REGION = ?&quot;);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;In this example, the values for &lt;code>CREDIT_LIMIT&lt;/code> and&#xA;&lt;code>REGION&lt;/code> are placeholder parameters, which are indicated with a&#xA;question mark (?).  The first question mark is placeholder parameter number&#xA;&lt;code>1&lt;/code>, the second question mark is placeholder parameter number&#xA;&lt;code>2&lt;/code>, and so on.  Any placeholder parameters must be set with&#xA;values before the query can be executed. To set these&#xA;placeholder parameters, the &lt;code>BaseRowSet&lt;/code> class provides a set of setter&#xA;methods, similar to those provided by the &lt;code>PreparedStatement&lt;/code>&#xA;interface, for setting values of each data type.  A &lt;code>RowSet&lt;/code> object stores the&#xA;parameter values internally, and its &lt;code>execute&lt;/code> method uses them internally&#xA;to set values for the placeholder parameters&#xA;before it sends the command to the DBMS to be executed.&#xA;&lt;P>&#xA;The following code fragment demonstrates&#xA;setting the two parameters in the query from the previous example.&#xA;&lt;PRE>&#xA;crs.setInt(1, 5000);&#xA;crs.setString(2, &quot;West&quot;);&#xA;&lt;/PRE>&#xA;If the &lt;code>execute&lt;/code> method is called at this point, the query&#xA;sent to the DBMS will be:&#xA;&lt;PRE>&#xA;&quot;SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS&quot; +&#xA;&quot;WHERE CREDIT_LIMIT > 5000 AND REGION = 'West'&quot;&#xA;&lt;/PRE>&#xA;NOTE: Setting &lt;code>Array&lt;/code>, &lt;code>Clob&lt;/code>, &lt;code>Blob&lt;/code> and&#xA;&lt;code>Ref&lt;/code> objects as a command parameter, stores these values as&#xA;&lt;code>SerialArray&lt;/code>, &lt;code>SerialClob&lt;/code>, &lt;code>SerialBlob&lt;/code>&#xA;and &lt;code>SerialRef&lt;/code> objects respectively.&#xA;&#xA;&lt;h3>4.0 Handling of Parameters Behind the Scenes&lt;/h3>&#xA;&#xA;NOTE: The &lt;code>BaseRowSet&lt;/code> class provides two kinds of setter methods,&#xA;those that set properties and those that set placeholder parameters. The setter&#xA;methods discussed in this section are those that set placeholder parameters.&#xA;&lt;P>&#xA;The placeholder parameters set with the &lt;code>BaseRowSet&lt;/code> setter methods&#xA;are stored as objects in an internal &lt;code>Hashtable&lt;/code> object.&#xA;Primitives are stored as their &lt;code>Object&lt;/code> type. For example, &lt;code>byte&lt;/code>&#xA;is stored as &lt;code>Byte&lt;/code> object, and &lt;code>int&lt;/code> is stored as&#xA;an &lt;code>Integer&lt;/code> object.&#xA;When the method &lt;code>execute&lt;/code> is called, the values in the&#xA;&lt;code>Hashtable&lt;/code> object are substituted for the appropriate placeholder&#xA;parameters in the command.&#xA;&lt;P)>&#xA;A call to the method &lt;code>getParams&lt;/code> returns the values stored in the&#xA;&lt;code>Hashtable&lt;/code> object as an array of &lt;code>Object&lt;/code> instances.&#xA;An element in this array may be a simple &lt;code>Object&lt;/code> instance or an&#xA;array (which is a type of &lt;code>Object&lt;/code>). The particular setter method used&#xA;determines whether an element in this array is an &lt;code>Object&lt;/code> or an array.&#xA;&lt;P>&#xA;The majority of methods for setting placeholder parameters take two parameters,&#xA;with the first parameter&#xA;indicating which placeholder parameter is to be set, and the second parameter&#xA;giving the value to be set.  Methods such as &lt;code>getInt&lt;/code>,&#xA;&lt;code>getString&lt;/code>, &lt;code>getBoolean&lt;/code>, and &lt;code>getLong&lt;/code> fall into&#xA;this category.  After these methods have been called, a call to the method&#xA;&lt;code>getParams&lt;/code> will return an array with the values that have been set. Each&#xA;element in the array is an &lt;code>Object&lt;/code> instance representing the&#xA;values that have been set. The order of these values in the array is determined by the&#xA;&lt;code>int&lt;/code> (the first parameter) passed to the setter method. The values in the&#xA;array are the values (the second parameter) passed to the setter method.&#xA;In other words, the first element in the array is the value&#xA;to be set for the first placeholder parameter in the &lt;code>RowSet&lt;/code> object's&#xA;command. The second element is the value to&#xA;be set for the second placeholder parameter, and so on.&#xA;&lt;P>&#xA;Several setter methods send the driver and DBMS information beyond the value to be set.&#xA;When the method &lt;code>getParams&lt;/code> is called after one of these setter methods has&#xA;been used, the elements in the array will themselves be arrays to accommodate the&#xA;additional information. In this category, the method &lt;code>setNull&lt;/code> is a special case&#xA;because one version takes only&#xA;two parameters (&lt;code>setNull(int parameterIndex, int SqlType)&lt;/code>). Nevertheless,&#xA;it requires&#xA;an array to contain the information that will be passed to the driver and DBMS.  The first&#xA;element in this array is the value to be set, which is &lt;code>null&lt;/code>, and the&#xA;second element is the &lt;code>int&lt;/code> supplied for &lt;i>sqlType&lt;/i>, which&#xA;indicates the type of SQL value that is being set to &lt;code>null&lt;/code>. This information&#xA;is needed by some DBMSs and is therefore required in order to ensure that applications&#xA;are portable.&#xA;The other version is intended to be used when the value to be set to &lt;code>null&lt;/code>&#xA;is a user-defined type. It takes three parameters&#xA;(&lt;code>setNull(int parameterIndex, int sqlType, String typeName)&lt;/code>) and also&#xA;requires an array to contain the information to be passed to the driver and DBMS.&#xA;The first two elements in this array are the same as for the first version of&#xA;&lt;code>setNull&lt;/code>.  The third element, &lt;i>typeName&lt;/i>, gives the SQL name of&#xA;the user-defined type. As is true with the other setter methods, the number of the&#xA;placeholder parameter to be set is indicated by an element's position in the array&#xA;returned by &lt;code>getParams&lt;/code>.  So, for example, if the parameter&#xA;supplied to &lt;code>setNull&lt;/code> is &lt;code>2&lt;/code>, the second element in the array&#xA;returned by &lt;code>getParams&lt;/code> will be an array of two or three elements.&#xA;&lt;P>&#xA;Some methods, such as &lt;code>setObject&lt;/code> and &lt;code>setDate&lt;/code> have versions&#xA;that take more than two parameters, with the extra parameters giving information&#xA;to the driver or the DBMS. For example, the methods &lt;code>setDate&lt;/code>,&#xA;&lt;code>setTime&lt;/code>, and &lt;code>setTimestamp&lt;/code> can take a &lt;code>Calendar&lt;/code>&#xA;object as their third parameter.  If the DBMS does not store time zone information,&#xA;the drivern uses the &lt;code>Calendar&lt;/code> object to construct the &lt;code>Date&lt;/code>,&#xA;&lt;code>Time&lt;/code>, or &lt;code>Timestamp&lt;/code> object being set. As is true with other&#xA;methods that provide additional information, the element in the array returned&#xA;by &lt;code>getParams&lt;/code> is an array instead of a simple &lt;code>Object&lt;/code> instance.&#xA;&lt;P>&#xA;The methods &lt;code>setAsciiStream&lt;/code>, &lt;code>setBinaryStream&lt;/code>,&#xA;&lt;code>setCharacterStream&lt;/code>, and &lt;code>setUnicodeStream&lt;/code> (which is&#xA;deprecated, so applications should use &lt;code>getCharacterStream&lt;/code> instead)&#xA;take three parameters, so for them, the element in the array returned by&#xA;&lt;code>getParams&lt;/code> is also an array.  What is different about these setter&#xA;methods is that in addition to the information provided by parameters, the array contains&#xA;one of the &lt;code>BaseRowSet&lt;/code> constants indicating the type of stream being set.&#xA;&lt;p>&#xA;NOTE: The method &lt;code>getParams&lt;/code> is called internally by&#xA;&lt;code>RowSet&lt;/code> implementations extending this class; it is not normally called by an&#xA;application programmer directly.&#xA;&#xA;&lt;h3>5.0 Event Notification&lt;/h3>&#xA;The &lt;code>BaseRowSet&lt;/code> class provides the event notification&#xA;mechanism for rowsets.  It contains the field&#xA;&lt;code>listeners&lt;/code>, methods for adding and removing listeners, and&#xA;methods for notifying listeners of changes.&#xA;&lt;P>&#xA;A listener is an object that has implemented the &lt;code>RowSetListener&lt;/code> interface.&#xA;If it has been added to a &lt;code>RowSet&lt;/code> object's list of listeners, it will be notified&#xA;when an event occurs on that &lt;code>RowSet&lt;/code> object.  Each listener's&#xA;implementation of the &lt;code>RowSetListener&lt;/code> methods defines what that object&#xA;will do when it is notified that an event has occurred.&#xA;&lt;P>&#xA;There are three possible events for a &lt;code>RowSet&lt;/code> object:&#xA;&lt;OL>&#xA;&lt;LI>the cursor moves&#xA;&lt;LI>an individual row is changed (updated, deleted, or inserted)&#xA;&lt;LI>the contents of the entire &lt;code>RowSet&lt;/code> object  are changed&#xA;&lt;/OL>&#xA;&lt;P>&#xA;The &lt;code>BaseRowSet&lt;/code> method used for the notification indicates the&#xA;type of event that has occurred.  For example, the method&#xA;&lt;code>notifyRowChanged&lt;/code> indicates that a row has been updated,&#xA;deleted, or inserted.  Each of the notification methods creates a&#xA;&lt;code>RowSetEvent&lt;/code> object, which is supplied to the listener in order to&#xA;identify the &lt;code>RowSet&lt;/code> object on which the event occurred.&#xA;What the listener does with this information, which may be nothing, depends on how it was&#xA;implemented.&#xA;&lt;p>&#xA;&lt;h3>6.0 Default Behavior&lt;/h3>&#xA;A default &lt;code>BaseRowSet&lt;/code> object is initialized with many starting values.&#xA;&#xA;The following is true of a default &lt;code>RowSet&lt;/code> instance that extends&#xA;the &lt;code>BaseRowSet&lt;/code> class:&#xA;&lt;UL>&#xA;&lt;LI>Has a scrollable cursor and does not show changes&#xA;made by others.&#xA;&lt;LI>Is updatable.&#xA;&lt;LI>Does not show rows that have been deleted.&#xA;&lt;LI>Has no time limit for how long a driver may take to&#xA;execute the &lt;code>RowSet&lt;/code> object's command.&#xA;&lt;LI>Has no limit for the number of rows it may contain.&#xA;&lt;LI>Has no limit for the number of bytes a column may contain. NOTE: This&#xA;limit applies only to columns that hold values of the&#xA;following types:  &lt;code>BINARY&lt;/code>, &lt;code>VARBINARY&lt;/code>,&#xA;&lt;code>LONGVARBINARY&lt;/code>, &lt;code>CHAR&lt;/code>, &lt;code>VARCHAR&lt;/code>,&#xA;and &lt;code>LONGVARCHAR&lt;/code>.&#xA;&lt;LI>Will not see uncommitted data (make &quot;dirty&quot; reads).&#xA;&lt;LI>Has escape processing turned on.&#xA;&lt;LI>Has its connection's type map set to &lt;code>null&lt;/code>.&#xA;&lt;LI>Has an empty &lt;code>Vector&lt;/code> object for storing the values set&#xA;for the placeholder parameters in the &lt;code>RowSet&lt;/code> object's command.&#xA;&lt;/UL>&#xA;&lt;p>&#xA;If other values are desired, an application must set the property values&#xA;explicitly. For example, the following line of code sets the maximum number&#xA;of rows for the &lt;code>CachedRowSet&lt;/code> object &lt;i>crs&lt;/i> to 500.&#xA;&lt;PRE>&#xA;crs.setMaxRows(500);&#xA;&lt;/PRE>&#xA;Methods implemented in extensions of this &lt;code>BaseRowSet&lt;/code> class &lt;b>must&lt;/b> throw an&#xA;&lt;code>SQLException&lt;/code> object for any violation of the defined assertions.  Also, if the&#xA;extending class overrides and reimplements any &lt;code>BaseRowSet&lt;/code> method and encounters&#xA;connectivity or underlying data source issues, that method &lt;b>may&lt;/b> in addition throw an&#xA;&lt;code>SQLException&lt;/code> object for that reason.&#xA;" annotatedElement="_10_5_622020d_1132928316401_881359_10721"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323371_492458_16646" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316401_881359_10721" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323371_920658_16647" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316401_881359_10721" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316791_409032_10736" name="JoinRowSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316842_537920_10738" body="The &lt;code>JoinRowSet&lt;/code> interface provides a mechanism for combining related&#xA;data from different &lt;code>RowSet&lt;/code> objects into one &lt;code>JoinRowSet&lt;/code>&#xA;object, which represents an SQL &lt;code>JOIN&lt;/code>.&#xA;In other words, a &lt;code>JoinRowSet&lt;/code> object acts as a&#xA;container for the data from &lt;code>RowSet&lt;/code> objects that form an SQL&#xA;&lt;code>JOIN&lt;/code> relationship.&#xA;&lt;P>&#xA;The &lt;code>Joinable&lt;/code> interface provides the methods for setting,&#xA;retrieving, and unsetting a match column, the basis for&#xA;establishing an SQL &lt;code>JOIN&lt;/code> relationship. The match column may&#xA;alternatively be set by supplying it to the appropriate version of the&#xA;&lt;code>JointRowSet&lt;/code> method &lt;code>addRowSet&lt;/code>.&#xA;&lt;P>&#xA;&lt;p>&#xA;&lt;h3>1.0 Overview&lt;/h3>&#xA;Disconnected &lt;code>RowSet&lt;/code> objects (&lt;code>CachedRowSet&lt;/code> objects&#xA;and implementations extending the &lt;code>CachedRowSet&lt;/code> interface)&#xA;do not have a standard way to establish an SQL &lt;code>JOIN&lt;/code> between&#xA;&lt;code>RowSet&lt;/code> objects without the expensive operation of&#xA;reconnecting to the data source. The &lt;code>JoinRowSet&lt;/code>&#xA;interface is specifically designed to address this need.&#xA;&lt;P>&#xA;Any &lt;code>RowSet&lt;/code> object&#xA;can be added to a &lt;code>JoinRowSet&lt;/code> object to become&#xA;part of an SQL &lt;code>JOIN&lt;/code> relationship. This means that both connected&#xA;and disconnected &lt;code>RowSet&lt;/code> objects can be part of a &lt;code>JOIN&lt;/code>.&#xA;&lt;code>RowSet&lt;/code> objects operating in a connected environment&#xA;(&lt;code>JdbcRowSet&lt;/code> objects) are&#xA;encouraged to use the database to which they are already&#xA;connected to establish SQL &lt;code>JOIN&lt;/code> relationships between&#xA;tables directly. However, it is possible for a&#xA;&lt;code>JdbcRowSet&lt;/code> object to be added to a &lt;code>JoinRowSet&lt;/code> object&#xA;if necessary.&#xA;&lt;P>&#xA;Any number of &lt;code>RowSet&lt;/code> objects can be added to an&#xA;instance of &lt;code>JoinRowSet&lt;/code> provided that they&#xA;can be related in an SQL &lt;code>JOIN&lt;/code>.&#xA;By definition, the SQL &lt;code>JOIN&lt;/code> statement is used to&#xA;combine the data contained in two or more relational database tables based&#xA;upon a common attribute. The &lt;code>Joinable&lt;/code> interface provides the methods&#xA;for establishing a common attribute, which is done by setting a&#xA;&lt;i>match column&lt;/i>. The match column commonly coincides with&#xA;the primary key, but there is&#xA;no requirement that the match column be the same as the primary key.&#xA;By establishing and then enforcing column matches,&#xA;a &lt;code>JoinRowSet&lt;/code> object establishes &lt;code>JOIN&lt;/code> relationships&#xA;between &lt;code>RowSet&lt;/code> objects without the assistance of an available&#xA;relational database.&#xA;&lt;P>&#xA;The type of &lt;code>JOIN&lt;/code> to be established is determined by setting&#xA;one of the &lt;code>JoinRowSet&lt;/code> constants using the method&#xA;&lt;code>setJoinType&lt;/code>. The following SQL &lt;code>JOIN&lt;/code> types can be set:&#xA;&lt;UL>&#xA;&lt;LI>&lt;code>CROSS_JOIN&lt;/code>&#xA;&lt;LI>&lt;code>FULL_JOIN&lt;/code>&#xA;&lt;LI>&lt;code>INNER_JOIN&lt;/code> - the default if no &lt;code>JOIN&lt;/code> type has been set&#xA;&lt;LI>&lt;code>LEFT_OUTER_JOIN&lt;/code>&#xA;&lt;LI>&lt;code>RIGHT_OUTER_JOIN&lt;/code>&#xA;&lt;/UL>&#xA;Note that if no type is set, the &lt;code>JOIN&lt;/code> will automatically be an&#xA;inner join. The comments for the fields in the&#xA;&lt;code>JoinRowSet&lt;/code> interface explain these &lt;code>JOIN&lt;/code> types, which are&#xA;standard SQL &lt;code>JOIN&lt;/code> types.&#xA;&lt;P>&#xA;&lt;h3>2.0 Using a &lt;code>JoinRowSet&lt;/code> Object for Creating a &lt;code>JOIN&lt;/code>&lt;/h3>&#xA;When a &lt;code>JoinRowSet&lt;/code> object is created, it is empty.&#xA;The first &lt;code>RowSet&lt;/code> object to be added becomes the basis for the&#xA;&lt;code>JOIN&lt;/code> relationship.&#xA;Applications must determine which column in each of the&#xA;&lt;code>RowSet&lt;/code> objects to be added to the &lt;code>JoinRowSet&lt;/code> object&#xA;should be the match column. All of the&#xA;&lt;code>RowSet&lt;/code> objects must contain a match column, and the values in&#xA;each match column must be ones that can be compared to values in the other match&#xA;columns. The columns do not have to have the same name, though they often do,&#xA;and they do not have to store the exact same data type as long as the data types&#xA;can be compared.&#xA;&lt;P>&#xA;A match column can be be set in two ways:&#xA;&lt;ul>&#xA;&lt;li>By calling the &lt;code>Joinable&lt;/code> method &lt;code>setMatchColumn&lt;/code>&lt;br>&#xA;This is the only method that can set the match column before a &lt;code>RowSet&lt;/code>&#xA;object is added to a &lt;code>JoinRowSet&lt;/code> object. The &lt;code>RowSet&lt;/code> object&#xA;must have implemented the &lt;code>Joinable&lt;/code> interface in order to use the method&#xA;&lt;code>setMatchColumn&lt;/code>. Once the match column value&#xA;has been set, this method can be used to reset the match column at any time.&#xA;&lt;li>By calling one of the versions of the &lt;code>JoinRowSet&lt;/code> method&#xA;&lt;code>addRowSet&lt;/code> that takes a column name or number (or an array of&#xA;column names or numbers)&lt;BR>&#xA;Four of the five &lt;code>addRowSet&lt;/code> methods take a match column as a parameter.&#xA;These four methods set or reset the match column at the time a &lt;code>RowSet&lt;/code>&#xA;object is being added to a &lt;code>JoinRowSet&lt;/code> object.&#xA;&lt;/ul>&#xA;&lt;h3>3.0 Sample Usage&lt;/h3>&#xA;&lt;p>&#xA;The following code fragment adds two &lt;code>CachedRowSet&lt;/code>&#xA;objects to a &lt;code>JoinRowSet&lt;/code> object. Note that in this example,&#xA;no SQL &lt;code>JOIN&lt;/code> type is set, so the default &lt;code>JOIN&lt;/code> type,&#xA;which is &lt;i>INNER_JOIN&lt;/i>, is established.&#xA;&lt;p>&#xA;In the following code fragment, the table &lt;code>EMPLOYEES&lt;/code>, whose match&#xA;column is set to the first column (&lt;code>EMP_ID&lt;/code>), is added to the&#xA;&lt;code>JoinRowSet&lt;/code> object &lt;i>jrs&lt;/i>. Then&#xA;the table &lt;code>ESSP_BONUS_PLAN&lt;/code>, whose match column is likewise&#xA;the &lt;code>EMP_ID&lt;/code> column, is added. When this second&#xA;table is added to &lt;i>jrs&lt;/i>, only the rows in&#xA;&lt;code>ESSP_BONUS_PLAN&lt;/code> whose &lt;code>EMP_ID&lt;/code> value matches an&#xA;&lt;code>EMP_ID&lt;/code> value in the &lt;code>EMPLOYEES&lt;/code> table are added.&#xA;In this case, everyone in the bonus plan is an employee, so all of the rows&#xA;in the table &lt;code>ESSP_BONUS_PLAN&lt;/code> are added to the &lt;code>JoinRowSet&lt;/code>&#xA;object.  In this example, both &lt;code>CachedRowSet&lt;/code> objects being added&#xA;have implemented the &lt;code>Joinable&lt;/code> interface and can therefore call&#xA;the &lt;code>Joinable&lt;/code> method &lt;code>setMatchColumn&lt;/code>.&#xA;&lt;PRE>&#xA;JoinRowSet jrs = new JoinRowSetImpl();&#xA;&#xA;ResultSet rs1 = stmt.executeQuery(&quot;SELECT * FROM EMPLOYEES&quot;);&#xA;CachedRowSet empl = new CachedRowSetImpl();&#xA;empl.populate(rs1);&#xA;empl.setMatchColumn(1);&#xA;jrs.addRowSet(empl);&#xA;&#xA;ResultSet rs2 = stmt.executeQuery(&quot;SELECT * FROM ESSP_BONUS_PLAN&quot;);&#xA;CachedRowSet bonus = new CachedRowSetImpl();&#xA;bonus.populate(rs2);&#xA;bonus.setMatchColumn(1); // EMP_ID is the first column&#xA;jrs.addRowSet(bonus);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;At this point, &lt;i>jrs&lt;/i> is an inside JOIN of the two &lt;code>RowSet&lt;/code> objects&#xA;based on their &lt;code>EMP_ID&lt;/code> columns. The application can now browse the&#xA;combined data as if it were browsing one single &lt;code>RowSet&lt;/code> object.&#xA;Because &lt;i>jrs&lt;/i> is itself a &lt;code>RowSet&lt;/code> object, an application can&#xA;navigate or modify it using &lt;code>RowSet&lt;/code> methods.&#xA;&lt;PRE>&#xA;jrs.first();&#xA;int employeeID = jrs.getInt(1);&#xA;String employeeName = jrs.getString(2);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;Note that because the SQL &lt;code>JOIN&lt;/code> must be enforced when an application&#xA;adds a second or subsequent &lt;code>RowSet&lt;/code> object, there&#xA;may be an initial degradation in performance while the &lt;code>JOIN&lt;/code> is&#xA;being performed.&#xA;&lt;P>&#xA;The following code fragment adds an additional &lt;code>CachedRowSet&lt;/code> object.&#xA;In this case, the match column (&lt;code>EMP_ID&lt;/code>) is set when the&#xA;&lt;code>CachedRowSet&lt;/code> object is added to the &lt;code>JoinRowSet&lt;/code> object.&#xA;&lt;PRE>&#xA;ResultSet rs3 = stmt.executeQuery(&quot;SELECT * FROM 401K_CONTRIB&quot;);&#xA;CachedRowSet fourO1k = new CachedRowSetImpl();&#xA;four01k.populate(rs3);&#xA;jrs.addRowSet(four01k, 1);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The &lt;code>JoinRowSet&lt;/code> object &lt;i>jrs&lt;/i> now contains values from all three&#xA;tables. The data in each row in &lt;i>four01k&lt;/i> in which the value for the&#xA;&lt;code>EMP_ID&lt;/code> column matches a value for the &lt;code>EMP_ID&lt;/code> column&#xA;in &lt;i>jrs&lt;/i> has been added to &lt;i>jrs&lt;/i>.&#xA;&lt;P>&#xA;&lt;h3>4.0 &lt;code>JoinRowSet&lt;/code> Methods&lt;/h3>&#xA;The &lt;code>JoinRowSet&lt;/code> interface supplies several methods for adding&#xA;&lt;code>RowSet&lt;/code> objects and for getting information about the&#xA;&lt;code>JoinRowSet&lt;/code> object.&#xA;&lt;UL>&#xA;&lt;LI>Methods for adding one or more &lt;code>RowSet&lt;/code> objects&lt;BR>&#xA;These methods allow an application to add one &lt;code>RowSet&lt;/code> object&#xA;at a time or to add multiple &lt;code>RowSet&lt;/code> objects at one time. In&#xA;either case, the methods may specify the match column for each&#xA;&lt;code>RowSet&lt;/code> object being added.&#xA;&lt;LI>Methods for getting information&lt;BR>&#xA;One method retrieves the &lt;code>RowSet&lt;/code> objects in the&#xA;&lt;code>JoinRowSet&lt;/code> object, and another method retrieves the&#xA;&lt;code>RowSet&lt;/code> names.  A third method retrieves either the SQL&#xA;&lt;code>WHERE&lt;/code> clause used behind the scenes to form the&#xA;&lt;code>JOIN&lt;/code> or a text description of what the &lt;code>WHERE&lt;/code>&#xA;clause does.&#xA;&lt;LI>Methods related to the type of &lt;code>JOIN&lt;/code>&lt;BR>&#xA;One method sets the &lt;code>JOIN&lt;/code> type, and five methods find out whether&#xA;the &lt;code>JoinRowSet&lt;/code> object supports a given type.&#xA;&lt;LI>A method to make a separate copy of the &lt;code>JoinRowSet&lt;/code> object&lt;BR>&#xA;This method creates a copy that can be persisted to the data source.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;" annotatedElement="_10_5_622020d_1132928316791_409032_10736"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_970464_16653" isSubstitutable="true" general="_10_5_622020d_1132928316842_953328_10749"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316842_749116_10739" name="Predicate" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316842_556202_10741" body="The standard interface that provides the framework for all&#xA;&lt;code>FilteredRowSet&lt;/code> objects to describe their filters.&#xA;&lt;p>&#xA;&lt;h3>1.0 Background&lt;/h3>&#xA;The &lt;code>Predicate&lt;/code> interface is a standard interface that&#xA;applications can implement to define the filter they wish to apply to a&#xA;a &lt;code>FilteredRowSet&lt;/code> object. A &lt;code>FilteredRowSet&lt;/code>&#xA;object consumes implementations of this interface and enforces the&#xA;constraints defined in the implementation of the method &lt;code>evaluate&lt;/code>.&#xA;A &lt;code>FilteredRowSet&lt;/code> object enforces the filter constraints in a&#xA;bi-directional manner: It outputs only rows that are within&#xA;the constraints of the filter; and conversely, it inserts, modifies, or updates&#xA;only rows that are within the constraints of the filter.&#xA;&#xA;&lt;h3>2.0 Implementation Guidelines&lt;/h3>&#xA;In order to supply a predicate for the &lt;code>FilteredRowSet&lt;/code>.&#xA;this interface must be implemented.  At this time, the JDBC RowSet&#xA;Implementations (JSR-114) does not specify any standard filters definitions.&#xA;By specifying a standard means and mechanism for a range of filters to be&#xA;defined and deployed with both the reference and vendor implementations&#xA;of the &lt;code>FilteredRowSet&lt;/code> interface, this allows for a flexible&#xA;and application motivated implementations of &lt;code>Predicate&lt;/code> to emerge.&#xA;&lt;p>&#xA;A sample implementation would look something like this:&#xA;&lt;pre>&#xA;&lt;code>&#xA;public class Range implements Predicate {&#xA;&#xA;private Object lo[];&#xA;private Object hi[];&#xA;private int idx[];&#xA;&#xA;public Range(Object[] lo, Object[] hi, int[] idx) {&#xA;this.lo = lo;&#xA;this.hi = hi;&#xA;this.idx = idx;&#xA;}&#xA;&#xA;public boolean evaluate(RowSet rs) {&#xA;CachedRowSet crs = (CachedRowSet)rs;&#xA;boolean bool1,bool2;&#xA;&#xA;Check the present row determine if it lies&#xA;within the filtering criteria.&#xA;&#xA;for (int i = 0; i &lt; idx.length; i++) {&#xA;&#xA;if ((rs.getObject(idx[i]) >= lo[i]) &amp;&amp;&#xA;(rs.getObject(idx[i]) >= hi[i]) {&#xA;bool1 = true; // within filter constraints&#xA;} else {&#xA;bool2 = true; // outside of filter constraints&#xA;}&#xA;}&#xA;&#xA;if (bool2) {&#xA;return false;&#xA;} else {&#xA;return true;&#xA;}&#xA;}&#xA;&lt;/code>&#xA;&lt;/pre>&#xA;&lt;P>&#xA;The example above implements a simple range predicate. Note, that&#xA;implementations should but are not required to provider &lt;code>String&lt;/code>&#xA;and integer index based constructors to provide for JDBC RowSet Implementation&#xA;applications that use both column identification conventions.&#xA;&#xA;@author Jonathan Bruce, Amit Handa&#xA;&#xA;" annotatedElement="_10_5_622020d_1132928316842_749116_10739"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316842_530076_10742" name="RowSetMetaDataImpl" clientDependency="_10_5_622020d_1132928323381_612381_16654 _10_5_622020d_1132928323381_672617_16655">
              <ownedComment xmi:id="_10_5_622020d_1132928316842_868918_10745" body="Provides implementations for the methods that set and get&#xA;metadata information about a &lt;code>RowSet&lt;/code> object's columns.&#xA;A &lt;code>RowSetMetaDataImpl&lt;/code> object keeps track of the&#xA;number of columns in the rowset and maintains an internal array&#xA;of column attributes for each column.&#xA;&lt;P>&#xA;A &lt;code>RowSet&lt;/code> object creates a &lt;code>RowSetMetaDataImpl&lt;/code>&#xA;object internally in order to set and retrieve information about&#xA;its columns.&#xA;&lt;P>&#xA;NOTE: All metadata in a &lt;code>RowSetMetaDataImpl&lt;/code> object&#xA;should be considered as unavailable until the &lt;code>RowSet&lt;/code> object&#xA;that it describes is populated.&#xA;Therefore, any &lt;code>RowSetMetaDataImpl&lt;/code> method that retrieves information&#xA;is defined as having unspecified behavior when it is called&#xA;before the &lt;code>RowSet&lt;/code> object contains data.&#xA;" annotatedElement="_10_5_622020d_1132928316842_530076_10742"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323381_612381_16654" name="" supplier="_9_5_f720368_1110473546753_793360_9769" client="_10_5_622020d_1132928316842_530076_10742" contract="_9_5_f720368_1110473546753_793360_9769"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323381_672617_16655" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316842_530076_10742" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316842_326637_10743" name="ColInfo" visibility="private" clientDependency="_10_5_622020d_1132928323381_522100_16656">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323381_522100_16656" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316842_326637_10743" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316842_953328_10749" name="WebRowSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316962_7377_10751" body="The standard interface that all implementations of a &lt;code>WebRowSet&lt;/code>&#xA;must implement.&#xA;&lt;P>&#xA;&lt;h3>1.0 Overview&lt;/h3>&#xA;The &lt;code>WebRowSetImpl&lt;/code> provides the standard&#xA;reference implementation, which may be extended if required.&#xA;&lt;P>&#xA;The standard WebRowSet XML Schema definition is available at the following&#xA;URI:&#xA;&lt;ul>&#xA;&lt;pre>&#xA;&lt;a href=&quot;http://java.sun.com/xml/ns/jdbc/webrowset.xsd&quot;>http://java.sun.com/xml/ns/jdbc/webrowset.xsd&lt;/a>&#xA;&lt;/pre>&#xA;&lt;/ul>&#xA;It describes the standard XML document format required when describing a&#xA;&lt;code>RowSet&lt;/code> object in XML and must be used be all standard implementations&#xA;of the &lt;code>WebRowSet&lt;/code> interface to ensure interoperability. In addition,&#xA;the &lt;code>WebRowSet&lt;/code> schema uses specific SQL/XML Schema annotations,&#xA;thus ensuring greater cross&#xA;platform inter-operability. This is an effort currently under way at the ISO&#xA;organization. The SQL/XML definition is available at the following URI:&#xA;&lt;ul>&#xA;&lt;pre>&#xA;&lt;a href=&quot;http://standards.iso.org/iso/9075/2002/12/sqlxml&quot;>http://standards.iso.org/iso/9075/2002/12/sqlxml&lt;/a>&#xA;&lt;/pre>&#xA;&lt;/ul>&#xA;The schema definition describes the internal data of a &lt;code>RowSet&lt;/code> object&#xA;in three distinct areas:&#xA;&lt;UL>&#xA;&lt;li>&lt;b>properties&lt;/b>&lt;/li>&#xA;These properties describe the standard synchronization provider properties in&#xA;addition to the more general &lt;code>RowSet&lt;/code> properties.&#xA;&lt;p>&#xA;&lt;li>&lt;b>metadata&lt;/b>&lt;/li>&#xA;This describes the metadata associated with the tabular structure governed by a&#xA;&lt;code>WebRowSet&lt;/code> object. The metadata described is closely aligned with the&#xA;metadata accessible in the underlying &lt;code>java.sql.ResultSet&lt;/code> interface.&#xA;&lt;p>&#xA;&lt;li>&lt;b>data&lt;/b>&lt;/li>&#xA;This describes the original data (the state of data since the last population&#xA;or last synchronization of the &lt;code>WebRowSet&lt;/code> object) and the current&#xA;data. By keeping track of the delta between the original data and the current data,&#xA;a &lt;code>WebRowSet&lt;/code> maintains&#xA;the ability to synchronize changes in its data back to the originating data source.&#xA;&lt;/ul>&#xA;&lt;P>&#xA;&lt;h3>2.0 WebRowSet States&lt;/h3>&#xA;The following sections demonstrates how a &lt;code>WebRowSet&lt;/code> implementation&#xA;should use the XML Schema to describe update, insert, and delete operations&#xA;and to describe the state of a &lt;code>WebRowSet&lt;/code> object in XML.&#xA;&lt;p>&#xA;&lt;h4>2.1 State 1 - Outputting a &lt;code>WebRowSet&lt;/code> Object to XML&lt;/h3>&#xA;In this example, a &lt;code>WebRowSet&lt;/code> object is created and populated with a simple 2 column,&#xA;5 row table from a data source. Having the 5 rows in a &lt;code>WebRowSet&lt;/code> object&#xA;makes it possible to describe them in XML. The&#xA;metadata describing the various standard JavaBeans properties as defined&#xA;in the RowSet interface plus the standard properties defined in&#xA;the &lt;code>CachedRowSet&lt;/code>&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> interface&#xA;provide key details that describe WebRowSet&#xA;properties. Outputting the WebRowSet object to XML using the standard&#xA;&lt;code>writeXml&lt;/code> methods describes the internal properties as follows:&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>properties&lt;/font>>&#xA;&lt;&lt;font color=red>command&lt;/font>>select co1, col2 from test_table&lt;&lt;font color=red>/command&lt;/font>>&#xA;&lt;&lt;font color=red>concurrency&lt;/font>>1&lt;&lt;font color=red>/concurrency&lt;/font>>&#xA;&lt;&lt;font color=red>datasource/&lt;/font>>&#xA;&lt;&lt;font color=red>escape-processing&lt;/font>>true&lt;&lt;font color=red>/escape-processing&lt;/font>>&#xA;&lt;&lt;font color=red>fetch-direction&lt;/font>>0&lt;&lt;font color=red>/fetch-direction&lt;/font>>&#xA;&lt;&lt;font color=red>fetch-size&lt;/font>>0&lt;&lt;font color=red>/fetch-size&lt;/font>>&#xA;&lt;&lt;font color=red>isolation-level&lt;/font>>1&lt;&lt;font color=red>/isolation-level&lt;/font>>&#xA;&lt;&lt;font color=red>key-columns/&lt;/font>>&#xA;&lt;&lt;font color=red>map/&lt;/font>>&#xA;&lt;&lt;font color=red>max-field-size&lt;/font>>0&lt;&lt;font color=red>/max-field-size&lt;/font>>&#xA;&lt;&lt;font color=red>max-rows&lt;/font>>0&lt;&lt;font color=red>/max-rows&lt;/font>>&#xA;&lt;&lt;font color=red>query-timeout&lt;/font>>0&lt;&lt;font color=red>/query-timeout&lt;/font>>&#xA;&lt;&lt;font color=red>read-only&lt;/font>>false&lt;&lt;font color=red>/read-only&lt;/font>>&#xA;&lt;&lt;font color=red>rowset-type&lt;/font>>TRANSACTION_READ_UNCOMMITED&lt;&lt;font color=red>/rowset-type&lt;/font>>&#xA;&lt;&lt;font color=red>show-deleted&lt;/font>>false&lt;&lt;font color=red>/show-deleted&lt;/font>>&#xA;&lt;&lt;font color=red>table-name/&lt;/font>>&#xA;&lt;&lt;font color=red>url&lt;/font>>jdbc:thin:oracle&lt;&lt;font color=red>/url&lt;/font>>&#xA;&lt;&lt;font color=red>sync-provider&lt;/font>>&#xA;&lt;&lt;font color=red>sync-provider-name&lt;/font>>.com.rowset.provider.RIOptimisticProvider&lt;&lt;font color=red>/sync-provider-name&lt;/font>>&#xA;&lt;&lt;font color=red>sync-provider-vendor&lt;/font>>Sun Microsystems&lt;&lt;font color=red>/sync-provider-vendor&lt;/font>>&#xA;&lt;&lt;font color=red>sync-provider-version&lt;/font>>1.0&lt;&lt;font color=red>/sync-provider-name&lt;/font>>&#xA;&lt;&lt;font color=red>sync-provider-grade&lt;/font>>LOW&lt;&lt;font color=red>/sync-provider-grade&lt;/font>>&#xA;&lt;&lt;font color=red>data-source-lock&lt;/font>>NONE&lt;&lt;font color=red>/data-source-lock&lt;/font>>&#xA;&lt;&lt;font color=red>/sync-provider&lt;/font>>&#xA;&lt;&lt;font color=red>/properties&lt;/font>>&#xA;&lt;/PRE>&#xA;The meta-data describing the make up of the WebRowSet is described&#xA;in XML as detailed below. Note both columns are described between the&#xA;&lt;code>column-definition&lt;/code> tags.&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>metadata&lt;/font>>&#xA;&lt;&lt;font color=red>column-count&lt;/font>>2&lt;&lt;font color=red>/column-count&lt;/font>>&#xA;&lt;&lt;font color=red>column-definition&lt;/font>>&#xA;&lt;&lt;font color=red>column-index&lt;/font>>1&lt;&lt;font color=red>/column-index&lt;/font>>&#xA;&lt;&lt;font color=red>auto-increment&lt;/font>>false&lt;&lt;font color=red>/auto-increment&lt;/font>>&#xA;&lt;&lt;font color=red>case-sensitive&lt;/font>>true&lt;&lt;font color=red>/case-sensitive&lt;/font>>&#xA;&lt;&lt;font color=red>currency&lt;/font>>false&lt;&lt;font color=red>/currency&lt;/font>>&#xA;&lt;&lt;font color=red>nullable&lt;/font>>1&lt;&lt;font color=red>/nullable&lt;/font>>&#xA;&lt;&lt;font color=red>signed&lt;/font>>false&lt;&lt;font color=red>/signed&lt;/font>>&#xA;&lt;&lt;font color=red>searchable&lt;/font>>true&lt;&lt;font color=red>/searchable&lt;/font>>&#xA;&lt;&lt;font color=red>column-display-size&lt;/font>>10&lt;&lt;font color=red>/column-display-size&lt;/font>>&#xA;&lt;&lt;font color=red>column-label&lt;/font>>COL1&lt;&lt;font color=red>/column-label&lt;/font>>&#xA;&lt;&lt;font color=red>column-name&lt;/font>>COL1&lt;&lt;font color=red>/column-name&lt;/font>>&#xA;&lt;&lt;font color=red>schema-name/&lt;/font>>&#xA;&lt;&lt;font color=red>column-precision&lt;/font>>10&lt;&lt;font color=red>/column-precision&lt;/font>>&#xA;&lt;&lt;font color=red>column-scale&lt;/font>>0&lt;&lt;font color=red>/column-scale&lt;/font>>&#xA;&lt;&lt;font color=red>table-name/&lt;/font>>&#xA;&lt;&lt;font color=red>catalog-name/&lt;/font>>&#xA;&lt;&lt;font color=red>column-type&lt;/font>>1&lt;&lt;font color=red>/column-type&lt;/font>>&#xA;&lt;&lt;font color=red>column-type-name&lt;/font>>CHAR&lt;&lt;font color=red>/column-type-name&lt;/font>>&#xA;&lt;&lt;font color=red>/column-definition&lt;/font>>&#xA;&lt;&lt;font color=red>column-definition&lt;/font>>&#xA;&lt;&lt;font color=red>column-index&lt;/font>>2&lt;&lt;font color=red>/column-index&lt;/font>>&#xA;&lt;&lt;font color=red>auto-increment&lt;/font>>false&lt;&lt;font color=red>/auto-increment&lt;/font>>&#xA;&lt;&lt;font color=red>case-sensitive&lt;/font>>false&lt;&lt;font color=red>/case-sensitive&lt;/font>>&#xA;&lt;&lt;font color=red>currency&lt;/font>>false&lt;&lt;font color=red>/currency&lt;/font>>&#xA;&lt;&lt;font color=red>nullable&lt;/font>>1&lt;&lt;font color=red>/nullable&lt;/font>>&#xA;&lt;&lt;font color=red>signed&lt;/font>>true&lt;&lt;font color=red>/signed&lt;/font>>&#xA;&lt;&lt;font color=red>searchable&lt;/font>>true&lt;&lt;font color=red>/searchable&lt;/font>>&#xA;&lt;&lt;font color=red>column-display-size&lt;/font>>39&lt;&lt;font color=red>/column-display-size&lt;/font>>&#xA;&lt;&lt;font color=red>column-label&lt;/font>>COL2&lt;&lt;font color=red>/column-label&lt;/font>>&#xA;&lt;&lt;font color=red>column-name&lt;/font>>COL2&lt;&lt;font color=red>/column-name&lt;/font>>&#xA;&lt;&lt;font color=red>schema-name/&lt;/font>>&#xA;&lt;&lt;font color=red>column-precision&lt;/font>>38&lt;&lt;font color=red>/column-precision&lt;/font>>&#xA;&lt;&lt;font color=red>column-scale&lt;/font>>0&lt;&lt;font color=red>/column-scale&lt;/font>>&#xA;&lt;&lt;font color=red>table-name/&lt;/font>>&#xA;&lt;&lt;font color=red>catalog-name/&lt;/font>>&#xA;&lt;&lt;font color=red>column-type&lt;/font>>3&lt;&lt;font color=red>/column-type&lt;/font>>&#xA;&lt;&lt;font color=red>column-type-name&lt;/font>>NUMBER&lt;&lt;font color=red>/column-type-name&lt;/font>>&#xA;&lt;&lt;font color=red>/column-definition&lt;/font>>&#xA;&lt;&lt;font color=red>/metadata&lt;/font>>&#xA;&lt;/PRE>&#xA;Having detailed how the properties and metadata are described, the following details&#xA;how the contents of a &lt;code>WebRowSet&lt;/code> object is described in XML. Note, that&#xA;this describes a &lt;code>WebRowSet&lt;/code> object that has not undergone any&#xA;modifications since its instantiation.&#xA;A &lt;code>currentRow&lt;/code> tag is mapped to each row of the table structure that the&#xA;&lt;code>WebRowSet&lt;/code> object provides. A &lt;code>columnValue&lt;/code> tag may contain&#xA;either the &lt;code>stringData&lt;/code> or &lt;code>binaryData&lt;/code> tag, according to&#xA;the SQL type that&#xA;the XML value is mapping back to. The &lt;code>binaryData&lt;/code> tag contains data in the&#xA;Base64 encoding and is typically used for &lt;code>BLOB&lt;/code> and &lt;code>CLOB&lt;/code> type data.&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>data&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;firstrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;1&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;secondrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;2&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;thirdrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;3&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fourthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;4&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>/data&lt;/font>>&#xA;&lt;/PRE>&#xA;&lt;h4>2.2 State 2 - Deleting a Row&lt;/h4>&#xA;Deleting a row in a &lt;code>WebRowSet&lt;/code> object involves simply moving to the row&#xA;to be deleted and then calling the method &lt;code>deleteRow&lt;/code>, as in any other&#xA;&lt;code>RowSet&lt;/code> object.  The following&#xA;two lines of code, in which &lt;i>wrs&lt;/i> is a &lt;code>WebRowSet&lt;/code> object, delete&#xA;the third row.&#xA;&lt;PRE>&#xA;wrs.absolute(3);&#xA;wrs.deleteRow();&#xA;&lt;/PRE>&#xA;The XML description shows the third row is marked as a &lt;code>deleteRow&lt;/code>,&#xA;which eliminates the third row in the &lt;code>WebRowSet&lt;/code> object.&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>data&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;firstrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;1&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;secondrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;2&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>deleteRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;thirdrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;3&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/deleteRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fourthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;4&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>/data&lt;/font>>&#xA;&lt;/PRE>&#xA;&lt;h4>2.3 State 3 - Inserting a Row&lt;/h4>&#xA;A &lt;codeWebRowSet&lt;/code> object can insert a new row by moving to the insert row,&#xA;calling the appropriate updater methods for each column in the row, and then&#xA;calling the method &lt;code>insertRow&lt;/code>.&#xA;&lt;PRE>&#xA;wrs.moveToInsertRow();&#xA;wrs.updateString(1, &quot;fifththrow&quot;);&#xA;wrs.updateString(2, &quot;5&quot;);&#xA;wrs.insertRow();&#xA;&lt;/PRE>&#xA;The following code fragment changes the second column value in the row just inserted.&#xA;Note that this code applies when new rows are inserted right after the current row,&#xA;which is why the method &lt;code>next&lt;/code> moves the cursor to the correct row.&#xA;Calling the method &lt;code>acceptChanges&lt;/code> writes the change to the data source.&#xA;&#xA;&lt;PRE>&#xA;wrs.moveToCurrentRow();&#xA;wrs.next();&#xA;wrs.updateString(2, &quot;V&quot;);&#xA;wrs.acceptChanges();&#xA;:&#xA;&lt;/PRE>&#xA;Describing this in XML demonstrates where the Java code inserts a new row and then&#xA;performs an update on the newly inserted row on an individual field.&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>data&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;firstrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;1&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;secondrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;2&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;newthirdrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;III&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>insertRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fifthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;5&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>updateValue&lt;/font>>&#xA;V&#xA;&lt;&lt;font color=red>/updateValue&lt;/font>>&#xA;&lt;&lt;font color=red>/insertRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fourthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;4&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>/date&lt;/font>>&#xA;&lt;/PRE>&#xA;&lt;h4>2.4 State 4 - Modifying a Row&lt;/h4>&#xA;Modifying a row produces specific XML that records both the new value and the&#xA;value that was replaced.  The value that was replaced becomes the original value,&#xA;and the new value becomes the current value. The following&#xA;code moves the cursor to a specific row, performs some modifications, and updates&#xA;the row when complete.&#xA;&lt;PRE>&#xA;wrs.absolute(5);&#xA;wrs.updateString(1, &quot;new4thRow&quot;);&#xA;wrs.updateString(2, &quot;IV&quot;);&#xA;wrs.updateRow();&#xA;&lt;/PRE>&#xA;In XML, this is described by the &lt;code>modifyRow&lt;/code> tag. Both the original and new&#xA;values are contained within the tag for original row tracking purposes.&#xA;&lt;PRE>&#xA;&lt;&lt;font color=red>data&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;firstrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;1&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;secondrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;2&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;newthirdrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;III&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fifthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;5&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>/currentRow&lt;/font>>&#xA;&lt;&lt;font color=red>modifyRow&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;fourthrow&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>updateValue&lt;/font>>&#xA;new4thRow&#xA;&lt;&lt;font color=red>/updateValue&lt;/font>>&#xA;&lt;&lt;font color=red>columnValue&lt;/font>>&#xA;4&#xA;&lt;&lt;font color=red>/columnValue&lt;/font>>&#xA;&lt;&lt;font color=red>updateValue&lt;/font>>&#xA;IV&#xA;&lt;&lt;font color=red>/updateValue&lt;/font>>&#xA;&lt;&lt;font color=red>/modifyRow&lt;/font>>&#xA;&lt;&lt;font color=red>/data&lt;/font>>&#xA;&lt;/PRE>&#xA;&#xA;@see javax.sql.rowset.JdbcRowSet&#xA;@see javax.sql.rowset.CachedRowSet&#xA;@see javax.sql.rowset.FilteredRowSet&#xA;@see javax.sql.rowset.JoinRowSet&#xA;" annotatedElement="_10_5_622020d_1132928316842_953328_10749"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_116594_16658" isSubstitutable="true" general="_10_5_622020d_1132928316471_381863_10724"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316471_381863_10724" name="CachedRowSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316781_771759_10726" body="The interface that all standard implementations of&#xA;&lt;code>CachedRowSet&lt;/code> must implement.&#xA;&lt;P>&#xA;The reference implementation of the &lt;code>CachedRowSet&lt;/code> interface provided&#xA;by Sun Microsystems is a standard implementation. Developers may use this implementation&#xA;just as it is, they may extend it, or they may choose to write their own implementations&#xA;of this interface.&#xA;&lt;P>&#xA;A &lt;code>CachedRowSet&lt;/code> object is a container for rows of data&#xA;that caches its rows in memory, which makes it possible to operate without always being&#xA;connected to its data source. Further, it is a&#xA;JavaBeans&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> component and is scrollable,&#xA;updatable, and serializable. A &lt;code>CachedRowSet&lt;/code> object typically&#xA;contains rows from a result set, but it can also contain rows from any file&#xA;with a tabular format, such as a spread sheet.  The reference implementation&#xA;supports getting data only from a &lt;code>ResultSet&lt;/code> object, but&#xA;developers can extend the &lt;code>SyncProvider&lt;/code> implementations to provide&#xA;access to other tabular data sources.&#xA;&lt;P>&#xA;An application can modify the data in a &lt;code>CachedRowSet&lt;/code> object, and&#xA;those modifications can then be propagated back to the source of the data.&#xA;&lt;P>&#xA;A &lt;code>CachedRowSet&lt;/code> object is a &lt;i>disconnected&lt;/i> rowset, which means&#xA;that it makes use of a connection to its data source only briefly. It connects to its&#xA;data source while it is reading data to populate itself with rows and again&#xA;while it is propagating changes back to its underlying data source. The rest&#xA;of the time, a &lt;code>CachedRowSet&lt;/code> object is disconnected, including&#xA;while its data is being modified. Being disconnected makes a &lt;code>RowSet&lt;/code>&#xA;object much leaner and therefore much easier to pass to another component.  For&#xA;example, a disconnected &lt;code>RowSet&lt;/code> object can be serialized and passed&#xA;over the wire to a thin client such as a personal digital assistant (PDA).&#xA;&lt;P>&#xA;&#xA;&lt;h3>1.0 Creating a &lt;code>CachedRowSet&lt;/code> Object&lt;/h3>&#xA;The following line of code uses the default constructor for&#xA;&lt;code>CachedRowSet&lt;/code>&#xA;supplied in the reference implementation (RI) to create a default&#xA;&lt;code>CachedRowSet&lt;/code> object.&#xA;&lt;PRE>&#xA;CachedRowSetImpl crs = new CachedRowSetImpl();&#xA;&lt;/PRE>&#xA;This new &lt;code>CachedRowSet&lt;/code> object will have its properties set to the&#xA;default properties of a &lt;code>BaseRowSet&lt;/code> object, and, in addition, it will&#xA;have an &lt;code>RIOptimisticProvider&lt;/code> object as its synchronization provider.&#xA;&lt;code>RIOptimisticProvider&lt;/code>, one of two &lt;code>SyncProvider&lt;/code>&#xA;implementations included in the RI, is the default provider that the&#xA;&lt;code>SyncFactory&lt;/code> singleton will supply when no synchronization&#xA;provider is specified.&#xA;&lt;P>&#xA;A &lt;code>SyncProvider&lt;/code> object provides a &lt;code>CachedRowSet&lt;/code> object&#xA;with a reader (a &lt;code>RowSetReader&lt;/code> object) for reading data from a&#xA;data source to populate itself with data. A reader can be implemented to read&#xA;data from a &lt;code>ResultSet&lt;/code> object or from a file with a tabular format.&#xA;A &lt;code>SyncProvider&lt;/code> object also provides&#xA;a writer (a &lt;code>RowSetWriter&lt;/code> object) for synchronizing any&#xA;modifications to the &lt;code>CachedRowSet&lt;/code> object's data made while it was&#xA;disconnected with the data in the underlying data source.&#xA;&lt;P>&#xA;A writer can be implemented to exercise various degrees of care in checking&#xA;for conflicts and in avoiding them.&#xA;(A conflict occurs when a value in the data source has been changed after&#xA;the rowset populated itself with that value.)&#xA;The &lt;code>RIOptimisticProvider&lt;/code> implementation assumes there will be&#xA;few or no conflicts and therefore sets no locks. It updates the data source&#xA;with values from the &lt;code>CachedRowSet&lt;/code> object only if there are no&#xA;conflicts.&#xA;Other writers can be implemented so that they always write modified data to&#xA;the data source, which can be accomplished either by not checking for conflicts&#xA;or, on the other end of the spectrum, by setting locks sufficient to prevent data&#xA;in the data source from being changed. Still other writer implementations can be&#xA;somewhere in between.&#xA;&lt;P>&#xA;A &lt;code>CachedRowSet&lt;/code> object may use any&#xA;&lt;code>SyncProvider&lt;/code> implementation that has been registered&#xA;with the &lt;code>SyncFactory&lt;/code> singleton. An application&#xA;can find out which &lt;code>SyncProvider&lt;/code> implementations have been&#xA;registered by calling the following line of code.&#xA;&lt;PRE>&#xA;java.util.Enumeration providers = SyncFactory.getRegisteredProviders();&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;There are two ways for a &lt;code>CachedRowSet&lt;/code> object to specify which&#xA;&lt;code>SyncProvider&lt;/code> object it will use.&#xA;&lt;UL)&#xA;&lt;LI>Supplying the name of the implementation to the constructor&lt;BR>&#xA;The following line of code creates the &lt;code>CachedRowSet&lt;/code>&#xA;object &lt;i>crs2&lt;/i> that is initialized with default values except that its&#xA;&lt;code>SyncProvider&lt;/code> object is the one specified.&#xA;&lt;PRE>&#xA;CachedRowSetImpl crs2 = new CachedRowSetImpl(&#xA;&quot;com.fred.providers.HighAvailabilityProvider&quot;);&#xA;&lt;/PRE>&#xA;&lt;LI>Setting the &lt;code>SyncProvider&lt;/code> using the &lt;code>CachedRowSet&lt;/code>&#xA;method &lt;code>setSyncProvider&lt;/code>&lt;BR>&#xA;The following line of code resets the &lt;code>SyncProvider&lt;/code> object&#xA;for &lt;i>crs&lt;/i>, the &lt;code>CachedRowSet&lt;/code> object created with the&#xA;default constructor.&#xA;&lt;PRE>&#xA;crs.setSyncProvider(&quot;com.fred.providers.HighAvailabilityProvider&quot;);&#xA;&lt;/PRE>&#xA;&lt;/UL)&#xA;See the comments for &lt;code>SyncFactory&lt;/code> and &lt;code>SyncProvider&lt;/code> for&#xA;more details.&#xA;&#xA;&lt;P>&#xA;&lt;h3>2.0 Retrieving Data from a &lt;code>CachedRowSet&lt;/code> Object&lt;/h3>&#xA;Data is retrieved from a &lt;code>CachedRowSet&lt;/code> object by using the&#xA;getter methods inherited from the &lt;code>ResultSet&lt;/code>&#xA;interface.  The following examples, in which &lt;code>crs&lt;/code> is a&#xA;&lt;code>CachedRowSet&lt;/code>&#xA;object, demonstrate how to iterate through the rows, retrieving the column&#xA;values in each row.  The first example uses the version of the&#xA;getter methods that take a column number; the second example&#xA;uses the version that takes a column name. Column numbers are generally&#xA;used when the &lt;code>RowSet&lt;/code> object's command&#xA;is of the form &lt;code>SELECT * FROM TABLENAME&lt;/code>; column names are most&#xA;commonly used when the command specifies columns by name.&#xA;&lt;PRE>&#xA;while (crs.next()) {&#xA;String name = crs.getString(1);&#xA;int id = crs.getInt(2);&#xA;Clob comment = crs.getClob(3);&#xA;short dept = crs.getShort(4);&#xA;System.out.println(name + &quot;  &quot; + id + &quot;  &quot; + comment + &quot;  &quot; + dept);&#xA;}&#xA;&lt;/PRE>&#xA;&#xA;&lt;PRE>&#xA;while (crs.next()) {&#xA;String name = crs.getString(&quot;NAME&quot;);&#xA;int id = crs.getInt(&quot;ID&quot;);&#xA;Clob comment = crs.getClob(&quot;COM&quot;);&#xA;short dept = crs.getShort(&quot;DEPT&quot;);&#xA;System.out.println(name + &quot;  &quot; + id + &quot;  &quot; + comment + &quot;  &quot; + dept);&#xA;}&#xA;&lt;/PRE>&#xA;&lt;h4>2.1 Retrieving &lt;code>RowSetMetaData&lt;/code>&lt;/h4>&#xA;An application can get information about the columns in a &lt;code>CachedRowSet&lt;/code>&#xA;object by calling &lt;code>ResultSetMetaData&lt;/code> and &lt;code>RowSetMetaData&lt;/code>&#xA;methods on a &lt;code>RowSetMetaData&lt;/code> object. The following code fragment,&#xA;in which &lt;i>crs&lt;/i> is a &lt;code>CachedRowSet&lt;/code> object, illustrates the process.&#xA;The first line creates a &lt;code>RowSetMetaData&lt;/code> object with information&#xA;about the columns in &lt;i>crs&lt;/i>.  The method &lt;code>getMetaData&lt;/code>,&#xA;inherited from the &lt;code>ResultSet&lt;/code> interface, returns a&#xA;&lt;code>ResultSetMetaData&lt;/code> object, which is cast to a&#xA;&lt;code>RowSetMetaData&lt;/code> object before being assigned to the variable&#xA;&lt;i>rsmd&lt;/i>.  The second line finds out how many columns &lt;i>jrs&lt;/i> has, and&#xA;the third line gets the JDBC type of values stored in the second column of&#xA;&lt;code>jrs&lt;/code>.&#xA;&lt;PRE>&#xA;RowSetMetaData rsmd = (RowSetMetaData)crs.getMetaData();&#xA;int count = rsmd.getColumnCount();&#xA;int type = rsmd.getColumnType(2);&#xA;&lt;/PRE>&#xA;The &lt;code>RowSetMetaData&lt;/code> interface differs from the&#xA;&lt;code>ResultSetMetaData&lt;/code> interface in two ways.&#xA;&lt;UL>&#xA;&lt;LI>&lt;i>It includes &lt;code>setter&lt;/code> methods:&lt;/i> A &lt;code>RowSet&lt;/code>&#xA;object uses these methods internally when it is populated with data from a&#xA;different &lt;code>ResultSet&lt;/code> object.&#xA;&lt;P>&#xA;&lt;LI>&lt;i>It contains fewer &lt;code>getter&lt;/code> methods:&lt;/i> Some&#xA;&lt;code>ResultSetMetaData&lt;/code> methods to not apply to a &lt;code>RowSet&lt;/code>&#xA;object. For example, methods retrieving whether a column value is writable&#xA;or read only do not apply because all of a &lt;code>RowSet&lt;/code> object's&#xA;columns will be writable or read only, depending on whether the rowset is&#xA;updatable or not.&#xA;&lt;/UL>&#xA;NOTE: In order to return a &lt;code>RowSetMetaData&lt;/code> object, implementations must&#xA;override the &lt;code>getMetaData()&lt;/code> method defined in&#xA;&lt;code>java.sql.ResultSet&lt;/code> and return a &lt;code>RowSetMetaData&lt;/code> object.&#xA;&#xA;&lt;h3>3.0 Updating a &lt;code>CachedRowSet&lt;/code> Object&lt;/h3>&#xA;Updating a &lt;code>CachedRowSet&lt;/code> object is similar to updating a&#xA;&lt;code>ResultSet&lt;/code> object, but because the rowset is not connected to&#xA;its data source while it is being updated, it must take an additional step&#xA;to effect changes in its underlying data source. After calling the method&#xA;&lt;code>updateRow&lt;/code> or &lt;code>insertRow&lt;/code>, a&#xA;&lt;code>CachedRowSet&lt;/code>&#xA;object must also call the method &lt;code>acceptChanges&lt;/code> to have updates&#xA;written to the data source. The following example, in which the cursor is&#xA;on a row in the &lt;code>CachedRowSet&lt;/code> object &lt;i>crs&lt;/i>, shows&#xA;the code required to update two column values in the current row and also&#xA;update the &lt;code>RowSet&lt;/code> object's underlying data source.&#xA;&lt;PRE>&#xA;crs.updateShort(3, 58);&#xA;crs.updateInt(4, 150000);&#xA;crs.updateRow();&#xA;crs.acceptChanges();&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The next example demonstrates moving to the insert row, building a new&#xA;row on the insert row, inserting it into the rowset, and then calling the&#xA;method &lt;code>acceptChanges&lt;/code> to add the new row to the underlying data&#xA;source.  Note that as with the getter methods, the  updater methods may take&#xA;either a column index or a column name to designate the column being acted upon.&#xA;&lt;PRE>&#xA;crs.moveToInsertRow();&#xA;crs.updateString(&quot;Name&quot;, &quot;Shakespeare&quot;);&#xA;crs.updateInt(&quot;ID&quot;, 10098347);&#xA;crs.updateShort(&quot;Age&quot;, 58);&#xA;crs.updateInt(&quot;Sal&quot;, 150000);&#xA;crs.insertRow();&#xA;crs.moveToCurrentRow();&#xA;crs.acceptChanges();&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;NOTE: Where the &lt;code>insertRow()&lt;/code> method inserts the contents of a&#xA;&lt;code>CachedRowSet&lt;/code> object's insert row is implementation-defined.&#xA;The reference implementation for the &lt;code>CachedRowSet&lt;/code> interface&#xA;inserts a new row immediately following the current row, but it could be&#xA;implemented to insert new rows in any number of other places.&#xA;&lt;P>&#xA;Another thing to note about these examples is how they use the method&#xA;&lt;code>acceptChanges&lt;/code>.  It is this method that propagates changes in&#xA;a &lt;code>CachedRowSet&lt;/code> object back to the underlying data source,&#xA;calling on the &lt;code>RowSet&lt;/code> object's writer internally to write&#xA;changes to the data source. To do this, the writer has to incur the expense&#xA;of establishing a connection with that data source. The&#xA;preceding two code fragments call the method &lt;code>acceptChanges&lt;/code>&#xA;immediately after calling &lt;code>updateRow&lt;/code> or &lt;code>insertRow&lt;/code>.&#xA;However, when there are multiple rows being changed, it is more efficient to call&#xA;&lt;code>acceptChanges&lt;/code> after all calls to &lt;code>updateRow&lt;/code>&#xA;and &lt;code>insertRow&lt;/code> have been made.  If &lt;code>acceptChanges&lt;/code>&#xA;is called only once, only one connection needs to be established.&#xA;&lt;P>&#xA;&lt;h3>4.0 Updating the Underlying Data Source&lt;/h3>&#xA;When the method &lt;code>acceptChanges&lt;/code> is executed, the&#xA;&lt;code>CachedRowSet&lt;/code> object's writer, a &lt;code>RowSetWriterImpl&lt;/code>&#xA;object, is called behind the scenes to write the changes made to the&#xA;rowset to the underlying data source. The writer is implemented to make a&#xA;connection to the data source and write updates to it.&#xA;&lt;P>&#xA;A writer is made available through an implementation of the&#xA;&lt;code>SyncProvider&lt;/code> interface, as discussed in section 1,&#xA;&quot;Creating a &lt;code>CachedRowSet&lt;/code> Object.&quot;&#xA;The default reference implementation provider, &lt;code>RIOptimisticProvider&lt;/code>,&#xA;has its writer implemented to use an optimistic concurrency control&#xA;mechanism. That is, it maintains no locks in the underlying database while&#xA;the rowset is disconnected from the database and simply checks to see if there&#xA;are any conflicts before writing data to the data source.  If there are any&#xA;conflicts, it does not write anything to the data source.&#xA;&lt;P>&#xA;The reader/writer facility&#xA;provided by the &lt;code>SyncProvider&lt;/code> class is pluggable, allowing for the&#xA;customization of data retrieval and updating. If a different concurrency&#xA;control mechanism is desired, a different implementation of&#xA;&lt;code>SyncProvider&lt;/code> can be plugged in using the method&#xA;&lt;code>setSyncProvider&lt;/code>.&#xA;&lt;P>&#xA;In order to use the optimistic concurrency control routine, the&#xA;&lt;code>RIOptismisticProvider&lt;/code> maintains both its current&#xA;value and its original value (the value it had immediately preceding the&#xA;current value). Note that if no changes have been made to the data in a&#xA;&lt;code>RowSet&lt;/code> object, its current values and its original values are the same,&#xA;both being the values with which the &lt;code>RowSet&lt;/code> object was initially&#xA;populated.  However, once any values in the &lt;code>RowSet&lt;/code> object have been&#xA;changed, the current values and the original values will be different, though at&#xA;this stage, the original values are still the initial values. With any subsequent&#xA;changes to data in a &lt;code>RowSet&lt;/code> object, its original values and current&#xA;values will still differ, but its original values will be the values that&#xA;were previously the current values.&#xA;&lt;P>&#xA;Keeping track of original values allows the writer to compare the &lt;code>RowSet&lt;/code>&#xA;object's original value with the value in the database. If the values in&#xA;the database differ from the &lt;code>RowSet&lt;/code> object's original values, which means that&#xA;the values in the database have been changed, there is a conflict.&#xA;Whether a writer checks for conflicts, what degree of checking it does, and how&#xA;it handles conflicts all depend on how it is implemented.&#xA;&lt;P>&#xA;&lt;h3>5.0 Registering and Notifying Listeners&lt;/h3>&#xA;Being JavaBeans components, all rowsets participate in the JavaBeans event&#xA;model, inheriting methods for registering listeners and notifying them of&#xA;changes from the &lt;code>BaseRowSet&lt;/code> class.  A listener for a&#xA;&lt;code>CachedRowSet&lt;/code> object is a component that wants to be notified&#xA;whenever there is a change in the rowset.  For example, if a&#xA;&lt;code>CachedRowSet&lt;/code> object contains the results of a query and&#xA;those&#xA;results are being displayed in, say, a table and a bar graph, the table and&#xA;bar graph could be registered as listeners with the rowset so that they can&#xA;update themselves to reflect changes. To become listeners, the table and&#xA;bar graph classes must implement the &lt;code>RowSetListener&lt;/code> interface.&#xA;Then they can be added to the &lt;Code>CachedRowSet&lt;/code> object's list of&#xA;listeners, as is illustrated in the following lines of code.&#xA;&lt;PRE>&#xA;crs.addRowSetListener(table);&#xA;crs.addRowSetListener(barGraph);&#xA;&lt;/PRE>&#xA;Each &lt;code>CachedRowSet&lt;/code> method that moves the cursor or changes&#xA;data also notifies registered listeners of the changes, so&#xA;&lt;code>table&lt;/code> and &lt;code>barGraph&lt;/code> will be notified when there is&#xA;a change in &lt;code>crs&lt;/code>.&#xA;&lt;P>&#xA;&lt;h3>6.0 Passing Data to Thin Clients&lt;/h3>&#xA;One of the main reasons to use a &lt;code>CachedRowSet&lt;/code> object is to&#xA;pass data between different components of an application. Because it is&#xA;serializable, a &lt;code>CachedRowSet&lt;/code> object can be used, for example,&#xA;to send the result of a query executed by an enterprise JavaBeans component&#xA;running in a server environment over a network to a client running in a&#xA;web browser.&#xA;&lt;P>&#xA;While a &lt;code>CachedRowSet&lt;/code> object is disconnected, it can be much&#xA;leaner than a &lt;code>ResultSet&lt;/code> object with the same data.&#xA;As a result, it can be especially suitable for sending data to a thin client&#xA;such as a PDA, where it would be inappropriate to use a JDBC driver&#xA;due to resource limitations or security considerations.&#xA;Thus, a &lt;code>CachedRowSet&lt;/code> object provides a means to &quot;get rows in&quot;&#xA;without the need to implement the full JDBC API.&#xA;&lt;P>&#xA;&lt;h3>7.0 Scrolling and Updating&lt;/h3>&#xA;A second major use for &lt;code>CachedRowSet&lt;/code> objects is to provide&#xA;scrolling and updating for &lt;code>ResultSet&lt;/code> objects that&#xA;do not provide these capabilities themselves.  In other words, a&#xA;&lt;code>CachedRowSet&lt;/code> object can be used to augment the&#xA;capabilities of a JDBC technology-enabled driver (hereafter called a&#xA;&quot;JDBC driver&quot;) when the DBMS does not provide full support for scrolling and&#xA;updating. To achieve the effect of making a non-scrollble and read-only&#xA;&lt;code>ResultSet&lt;/code> object scrollable and updatable, a programmer&#xA;simply needs to create a &lt;code>CachedRowSet&lt;/code> object populated&#xA;with that &lt;code>ResultSet&lt;/code> object's data.  This is demonstrated&#xA;in the following code fragment, where &lt;code>stmt&lt;/code> is a&#xA;&lt;code>Statement&lt;/code> object.&#xA;&lt;PRE>&#xA;ResultSet rs = stmt.executeQuery(&quot;SELECT * FROM EMPLOYEES&quot;);&#xA;CachedRowSetImpl crs = new CachedRowSetImpl();&#xA;crs.populate(rs);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The object &lt;code>crs&lt;/code> now contains the data from the table&#xA;&lt;code>EMPLOYEES&lt;/code>, just as the object &lt;code>rs&lt;/code> does.&#xA;The difference is that the cursor for &lt;code>crs&lt;/code> can be moved&#xA;forward, backward, or to a particular row even if the cursor for&#xA;&lt;code>rs&lt;/code> can move only forward.  In addition, &lt;code>crs&lt;/code> is&#xA;updatable even if &lt;code>rs&lt;/code> is not because by default, a&#xA;&lt;code>CachedRowSet&lt;/code> object is both scrollable and updatable.&#xA;&lt;P>&#xA;In summary, a &lt;code>CachedRowSet&lt;/code> object can be thought of as simply&#xA;a disconnected set of rows that are being cached outside of a data source.&#xA;Being thin and serializable, it can easily be sent across a wire,&#xA;and it is well suited to sending data to a thin client. However, a&#xA;&lt;code>CachedRowSet&lt;/code> object does have a limitation: It is limited in&#xA;size by the amount of data it can store in memory at one time.&#xA;&lt;P>&#xA;&lt;h3>8.0 Getting Universal Data Access&lt;/h3>&#xA;Another advantage of the &lt;code>CachedRowSet&lt;/code> class is that it makes it&#xA;possible to retrieve and store data from sources other than a relational&#xA;database. The reader for a rowset can be implemented to read and populate&#xA;its rowset with data from any tabular data source, including a spreadsheet&#xA;or flat file.&#xA;Because both a &lt;code>CachedRowSet&lt;/code> object and its metadata can be&#xA;created from scratch, a component that acts as a factory for rowsets&#xA;can use this capability to create a rowset containing data from&#xA;non-SQL data sources. Nevertheless, it is expected that most of the time,&#xA;&lt;code>CachedRowSet&lt;/code> objects will contain data that was fetched&#xA;from an SQL database using the JDBC API.&#xA;&lt;P>&#xA;&lt;h3>9.0 Setting Properties&lt;/h3>&#xA;All rowsets maintain a set of properties, which will usually be set using&#xA;a tool.  The number and kinds of properties a rowset has will vary,&#xA;depending on what the rowset does and how it gets its data.  For example,&#xA;rowsets that get their data from a &lt;code>ResultSet&lt;/code> object need to&#xA;set the properties that are required for making a database connection.&#xA;If a rowset uses the &lt;code>DriverManager&lt;/code> facility to make a&#xA;connection, it needs to set a property for the JDBC URL that identifies&#xA;the appropriate driver, and it needs to set the properties that give the&#xA;user name and password.&#xA;If, on the other hand, the rowset uses a &lt;code>DataSource&lt;/code> object&#xA;to make the connection, which is the preferred method, it does not need to&#xA;set the property for the JDBC URL.  Instead, it needs to set&#xA;properties for the logical name of the data source, for the user name,&#xA;and for the password.&#xA;&lt;P>&#xA;NOTE:  In order to use a &lt;code>DataSource&lt;/code> object for making a&#xA;connection, the &lt;code>DataSource&lt;/code> object must have been registered&#xA;with a naming service that uses the Java Naming and Directory&#xA;Interface&lt;sup>&lt;font size=-2>TM&lt;/font>&lt;/sup> (JNDI) API.  This registration&#xA;is usually done by a person acting in the capacity of a system&#xA;administrator.&#xA;&lt;P>&#xA;In order to be able to populate itself with data from a database, a rowset&#xA;needs to set a command property.  This property is a query that is a&#xA;&lt;code>PreparedStatement&lt;/code> object, which allows the query to have&#xA;parameter placeholders that are set at run time, as opposed to design time.&#xA;To set these placeholder parameters with values, a rowset provides&#xA;setter methods for setting values of each data type,&#xA;similar to the setter methods provided by the &lt;code>PreparedStatement&lt;/code>&#xA;interface.&#xA;&lt;P>&#xA;The following code fragment illustrates how the &lt;code>CachedRowSet&lt;/code>&#xA;object &lt;code>crs&lt;/code> might have its command property set.  Note that if a&#xA;tool is used to set properties, this is the code that the tool would use.&#xA;&lt;PRE>&#xA;crs.setCommand(&quot;SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS &quot; +&#xA;&quot;WHERE CREDIT_LIMIT > ? AND REGION = ?&quot;);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The values that will be used to set the command's placeholder parameters are&#xA;contained in the &lt;code>RowSet&lt;/code> object's &lt;code>params&lt;/code> field, which is a&#xA;&lt;code>Vector&lt;/code> object.&#xA;The &lt;code>CachedRowSet&lt;/code> class provides a set of setter&#xA;methods for setting the elements in its &lt;code>params&lt;/code> field.  The&#xA;following code fragment demonstrates setting the two parameters in the&#xA;query from the previous example.&#xA;&lt;PRE>&#xA;crs.setInt(1, 5000);&#xA;crs.setString(2, &quot;West&quot;);&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The &lt;code>params&lt;/code> field now contains two elements, each of which is&#xA;an array two elements long.  The first element is the parameter number;&#xA;the second is the value to be set.&#xA;In this case, the first element of &lt;code>params&lt;/code> is&#xA;&lt;code>1&lt;/code>, &lt;code>5000&lt;/code>, and the second element is &lt;code>2&lt;/code>,&#xA;&lt;code>&quot;West&quot;&lt;/code>.  When an application calls the method&#xA;&lt;code>execute&lt;/code>, it will in turn call on this &lt;code>RowSet&lt;/code> object's reader,&#xA;which will in turn invoke its &lt;code>readData&lt;/code> method. As part of&#xA;its implementation, &lt;code>readData&lt;/code> will get the values in&#xA;&lt;code>params&lt;/code> and use them to set the command's placeholder&#xA;parameters.&#xA;The following code fragment gives an idea of how the reader&#xA;does this, after obtaining the &lt;code>Connection&lt;/code> object&#xA;&lt;code>con&lt;/code>.&#xA;&lt;PRE>&#xA;PreparedStatement pstmt = con.prepareStatement(crs.getCommand());&#xA;reader.decodeParams();&#xA;decodeParams figures out which setter methods to use and does something&#xA;like the following:&#xA;for (i = 0; i &lt; params.length; i++) {&#xA;pstmt.setObject(i + 1, params[i]);&#xA;}&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;At this point, the command for &lt;code>crs&lt;/code> is the query &lt;code>&quot;SELECT&#xA;FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS WHERE CREDIT_LIMIT > 5000&#xA;AND REGION = &quot;West&quot;&lt;/code>.  After the &lt;code>readData&lt;/code> method executes&#xA;this command with the following line of code, it will have the data from&#xA;&lt;code>rs&lt;/code> with which to populate &lt;code>crs&lt;/code>.&#xA;&lt;PRE>&#xA;ResultSet rs = pstmt.executeQuery();&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;The preceding code fragments give an idea of what goes on behind the&#xA;scenes; they would not appear in an application, which would not invoke&#xA;methods like &lt;code>readData&lt;/code> and &lt;code>decodeParams&lt;/code>.&#xA;In contrast, the following code fragment shows what an application might do.&#xA;It sets the rowset's command, sets the command's parameters, and executes&#xA;the command. Simply by calling the &lt;code>execute&lt;/code> method,&#xA;&lt;code>crs&lt;/code> populates itself with the requested data from the&#xA;table &lt;code>CUSTOMERS&lt;/code>.&#xA;&lt;PRE>&#xA;crs.setCommand(&quot;SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS&quot; +&#xA;&quot;WHERE CREDIT_LIMIT > ? AND REGION = ?&quot;);&#xA;crs.setInt(1, 5000);&#xA;crs.setString(2, &quot;West&quot;);&#xA;crs.execute();&#xA;&lt;/PRE>&#xA;&#xA;&lt;h3>10.0 Paging Data&lt;/h3>&#xA;Because a &lt;code>CachedRowSet&lt;/code> object stores data in memory,&#xA;the amount of data that it can contain at any one&#xA;time is determined by the amount of memory available. To get around this limitation,&#xA;a &lt;code>CachedRowSet&lt;/code> object can retrieve data from a &lt;code>ResultSet&lt;/code>&#xA;object in chunks of data, called &lt;i>pages&lt;/i>. To take advantage of this mechanism,&#xA;an application sets the number of rows to be included in a page using the method&#xA;&lt;code>setPageSize&lt;/code>. In other words, if the page size is set to five, a chunk&#xA;of five rows of&#xA;data will be fetched from the data source at one time. An application can also&#xA;optionally set the maximum number of rows that may be fetched at one time.  If the&#xA;maximum number of rows is set to zero, or no maximum number of rows is set, there is&#xA;no limit to the number of rows that may be fetched at a time.&#xA;&lt;P>&#xA;After properties have been set,&#xA;the &lt;code>CachedRowSet&lt;/code> object must be populated with data&#xA;using either the method &lt;code>populate&lt;/code> or the method &lt;code>execute&lt;/code>.&#xA;The following lines of code demonstrate using the method &lt;code>populate&lt;/code>.&#xA;Note that this version of the method takes two parameters, a &lt;code>ResultSet&lt;/code>&#xA;handle and the row in the &lt;code>ResultSet&lt;/code> object from which to start&#xA;retrieving rows.&#xA;&lt;PRE>&#xA;CachedRowSet crs = new CachedRowSetImpl();&#xA;crs.setMaxRows(20);&#xA;crs.setPageSize(4);&#xA;crs.populate(rsHandle, 10);&#xA;&lt;/PRE>&#xA;When this code runs, &lt;i>crs&lt;/i> will be populated with four rows from&#xA;&lt;i>rsHandle&lt;/i> starting with the tenth row.&#xA;&lt;P>&#xA;The next code fragment shows populating a &lt;code>CachedRowSet&lt;/code> object using the&#xA;method &lt;code>execute&lt;/code>, which may or may not take a &lt;code>Connection&lt;/code>&#xA;object as a parameter.  This code passes &lt;code>execute&lt;/code> the &lt;code>Connection&lt;/code>&#xA;object &lt;i>conHandle&lt;/i>.&#xA;&lt;P>&#xA;Note that there are two differences between the following code&#xA;fragment and the previous one. First, the method &lt;code>setMaxRows&lt;/code> is not&#xA;called, so there is no limit set for the number of rows that &lt;i>crs&lt;/i> may contain.&#xA;(Remember that &lt;i>crs&lt;/i> always has the overriding limit of how much data it can&#xA;store in memory.) The second difference is that the you cannot pass the method&#xA;&lt;code>execute&lt;/code> the number of the row in the &lt;code>ResultSet&lt;/code> object&#xA;from which to start retrieving rows. This method always starts with the first row.&#xA;&lt;PRE>&#xA;CachedRowSet crs = new CachedRowSetImpl();&#xA;crs.setPageSize(5);&#xA;crs.execute(conHandle);&#xA;&lt;/PRE>&#xA;After this code has run, &lt;i>crs&lt;/i> will contain five rows of data from the&#xA;&lt;code>ResultSet&lt;/code> object produced by the command for &lt;i>crs&lt;/i>. The writer&#xA;for &lt;i>crs&lt;/i> will use &lt;i>conHandle&lt;/i> to connect to the data source and&#xA;execute the command for &lt;i>crs&lt;/i>. An application is then able to operate on the&#xA;data in &lt;i>crs&lt;/i> in the same way that it would operate on data in any other&#xA;&lt;code>CachedRowSet&lt;/code> object.&#xA;&lt;P>&#xA;To access the next page (chunk of data), an application calls the method&#xA;&lt;code>nextPage&lt;/code>.  This method creates a new &lt;code>CachedRowSet&lt;/code> object&#xA;and fills it with the next page of data.  For example, assume that the&#xA;&lt;code>CachedRowSet&lt;/code> object's command returns a &lt;code>ResultSet&lt;/code> object&#xA;&lt;i>rs&lt;/i> with 1000 rows of data.  If the page size has been set to 100, the first&#xA;call to the method &lt;code>nextPage&lt;/code> will create a &lt;code>CachedRowSet&lt;/code> object&#xA;containing the first 100 rows of &lt;i>rs&lt;/i>. After doing what it needs to do with the&#xA;data in these first 100 rows, the application can again call the method&#xA;&lt;code>nextPage&lt;/code> to create another &lt;code>CachedRowSet&lt;/code> object&#xA;with the second 100 rows from &lt;i>rs&lt;/i>. The data from the first &lt;code>CachedRowSet&lt;/code>&#xA;object will no longer be in memory because it is replaced with the data from the&#xA;second &lt;code>CachedRowSet&lt;/code> object. After the tenth call to the method &lt;code>nextPage&lt;/code>,&#xA;the tenth &lt;code>CachedRowSet&lt;/code> object will contain the last 100 rows of data from&#xA;&lt;i>rs&lt;/i>, which are stored in memory. At any given time, the data from only one&#xA;&lt;code>CachedRowSet&lt;/code> object is stored in memory.&#xA;&lt;P>&#xA;The method &lt;code>nextPage&lt;/code> returns &lt;code>true&lt;/code> as long as the current&#xA;page is not the last page of rows and &lt;code>false&lt;/code> when there are no more pages.&#xA;It can therefore be used in a &lt;code>while&lt;/code> loop to retrieve all of the pages,&#xA;as is demonstrated in the following lines of code.&#xA;&lt;PRE>&#xA;CachedRowSet crs = CachedRowSetImpl();&#xA;crs.setPageSize(100);&#xA;crs.execute(conHandle);&#xA;&#xA;while(crs.next() {&#xA;. . . // operate on first chunk of 100 rows in crs, row by row&#xA;}&#xA;&#xA;while(crs.nextPage()) {&#xA;while(crs.next()) {&#xA;. . . // operate on the subsequent chunks (of 100 rows each) in crs,&#xA;row by row&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;After this code fragment has been run, the application will have traversed all&#xA;1000 rows, but it will have had no more than 100 rows in memory at a time.&#xA;&lt;P>&#xA;The &lt;code>CachedRowSet&lt;/code> interface also defines the method &lt;code>previousPage&lt;/code>.&#xA;Just as the method &lt;code>nextPage&lt;/code> is analogous to the &lt;code>ResultSet&lt;/code>&#xA;method &lt;code>next&lt;/code>, the method &lt;code>previousPage&lt;/code> is analogous to&#xA;the &lt;code>ResultSet&lt;/code> method &lt;code>previous&lt;/code>.  Similar to the method&#xA;&lt;code>nextPage&lt;/code>, &lt;code>previousPage&lt;/code> creates a &lt;code>CachedRowSet&lt;/code>&#xA;object containing the number of rows set as the page size.  So, for instance, the&#xA;method &lt;code>previousPage&lt;/code> could be used in a &lt;code>while&lt;/code> loop at&#xA;the end of the preceding code fragment to navigate back through the pages from the last&#xA;page to the first page.&#xA;The method &lt;code>previousPage&lt;/code> is also similar to &lt;code>nextPage&lt;/code>&#xA;in that it can be used in a &lt;code>while&lt;/code>&#xA;loop, except that it returns &lt;code>true&lt;/code> as long as there is another page&#xA;preceding it and &lt;code>false&lt;/code> when there are no more pages ahead of it.&#xA;&lt;P>&#xA;By positioning the cursor after the last row for each page,&#xA;as is done in the following code fragment, the method &lt;code>previous&lt;/code>&#xA;navigates from the last row to the first row in each page.&#xA;The code could also have left the cursor before the first row on each page and then&#xA;used the method &lt;code>next&lt;/code> in a &lt;code>while&lt;/code> loop to navigate each page&#xA;from the first row to the last row.&#xA;&lt;P>&#xA;The following code fragment assumes a continuation from the previous code fragment,&#xA;meaning that the cursor for the tenth &lt;code>CachedRowSet&lt;/code> object is on the&#xA;last row.  The code moves the cursor to after the last row so that the first&#xA;call to the method &lt;code>previous&lt;/code> will put the cursor back on the last row.&#xA;After going through all of the rows in the last page (the &lt;code>CachedRowSet&lt;/code>&#xA;object &lt;i>crs&lt;/i>), the code then enters&#xA;the &lt;code>while&lt;/code> loop to get to the ninth page, go through the rows backwards,&#xA;go to the eighth page, go through the rows backwards, and so on to the first row&#xA;of the first page.&#xA;&#xA;&lt;PRE>&#xA;crs.afterLast();&#xA;while(crs.previous())  {&#xA;. . . // navigate through the rows, last to first&#xA;{&#xA;while(crs.previousPage())  {&#xA;crs.afterLast();&#xA;while(crs.previous())  {&#xA;. . . // go from the last row to the first row of each page&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316471_381863_10724"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_578430_16648" isSubstitutable="true" general="_9_5_f720368_1110473546753_419892_9761"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_907841_16649" isSubstitutable="true" general="_10_5_622020d_1132928316791_93808_10733"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316791_93808_10733" name="Joinable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316791_993814_10735" body="&lt;h3>1.0 Background&lt;/h3>&#xA;The &lt;code>Joinable&lt;/code> interface provides the methods for getting and&#xA;setting a match column, which is the basis for forming the SQL &lt;code>JOIN&lt;/code>&#xA;formed by adding &lt;code>RowSet&lt;/code> objects to a &lt;code>JoinRowSet&lt;/code>&#xA;object.&#xA;&lt;P>&#xA;Any standard &lt;code>RowSet&lt;/code> implementation &lt;b>may&lt;/b> implement&#xA;the &lt;code>Joinable&lt;/code> interface in order to be&#xA;added to a &lt;code>JoinRowSet&lt;/code> object. Implementing this interface gives&#xA;a &lt;code>RowSet&lt;/code> object the ability to use &lt;code>Joinable&lt;/code> methods,&#xA;which set, retrieve, and get information about match columns.  An&#xA;application may add a&#xA;&lt;code>RowSet&lt;/code> object that has not implemented the &lt;code>Joinable&lt;/code>&#xA;interface to a &lt;code>JoinRowSet&lt;/code> object, but to do so it must use one&#xA;of the &lt;code>JoinRowSet.addRowSet&lt;/code> methods that takes both a&#xA;&lt;code>RowSet&lt;/code> object and a match column or an array of &lt;code>RowSet&lt;/code>&#xA;objects and an array of match columns.&#xA;&lt;P>&#xA;To get access to the methods in the &lt;code>Joinable&lt;/code> interface, a&#xA;&lt;code>RowSet&lt;/code> object implements at least one of the&#xA;five standard &lt;code>RowSet&lt;/code> interfaces and also implements the&#xA;&lt;code>Joinable&lt;/code> interface.  In addition, most &lt;code>RowSet&lt;/code>&#xA;objects extend the &lt;code>BaseRowSet&lt;/code> class.  For example:&#xA;&lt;pre>&#xA;class MyRowSetImpl extends BaseRowSet implements CachedRowSet, Joinable {&#xA;:&#xA;:&#xA;}&#xA;&lt;/pre>&#xA;&lt;P>&#xA;&lt;h3>2.0 Usage Guidelines&lt;/h3>&#xA;&lt;P>&#xA;The methods in the &lt;code>Joinable&lt;/code> interface allow a &lt;code>RowSet&lt;/code> object&#xA;to set a match column, retrieve a match column, or unset a match column, which is&#xA;the column upon which an SQL &lt;code>JOIN&lt;/code> can be based.&#xA;An instance of a class that implements these methods can be added to a&#xA;&lt;code>JoinRowSet&lt;/code> object to allow an SQL &lt;code>JOIN&lt;/code> relationship to&#xA;be established.&#xA;&lt;p>&#xA;&lt;pre>&#xA;CachedRowSet crs = new MyRowSetImpl();&#xA;crs.populate((ResultSet)rs);&#xA;(Joinable)crs.setMatchColumnIndex(1);&#xA;&#xA;JoinRowSet jrs = new JoinRowSetImpl();&#xA;jrs.addRowSet(crs);&#xA;&lt;/pre>&#xA;In the previous example, &lt;i>crs&lt;/i> is a &lt;code>CachedRowSet&lt;/code> object that&#xA;has emplemented the &lt;code>Joinable&lt;/code> interface.  In the following example,&#xA;&lt;i>crs2&lt;/i> has not, so it must supply the match column as an argument to the&#xA;&lt;code>addRowSet&lt;/code> method. This example assumes that column 1 is the match&#xA;column.&#xA;&lt;PRE>&#xA;CachedRowSet crs2 = new MyRowSetImpl();&#xA;crs2.populate((ResultSet)rs);&#xA;&#xA;JoinRowSet jrs2 = new JoinRowSetImpl();&#xA;jrs2.addRowSet(crs2, 1);&#xA;&lt;/PRE>&#xA;&lt;p>&#xA;The &lt;code>JoinRowSet&lt;/code> interface makes it possible to get data from one or&#xA;more &lt;code>RowSet&lt;/code> objects consolidated into one table without having to incur&#xA;the expense of creating a connection to a database. It is therefore ideally suited&#xA;for use by disconnected &lt;code>RowSet&lt;/code> objects. Nevertheless, any&#xA;&lt;code>RowSet&lt;/code> object &lt;b>may&lt;/b> implement this interface&#xA;regardless of whether it is connected or disconnected. Note that a&#xA;&lt;code>JdbcRowSet&lt;/code> object, being always connected to its data source, can&#xA;become part of an SQL &lt;code>JOIN&lt;/code> directly without having to become part&#xA;of a &lt;code>JoinRowSet&lt;/code> object.&#xA;&lt;P>&#xA;&lt;h3>3.0 Managing Multiple Match Columns&lt;/h3>&#xA;The index array passed into the &lt;code>setMatchColumn&lt;/code> methods indicates&#xA;how many match columns are being set (the length of the array) in addition to&#xA;which columns will be used for the match. For example:&#xA;&lt;pre>&#xA;int[] i = {1, 2, 4, 7}; // indicates four match columns, with column&#xA;indexes 1, 2, 4, 7 participating in the JOIN.&#xA;Joinable.setMatchColumn(i);&#xA;&lt;/pre>&#xA;Subsequent match columns may be added as follows to a different &lt;code>Joinable&lt;/code>&#xA;object (a &lt;code>RowSet&lt;/code> object that has implemented the &lt;code>Joinable&lt;/code>&#xA;interface).&#xA;&lt;pre>&#xA;int[] w = {3, 2, 5, 3};&#xA;Joinable2.setMatchColumn(w);&#xA;&lt;/pre>&#xA;When an application adds two or more &lt;code>RowSet&lt;/code> objects to a&#xA;&lt;code>JoinRowSet&lt;/code> object, the order of the indexes in the array is&#xA;particularly important. Each index of&#xA;the array maps directly to the corresponding index of the previously added&#xA;&lt;code>RowSet&lt;/code> object. If overlap or underlap occurs, the match column&#xA;data is maintained in the event an additional &lt;code>Joinable&lt;/code> RowSet is&#xA;added and needs to relate to the match column data. Therefore, applications&#xA;can set multiple match columns in any order, but&#xA;this order has a direct effect on the outcome of the &lt;code>SQL&lt;/code> JOIN.&#xA;&lt;p>&#xA;This assertion applies in exactly the same manner when column names are used&#xA;rather than column indexes to indicate match columns.&#xA;&#xA;@see JoinRowSet&#xA;@author  Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316791_93808_10733"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928316281_943515_10660" name="serial">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316291_808524_10690" name="SQLOutputImpl" clientDependency="_10_5_622020d_1132928323371_23602_16638">
                <ownedComment xmi:id="_10_5_622020d_1132928316291_313886_10692" body="The output stream for writing the attributes of a&#xA;custom-mapped user-defined type (UDT) back to the database.&#xA;The driver uses this interface internally, and its&#xA;methods are never directly invoked by an application programmer.&#xA;&lt;p>&#xA;When an application calls the&#xA;method &lt;code>PreparedStatement.setObject&lt;/code>, the driver&#xA;checks to see whether the value to be written is a UDT with&#xA;a custom mapping.  If it is, there will be an entry in a&#xA;type map containing the &lt;code>Class&lt;/code> object for the&#xA;class that implements &lt;code>SQLData&lt;/code> for this UDT.&#xA;If the value to be written is an instance of &lt;code>SQLData&lt;/code>,&#xA;the driver will create an instance of &lt;code>SQLOutputImpl&lt;/code>&#xA;and pass it to the method &lt;code>SQLData.writeSQL&lt;/code>.&#xA;The method &lt;code>writeSQL&lt;/code> in turn calls the&#xA;appropriate &lt;code>SQLOutputImpl.writeXXX&lt;/code> methods&#xA;to write data from the &lt;code>SQLData&lt;/code> object to&#xA;the &lt;code>SQLOutputImpl&lt;/code> output stream as the&#xA;representation of an SQL user-defined type.&#xA;" annotatedElement="_10_5_622020d_1132928316291_808524_10690"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_23602_16638" name="" supplier="_9_5_f720368_1110473546690_687938_8591" client="_10_5_622020d_1132928316291_808524_10690" contract="_9_5_f720368_1110473546690_687938_8591"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_150866_10669" name="SerialClob" clientDependency="_10_5_622020d_1132928323361_905378_16623 _10_5_622020d_1132928323361_892629_16624 _10_5_622020d_1132928323361_728675_16625">
                <ownedComment xmi:id="_10_5_622020d_1132928316281_38249_10671" body="A serialized mapping in the Java programming language of an SQL&#xA;&lt;code>CLOB&lt;/code> value.&#xA;&lt;P>&#xA;The &lt;code>SerialClob&lt;/code> class provides a constructor for creating&#xA;an instance from a &lt;code>Clob&lt;/code> object.  Note that the &lt;code>Clob&lt;/code>&#xA;object should have brought the SQL &lt;code>CLOB&lt;/code> value's data over&#xA;to the client before a &lt;code>SerialClob&lt;/code> object&#xA;is constructed from it.  The data of an SQL &lt;code>CLOB&lt;/code> value can&#xA;be materialized on the client as a stream of Unicode characters.&#xA;&lt;P>&#xA;&lt;code>SerialClob&lt;/code> methods make it possible to get a substring&#xA;from a &lt;code>SerialClob&lt;/code> object or to locate the start of&#xA;a pattern of characters.&#xA;&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316281_150866_10669"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_905378_16623" name="" supplier="_9_5_f720368_1110473546690_292838_8555" client="_10_5_622020d_1132928316281_150866_10669" contract="_9_5_f720368_1110473546690_292838_8555"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_892629_16624" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316281_150866_10669" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_728675_16625" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316281_150866_10669" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316291_594459_10684" name="SerialStruct" clientDependency="_10_5_622020d_1132928323371_787109_16634 _10_5_622020d_1132928323371_200820_16635 _10_5_622020d_1132928323371_151908_16636">
                <ownedComment xmi:id="_10_5_622020d_1132928316291_428837_10686" body="A serialized mapping in the Java programming language of an SQL&#xA;structured type. Each attribute that is not already serialized&#xA;is mapped to a serialized form, and if an attribute is itself&#xA;a structured type, each of its attributes that is not already&#xA;serialized is mapped to a serialized form.&#xA;&lt;P>&#xA;In addition, the structured type is custom mapped to a class in the&#xA;Java programming language if there is such a mapping, as are&#xA;its attributes, if appropriate.&#xA;&lt;P>&#xA;The &lt;code>SerialStruct&lt;/code> class provides a constructor for creating&#xA;an instance from a &lt;code>Struct&lt;/code> object, a method for retrieving&#xA;the SQL type name of the SQL structured type in the database, and methods&#xA;for retrieving its attribute values.&#xA;" annotatedElement="_10_5_622020d_1132928316291_594459_10684"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_787109_16634" name="" supplier="_9_5_f720368_1110473546690_841834_8599" client="_10_5_622020d_1132928316291_594459_10684" contract="_9_5_f720368_1110473546690_841834_8599"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_200820_16635" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316291_594459_10684" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_151908_16636" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316291_594459_10684" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316291_820922_10681" name="SerialRef" clientDependency="_10_5_622020d_1132928323371_845724_16631 _10_5_622020d_1132928323371_417697_16632 _10_5_622020d_1132928323371_788663_16633">
                <ownedComment xmi:id="_10_5_622020d_1132928316291_803908_10683" body="A serialized mapping of a &lt;code>Ref&lt;/code> object, which is the mapping in the&#xA;Java programming language of an SQL &lt;code>REF&lt;/code> value.&#xA;&lt;p>&#xA;The &lt;code>SerialRef&lt;/code> class provides a constructor  for&#xA;creating a &lt;code>SerialRef&lt;/code> instance from a &lt;code>Ref&lt;/code>&#xA;object and provides methods for getting and setting the &lt;code>Ref&lt;/code> object.&#xA;" annotatedElement="_10_5_622020d_1132928316291_820922_10681"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_845724_16631" name="" supplier="_9_5_f720368_1110473546690_362831_8577" client="_10_5_622020d_1132928316291_820922_10681" contract="_9_5_f720368_1110473546690_362831_8577"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_417697_16632" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316291_820922_10681" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_788663_16633" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316291_820922_10681" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_325867_10675" name="SerialException">
                <ownedComment xmi:id="_10_5_622020d_1132928316281_578307_10677" body="Indicates and an error with the serialization or de-serialization of&#xA;SQL types such as &lt;code>BLOB, CLOB, STRUCT or ARRAY&lt;/code> in&#xA;addition to SQL types such as &lt;code>DATALINK and JAVAOBJECT&lt;/code>&#xA;&#xA;@version 0.1&#xA;" annotatedElement="_10_5_622020d_1132928316281_325867_10675"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_752573_16628" isSubstitutable="true" general="_9_5_f720368_1110473546690_674828_8587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_819191_10672" name="SerialDatalink" clientDependency="_10_5_622020d_1132928323361_572704_16626 _10_5_622020d_1132928323361_57240_16627">
                <ownedComment xmi:id="_10_5_622020d_1132928316281_729820_10674" body="A serialized mapping in the Java programming language of an SQL&#xA;&lt;code>DATALINK&lt;/code> value. A &lt;code>DATALINK&lt;/code> value&#xA;references a file outside of the underlying data source that the&#xA;data source manages.&#xA;&lt;P>&#xA;&lt;code>RowSet&lt;/code> implementations can use the method &lt;code>RowSet.getURL&lt;/code>&#xA;to retrieve a &lt;code>java.net.URL&lt;/code> object, which can be used&#xA;to manipulate the external data.&#xA;&lt;pre>&#xA;java.net.URL url = rowset.getURL(1);&#xA;&lt;/pre>&#xA;" annotatedElement="_10_5_622020d_1132928316281_819191_10672"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_572704_16626" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316281_819191_10672" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_57240_16627" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316281_819191_10672" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_114483_10661" name="SerialArray" clientDependency="_10_5_622020d_1132928323361_494809_16616 _10_5_622020d_1132928323361_190838_16617 _10_5_622020d_1132928323361_772740_16618">
                <ownedComment xmi:id="_10_5_622020d_1132928316281_470973_10665" body="A serialized version of an &lt;code>Array&lt;/code>&#xA;object, which is the mapping in the Java programming language of an SQL&#xA;&lt;code>ARRAY&lt;/code> value.&#xA;&lt;P>&#xA;The &lt;code>SerialArray&lt;/code> class provides a constructor for creating&#xA;a &lt;code>SerialArray&lt;/code> instance from an &lt;code>Array&lt;/code> object,&#xA;methods for getting the base type and the SQL name for the base type, and&#xA;methods for copying all or part of a &lt;code>SerialArray&lt;/code> object.&#xA;&lt;P>&#xA;Note: In order for this class to function correctly, a connection to the&#xA;data source&#xA;must be available in order for the SQL &lt;code>Array&lt;/code> object to be&#xA;materialized (have all of its elements brought to the client server)&#xA;if necessary. At this time, logical pointers to the data in the data source,&#xA;such as locators, are not currently supported.&#xA;" annotatedElement="_10_5_622020d_1132928316281_114483_10661"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_494809_16616" name="" supplier="_9_5_f720368_1110473546690_872686_8547" client="_10_5_622020d_1132928316281_114483_10661" contract="_9_5_f720368_1110473546690_872686_8547"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_190838_16617" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316281_114483_10661" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_772740_16618" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316281_114483_10661" contract="_9_5_f720368_1110473546612_888397_7587"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_403936_10662" name="InternalResultSetImpl" visibility="private" clientDependency="_10_5_622020d_1132928323361_348981_16619">
                  <ownedComment xmi:id="_10_5_622020d_1132928316281_423537_10663" body="Internal ResultSet implementation to serve getResultSet(XXX) methods.&#xA;&#xA;Suggest we return a READ_ONLY array to start. We can migrate to a updatable&#xA;ResultSet later.&#xA;" annotatedElement="_10_5_622020d_1132928316281_403936_10662"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323361_348981_16619" name="" supplier="_9_5_f720368_1110473546690_728645_8579" client="_10_5_622020d_1132928316281_403936_10662" contract="_9_5_f720368_1110473546690_728645_8579"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316291_775293_10687" name="SQLInputImpl" clientDependency="_10_5_622020d_1132928323371_989197_16637">
                <ownedComment xmi:id="_10_5_622020d_1132928316291_648243_10689" body="An input stream used for custom mapping user-defined types (UDTs).&#xA;An &lt;code>SQLInputImpl&lt;/code> object is an input stream that contains a&#xA;stream of values that are the attributes of a UDT.&#xA;&lt;p>&#xA;This class is used by the driver behind the scenes when the method&#xA;&lt;code>getObject&lt;/code> is called on an SQL structured or distinct type&#xA;that has a custom mapping; a programmer never invokes&#xA;&lt;code>SQLInputImpl&lt;/code> methods directly. They are provided here as a&#xA;convenience for those who write &lt;code>RowSet&lt;/code> implementations.&#xA;&lt;P>&#xA;The &lt;code>SQLInputImpl&lt;/code> class provides a set of&#xA;reader methods analogous to the &lt;code>ResultSet&lt;/code> getter&#xA;methods.  These methods make it possible to read the values in an&#xA;&lt;code>SQLInputImpl&lt;/code> object.&#xA;&lt;P>&#xA;The method &lt;code>wasNull&lt;/code> is used to determine whether the&#xA;the last value read was SQL &lt;code>NULL&lt;/code>.&#xA;&lt;P>When the method &lt;code>getObject&lt;/code> is called with an&#xA;object of a class implementing the interface &lt;code>SQLData&lt;/code>,&#xA;the JDBC driver calls the method &lt;code>SQLData.getSQLType&lt;/code>&#xA;to determine the SQL type of the UDT being custom mapped. The driver&#xA;creates an instance of &lt;code>SQLInputImpl&lt;/code>, populating it with the&#xA;attributes of the UDT.  The driver then passes the input&#xA;stream to the method &lt;code>SQLData.readSQL&lt;/code>, which in turn&#xA;calls the &lt;code>SQLInputImpl&lt;/code> reader methods&#xA;to read the attributes from the input stream.&#xA;@see java.sql.SQLData&#xA;" annotatedElement="_10_5_622020d_1132928316291_775293_10687"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323371_989197_16637" name="" supplier="_9_5_f720368_1110473546690_766960_8589" client="_10_5_622020d_1132928316291_775293_10687" contract="_9_5_f720368_1110473546690_766960_8589"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_388554_10666" name="SerialBlob" clientDependency="_10_5_622020d_1132928323361_750871_16620 _10_5_622020d_1132928323361_298538_16621 _10_5_622020d_1132928323361_864394_16622">
                <ownedComment xmi:id="_10_5_622020d_1132928316281_704672_10668" body="A serialized mapping in the Java programming language of an SQL&#xA;&lt;code>BLOB&lt;/code> value.&#xA;&lt;P>&#xA;The &lt;code>SerialBlob&lt;/code> class provides a constructor for creating&#xA;an instance from a &lt;code>Blob&lt;/code> object.  Note that the&#xA;&lt;code>Blob&lt;/code>&#xA;object should have brought the SQL &lt;code>BLOB&lt;/code> value's data over&#xA;to the client before a &lt;code>SerialBlob&lt;/code> object&#xA;is constructed from it.  The data of an SQL &lt;code>BLOB&lt;/code> value can&#xA;be materialized on the client as an array of bytes (using the method&#xA;&lt;code>Blob.getBytes&lt;/code>) or as a stream of uninterpreted bytes&#xA;(using the method &lt;code>Blob.getBinaryStream&lt;/code>).&#xA;&lt;P>&#xA;&lt;code>SerialBlob&lt;/code> methods make it possible to make a copy of a&#xA;&lt;code>SerialBlob&lt;/code> object as an array of bytes or as a stream.&#xA;They also make it possible to locate a given pattern of bytes or a&#xA;&lt;code>Blob&lt;/code> object within a &lt;code>SerialBlob&lt;/code> object&#xA;and to update or truncate a &lt;code>Blob&lt;/code> object.&#xA;&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316281_388554_10666"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_750871_16620" name="" supplier="_9_5_f720368_1110473546690_911776_8551" client="_10_5_622020d_1132928316281_388554_10666" contract="_9_5_f720368_1110473546690_911776_8551"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_298538_16621" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316281_388554_10666" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_864394_16622" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316281_388554_10666" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316281_628241_10678" name="SerialJavaObject" clientDependency="_10_5_622020d_1132928323361_136199_16629 _10_5_622020d_1132928323361_398491_16630">
                <ownedComment xmi:id="_10_5_622020d_1132928316291_594647_10680" body="A serializable mapping in the Java programming language of an SQL&#xA;&lt;code>JAVA_OBJECT&lt;/code> value. Assuming the Java object&#xA;implements the &lt;code>Serializable&lt;/code> interface, this class simply wraps the&#xA;serialization process.&#xA;&lt;P>&#xA;If however, the serialization is not possible because&#xA;the Java object is not immediately serializable, this class will&#xA;attempt to serialize all non-static members to permit the object&#xA;state to be serialized.&#xA;Static or transient fields cannot be serialized; an attempt to serialize&#xA;them will result in a &lt;code>SerialException&lt;/code> object being thrown.&#xA;&#xA;@version 0.1&#xA;@author Jonathan Bruce&#xA;" annotatedElement="_10_5_622020d_1132928316281_628241_10678"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_136199_16629" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316281_628241_10678" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323361_398491_16630" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928316281_628241_10678" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </packagedElement>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_593069_9753" name="ConnectionEventListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_607746_10755" body="&lt;P>&#xA;An object that registers to be notified of events generated by a&#xA;&lt;code>PooledConnection&lt;/code> object.&#xA;&lt;P>&#xA;The &lt;code>ConnectionEventListener&lt;/code> interface is implemented by a&#xA;connection pooling component.  A connection pooling component will&#xA;usually be provided by a JDBC driver vendor or another system software&#xA;vendor.  A JDBC driver notifies a &lt;code>ConnectionEventListener&lt;/code>&#xA;object when an application is finished using a pooled connection with&#xA;which the listener has registered.  The notification&#xA;occurs after the application calls the method &lt;code>close&lt;/code> on&#xA;its representation of a &lt;code>PooledConnection&lt;/code> object.  A&#xA;&lt;code>ConnectionEventListener&lt;/code> is also notified when a&#xA;connection error occurs due to the fact that the &lt;code>PooledConnection&lt;/code>&#xA;is unfit for future use---the server has crashed, for example.&#xA;The listener is notified by the JDBC driver just before the driver throws an&#xA;&lt;code>SQLException&lt;/code> to the application using the&#xA;&lt;code>PooledConnection&lt;/code> object.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_593069_9753"/>
            <generalization xmi:id="_10_5_622020d_1132928323381_522349_16660" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_439478_9765" name="RowSetInternal" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928316972_424061_10767" body="The interface that a &lt;code>RowSet&lt;/code> object implements in order to&#xA;present itself to a &lt;code>RowSetReader&lt;/code> or &lt;code>RowSetWriter&lt;/code>&#xA;object. The &lt;code>RowSetInternal&lt;/code> interface contains&#xA;methods that let the reader or writer access and modify the internal&#xA;state of the rowset.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_439478_9765"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547987_687095_20189" name="print">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_798242_9509" name="AttributeException" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315830_952652_10327" body="Interface AttributeException is a mixin interface which a subclass of&#xA;{@link&#xA;PrintException PrintException} can implement to report an error condition&#xA;involving one or more printing attributes that a particular Print&#xA;Service instance does not support. Either the attribute is not supported at&#xA;all, or the attribute is supported but the particular specified value is not&#xA;supported. The Print Service API does not define any print exception&#xA;classes that implement interface AttributeException, that being left to the&#xA;Print Service implementor's discretion.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_798242_9509"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547987_11292_20190" name="attribute">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_497541_9469" name="PrintJobAttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_396391_10287" body="Interface PrintJobAttributeSet specifies the interface for a set of print&#xA;job attributes, i.e. printing attributes that implement interface {@link&#xA;PrintJobAttribute PrintJobAttribute}. In the Print Service API, a&#xA;service uses a PrintJobAttributeSet to report the status of a print job.&#xA;&lt;P>&#xA;A PrintJobAttributeSet is just an {@link AttributeSet AttributeSet} whose&#xA;constructors and mutating operations guarantee an additional invariant,&#xA;namely that all attribute values in the PrintJobAttributeSet must be&#xA;instances of interface {@link PrintJobAttribute PrintJobAttribute}.&#xA;The {@link #add(Attribute) &lt;CODE>add(Attribute)&lt;/CODE>}, and&#xA;{@link #addAll(AttributeSet) &lt;CODE>addAll(AttributeSet)&lt;/CODE>} operations&#xA;are respecified below to guarantee this additional invariant.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_497541_9469"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_533122_16463" isSubstitutable="true" general="_9_5_f720368_1110473546737_573250_9443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_811887_9451" name="DocAttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_168286_10269" body="Interface DocAttributeSet specifies the interface for a set of doc&#xA;attributes, i.e. printing attributes that implement interface {@link&#xA;DocAttribute DocAttribute}. In the Print Service API, the client uses a&#xA;DocAttributeSet to specify the characteristics of an individual doc and&#xA;the print job settings to be applied to an individual doc.&#xA;&lt;P>&#xA;A DocAttributeSet is just an {@link AttributeSet AttributeSet} whose&#xA;constructors and mutating operations guarantee an additional invariant,&#xA;namely that all attribute values in the DocAttributeSet must be instances&#xA;of interface {@link DocAttribute DocAttribute}.&#xA;The {@link #add(Attribute) &lt;CODE>add(Attribute)&lt;/CODE>}, and&#xA;{@link #addAll(AttributeSet) &lt;CODE>addAll(AttributeSet)&lt;/CODE>} operations&#xA;are respecified below to guarantee this additional invariant.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_811887_9451"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_744895_16443" isSubstitutable="true" general="_9_5_f720368_1110473546737_573250_9443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_141647_9491" name="URISyntax" clientDependency="_10_5_622020d_1132928323331_729197_16479 _10_5_622020d_1132928323331_560911_16478" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_688618_10309" body="Class URISyntax is an abstract base class providing the common&#xA;implementation of all attributes whose value is a Uniform Resource&#xA;Identifier (URI). Once constructed, a URI attribute's value is immutable.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_141647_9491"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_560911_16478" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_141647_9491" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_729197_16479" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_141647_9491" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_245379_9473" name="PrintRequestAttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_598369_10291" body="Interface PrintRequestAttributeSet specifies the interface for a set of&#xA;print request attributes, i.e. printing attributes that implement interface&#xA;{@link PrintRequestAttribute PrintRequestAttribute}.&#xA;The client uses a PrintRequestAttributeSet to specify the settings to be&#xA;applied to a whole print job and to all the docs in the print job.&#xA;&lt;P>&#xA;PrintRequestAttributeSet is just an {@link AttributeSet AttributeSet} whose&#xA;constructors and mutating operations guarantee an additional invariant,&#xA;namely that all attribute values in the PrintRequestAttributeSet must be&#xA;instances of interface {@link PrintRequestAttribute PrintRequestAttribute}.&#xA;The {@link #add(Attribute) &lt;CODE>add(Attribute)&lt;/CODE>}, and&#xA;{@link #addAll(AttributeSet) &lt;CODE>addAll(AttributeSet)&lt;/CODE>} operations&#xA;are respecified below to guarantee this additional invariant.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_245379_9473"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_279289_16465" isSubstitutable="true" general="_9_5_f720368_1110473546737_573250_9443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_324874_9441" name="Attribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315760_921215_10249" body="Interface Attribute is the base interface implemented by any and every&#xA;printing attribute class to indicate that the class represents a&#xA;printing attribute. All printing attributes are serializable.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_324874_9441"/>
              <generalization xmi:id="_10_5_622020d_1132928323311_847299_16411" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_783407_9475" name="PrintServiceAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_104260_10293" body="Interface PrintServiceAttribute is a tagging interface which a printing&#xA;attribute class implements to indicate the attribute describes the status&#xA;of a Print Service or some other characteristic of a Print Service. A Print&#xA;Service instance adds a number of PrintServiceAttributes to a Print&#xA;service's attribute set to report the Print Service's status.&#xA;&lt;P>&#xA;&#xA;@see PrintServiceAttributeSet&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_783407_9475"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_961414_16466" isSubstitutable="true" general="_9_5_f720368_1110473546737_324874_9441"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_184115_9445" name="AttributeSetUtilities" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_873732_10263" body="Class AttributeSetUtilities provides static methods for manipulating&#xA;AttributeSets.&#xA;&lt;ul>&#xA;&lt;li>Methods for creating unmodifiable and synchronized views of attribute&#xA;sets.&#xA;&lt;li>operations useful for building&#xA;implementations of interface {@link AttributeSet AttributeSet}&#xA;&lt;/ul>&#xA;&lt;P>&#xA;An &lt;B>unmodifiable view&lt;/B> &lt;I>U&lt;/I> of an AttributeSet &lt;I>S&lt;/I> provides a&#xA;client with &quot;read-only&quot; access to &lt;I>S&lt;/I>. Query operations on &lt;I>U&lt;/I>&#xA;&quot;read through&quot; to &lt;I>S&lt;/I>; thus, changes in &lt;I>S&lt;/I> are reflected in&#xA;&lt;I>U&lt;/I>. However, any attempt to modify &lt;I>U&lt;/I>,&#xA;results in an UnmodifiableSetException.&#xA;The unmodifiable view object &lt;I>U&lt;/I> will be serializable if the&#xA;attribute set object &lt;I>S&lt;/I> is serializable.&#xA;&lt;P>&#xA;A &lt;B>synchronized view&lt;/B> &lt;I>V&lt;/I> of an attribute set &lt;I>S&lt;/I> provides a&#xA;client with synchronized (multiple thread safe) access to &lt;I>S&lt;/I>. Each&#xA;operation of &lt;I>V&lt;/I> is synchronized using &lt;I>V&lt;/I> itself as the lock&#xA;object and then merely invokes the corresponding operation of &lt;I>S&lt;/I>. In&#xA;order to guarantee mutually exclusive access, it is critical that all&#xA;access to &lt;I>S&lt;/I> is accomplished through &lt;I>V&lt;/I>. The synchronized view&#xA;object &lt;I>V&lt;/I> will be serializable if the attribute set object &lt;I>S&lt;/I>&#xA;is serializable.&#xA;&lt;P>&#xA;As mentioned in the package description of javax.print, a null reference&#xA;parameter to methods is&#xA;incorrect unless explicitly documented on the method as having a meaningful&#xA;interpretation.  Usage to the contrary is incorrect coding and may result in&#xA;a run time exception either immediately&#xA;or at some later time. IllegalArgumentException and NullPointerException&#xA;are examples of typical and acceptable run time exceptions for such cases.&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_184115_9445"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_830851_20453" name="UnmodifiableAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_777615_16413 _10_5_622020d_1132928323311_170654_16412">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_421716_10252" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_830851_20453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_170654_16412" name="" supplier="_9_5_f720368_1110473546737_573250_9443" client="_9_5_f720368_1110473548034_830851_20453" contract="_9_5_f720368_1110473546737_573250_9443"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_777615_16413" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_830851_20453" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_532792_20456" name="UnmodifiableDocAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_619895_16414 _10_5_622020d_1132928323311_205143_16415">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_385939_10253" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_532792_20456"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_628834_16416" isSubstitutable="true" general="_9_5_f720368_1110473548034_830851_20453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_619895_16414" name="" supplier="_9_5_f720368_1110473546737_811887_9451" client="_9_5_f720368_1110473548034_532792_20456" contract="_9_5_f720368_1110473546737_811887_9451"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_205143_16415" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_532792_20456" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_967391_20459" name="UnmodifiablePrintRequestAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_790847_16418 _10_5_622020d_1132928323311_126212_16417">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_567779_10254" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_967391_20459"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_282922_16419" isSubstitutable="true" general="_9_5_f720368_1110473548034_830851_20453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_126212_16417" name="" supplier="_9_5_f720368_1110473546737_245379_9473" client="_9_5_f720368_1110473548034_967391_20459" contract="_9_5_f720368_1110473546737_245379_9473"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_790847_16418" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_967391_20459" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_799469_20462" name="UnmodifiablePrintJobAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_812350_16420 _10_5_622020d_1132928323311_917105_16421">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_940227_10255" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_799469_20462"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_987285_16422" isSubstitutable="true" general="_9_5_f720368_1110473548034_830851_20453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_812350_16420" name="" supplier="_9_5_f720368_1110473546737_497541_9469" client="_9_5_f720368_1110473548034_799469_20462" contract="_9_5_f720368_1110473546737_497541_9469"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_917105_16421" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_799469_20462" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_339257_20465" name="UnmodifiablePrintServiceAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_288066_16423 _10_5_622020d_1132928323311_240675_16424">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_438422_10256" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_339257_20465"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_611976_16425" isSubstitutable="true" general="_9_5_f720368_1110473548034_830851_20453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_288066_16423" name="" supplier="_9_5_f720368_1110473546737_988107_9477" client="_9_5_f720368_1110473548034_339257_20465" contract="_9_5_f720368_1110473546737_988107_9477"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_240675_16424" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_339257_20465" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_839074_20468" name="SynchronizedAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_448423_16426 _10_5_622020d_1132928323311_543050_16427">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_155104_10257" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_839074_20468"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_448423_16426" name="" supplier="_9_5_f720368_1110473546737_573250_9443" client="_9_5_f720368_1110473548034_839074_20468" contract="_9_5_f720368_1110473546737_573250_9443"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_543050_16427" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_839074_20468" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_937347_20471" name="SynchronizedDocAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_727634_16428 _10_5_622020d_1132928323311_924522_16429">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_244620_10258" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_937347_20471"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_319791_16430" isSubstitutable="true" general="_9_5_f720368_1110473548034_839074_20468"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_727634_16428" name="" supplier="_9_5_f720368_1110473546737_811887_9451" client="_9_5_f720368_1110473548034_937347_20471" contract="_9_5_f720368_1110473546737_811887_9451"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_924522_16429" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_937347_20471" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_706961_20474" name="SynchronizedPrintRequestAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_854310_16431 _10_5_622020d_1132928323311_223229_16432">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_80039_10259" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_706961_20474"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_465325_16433" isSubstitutable="true" general="_9_5_f720368_1110473548034_839074_20468"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_854310_16431" name="" supplier="_9_5_f720368_1110473546737_245379_9473" client="_9_5_f720368_1110473548034_706961_20474" contract="_9_5_f720368_1110473546737_245379_9473"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_223229_16432" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_706961_20474" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_359924_20477" name="SynchronizedPrintJobAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_927108_16434 _10_5_622020d_1132928323311_558268_16435">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_169017_10260" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_359924_20477"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_152856_16436" isSubstitutable="true" general="_9_5_f720368_1110473548034_839074_20468"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_927108_16434" name="" supplier="_9_5_f720368_1110473546737_497541_9469" client="_9_5_f720368_1110473548034_359924_20477" contract="_9_5_f720368_1110473546737_497541_9469"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_558268_16435" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_359924_20477" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548034_792909_20480" name="SynchronizedPrintServiceAttributeSet" visibility="private" clientDependency="_10_5_622020d_1132928323311_7643_16438 _10_5_622020d_1132928323311_955947_16437">
                <ownedComment xmi:id="_10_5_622020d_1132928315800_166173_10261" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548034_792909_20480"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_298446_16439" isSubstitutable="true" general="_9_5_f720368_1110473548034_839074_20468"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_955947_16437" name="" supplier="_9_5_f720368_1110473546737_988107_9477" client="_9_5_f720368_1110473548034_792909_20480" contract="_9_5_f720368_1110473546737_988107_9477"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_7643_16438" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548034_792909_20480" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_642630_9479" name="ResolutionSyntax" clientDependency="_10_5_622020d_1132928323331_922307_16469 _10_5_622020d_1132928323331_675235_16468" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_683065_10297" body="Class ResolutionSyntax is an abstract base class providing the common&#xA;implementation of all attributes denoting a printer resolution.&#xA;&lt;P>&#xA;A resolution attribute's value consists of two items, the cross feed&#xA;direction resolution and the feed direction resolution. A resolution&#xA;attribute may be constructed by supplying the two values and indicating the&#xA;units in which the values are measured. Methods are provided to return a&#xA;resolution attribute's values, indicating the units in which the values are&#xA;to be returned. The two most common resolution units are dots per inch (dpi)&#xA;and dots per centimeter (dpcm), and exported constants {@link #DPI&#xA;&lt;CODE>DPI&lt;/CODE>} and {@link #DPCM &lt;CODE>DPCM&lt;/CODE>} are provided for&#xA;indicating those units.&#xA;&lt;P>&#xA;Once constructed, a resolution attribute's value is immutable.&#xA;&lt;P>&#xA;&lt;B>Design&lt;/B>&#xA;&lt;P>&#xA;A resolution attribute's cross feed direction resolution and feed direction&#xA;resolution values are stored internally using units of dots per 100 inches&#xA;(dphi). Storing the values in dphi rather than, say, metric units allows&#xA;precise integer arithmetic conversions between dpi and dphi and between dpcm&#xA;and dphi: 1 dpi = 100 dphi, 1 dpcm = 254 dphi. Thus, the values can be stored&#xA;into and retrieved back from a resolution attribute in either units with no&#xA;loss of precision. This would not be guaranteed if a floating point&#xA;representation were used. However, roundoff error will in general occur if a&#xA;resolution attribute's values are created in one units and retrieved in&#xA;different units; for example, 600 dpi will be rounded to 236 dpcm, whereas&#xA;the true value (to five figures) is 236.22 dpcm.&#xA;&lt;P>&#xA;Storing the values internally in common units of dphi lets two resolution&#xA;attributes be compared without regard to the units in which they were&#xA;created; for example, 300 dpcm will compare equal to 762 dpi, as they both&#xA;are stored as 76200 dphi. In particular, a lookup service can&#xA;match resolution attributes based on equality of their serialized&#xA;representations regardless of the units in which they were created. Again,&#xA;using integers for internal storage allows precise equality comparisons to be&#xA;done, which would not be guaranteed if a floating point representation were&#xA;used.&#xA;&lt;P>&#xA;The exported constant {@link #DPI &lt;CODE>DPI&lt;/CODE>} is actually the&#xA;conversion factor by which to multiply a value in dpi to get the value in&#xA;dphi. Likewise, the exported constant {@link #DPCM &lt;CODE>DPCM&lt;/CODE>} is the&#xA;conversion factor by which to multiply a value in dpcm to get the value in&#xA;dphi. A client can specify a resolution value in units other than dpi or dpcm&#xA;by supplying its own conversion factor. However, since the internal units of&#xA;dphi was chosen with supporting only the external units of dpi and dpcm in&#xA;mind, there is no guarantee that the conversion factor for the client's units&#xA;will be an exact integer. If the conversion factor isn't an exact integer,&#xA;resolution values in the client's units won't be stored precisely.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_642630_9479"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_675235_16468" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_642630_9479" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_922307_16469" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_642630_9479" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_640263_9459" name="HashPrintJobAttributeSet" clientDependency="_10_5_622020d_1132928323321_399395_16451 _10_5_622020d_1132928323321_438042_16452">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_337639_10277" body="Class HashPrintJobAttributeSet provides an attribute set&#xA;which inherits its implementation from class {@link HashAttributeSet&#xA;HashAttributeSet} and enforces the semantic restrictions of interface&#xA;{@link PrintJobAttributeSet PrintJobAttributeSet}.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_640263_9459"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_68824_16453" isSubstitutable="true" general="_9_5_f720368_1110473546737_622170_9455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_399395_16451" name="" supplier="_9_5_f720368_1110473546737_497541_9469" client="_9_5_f720368_1110473546737_640263_9459" contract="_9_5_f720368_1110473546737_497541_9469"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_438042_16452" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_640263_9459" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_356648_9467" name="PrintJobAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_947585_10285" body="PrintJobAttribute is a tagging interface which a printing attribute&#xA;class implements to indicate the attribute describes the status of a Print&#xA;Job or some other characteristic of a Print Job. A Print Service&#xA;instance adds a number of PrintJobAttributes to a Print Job's attribute set&#xA;to report the Print Job's status. If an attribute implements {@link&#xA;PrintRequestAttribute PrintRequestAttribute} as well as PrintJobAttribute,&#xA;the client may include the attribute in a attribute set to&#xA;specify the attribute's value for the Print Job.&#xA;&lt;P>&#xA;&#xA;@see PrintRequestAttributeSet&#xA;@see PrintJobAttributeSet&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_356648_9467"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_527913_16462" isSubstitutable="true" general="_9_5_f720368_1110473546737_324874_9441"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_447059_9481" name="SetOfIntegerSyntax" clientDependency="_10_5_622020d_1132928323331_315431_16471 _10_5_622020d_1132928323331_332697_16470" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_282713_10299" body="Class SetOfIntegerSyntax is an abstract base class providing the common&#xA;implementation of all attributes whose value is a set of nonnegative&#xA;integers. This includes attributes whose value is a single range of integers&#xA;and attributes whose value is a set of ranges of integers.&#xA;&lt;P>&#xA;You can construct an instance of SetOfIntegerSyntax by giving it in &quot;string&#xA;form.&quot; The string consists of zero or more comma-separated integer groups.&#xA;Each integer group consists of either one integer, two integers separated by&#xA;a hyphen (&lt;CODE>-&lt;/CODE>), or two integers separated by a colon&#xA;(&lt;CODE>:&lt;/CODE>). Each integer consists of one or more decimal digits&#xA;(&lt;CODE>0&lt;/CODE> through &lt;CODE>9&lt;/CODE>). Whitespace characters cannot&#xA;appear within an integer but are otherwise ignored. For example:&#xA;&lt;CODE>&quot;&quot;&lt;/CODE>, &lt;CODE>&quot;1&quot;&lt;/CODE>, &lt;CODE>&quot;5-10&quot;&lt;/CODE>, &lt;CODE>&quot;1:2,&#xA;4&quot;&lt;/CODE>.&#xA;&lt;P>&#xA;You can also construct an instance of SetOfIntegerSyntax by giving it in&#xA;&quot;array form.&quot; Array form consists of an array of zero or more integer groups&#xA;where each integer group is a length-1 or length-2 array of&#xA;&lt;CODE>int&lt;/CODE>s; for example, &lt;CODE>int[0][]&lt;/CODE>,&#xA;&lt;CODE>int[][]{{1}}&lt;/CODE>, &lt;CODE>int[][]{{5,10}}&lt;/CODE>,&#xA;&lt;CODE>int[][]{{1,2},{4}}&lt;/CODE>.&#xA;&lt;P>&#xA;In both string form and array form, each successive integer group gives a&#xA;range of integers to be included in the set. The first integer in each group&#xA;gives the lower bound of the range; the second integer in each group gives&#xA;the upper bound of the range; if there is only one integer in the group, the&#xA;upper bound is the same as the lower bound. If the upper bound is less than&#xA;the lower bound, it denotes a null range (no values). If the upper bound is&#xA;equal to the lower bound, it denotes a range consisting of a single value. If&#xA;the upper bound is greater than the lower bound, it denotes a range&#xA;consisting of more than one value. The ranges may appear in any order and are&#xA;allowed to overlap. The union of all the ranges gives the set's contents.&#xA;Once a SetOfIntegerSyntax instance is constructed, its value is immutable.&#xA;&lt;P>&#xA;The SetOfIntegerSyntax object's value is actually stored in &quot;&lt;I>canonical&lt;/I>&#xA;array form.&quot; This is the same as array form, except there are no null ranges;&#xA;the members of the set are represented in as few ranges as possible (i.e.,&#xA;overlapping ranges are coalesced); the ranges appear in ascending order; and&#xA;each range is always represented as a length-two array of &lt;CODE>int&lt;/CODE>s&#xA;in the form {lower bound, upper bound}. An empty set is represented as a&#xA;zero-length array.&#xA;&lt;P>&#xA;Class SetOfIntegerSyntax has operations to return the set's members in&#xA;canonical array form, to test whether a given integer is a member of the&#xA;set, and to iterate through the members of the set.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_447059_9481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_332697_16470" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_447059_9481" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_315431_16471" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_447059_9481" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_382404_9461" name="HashPrintRequestAttributeSet" clientDependency="_10_5_622020d_1132928323321_536174_16454 _10_5_622020d_1132928323321_560440_16455">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_962942_10279" body="Class HashPrintRequestAttributeSet inherits its implementation from&#xA;class {@link HashAttributeSet HashAttributeSet} and enforces the&#xA;semantic restrictions of interface&#xA;{@link PrintRequestAttributeSet PrintRequestAttributeSet}.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_382404_9461"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_475128_16456" isSubstitutable="true" general="_9_5_f720368_1110473546737_622170_9455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_536174_16454" name="" supplier="_9_5_f720368_1110473546737_245379_9473" client="_9_5_f720368_1110473546737_382404_9461" contract="_9_5_f720368_1110473546737_245379_9473"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_560440_16455" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_382404_9461" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_447785_9483" name="Size2DSyntax" clientDependency="_10_5_622020d_1132928323331_985826_16473 _10_5_622020d_1132928323331_622701_16472" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_261689_10301" body="Class Size2DSyntax is an abstract base class providing the common&#xA;implementation of all attributes denoting a size in two dimensions.&#xA;&lt;P>&#xA;A two-dimensional size attribute's value consists of two items, the X&#xA;dimension and the Y dimension. A two-dimensional size attribute may be&#xA;constructed by supplying the two values and indicating the units in which the&#xA;values are measured. Methods are provided to return a two-dimensional size&#xA;attribute's values, indicating the units in which the values are to be&#xA;returned. The two most common size units are inches (in) and millimeters&#xA;(mm), and exported constants {@link #INCH &lt;CODE>INCH&lt;/CODE>} and {@link #MM&#xA;&lt;CODE>MM&lt;/CODE>} are provided for indicating those units.&#xA;&lt;P>&#xA;Once constructed, a two-dimensional size attribute's value is immutable.&#xA;&lt;P>&#xA;&lt;B>Design&lt;/B>&#xA;&lt;P>&#xA;A two-dimensional size attribute's X and Y dimension values are stored&#xA;internally as integers in units of micrometers (&amp;#181;m), where 1 micrometer&#xA;= 10&lt;SUP>-6&lt;/SUP> meter = 1/1000 millimeter = 1/25400 inch. This permits&#xA;dimensions to be represented exactly to a precision of 1/1000 mm (= 1&#xA;&amp;#181;m) or 1/100 inch (= 254 &amp;#181;m). If fractional inches are expressed in&#xA;negative powers of two, this permits dimensions to be represented exactly to&#xA;a precision of 1/8 inch (= 3175 &amp;#181;m) but not 1/16 inch (because 1/16 inch&#xA;does not equal an integral number of &amp;#181;m).&#xA;&lt;P>&#xA;Storing the dimensions internally in common units of &amp;#181;m lets two size&#xA;attributes be compared without regard to the units in which they were&#xA;created; for example, 8.5 in will compare equal to 215.9 mm, as they both are&#xA;stored as 215900 &amp;#181;m. For example, a lookup service can&#xA;match resolution attributes based on equality of their serialized&#xA;representations regardless of the units in which they were created. Using&#xA;integers for internal storage allows precise equality comparisons to be done,&#xA;which would not be guaranteed if an internal floating point representation&#xA;were used. Note that if you're looking for U.S. letter sized media in metric&#xA;units, you have to search for a media size of 215.9 x 279.4 mm; rounding off&#xA;to an integral 216 x 279 mm will not match.&#xA;&lt;P>&#xA;The exported constant {@link #INCH &lt;CODE>INCH&lt;/CODE>} is actually the&#xA;conversion factor by which to multiply a value in inches to get the value in&#xA;&amp;#181;m. Likewise, the exported constant {@link #MM &lt;CODE>MM&lt;/CODE>} is the&#xA;conversion factor by which to multiply a value in mm to get the value in&#xA;&amp;#181;m. A client can specify a resolution value in units other than inches&#xA;or mm by supplying its own conversion factor. However, since the internal&#xA;units of &amp;#181;m was chosen with supporting only the external units of inch&#xA;and mm in mind, there is no guarantee that the conversion factor for the&#xA;client's units will be an exact integer. If the conversion factor isn't an&#xA;exact integer, resolution values in the client's units won't be stored&#xA;precisely.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_447785_9483"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_622701_16472" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_447785_9483" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_985826_16473" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_447785_9483" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_331690_9485" name="SupportedValuesAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_955108_10303" body="Interface SupportedValuesAttribute is a tagging interface which a printing&#xA;attribute class implements to indicate the attribute describes the supported&#xA;values for another attribute. For example, if a Print Service instance&#xA;supports the {@link javax.print.attribute.standard.Copies Copies}&#xA;attribute, the Print Service instance will have a {@link&#xA;javax.print.attribute.standard.CopiesSupported CopiesSupported} attribute,&#xA;which is a SupportedValuesAttribute giving the legal values a client may&#xA;specify for the {@link javax.print.attribute.standard.Copies Copies}&#xA;attribute.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_331690_9485"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_819908_16474" isSubstitutable="true" general="_9_5_f720368_1110473546737_324874_9441"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_123841_9487" name="TextSyntax" clientDependency="_10_5_622020d_1132928323331_820740_16475 _10_5_622020d_1132928323331_286252_16476" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_726946_10305" body="Class TextSyntax is an abstract base class providing the common&#xA;implementation of all attributes whose value is a string. The text attribute&#xA;includes a locale to indicate the natural language. Thus, a text attribute&#xA;always represents a localized string. Once constructed, a text attribute's&#xA;value is immutable.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_123841_9487"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_820740_16475" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_123841_9487" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_286252_16476" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_123841_9487" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_118217_9465" name="IntegerSyntax" clientDependency="_10_5_622020d_1132928323321_524503_16461 _10_5_622020d_1132928323321_392786_16460" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_698_10283" body="Class IntegerSyntax is an abstract base class providing the common&#xA;implementation of all attributes with integer values.&#xA;&lt;P>&#xA;Under the hood, an integer attribute is just an integer. You can get an&#xA;integer attribute's integer value by calling {@link #getValue()&#xA;&lt;CODE>getValue()&lt;/CODE>}. An integer attribute's integer value is&#xA;established when it is constructed (see {@link #IntegerSyntax(int)&#xA;&lt;CODE>IntegerSyntax(int)&lt;/CODE>}). Once constructed, an integer attribute's&#xA;value is immutable.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_118217_9465"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_392786_16460" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_118217_9465" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_524503_16461" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_118217_9465" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_299278_9463" name="HashPrintServiceAttributeSet" clientDependency="_10_5_622020d_1132928323321_84660_16457 _10_5_622020d_1132928323321_388563_16458">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_25825_10281" body="Class HashPrintServiceAttributeSet provides an attribute set&#xA;which inherits its implementation from class {@link HashAttributeSet&#xA;HashAttributeSet} and enforces the semantic restrictions of interface&#xA;{@link PrintServiceAttributeSet PrintServiceAttributeSet}.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_299278_9463"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_527435_16459" isSubstitutable="true" general="_9_5_f720368_1110473546737_622170_9455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_84660_16457" name="" supplier="_9_5_f720368_1110473546737_988107_9477" client="_9_5_f720368_1110473546737_299278_9463" contract="_9_5_f720368_1110473546737_988107_9477"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_388563_16458" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_299278_9463" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_558995_9447" name="DateTimeSyntax" clientDependency="_10_5_622020d_1132928323311_125546_16440 _10_5_622020d_1132928323311_859665_16441" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_444654_10265" body="Class DateTimeSyntax is an abstract base class providing the common&#xA;implementation of all attributes whose value is a date and time.&#xA;&lt;P>&#xA;Under the hood, a date-time attribute is stored as a value of class &lt;code>&#xA;java.util.Date&lt;/code>}. You can get a date-time attribute's Date value by&#xA;calling {@link #getValue() &lt;CODE>getValue()&lt;/CODE>}. A date-time attribute's&#xA;Date value is established when it is constructed (see {@link&#xA;#DateTimeSyntax(Date) &lt;CODE>DateTimeSyntax(Date)&lt;/CODE>}). Once&#xA;constructed, a date-time attribute's value is immutable.&#xA;&lt;P>&#xA;To construct a date-time attribute from separate values of the year, month,&#xA;day, hour, minute, and so on, use a &lt;code>java.util.Calendar&lt;/code>&#xA;object to construct a &lt;code>java.util.Date&lt;/code> object, then use the&#xA;&lt;code>java.util.Date&lt;/code >object to construct the date-time attribute.&#xA;To convert&#xA;a date-time attribute to separate values of the year, month, day, hour,&#xA;minute, and so on, create a &lt;code>java.util.Calendar&lt;/code> object and&#xA;set it to the &lt;code>java.util.Date&lt;/code> from the date-time attribute. Class&#xA;DateTimeSyntax stores its value in the form of a &lt;code>java.util.Date&#xA;&lt;/code>&#xA;rather than a &lt;code>java.util.Calendar&lt;/code> because it typically takes&#xA;less memory to store and less time to compare a &lt;code>java.util.Date&lt;/code>&#xA;than a &lt;code>java.util.Calendar&lt;/code>.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_558995_9447"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323311_125546_16440" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_558995_9447" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323311_859665_16441" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_558995_9447" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_622170_9455" name="HashAttributeSet" clientDependency="_10_5_622020d_1132928323321_405616_16447 _10_5_622020d_1132928323321_62101_16446">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_421948_10273" body="Class HashAttributeSet provides an &lt;code>AttributeSet&lt;/code>&#xA;implementation with characteristics of a hash map.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_622170_9455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_62101_16446" name="" supplier="_9_5_f720368_1110473546737_573250_9443" client="_9_5_f720368_1110473546737_622170_9455" contract="_9_5_f720368_1110473546737_573250_9443"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_405616_16447" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_622170_9455" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_988107_9477" name="PrintServiceAttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_467097_10295" body="Interface PrintServiceAttributeSet specifies the interface for a set of&#xA;print job attributes, i.e. printing attributes that implement interface&#xA;{@link&#xA;PrintServiceAttribute PrintServiceAttribute}. In the Print Service API,&#xA;the Print Service instance uses a PrintServiceAttributeSet to report the&#xA;status of the print service.&#xA;&lt;P>&#xA;A PrintServiceAttributeSet is just an {@link AttributeSet AttributeSet}&#xA;whose constructors and mutating operations guarantee an additional&#xA;invariant,&#xA;namely that all attribute values in the PrintServiceAttributeSet must be&#xA;instances of interface {@link PrintServiceAttribute PrintServiceAttribute}.&#xA;The {@link #add(Attribute) &lt;CODE>add(Attribute)&lt;/CODE>}, and&#xA;{@link #addAll(AttributeSet) &lt;CODE>addAll(AttributeSet)&lt;/CODE>} operations&#xA;are respecified below to guarantee this additional invariant.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_988107_9477"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_455211_16467" isSubstitutable="true" general="_9_5_f720368_1110473546737_573250_9443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_573250_9443" name="AttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_460610_10251" body="Interface AttributeSet specifies the interface for a set of printing&#xA;attributes. A printing attribute is an object whose class implements&#xA;interface {@link Attribute Attribute}.&#xA;&lt;P>&#xA;An attribute set contains a group of &lt;I>attribute values,&lt;/I>&#xA;where duplicate values are not allowed in the set.&#xA;Furthermore, each value in an attribute set is&#xA;a member of some &lt;I>category,&lt;/I> and at most one value in any particular&#xA;category is allowed in the set. For an attribute set, the values are {@link&#xA;Attribute Attribute} objects, and the categories are {@link java.lang.Class&#xA;Class} objects. An attribute's category is the class (or interface) at the&#xA;root of the class hierarchy for that kind of attribute. Note that an&#xA;attribute object's category may be a superclass of the attribute object's&#xA;class rather than the attribute object's class itself. An attribute&#xA;object's&#xA;category is determined by calling the {@link Attribute#getCategory()&#xA;&lt;CODE>getCategory()&lt;/CODE>} method defined in interface {@link Attribute&#xA;Attribute}.&#xA;&lt;P>&#xA;The interfaces of an AttributeSet resemble those of the Java Collections&#xA;API's java.util.Map interface, but is more restrictive in the types&#xA;it will accept, and combines keys and values into an Attribute.&#xA;&lt;P>&#xA;Attribute sets are used in several places in the Print Service API. In&#xA;each context, only certain kinds of attributes are allowed to appear in the&#xA;attribute set, as determined by the tagging interfaces which the attribute&#xA;class implements -- {@link DocAttribute DocAttribute}, {@link&#xA;PrintRequestAttribute PrintRequestAttribute}, {@link PrintJobAttribute&#xA;PrintJobAttribute}, and {@link PrintServiceAttribute&#xA;PrintServiceAttribute}.&#xA;There are four specializations of an attribute set that are restricted to&#xA;contain just one of the four kinds of attribute -- {@link DocAttributeSet&#xA;DocAttributeSet}, {@link PrintRequestAttributeSet&#xA;PrintRequestAttributeSet},&#xA;{@link PrintJobAttributeSet PrintJobAttributeSet}, and {@link&#xA;PrintServiceAttributeSet PrintServiceAttributeSet}, respectively. Note that&#xA;many attribute classes implement more than one tagging interface and so may&#xA;appear in more than one context.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;A {@link DocAttributeSet DocAttributeSet}, containing {@link DocAttribute&#xA;DocAttribute}s, specifies the characteristics of an individual doc and the&#xA;print job settings to be applied to an individual doc.&#xA;&lt;P>&#xA;&lt;LI>&#xA;A {@link PrintRequestAttributeSet PrintRequestAttributeSet}, containing&#xA;{@link PrintRequestAttribute PrintRequestAttribute}s, specifies the&#xA;settings&#xA;to be applied to a whole print job and to all the docs in the print job.&#xA;&lt;P>&#xA;&lt;LI>&#xA;A {@link PrintJobAttributeSet PrintJobAttributeSet}, containing {@link&#xA;PrintJobAttribute PrintJobAttribute}s, reports the status of a print job.&#xA;&lt;P>&#xA;&lt;LI>&#xA;A {@link PrintServiceAttributeSet PrintServiceAttributeSet}, containing&#xA;{@link PrintServiceAttribute PrintServiceAttribute}s, reports the status of&#xA;a Print Service instance.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;In some contexts, the client is only allowed to examine an attribute set's&#xA;contents but not change them (the set is read-only). In other places, the&#xA;client is allowed both to examine and to change an attribute set's contents&#xA;(the set is read-write). For a read-only attribute set, calling a mutating&#xA;operation throws an UnmodifiableSetException.&#xA;&lt;P>&#xA;The Print Service API provides one implementation of interface&#xA;AttributeSet, class {@link HashAttributeSet HashAttributeSet}.&#xA;A client can use class {@link&#xA;HashAttributeSet HashAttributeSet} or provide its own implementation of&#xA;interface AttributeSet. The Print Service API also provides&#xA;implementations of interface AttributeSet's subinterfaces -- classes {@link&#xA;HashDocAttributeSet HashDocAttributeSet},&#xA;{@link HashPrintRequestAttributeSet&#xA;HashPrintRequestAttributeSet}, {@link HashPrintJobAttributeSet&#xA;HashPrintJobAttributeSet}, and {@link HashPrintServiceAttributeSet&#xA;HashPrintServiceAttributeSet}.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_573250_9443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_117081_9449" name="DocAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_561520_10267" body="Interface DocAttribute is a tagging interface which a printing attribute&#xA;class implements to indicate the attribute denotes a setting for a doc.&#xA;(&quot;Doc&quot; is a short, easy-to-pronounce term that means &quot;a piece of print&#xA;data.&quot;) The client may include a DocAttribute in a &lt;code>Doc&lt;/code>'s&#xA;attribute set to specify a characteristic of&#xA;that doc. If an attribute implements {@link PrintRequestAttribute&#xA;PrintRequestAttribute} as well as DocAttribute, the client may include the&#xA;attribute in a attribute set which specifies a print job&#xA;to specify a characteristic for all the docs in that job.&#xA;&lt;P>&#xA;&#xA;@see DocAttributeSet&#xA;@see PrintRequestAttributeSet&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_117081_9449"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_333681_16442" isSubstitutable="true" general="_9_5_f720368_1110473546737_324874_9441"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_604249_9453" name="EnumSyntax" clientDependency="_10_5_622020d_1132928323321_891605_16444 _10_5_622020d_1132928323321_699178_16445" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315800_566490_10271" body="Class EnumSyntax is an abstract base class providing the common&#xA;implementation of all &quot;type safe enumeration&quot; objects. An enumeration class&#xA;(which extends class EnumSyntax) provides a group of enumeration values&#xA;(objects) that are singleton instances of the enumeration class; for example:&#xA;&lt;PRE>&#xA;public class Bach extends EnumSyntax {&#xA;public static final Bach JOHANN_SEBASTIAN     = new Bach(0);&#xA;public static final Bach WILHELM_FRIEDEMANN   = new Bach(1);&#xA;public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);&#xA;public static final Bach JOHANN_CHRISTIAN     = new Bach(3);&#xA;public static final Bach P_D_Q                = new Bach(4);&#xA;&#xA;private static final String[] stringTable = {&#xA;&quot;Johann Sebastian Bach&quot;,&#xA;&quot;Wilhelm Friedemann Bach&quot;,&#xA;&quot;Carl Philip Emmanuel Bach&quot;,&#xA;&quot;Johann Christian Bach&quot;,&#xA;&quot;P.D.Q. Bach&quot;&#xA;};&#xA;&#xA;protected String[] getStringTable() {&#xA;return stringTable;&#xA;}&#xA;&#xA;private static final Bach[] enumValueTable = {&#xA;JOHANN_SEBASTIAN,&#xA;WILHELM_FRIEDEMANN,&#xA;CARL_PHILIP_EMMANUEL,&#xA;JOHANN_CHRISTIAN,&#xA;P_D_Q&#xA;};&#xA;&#xA;protected EnumSyntax[] getEnumValueTable() {&#xA;return enumValueTable;&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;You can then write code that uses the &lt;CODE>==&lt;/CODE> and &lt;CODE>!=&lt;/CODE>&#xA;operators to test enumeration values; for example:&#xA;&lt;PRE>&#xA;Bach theComposer;&#xA;. . .&#xA;if (theComposer == Bach.JOHANN_SEBASTIAN) {&#xA;System.out.println (&quot;The greatest composer of all time!&quot;);&#xA;}&#xA;&lt;/PRE>&#xA;The &lt;CODE>equals()&lt;/CODE> method for an enumeration class just does a test&#xA;for identical objects (&lt;CODE>==&lt;/CODE>).&#xA;&lt;P>&#xA;You can convert an enumeration value to a string by calling {@link&#xA;#toString() &lt;CODE>toString()&lt;/CODE>}. The string is obtained from a table&#xA;supplied by the enumeration class.&#xA;&lt;P>&#xA;Under the hood, an enumeration value is just an integer, a different integer&#xA;for each enumeration value within an enumeration class. You can get an&#xA;enumeration value's integer value by calling {@link #getValue()&#xA;&lt;CODE>getValue()&lt;/CODE>}. An enumeration value's integer value is established&#xA;when it is constructed (see {@link #EnumSyntax(int)&#xA;&lt;CODE>EnumSyntax(int)&lt;/CODE>}). Since the constructor is protected, the only&#xA;possible enumeration values are the singleton objects declared in the&#xA;enumeration class; additional enumeration values cannot be created at run&#xA;time.&#xA;&lt;P>&#xA;You can define a subclass of an enumeration class that extends it with&#xA;additional enumeration values. The subclass's enumeration values' integer&#xA;values need not be distinct from the superclass's enumeration values' integer&#xA;values; the &lt;CODE>==&lt;/CODE>, &lt;CODE>!=&lt;/CODE>, &lt;CODE>equals()&lt;/CODE>, and&#xA;&lt;CODE>toString()&lt;/CODE> methods will still work properly even if the subclass&#xA;uses some of the same integer values as the superclass. However, the&#xA;application in which the enumeration class and subclass are used may need to&#xA;have distinct integer values in the superclass and subclass.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_604249_9453"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_891605_16444" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_604249_9453" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_699178_16445" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_604249_9453" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547987_545986_20191" name="standard">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_885050_9331" name="JobImpressionsCompleted" clientDependency="_10_5_622020d_1132928323261_608701_16266" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315630_3274_10134" body="Class JobImpressionsCompleted is an integer valued printing attribute class&#xA;that specifies the number of impressions completed for the job so far. For&#xA;printing devices, the impressions completed includes interpreting, marking,&#xA;and stacking the output.&#xA;&lt;P>&#xA;The JobImpressionsCompleted attribute describes the progress of the job. This&#xA;attribute is intended to be a counter. That is, the JobImpressionsCompleted&#xA;value for a job that has not started processing must be 0. When the job's&#xA;{@link JobState JobState} is PROCESSING or PROCESSING_STOPPED, the&#xA;JobImpressionsCompleted value is intended to increase as the job is&#xA;processed; it indicates the amount of the job that has been processed at the&#xA;time the Print Job's attribute set is queried or at the time a print job&#xA;event is reported. When the job enters the COMPLETED, CANCELED, or ABORTED&#xA;states, the JobImpressionsCompleted value is the final value for the job.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobImpressions&#xA;@see JobImpressionsSupported&#xA;@see JobKOctetsProcessed&#xA;@see JobMediaSheetsCompleted&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_885050_9331"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_893485_16267" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_608701_16266" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_885050_9331" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_673920_9347" name="JobMessageFromOperator" clientDependency="_10_5_622020d_1132928323271_418564_16284" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_822603_10150" body="Class JobMessageFromOperator is a printing attribute class, a text attribute,&#xA;that provides a message from an operator, system administrator, or&#xA;&quot;intelligent&quot; process to indicate to the end user the reasons for&#xA;modification or other management action taken on a job.&#xA;&lt;P>&#xA;A Print Job's attribute set includes zero instances or one instance of a&#xA;JobMessageFromOperator attribute, not more than one instance. A new&#xA;JobMessageFromOperator attribute replaces an existing JobMessageFromOperator&#xA;attribute, if any. In other words, JobMessageFromOperator is not intended to&#xA;be a history log. If it wishes, the client can detect changes to a Print&#xA;Job's JobMessageFromOperator attribute and maintain the client's own history&#xA;log of the JobMessageFromOperator attribute values.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_673920_9347"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_589934_16285" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_418564_16284" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_673920_9347" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_987864_9345" name="JobMediaSheetsSupported" clientDependency="_10_5_622020d_1132928323271_686731_16282" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_572440_10148" body="Class JobMediaSheetsSupported is a printing attribute class, a set of&#xA;integers, that gives the supported values for a {@link JobMediaSheets&#xA;JobMediaSheets} attribute. It is restricted to a single contiguous range of&#xA;integers; multiple non-overlapping ranges are not allowed. This gives the&#xA;lower and upper bounds of the total sizes of print jobs in number of media&#xA;sheets that the printer will accept.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The JobMediaSheetsSupported attribute's canonical&#xA;array form gives the lower and upper bound for the range of values to be&#xA;included in an IPP &quot;job-media-sheets-supported&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_987864_9345"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_940449_16283" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_686731_16282" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_987864_9345" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_313212_9435" name="Severity" clientDependency="_10_5_622020d_1132928323311_996332_16401" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_524700_10243" body="Class Severity is a printing attribute class, an enumeration, that denotes&#xA;the severity of a {@link PrinterStateReason PrinterStateReason} attribute.&#xA;&lt;P>&#xA;Instances of Severity do not appear in a Print Service's attribute set&#xA;directly. Rather, a {@link PrinterStateReasons PrinterStateReasons}&#xA;attribute appears in the Print Service's attribute set.&#xA;The {@link PrinterStateReasons&#xA;PrinterStateReasons} attribute contains zero, one, or more than one {@link&#xA;PrinterStateReason PrinterStateReason} objects which pertain to the Print&#xA;Service's status, and each {@link PrinterStateReason PrinterStateReason}&#xA;object is associated with a Severity level of REPORT (least severe),&#xA;WARNING, or ERROR (most severe).&#xA;The printer adds a {@link PrinterStateReason&#xA;PrinterStateReason} object to the Print Service's&#xA;{@link PrinterStateReasons PrinterStateReasons} attribute when the&#xA;corresponding condition becomes true&#xA;of the printer, and the printer removes the {@link PrinterStateReason&#xA;PrinterStateReason} object again when the corresponding condition becomes&#xA;false, regardless of whether the Print Service's overall&#xA;{@link PrinterState PrinterState} also changed.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>&#xA;&lt;code>Severity.toString()&lt;/code> returns either &quot;error&quot;, &quot;warning&quot;, or&#xA;&quot;report&quot;.  The string values returned by&#xA;each individual {@link PrinterStateReason} and&#xA;associated {@link Severity} object's &lt;CODE>toString()&lt;/CODE>&#xA;methods, concatenated together with a hyphen (&lt;CODE>&quot;-&quot;&lt;/CODE>) in&#xA;between, gives the IPP keyword value for a {@link PrinterStateReasons}.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_313212_9435"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_130544_16402" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_996332_16401" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546737_313212_9435" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_813950_9339" name="JobKOctetsSupported" clientDependency="_10_5_622020d_1132928323271_748639_16275" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_872485_10142" body="Class JobKOctetsSupported is a printing attribute class, a set of integers,&#xA;that gives the supported values for a {@link JobKOctets JobKOctets}&#xA;attribute. It is restricted to a single contiguous range of integers;&#xA;multiple non-overlapping ranges are not allowed. This gives the lower and&#xA;upper bounds of the total sizes of print jobs in units of K octets (1024&#xA;octets) that the printer will accept.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The JobKOctetsSupported attribute's canonical array&#xA;form gives the lower and upper bound for the range of values to be included&#xA;in an IPP &quot;job-k-octets-supported&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_813950_9339"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_568082_16276" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_748639_16275" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_813950_9339" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_315004_9431" name="ReferenceUriSchemesSupported" clientDependency="_10_5_622020d_1132928323301_296636_16397">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_710772_10239" body="Class ReferenceUriSchemesSupported is a printing attribute class&#xA;an enumeration, that indicates a &quot;URI scheme,&quot; such as &quot;http:&quot; or &quot;ftp:&quot;,&#xA;that a printer can use to retrieve print data stored at a URI location.&#xA;If a printer supports doc flavors with a print data representation class of&#xA;&lt;CODE>&quot;java.net.URL&quot;&lt;/CODE>, the printer uses instances of class&#xA;ReferenceUriSchemesSupported to advertise the URI schemes it can accept.&#xA;The acceptable URI schemes are included as service attributes in the&#xA;lookup service; this lets clients search the&#xA;for printers that can get print data using a certain URI scheme. The&#xA;acceptable URI schemes can also be queried using the capability methods in&#xA;interface &lt;code>PrintService&lt;/code>. However,&#xA;ReferenceUriSchemesSupported attributes are used solely for determining&#xA;acceptable URI schemes, they are never included in a doc's,&#xA;print request's, print job's, or print service's attribute set.&#xA;&lt;P>&#xA;The Internet Assigned Numbers Authority maintains the&#xA;&lt;A HREF=&quot;http://www.isi.edu/in-notes/iana/assignments/url-schemes&quot;>official&#xA;list of URI schemes&lt;/A>.&#xA;&lt;p>&#xA;Class ReferenceUriSchemesSupported defines enumeration values for widely&#xA;used URI schemes. A printer that supports additional URI schemes&#xA;can define them in a subclass of class ReferenceUriSchemesSupported.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>  The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_315004_9431"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_597210_16398" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_296636_16397" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546737_315004_9431" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_488828_9387" name="OrientationRequested" clientDependency="_10_5_622020d_1132928323291_536742_16336 _10_5_622020d_1132928323291_438965_16335 _10_5_622020d_1132928323291_573394_16337" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315720_349922_10195" body="Class OrientationRequested is a printing attribute class, an enumeration,&#xA;that indicates the desired orientation for printed print-stream pages; it&#xA;does not describe the orientation of the client-supplied print-stream&#xA;pages.&#xA;&lt;P>&#xA;For some document formats (such as &lt;CODE>&quot;application/postscript&quot;&lt;/CODE>),&#xA;the desired orientation of the print-stream pages is specified within the&#xA;document data. This information is generated by a device driver prior to&#xA;the submission of the print job. Other document formats (such as&#xA;&lt;CODE>&quot;text/plain&quot;&lt;/CODE>) do not include the notion of desired orientation&#xA;within the document data. In the latter case it is possible for the printer&#xA;to bind the desired orientation to the document data after it has been&#xA;submitted. It is expected that a printer would only support the&#xA;OrientationRequested attribute for some document formats (e.g.,&#xA;&lt;CODE>&quot;text/plain&quot;&lt;/CODE> or &lt;CODE>&quot;text/html&quot;&lt;/CODE>) but not others (e.g.&#xA;&lt;CODE>&quot;application/postscript&quot;&lt;/CODE>). This is no different from any other&#xA;job template attribute, since a print job can always impose constraints&#xA;among the values of different job template attributes.&#xA;However, a special mention&#xA;is made here since it is very likely that a printer will support the&#xA;OrientationRequested attribute for only a subset of the supported document&#xA;formats.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_488828_9387"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_438972_16338" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_438965_16335" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_488828_9387" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_536742_16336" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_488828_9387" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_573394_16337" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_488828_9387" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_617225_9309" name="Copies" clientDependency="_10_5_622020d_1132928323261_465391_16237 _10_5_622020d_1132928323261_473996_16238" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315610_621785_10112" body="Class Copies is an integer valued printing attribute class that specifies the&#xA;number of copies to be printed.&#xA;&lt;P>&#xA;On many devices the supported number of collated copies will be limited by&#xA;the number of physical output bins on the device, and may be different from&#xA;the number of uncollated copies which can be supported.&#xA;&lt;P>&#xA;The effect of a Copies attribute with a value of &lt;I>n&lt;/I> on a multidoc print&#xA;job (a job with multiple documents) depends on the (perhaps defaulted) value&#xA;of the {@link MultipleDocumentHandling MultipleDocumentHandling} attribute:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- The result will be &lt;I>n&lt;/I> copies of a single output&#xA;document comprising all the input docs.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- The result will be &lt;I>n&lt;/I> copies of a single&#xA;output document comprising all the input docs, and the first impression of&#xA;each input doc will always start on a new media sheet.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- The result will be &lt;I>n&lt;/I> copies of&#xA;the first input document, followed by &lt;I>n&lt;/I> copies of the second input&#xA;document, . . . followed by &lt;I>n&lt;/I> copies of the last input document.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- The result will be the first input&#xA;document, the second input document, . . . the last input document, the group&#xA;of documents being repeated &lt;I>n&lt;/I> times.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kamihensky&#xA;" annotatedElement="_9_5_f720368_1110473546721_617225_9309"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_398516_16239" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_465391_16237" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_617225_9309" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_473996_16238" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_617225_9309" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_857907_9355" name="JobPrioritySupported" clientDependency="_10_5_622020d_1132928323281_435370_16294" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_112988_10158" body="Class JobPrioritySupported is an integer valued printing attribute class&#xA;that specifies whether a Print Service instance supports the {@link&#xA;JobPriority JobPriority} attribute and the number of different job priority&#xA;levels supported.&#xA;&lt;P>&#xA;The client can always specify any {@link JobPriority JobPriority} value&#xA;from 1 to 100 for a job. However, the Print Service instance may support&#xA;fewer than 100 different job priority levels. If this is the case, the&#xA;Print Service instance automatically maps the client-specified job priority&#xA;value to one of the supported job priority levels, dividing the 100 job&#xA;priority values equally among the available job priority levels.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_857907_9355"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_373790_16295" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_435370_16294" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_857907_9355" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928323301_426146_16384" name="AbstractSet&lt;PrinterStateReason>">
                <templateBinding xmi:id="_10_5_622020d_1132928323301_842239_16385" signature="_10_5_622020d_1132928310803_326819_6974">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928323301_829548_16386" formal="_10_5_622020d_1132928310803_863661_6975" actual="_9_5_f720368_1110473546721_887314_9421"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_978944_9321" name="DocumentName" clientDependency="_10_5_622020d_1132928323261_675098_16251" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_631974_10124" body="Class DocumentName is a printing attribute class, a text attribute, that&#xA;specifies the name of a document. DocumentName is an attribute of the print&#xA;data (the doc), not of the Print Job. A document's name is an arbitrary&#xA;string defined by the client.&#xA;However if a JobName is not specified, the DocumentName should be used&#xA;instead, which implies that supporting specification of DocumentName&#xA;requires reporting of JobName and vice versa.&#xA;See {@link JobName JobName} for more information.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_978944_9321"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_670590_16252" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_675098_16251" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_978944_9321" contract="_9_5_f720368_1110473546737_117081_9449"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_898066_9359" name="JobState" clientDependency="_10_5_622020d_1132928323281_467217_16299">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_665000_10162" body="JobState is a printing attribute class, an enumeration, that identifies&#xA;the current state of a print job. Class JobState defines standard job state&#xA;values. A  Print Service implementation only needs to report those job&#xA;states which are appropriate for the particular implementation; it does not&#xA;have to report every defined job state. The {@link JobStateReasons&#xA;JobStateReasons} attribute augments the JobState attribute to give more&#xA;detailed information about the job in the given job state.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_898066_9359"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_748587_16300" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_467217_16299" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_898066_9359" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_398520_9407" name="PrinterMakeAndModel" clientDependency="_10_5_622020d_1132928323291_136193_16360" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_939879_10215" body="Class PrinterMakeAndModel is a printing attribute class, a text attribute,&#xA;that the make and model of the printer.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_398520_9407"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_386536_16361" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_136193_16360" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_398520_9407" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_478124_9429" name="QueuedJobCount" clientDependency="_10_5_622020d_1132928323301_300539_16395" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_111816_10237" body="Class QueuedJobCount is an integer valued printing attribute that indicates&#xA;the number of jobs in the printer whose {@link JobState JobState} is either&#xA;PENDING, PENDING_HELD, PROCESSING, or PROCESSING_STOPPED.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_478124_9429"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_125328_16396" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_300539_16395" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546737_478124_9429" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_189455_9369" name="MediaPrintableArea" clientDependency="_10_5_622020d_1132928323281_299162_16314 _10_5_622020d_1132928323281_999772_16316 _10_5_622020d_1132928323281_89069_16315" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_766650_10172" body="Class MediaPrintableArea is a printing attribute used to distinguish&#xA;the printable and non-printable areas of media.&#xA;&lt;p>&#xA;The printable area is specified to be a rectangle, within the overall&#xA;dimensions of a media.&#xA;&lt;p>&#xA;Most printers cannot print on the entire surface of the media, due&#xA;to printer hardware limitations. This class can be used to query&#xA;the acceptable values for a supposed print job, and to request an area&#xA;within the constraints of the printable area to be used in a print job.&#xA;&lt;p>&#xA;To query for the printable area, a client must supply a suitable context.&#xA;Without specifying at the very least the size of the media being used&#xA;no meaningful value for printable area can be obtained.&#xA;&lt;p>&#xA;The attribute is not described in terms of the distance from the edge&#xA;of the paper, in part to emphasise that this attribute is not independent&#xA;of a particular media, but must be described within the context of a&#xA;choice of other attributes. Additionally it is usually more convenient&#xA;for a client to use the printable area.&#xA;&lt;p>&#xA;The hardware's minimum margins is not just a property of the printer,&#xA;but may be a function of the media size, orientation, media type, and&#xA;any specified finishings.&#xA;&lt;code>PrintService&lt;/code> provides the method to query the supported&#xA;values of an attribute in a suitable context :&#xA;See  {@link javax.print.PrintService#getSupportedAttributeValues(Class,DocFlavor, AttributeSet) &lt;code>PrintService.getSupportedAttributeValues()&lt;/code>}&#xA;&lt;p>&#xA;The rectangular printable area is defined thus:&#xA;The (x,y) origin is positioned at the top-left of the paper in portrait&#xA;mode regardless of the orientation specified in the requesting context.&#xA;For example a printable area for A4 paper in portrait or landscape&#xA;orientation will have height > width.&#xA;&lt;p>&#xA;A printable area attribute's values are stored&#xA;internally as integers in units of micrometers (&amp;#181;m), where 1 micrometer&#xA;= 10&lt;SUP>-6&lt;/SUP> meter = 1/1000 millimeter = 1/25400 inch. This permits&#xA;dimensions to be represented exactly to a precision of 1/1000 mm (= 1&#xA;&amp;#181;m) or 1/100 inch (= 254 &amp;#181;m). If fractional inches are expressed in&#xA;negative powers of two, this permits dimensions to be represented exactly to&#xA;a precision of 1/8 inch (= 3175 &amp;#181;m) but not 1/16 inch (because 1/16 inch&#xA;does not equal an integral number of &amp;#181;m).&#xA;&lt;p>&#xA;&lt;B>IPP Compatibility:&lt;/B> MediaPrintableArea is not an IPP attribute.&#xA;" annotatedElement="_9_5_f720368_1110473546721_189455_9369"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_299162_16314" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_189455_9369" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_89069_16315" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_189455_9369" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_999772_16316" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_189455_9369" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_629550_9349" name="JobName" clientDependency="_10_5_622020d_1132928323281_205984_16287 _10_5_622020d_1132928323281_363606_16286" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_936706_10152" body="Class JobName is a printing attribute class, a text attribute, that specifies&#xA;the name of a print job. A job's name is an arbitrary string defined by the&#xA;client. It does not need to be unique between different jobs. A Print Job's&#xA;JobName attribute is set to the value supplied by the client in the Print&#xA;Request's attribute set. If, however, the client does not supply a JobName&#xA;attribute in the Print Request, the printer, when it creates the Print Job,&#xA;must generate a JobName. The printer should generate the value of the Print&#xA;Job's JobName attribute from the first of the following sources that produces&#xA;a value: (1) the {@link DocumentName DocumentName} attribute of the first (or&#xA;only) doc in the job, (2) the URL of the first (or only) doc in the job, if&#xA;the doc's print data representation object is a URL, or (3) any other piece&#xA;of Print Job specific and/or document content information.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_629550_9349"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_622646_16288" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_363606_16286" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_629550_9349" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_205984_16287" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_629550_9349" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_896288_9373" name="MediaSizeName">
                <ownedComment xmi:id="_10_5_622020d_1132928315680_578148_10181" body="Class MediaSizeName is a subclass of Media.&#xA;&lt;P>&#xA;This attribute can be used instead of specifying MediaName or MediaTray.&#xA;&lt;p>&#xA;Class MediaSizeName currently declares a few standard media&#xA;name values.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> MediaSizeName is a representation class for&#xA;values of the IPP &quot;media&quot; attribute which names media sizes.&#xA;The names of the media sizes correspond to those in the IPP 1.1 RFC&#xA;&lt;a HREF=&quot;http://www.ietf.org/rfc/rfc2911.txt&quot;>RFC 2911&lt;/a>&#xA;&lt;P>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546721_896288_9373"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_169876_16319" isSubstitutable="true" general="_9_5_f720368_1110473546721_825478_9365"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_624086_9329" name="JobImpressions" clientDependency="_10_5_622020d_1132928323261_292805_16264 _10_5_622020d_1132928323261_385221_16263" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315630_509810_10132" body="Class JobImpressions is an integer valued printing attribute class that&#xA;specifies the total size in number of impressions of the document(s) being&#xA;submitted. An &quot;impression&quot; is the image (possibly many print-stream pages in&#xA;different configurations) imposed onto a single media page.&#xA;&lt;P>&#xA;The JobImpressions attribute describes the size of the job. This attribute is&#xA;not intended to be a counter; it is intended to be useful routing and&#xA;scheduling information if known. The printer may try to compute the&#xA;JobImpressions attribute's value if it is not supplied in the Print Request.&#xA;Even if the client does supply a value for the JobImpressions attribute in&#xA;the Print Request, the printer may choose to change the value if the printer&#xA;is able to compute a value which is more accurate than the client supplied&#xA;value. The printer may be able to determine the correct value for the&#xA;JobImpressions attribute either right at job submission time or at any later&#xA;point in time.&#xA;&lt;P>&#xA;As with {@link JobKOctets JobKOctets}, the JobImpressions value must not&#xA;include the multiplicative factors contributed by the number of copies&#xA;specified by the {@link Copies Copies} attribute, independent of whether the&#xA;device can process multiple copies without making multiple passes over the&#xA;job or document data and independent of whether the output is collated or&#xA;not. Thus the value is independent of the implementation and reflects the&#xA;size of the document(s) measured in impressions independent of the number of&#xA;copies.&#xA;&lt;P>&#xA;As with {@link JobKOctets JobKOctets}, the JobImpressions value must also not&#xA;include the multiplicative factor due to a copies instruction embedded in the&#xA;document data. If the document data actually includes replications of the&#xA;document data, this value will include such replication. In other words, this&#xA;value is always the number of impressions in the source document data, rather&#xA;than a measure of the number of impressions to be produced by the job.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobImpressionsSupported&#xA;@see JobImpressionsCompleted&#xA;@see JobKOctets&#xA;@see JobMediaSheets&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_624086_9329"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_498100_16265" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_385221_16263" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_624086_9329" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_292805_16264" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_624086_9329" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_347229_9375" name="MediaTray" clientDependency="_10_5_622020d_1132928323281_432652_16320">
                <ownedComment xmi:id="_10_5_622020d_1132928315680_899782_10183" body="Class MediaTray is a subclass of Media.&#xA;Class MediaTray is a printing attribute class, an enumeration, that&#xA;specifies the media tray or bin for the job.&#xA;This attribute can be used instead of specifying MediaSize or MediaName.&#xA;&lt;p>&#xA;Class MediaTray declares keywords for standard media kind values.&#xA;Implementation- or site-defined names for a media kind attribute may also&#xA;be created by defining a subclass of class MediaTray.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> MediaTray is a representation class for&#xA;values of the IPP &quot;media&quot; attribute which name paper trays.&#xA;&lt;P>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546721_347229_9375"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_870446_16321" isSubstitutable="true" general="_9_5_f720368_1110473546721_825478_9365"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_432652_16320" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546721_347229_9375" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_926892_9403" name="PrinterIsAcceptingJobs" clientDependency="_10_5_622020d_1132928323291_978894_16356" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_811715_10211" body="Class PrinterIsAcceptingJobs is a printing attribute class, an enumeration,&#xA;that indicates whether the printer is currently able to accept jobs. This&#xA;value is independent of the {@link PrinterState PrinterState} and {@link&#xA;PrinterStateReasons PrinterStateReasons} attributes because its value does&#xA;not affect the current job; rather it affects future jobs. If the value is&#xA;NOT_ACCEPTING_JOBS, the printer will reject jobs even when the {@link&#xA;PrinterState PrinterState} is IDLE. If value is ACCEPTING_JOBS, the Printer&#xA;will accept jobs even when the {@link PrinterState PrinterState} is STOPPED.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The IPP boolean value is &quot;true&quot; for ACCEPTING_JOBS&#xA;and &quot;false&quot; for NOT_ACCEPTING_JOBS. TThe category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_926892_9403"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_194052_16357" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_978894_16356" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_926892_9403" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_184035_9325" name="Finishings" clientDependency="_10_5_622020d_1132928323261_793566_16258 _10_5_622020d_1132928323261_67133_16256 _10_5_622020d_1132928323261_395654_16257">
                <ownedComment xmi:id="_10_5_622020d_1132928315630_330210_10128" body="Class Finishings is a printing attribute class, an enumeration, that&#xA;identifies whether the printer applies a finishing operation of some kind&#xA;of binding to each copy of each printed document in the job. For multidoc&#xA;print jobs (jobs with multiple documents), the&#xA;{@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} attribute determines what constitutes a &quot;copy&quot;&#xA;for purposes of finishing.&#xA;&lt;P>&#xA;Standard Finishings values are:&#xA;&lt;TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100% SUMMARY=&quot;layout&quot;>&#xA;&lt;TR>&#xA;&lt;TD WIDTH=10%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #NONE &lt;CODE>NONE&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE &lt;CODE>STAPLE&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=36%>&#xA;{@link #EDGE_STITCH &lt;CODE>EDGE_STITCH&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;{@link #BIND &lt;CODE>BIND&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;{@link #SADDLE_STITCH &lt;CODE>SADDLE_STITCH&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;{@link #COVER &lt;CODE>COVER&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;The following Finishings values are more specific; they indicate a&#xA;corner or an edge as if the document were a portrait document:&#xA;&lt;TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100% SUMMARY=&quot;layout&quot;>&#xA;&lt;TR>&#xA;&lt;TD WIDTH=10%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_TOP_LEFT &lt;CODE>STAPLE_TOP_LEFT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #EDGE_STITCH_LEFT &lt;CODE>EDGE_STITCH_LEFT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_DUAL_LEFT &lt;CODE>STAPLE_DUAL_LEFT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=9%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD WIDTH=10%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_BOTTOM_LEFT &lt;CODE>STAPLE_BOTTOM_LEFT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #EDGE_STITCH_TOP &lt;CODE>EDGE_STITCH_TOP&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_DUAL_TOP &lt;CODE>STAPLE_DUAL_TOP&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=9%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD WIDTH=10%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_TOP_RIGHT &lt;CODE>STAPLE_TOP_RIGHT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #EDGE_STITCH_RIGHT &lt;CODE>EDGE_STITCH_RIGHT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_DUAL_RIGHT &lt;CODE>STAPLE_DUAL_RIGHT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=9%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD WIDTH=10%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_BOTTOM_RIGHT &lt;CODE>STAPLE_BOTTOM_RIGHT&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #EDGE_STITCH_BOTTOM &lt;CODE>EDGE_STITCH_BOTTOM&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=27%>&#xA;{@link #STAPLE_DUAL_BOTTOM &lt;CODE>STAPLE_DUAL_BOTTOM&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD WIDTH=9%>&#xA;&amp;nbsp;&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;The &lt;CODE>STAPLE_&lt;I>XXX&lt;/I>&lt;/CODE> values are specified with respect to the&#xA;document as if the document were a portrait document. If the document is&#xA;actually a landscape or a reverse-landscape document, the client supplies the&#xA;appropriate transformed value. For example, to position a staple in the upper&#xA;left hand corner of a landscape document when held for reading, the client&#xA;supplies the &lt;CODE>STAPLE_BOTTOM_LEFT&lt;/CODE> value (since landscape is&#xA;defined as a +90 degree rotation from portrait, i.e., anti-clockwise). On the&#xA;other hand, to position a staple in the upper left hand corner of a&#xA;reverse-landscape document when held for reading, the client supplies the&#xA;&lt;CODE>STAPLE_TOP_RIGHT&lt;/CODE> value (since reverse-landscape is defined as a&#xA;-90 degree rotation from portrait, i.e., clockwise).&#xA;&lt;P>&#xA;The angle (vertical, horizontal, angled) of each staple with respect to the&#xA;document depends on the implementation which may in turn depend on the value&#xA;of the attribute.&#xA;&lt;P>&#xA;The effect of a Finishings attribute on a multidoc print job (a job&#xA;with multiple documents) depends on whether all the docs have the same&#xA;binding specified or whether different docs have different bindings&#xA;specified, and on the (perhaps defaulted) value of the {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} attribute.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;If all the docs have the same binding specified, then any value of {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} makes sense, and the&#xA;printer's processing depends on the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} value:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be bound together as one output&#xA;document with the specified binding.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be bound together as one&#xA;output document with the specified binding, and the first impression of each&#xA;input doc will always start on a new media sheet.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- Each input doc will be bound&#xA;separately with the specified binding.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- Each input doc will be bound separately&#xA;with the specified binding.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;LI>&#xA;If different docs have different bindings specified, then only two values of&#xA;{@link MultipleDocumentHandling MultipleDocumentHandling} make sense, and the&#xA;printer reports an error when the job is submitted if any other value is&#xA;specified:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- Each input doc will be bound&#xA;separately with its own specified binding.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- Each input doc will be bound separately&#xA;with its own specified binding.&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> Class Finishings encapsulates some of the&#xA;IPP enum values that can be included in an IPP &quot;finishings&quot; attribute, which&#xA;is a set of enums. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;In IPP Finishings is a multi-value attribute, this API currently allows&#xA;only one binding to be specified.&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_184035_9325"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_938142_16259" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_67133_16256" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_184035_9325" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_395654_16257" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_184035_9325" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_793566_16258" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_184035_9325" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_174354_9405" name="PrinterLocation" clientDependency="_10_5_622020d_1132928323291_438904_16358" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_332906_10213" body="Class PrinterLocation is a printing attribute class, a text attribute, that&#xA;identifies the location of the device. This could include things like:&#xA;&lt;CODE>&quot;in Room 123A, second floor of building XYZ&quot;&lt;/CODE>.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_174354_9405"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_535344_16359" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_438904_16358" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_174354_9405" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_151389_9361" name="JobStateReason" clientDependency="_10_5_622020d_1132928323281_841057_16301">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_912596_10164" body="Class JobStateReason is a printing attribute class, an enumeration, that&#xA;provides additional information about the job's current state, i.e.,&#xA;information that augments the value of the job's {@link JobState JobState}&#xA;attribute. Class JobStateReason defines standard job state reason values. A&#xA;Print Service implementation only needs to report those job state&#xA;reasons which are appropriate for the particular implementation; it does not&#xA;have to report every defined job state reason.&#xA;&lt;P>&#xA;Instances of JobStateReason do not appear in a Print Job's attribute set&#xA;directly. Rather, a {@link JobStateReasons JobStateReasons} attribute appears&#xA;in the Print Job's attribute set. The {@link JobStateReasons JobStateReasons}&#xA;attribute contains zero, one, or more than one JobStateReason objects which&#xA;pertain to the Print Job's status. The printer adds a JobStateReason object&#xA;to the Print Job's {@link JobStateReasons JobStateReasons} attribute when the&#xA;corresponding condition becomes true of the Print Job, and the printer&#xA;removes the JobStateReason object again when the corresponding condition&#xA;becomes false, regardless of whether the Print Job's overall {@link JobState&#xA;JobState} also changed.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_151389_9361"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_904028_16302" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_841057_16301" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546721_151389_9361" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_188835_9391" name="PageRanges" clientDependency="_10_5_622020d_1132928323291_899398_16343 _10_5_622020d_1132928323291_279740_16341 _10_5_622020d_1132928323291_469162_16342" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_447316_10199" body="Class PageRanges is a printing attribute class, a set of integers, that&#xA;identifies the range(s) of print-stream pages that the Printer object uses&#xA;for each copy of each document which are to be printed. Nothing is printed&#xA;for any pages identified that do not exist in the document(s). The attribute&#xA;is associated with &lt;I>print-stream&lt;/I> pages, not application-numbered pages&#xA;(for example, the page numbers found in the headers and or footers for&#xA;certain word processing applications).&#xA;&lt;P>&#xA;In most cases, the exact pages to be printed will be generated by a device&#xA;driver and this attribute would not be required. However, when printing an&#xA;archived document which has already been formatted, the end user may elect to&#xA;print just a subset of the pages contained in the document. In this case, if&#xA;a page range of &lt;CODE>&quot;&lt;I>n&lt;/I>-&lt;I>m&lt;/I>&quot;&lt;/CODE> is specified, the first page&#xA;to be printed will be page &lt;I>n.&lt;/I> All subsequent pages of the document&#xA;will be printed through and including page &lt;I>m.&lt;/I>&#xA;&lt;P>&#xA;If a PageRanges attribute is not specified for a print job, all pages of&#xA;the document will be printed. In other words, the default value for the&#xA;PageRanges attribute is always &lt;CODE>{{1, Integer.MAX_VALUE}}&lt;/CODE>.&#xA;&lt;P>&#xA;The effect of a PageRanges attribute on a multidoc print job (a job with&#xA;multiple documents) depends on whether all the docs have the same page ranges&#xA;specified or whether different docs have different page ranges specified, and&#xA;on the (perhaps defaulted) value of the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} attribute.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;If all the docs have the same page ranges specified, then any value of {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} makes sense, and the&#xA;printer's processing depends on the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} value:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be combined together into one&#xA;output document. The specified page ranges of that output document will be&#xA;printed.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be combined together&#xA;into one output document, and the first impression of each input doc will&#xA;always start on a new media sheet. The specified page ranges of that output&#xA;document will be printed.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- For each separate input doc, the&#xA;specified page ranges will be printed.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- For each separate input doc, the&#xA;specified page ranges will be printed.&#xA;&lt;/UL>&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- For each separate input doc, its own&#xA;specified page ranges will be printed..&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- For each separate input doc, its own&#xA;specified page ranges will be printed..&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The PageRanges attribute's canonical array form&#xA;gives the lower and upper bound for each range of pages to be included in&#xA;and IPP &quot;page-ranges&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_188835_9391"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_547288_16344" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_279740_16341" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_188835_9391" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_469162_16342" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_188835_9391" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_899398_16343" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_188835_9391" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_291838_9395" name="PagesPerMinuteColor" clientDependency="_10_5_622020d_1132928323291_707681_16347" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_419643_10203" body="Class PagesPerMinuteColor is an integer valued printing attribute that&#xA;indicates the nominal number of pages per minute to the nearest whole number&#xA;which may be generated by this printer when printing color (e.g., simplex,&#xA;color). For purposes of this attribute, &quot;color&quot; means the same as for the&#xA;{@link ColorSupported ColorSupported} attribute, namely, the device is&#xA;capable of any type of color printing at all, including highlight color as&#xA;well as full process color. This attribute is informative, not a service&#xA;guarantee. Generally, it is the value used in the marketing literature to&#xA;describe the color capabilities of this device. A value of 0 indicates a&#xA;device that takes more than two minutes to process a page. If a color device&#xA;has several color modes, it may use the pages-per- minute value for this&#xA;attribute that corresponds to the mode that produces the highest number.&#xA;&lt;P>&#xA;A black and white only printer must not include the PagesPerMinuteColor&#xA;attribute in its attribute set or service registration. If this attribute is&#xA;present, then the {@link ColorSupported ColorSupported} printer description&#xA;attribute must also be present and have a value of SUPPORTED.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_291838_9395"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_374085_16348" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_707681_16347" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_291838_9395" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_876504_9323" name="Fidelity" clientDependency="_10_5_622020d_1132928323261_830810_16254 _10_5_622020d_1132928323261_427927_16253" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_915006_10126" body="Class Fidelity is a printing attribute class, an enumeration,&#xA;that indicates whether total fidelity to client supplied print request&#xA;attributes is required.&#xA;If FIDELITY_TRUE is specified and a service cannot print the job exactly&#xA;as specified it must reject the job.&#xA;If FIDELITY_FALSE is specified a reasonable attempt to print the job is&#xA;acceptable. If not supplied the default is FIDELITY_FALSE.&#xA;&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The IPP boolean value is &quot;true&quot; for FIDELITY_TRUE&#xA;and &quot;false&quot; for FIDELITY_FALSE. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;See &lt;a href=&quot;www.ietf.org/rfc/rfc2911.txt&quot;>RFC 2911&lt;/a> Section 15.1 for&#xA;a fuller description of the IPP fidelity attribute.&#xA;&lt;P>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546721_876504_9323"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_60659_16255" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_427927_16253" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_876504_9323" contract="_9_5_f720368_1110473546737_356648_9467"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_830810_16254" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_876504_9323" contract="_9_5_f720368_1110473546737_975548_9471"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_935844_9439" name="Sides" clientDependency="_10_5_622020d_1132928323311_880150_16409 _10_5_622020d_1132928323311_747197_16407 _10_5_622020d_1132928323311_974192_16408" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315760_613118_10247" body="Class Sides is a printing attribute class, an enumeration, that specifies&#xA;how print-stream pages are to be imposed upon the sides of an instance of a&#xA;selected medium, i.e., an impression.&#xA;&lt;P>&#xA;The effect of a Sides attribute on a multidoc print job (a job with multiple&#xA;documents) depends on whether all the docs have the same sides values&#xA;specified or whether different docs have different sides values specified,&#xA;and on the (perhaps defaulted) value of the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} attribute.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;If all the docs have the same sides value &lt;I>n&lt;/I> specified, then any value&#xA;of {@link MultipleDocumentHandling MultipleDocumentHandling} makes sense,&#xA;and the printer's processing depends on the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} value:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be combined together into one&#xA;output document. Each media sheet will consist of &lt;I>n&lt;/I> impressions from&#xA;the output document.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be combined together&#xA;into one output document. Each media sheet will consist of &lt;I>n&lt;/I>&#xA;impressions from the output document. However, the first impression of each&#xA;input doc will always start on a new media sheet; this means the last media&#xA;sheet of an input doc may have only one impression on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- The input docs will remain separate.&#xA;Each media sheet will consist of &lt;I>n&lt;/I> impressions from the input doc.&#xA;Since the input docs are separate, the first impression of each input doc&#xA;will always start on a new media sheet; this means the last media sheet of&#xA;an input doc may have only one impression on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- The input docs will remain separate.&#xA;Each media sheet will consist of &lt;I>n&lt;/I> impressions from the input doc.&#xA;Since the input docs are separate, the first impression of each input doc&#xA;will always start on a new media sheet; this means the last media sheet of&#xA;an input doc may have only one impression on it.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be combined together into one&#xA;output document. Each media sheet will consist of &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I>&#xA;impressions from the output document, where &lt;I>i&lt;/I> is the number of the&#xA;input doc corresponding to that point in the output document. When the next&#xA;input doc has a different sides value from the previous input doc, the first&#xA;print-stream page of the next input doc goes at the start of the next media&#xA;sheet, possibly leaving only one impression on the previous media sheet.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be combined together&#xA;into one output document. Each media sheet will consist of &lt;I>n&lt;/I>&#xA;impressions from the output document. However, the first impression of each&#xA;input doc will always start on a new media sheet; this means the last&#xA;impression of an input doc may have only one impression on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- The input docs will remain separate.&#xA;For input doc &lt;I>i,&lt;/I> each media sheet will consist of &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I>&#xA;impressions from the input doc. Since the input docs are separate, the first&#xA;impression of each input doc will always start on a new media sheet; this&#xA;means the last media sheet of an input doc may have only one impression on&#xA;it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- The input docs will remain separate.&#xA;For input doc &lt;I>i,&lt;/I> each media sheet will consist of &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I>&#xA;impressions from the input doc. Since the input docs are separate, the first&#xA;impression of each input doc will always start on a new media sheet; this&#xA;means the last media sheet of an input doc may have only one impression on&#xA;it.&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_935844_9439"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_758726_16410" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_747197_16407" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546737_935844_9439" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_974192_16408" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546737_935844_9439" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_880150_16409" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546737_935844_9439" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_339073_9367" name="MediaName" clientDependency="_10_5_622020d_1132928323281_48566_16312">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_15932_10170" body="Class MediaName is a subclass of Media, a printing attribute class (an&#xA;enumeration) that specifies the media for a print job as a name.&#xA;&lt;P>&#xA;This attribute can be used instead of specifying MediaSize or MediaTray.&#xA;&lt;p>&#xA;Class MediaName currently declares a few standard media names.&#xA;Implementation- or site-defined names for a media name attribute may also&#xA;be created by defining a subclass of class MediaName.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> MediaName is a representation class for&#xA;values of the IPP &quot;media&quot; attribute which names media.&#xA;&lt;P>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546721_339073_9367"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_806179_16313" isSubstitutable="true" general="_9_5_f720368_1110473546721_825478_9365"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_48566_16312" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546721_339073_9367" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_683614_9389" name="OutputDeviceAssigned" clientDependency="_10_5_622020d_1132928323291_833890_16339" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_218481_10197" body="Class OutputDeviceAssigned is a printing attribute class, a text attribute,&#xA;that identifies the output device to which the service has assigned this&#xA;job. If an output device implements an embedded Print Service instance, the&#xA;printer need not set this attribute. If a print server implements a&#xA;Print Service instance, the value may be empty (zero- length string) or not&#xA;returned until the service assigns an output device to the job. This&#xA;attribute is particularly useful when a single service supports multiple&#xA;devices (so called &quot;fan-out&quot;).&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_683614_9389"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_121374_16340" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_833890_16339" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_683614_9389" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_565723_9317" name="DateTimeAtProcessing" clientDependency="_10_5_622020d_1132928323261_196354_16246" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_794453_10120" body="Class DateTimeAtProcessing is a printing attribute class, a date-time&#xA;attribute, that indicates the date and time at which the Print Job first&#xA;began processing.&#xA;&lt;P>&#xA;To construct a DateTimeAtProcessing attribute from separate values of the&#xA;year, month, day, hour, minute, and so on, use a {@link java.util.Calendar&#xA;Calendar} object to construct a {@link java.util.Date Date} object, then use&#xA;the {@link java.util.Date Date} object to construct the DateTimeAtProcessing&#xA;attribute. To convert a DateTimeAtProcessing attribute to separate values of&#xA;the year, month, day, hour, minute, and so on, create a {@link&#xA;java.util.Calendar Calendar} object and set it to the {@link java.util.Date&#xA;Date} from the DateTimeAtProcessing attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The information needed to construct an IPP&#xA;&quot;date-time-at-processing&quot; attribute can be obtained as described above. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_565723_9317"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_892953_16247" isSubstitutable="true" general="_9_5_f720368_1110473546737_558995_9447"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_196354_16246" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_565723_9317" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_887314_9421" name="PrinterStateReason" clientDependency="_10_5_622020d_1132928323301_543942_16376">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_890311_10229" body="Class PrinterStateReason is a printing attribute class, an enumeration,&#xA;that provides additional information about the printer's current state,&#xA;i.e., information that augments the value of the printer's&#xA;{@link PrinterState PrinterState} attribute.&#xA;Class PrinterStateReason defines standard printer&#xA;state reason values. A Print Service implementation only needs to report&#xA;those printer state reasons which are appropriate for the particular&#xA;implementation; it does not have to report every defined printer state&#xA;reason.&#xA;&lt;P>&#xA;Instances of PrinterStateReason do not appear in a Print Service's&#xA;attribute set directly.&#xA;Rather, a {@link PrinterStateReasons PrinterStateReasons}&#xA;attribute appears in the Print Service's attribute set. The {@link&#xA;PrinterStateReasons PrinterStateReasons} attribute contains zero, one, or&#xA;more than one PrinterStateReason objects which pertain to the&#xA;Print Service's status, and each PrinterStateReason object is&#xA;associated with a {@link Severity Severity} level of REPORT (least severe),&#xA;WARNING, or ERROR (most severe). The printer adds a PrinterStateReason&#xA;object to the Print Service's&#xA;{@link PrinterStateReasons PrinterStateReasons} attribute when the&#xA;corresponding condition becomes true of the printer, and the printer&#xA;removesthe PrinterStateReason object again when the corresponding&#xA;condition becomes false, regardless of whether the Print Service's overall&#xA;{@link PrinterState PrinterState} also changed.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>&#xA;The string values returned by each individual {@link PrinterStateReason} and&#xA;associated {@link Severity} object's &lt;CODE>toString()&lt;/CODE>&#xA;methods, concatenated together with a hyphen (&lt;CODE>&quot;-&quot;&lt;/CODE>) in&#xA;between, gives the IPP keyword value for a {@link PrinterStateReasons}.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_887314_9421"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_132888_16377" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_543942_16376" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546721_887314_9421" contract="_9_5_f720368_1110473546737_324874_9441"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_568292_9415" name="PrinterName" clientDependency="_10_5_622020d_1132928323301_919152_16368" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_44985_10223" body="Class PrinterName is a printing attribute class, a text attribute, that&#xA;specifies the name of a printer. It is a name that is more end-user friendly&#xA;than a URI. An administrator determines a printer's name and sets this&#xA;attribute to that name. This name may be the last part of the printer's URI&#xA;or it may be unrelated. In non-US-English locales, a name may contain&#xA;characters that are not allowed in a URI.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_568292_9415"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_841296_16369" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_919152_16368" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_568292_9415" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_303666_9409" name="PrinterMessageFromOperator" clientDependency="_10_5_622020d_1132928323291_873187_16362" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_746718_10217" body="Class PrinterMessageFromOperator is a printing attribute class, a text&#xA;attribute, that provides a message from an operator, system administrator,&#xA;or &quot;intelligent&quot; process to indicate to the end user information about or&#xA;status of the printer, such as why it is unavailable or when it is&#xA;expected to be available.&#xA;&lt;P>&#xA;A Print Service's attribute set includes zero instances or one instance of&#xA;a&#xA;PrinterMessageFromOperator attribute, not more than one instance. A new&#xA;PrinterMessageFromOperator attribute replaces an existing&#xA;PrinterMessageFromOperator attribute, if any. In other words,&#xA;PrinterMessageFromOperator is not intended to be a history log.&#xA;If it wishes, the client can detect changes to a Print Service's&#xA;PrinterMessageFromOperator&#xA;attribute and maintain the client's own history log of the&#xA;PrinterMessageFromOperator attribute values.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_303666_9409"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_450106_16363" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_873187_16362" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_303666_9409" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_209378_9393" name="PagesPerMinute" clientDependency="_10_5_622020d_1132928323291_321595_16345" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_527712_10201" body="Class PagesPerMinute is an integer valued printing attribute that indicates&#xA;the nominal number of pages per minute to the nearest whole number which may&#xA;be generated by this printer (e.g., simplex, black-and-white). This attribute&#xA;is informative, not a service guarantee. Generally, it is the value used in&#xA;the marketing literature to describe the device. A value of 0 indicates a&#xA;device that takes more than two minutes to process a page.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_209378_9393"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_807356_16346" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_321595_16345" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_209378_9393" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_825478_9365" name="Media" clientDependency="_10_5_622020d_1132928323281_756422_16308 _10_5_622020d_1132928323281_445617_16310 _10_5_622020d_1132928323281_346449_16309" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_768679_10168" body="Class Media is a printing attribute class that specifies the&#xA;medium on which to print.&#xA;&lt;p>&#xA;Media may be specified in different ways.&#xA;&lt;ul>&#xA;&lt;li> it may be specified by paper source - eg paper tray&#xA;&lt;li> it may be specified by a standard size - eg &quot;A4&quot;&#xA;&lt;li> it may be specified by a name - eg &quot;letterhead&quot;&#xA;&lt;/ul>&#xA;Each of these corresponds to the IPP &quot;media&quot; attribute.&#xA;The current API does not support describing media by characteristics&#xA;(eg colour, opacity).&#xA;This may be supported in a later revision of the specification.&#xA;&lt;p>&#xA;A Media object is constructed with a value which represents&#xA;one of the ways in which the Media attribute can be specified.&#xA;&lt;p>&#xA;&lt;B>IPP Compatibility:&lt;/B>  The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author Phil Race&#xA;" annotatedElement="_9_5_f720368_1110473546721_825478_9365"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_356494_16311" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_756422_16308" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_825478_9365" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_346449_16309" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_825478_9365" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_445617_16310" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_825478_9365" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_72610_9371" name="MediaSize" clientDependency="_10_5_622020d_1132928323281_891424_16317">
                <ownedComment xmi:id="_10_5_622020d_1132928315680_312322_10179" body="Class MediaSize is a two-dimensional size valued printing attribute class&#xA;that indicates the dimensions of the medium in a portrait orientation, with&#xA;the X dimension running along the bottom edge and the Y dimension running&#xA;along the left edge. Thus, the Y dimension must be greater than or equal to&#xA;the X dimension. Class MediaSize declares many standard media size&#xA;values, organized into nested classes for ISO, JIS, North American,&#xA;engineering, and other media.&#xA;&lt;P>&#xA;MediaSize is not yet used to specify media. Its current role is&#xA;as a mapping for named media (see {@link MediaSizeName MediaSizeName}).&#xA;Clients can use the mapping method&#xA;&lt;code>MediaSize.getMediaSizeForName(MediaSizeName)&lt;/code>&#xA;to find the physical dimensions of the MediaSizeName instances&#xA;enumerated in this API. This is useful for clients which need this&#xA;information to format &amp; paginate printing.&#xA;&lt;P>&#xA;&#xA;@author  Phil Race, Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_72610_9371"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_669202_16318" isSubstitutable="true" general="_9_5_f720368_1110473546737_447785_9483"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_891424_16317" name="" supplier="_9_5_f720368_1110473546737_324874_9441" client="_9_5_f720368_1110473546721_72610_9371" contract="_9_5_f720368_1110473546737_324874_9441"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_467430_20227" name="ISO" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928315680_165601_10173" body="Class MediaSize.ISO includes {@link MediaSize MediaSize} values for ISO&#xA;media.&#xA;&lt;P>&#xA;" annotatedElement="_9_5_f720368_1110473548003_467430_20227"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_818454_20230" name="JIS" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928315680_816157_10174" body="Class MediaSize.JIS includes {@link MediaSize MediaSize} values for JIS&#xA;(Japanese) media.&#xA;" annotatedElement="_9_5_f720368_1110473548003_818454_20230"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_113414_20233" name="NA" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928315680_300056_10175" body="Class MediaSize.NA includes {@link MediaSize MediaSize} values for North&#xA;American media.&#xA;" annotatedElement="_9_5_f720368_1110473548003_113414_20233"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_581875_20236" name="Engineering" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928315680_352928_10176" body="Class MediaSize.Engineering includes {@link MediaSize MediaSize} values&#xA;for engineering media.&#xA;" annotatedElement="_9_5_f720368_1110473548003_581875_20236"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_895998_20239" name="Other" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928315680_79607_10177" body="Class MediaSize.Other includes {@link MediaSize MediaSize} values for&#xA;miscellaneous media.&#xA;" annotatedElement="_9_5_f720368_1110473548003_895998_20239"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_502292_9303" name="Chromaticity" clientDependency="_10_5_622020d_1132928323181_101382_16230 _10_5_622020d_1132928323181_767878_16229 _10_5_622020d_1132928323181_380043_16231" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315610_573979_10106" body="Class Chromaticity is a printing attribute class, an enumeration, that&#xA;specifies monochrome or color printing. This is used by a print client&#xA;to specify how the print data should be generated or processed. It is not&#xA;descriptive of the color capabilities of the device. Query the service's&#xA;{@link ColorSupported ColorSupported} attribute to determine if the device&#xA;can be verified to support color printing.&#xA;&lt;P>&#xA;The table below shows the effects of specifying a Chromaticity attribute of&#xA;{@link #MONOCHROME &lt;CODE>MONOCHROME&lt;/CODE>} or {@link #COLOR&#xA;&lt;CODE>COLOR&lt;/CODE>} for a monochrome or color document.&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=2 CELLSPACING=1 SUMMARY=&quot;Shows effects of specifying MONOCHROME or COLOR Chromaticity attributes&quot;>&#xA;&lt;TR BGCOLOR=&quot;#E5E5E5&quot;>&#xA;&lt;TH>&#xA;Chromaticity&lt;BR>Attribute&#xA;&lt;/TH>&#xA;&lt;TH>&#xA;Effect on&lt;BR>Monochrome Document&#xA;&lt;/TH>&#xA;&lt;TH>&#xA;Effect on&lt;BR>Color Document&#xA;&lt;/TH>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&#xA;{@link #MONOCHROME &lt;CODE>MONOCHROME&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;Printed as is, in monochrome&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;Printed in monochrome, with colors converted to shades of gray&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&#xA;{@link #COLOR &lt;CODE>COLOR&lt;/CODE>}&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;Printed as is, in monochrome&#xA;&lt;/TD>&#xA;&lt;TD>&#xA;Printed as is, in color&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> Chromaticity is not an IPP attribute at present.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_502292_9303"/>
                <generalization xmi:id="_10_5_622020d_1132928323181_897259_16232" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323181_767878_16229" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_502292_9303" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323181_101382_16230" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_502292_9303" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323181_380043_16231" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_502292_9303" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_217844_9319" name="Destination" clientDependency="_10_5_622020d_1132928323261_399358_16248 _10_5_622020d_1132928323261_362087_16249" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_209029_10122" body="Class Destination is a printing attribute class, a URI, that is used to&#xA;indicate an alternate destination for the spooled printer formatted&#xA;data. Many PrintServices will not support the notion of a destination&#xA;other than the printer device, and so will not support this attribute.&#xA;&lt;p>&#xA;A common use for this attribute will be applications which want&#xA;to redirect output to a local disk file : eg.&quot;file:out.prn&quot;.&#xA;Note that proper construction of &quot;file:&quot; scheme URI instances should&#xA;be performed using the &lt;code>toURI()&lt;/code> method of class&#xA;{@link java.io.File File}.&#xA;See the documentation on that class for more information.&#xA;&lt;p>&#xA;If a destination URI is specified in a PrintRequest and it is not&#xA;accessible for output by the PrintService, a PrintException will be thrown.&#xA;The PrintException may implement URIException to provide a more specific&#xA;cause.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> Destination is not an IPP attribute.&#xA;&lt;P>&#xA;&#xA;@author  Phil Race.&#xA;" annotatedElement="_9_5_f720368_1110473546721_217844_9319"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_285636_16250" isSubstitutable="true" general="_9_5_f720368_1110473546737_141647_9491"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_399358_16248" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_217844_9319" contract="_9_5_f720368_1110473546737_356648_9467"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_362087_16249" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_217844_9319" contract="_9_5_f720368_1110473546737_975548_9471"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_73631_9419" name="PrinterState" clientDependency="_10_5_622020d_1132928323301_241373_16374" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_112130_10227" body="Class PrinterState is a printing attribute class, an enumeration, that&#xA;identifies the current state of a printer. Class PrinterState defines&#xA;standard printer state values. A Print Service implementation only needs&#xA;to report those printer states which are appropriate for the particular&#xA;implementation; it does not have to report every defined printer state. The&#xA;{@link PrinterStateReasons PrinterStateReasons} attribute augments the&#xA;PrinterState attribute to give more detailed information about the printer&#xA;in  given printer state.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_73631_9419"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_236438_16375" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_241373_16374" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_73631_9419" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_936754_9417" name="PrinterResolution" clientDependency="_10_5_622020d_1132928323301_76666_16370 _10_5_622020d_1132928323301_854461_16372 _10_5_622020d_1132928323301_66795_16371" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_787289_10225" body="Class PrinterResolution is a printing attribute class that specifies an&#xA;exact resolution supported by a printer or to be used for a print job.&#xA;This attribute assumes that printers have a small set of device resolutions&#xA;at which they can operate rather than a continuum.&#xA;&lt;p>&#xA;PrinterResolution is used in multiple ways:&#xA;&lt;OL TYPE=1>&#xA;&lt;LI>&#xA;When a client searches looking for a printer that supports the client's&#xA;desired resolution exactly (no more, no less), the client specifies&#xA;an instance of class PrinterResolution indicating the exact resolution the&#xA;client wants. Only printers supporting that exact resolution will match the&#xA;search.&#xA;&lt;P>&#xA;&lt;LI>&#xA;When a client needs to print a job using the client's desired resolution&#xA;exactly (no more, no less), the client specifies an instance of class&#xA;PrinterResolution as an attribute of the Print Job. This will fail if the&#xA;Print Job doesn't support that exact resolution, and Fidelity is set to&#xA;true.&#xA;&lt;/OL>&#xA;If a client wants to locate a printer supporting a resolution&#xA;greater than some required minimum, then it may be necessary to exclude&#xA;this attribute from a lookup request and to directly query the set of&#xA;supported resolutions, and specify the one that most closely meets&#xA;the client's requirements.&#xA;In some cases this may be more simply achieved by specifying a&#xA;PrintQuality attribute which often controls resolution.&#xA;&lt;P>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The information needed to construct an IPP&#xA;&lt;CODE>&quot;printer-resolution&quot;&lt;/CODE> attribute can be obtained by calling&#xA;methods on the PrinterResolution object. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_936754_9417"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_525966_16373" isSubstitutable="true" general="_9_5_f720368_1110473546737_642630_9479"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_76666_16370" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_936754_9417" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_66795_16371" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_936754_9417" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_854461_16372" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_936754_9417" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_779665_9423" name="PrinterStateReasons" clientDependency="_10_5_622020d_1132928323301_397540_16378" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_725436_10231" body="Class PrinterStateReasons is a printing attribute class, a set of&#xA;enumeration values, that provides additional information about the&#xA;printer's current state, i.e., information that augments the value of the&#xA;printer's {@link PrinterState PrinterState} attribute.&#xA;&lt;P>&#xA;Instances of {@link PrinterStateReason PrinterStateReason} do not appear in&#xA;a Print Service's attribute set directly. Rather, a PrinterStateReasons&#xA;attribute appears in the Print Service's attribute set. The&#xA;PrinterStateReasons attribute contains zero, one, or more than one {@link&#xA;PrinterStateReason PrinterStateReason} objects which pertain to the Print&#xA;Service's status, and each {@link PrinterStateReason PrinterStateReason}&#xA;object is associated with a {@link Severity Severity} level of REPORT&#xA;(least severe), WARNING, or ERROR (most severe). The printer adds a {@link&#xA;PrinterStateReason PrinterStateReason} object to the Print Service's&#xA;PrinterStateReasons attribute when the corresponding condition becomes true&#xA;of the printer, and the printer removes the {@link PrinterStateReason&#xA;PrinterStateReason} object again when the corresponding condition becomes&#xA;false, regardless of whether the Print Service's overall&#xA;{@link PrinterState PrinterState} also changed.&#xA;&lt;P>&#xA;Class PrinterStateReasons inherits its implementation from class {@link&#xA;java.util.HashMap java.util.HashMap}. Each entry in the map consists of a&#xA;{@link PrinterStateReason PrinterStateReason} object (key) mapping to a&#xA;{@link Severity Severity} object (value):&#xA;&lt;P>&#xA;Unlike most printing attributes which are immutable once constructed, class&#xA;PrinterStateReasons is designed to be mutable; you can add {@link&#xA;PrinterStateReason PrinterStateReason} objects to an existing&#xA;PrinterStateReasons object and remove them again. However, like class&#xA;{@link java.util.HashMap java.util.HashMap}, class PrinterStateReasons is&#xA;bot multiple thread safe. If a PrinterStateReasons object will be used by&#xA;multiple threads, be sure to synchronize its operations (e.g., using a&#xA;synchronized map view obtained from class {@link java.util.Collections&#xA;java.util.Collections}).&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string values returned by each individual&#xA;{@link PrinterStateReason PrinterStateReason} object's and the associated&#xA;{@link Severity Severity} object's &lt;CODE>toString()&lt;/CODE> methods,&#xA;concatenated&#xA;together with a hyphen (&lt;CODE>&quot;-&quot;&lt;/CODE>) in between, gives the IPP keyword&#xA;value. The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_779665_9423"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_803727_16383" isSubstitutable="true" general="_10_5_622020d_1132928323301_691605_16379"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_397540_16378" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_779665_9423" contract="_9_5_f720368_1110473546737_783407_9475"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_981379_20268" name="PrinterStateReasonSet" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323301_88841_16387" isSubstitutable="true" general="_10_5_622020d_1132928323301_426146_16384"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548003_620852_20269" name="PrinterStateReasonSetIterator" visibility="private" clientDependency="_10_5_622020d_1132928323301_742600_16388">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323301_742600_16388" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_9_5_f720368_1110473548003_620852_20269" contract="_9_5_f720368_1110473546706_414385_8877"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_332599_9385" name="NumberUpSupported" clientDependency="_10_5_622020d_1132928323291_352028_16333" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315720_103802_10193" body="Class NumberUpSupported is a printing attribute class, a set of integers,&#xA;that gives the supported values for a {@link NumberUp NumberUp} attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The NumberUpSupported attribute's canonical array&#xA;form gives the lower and upper bound for each range of number-up to be&#xA;included in an IPP &quot;number-up-supported&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_332599_9385"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_567890_16334" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_352028_16333" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_332599_9385" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_945560_9425" name="PrinterURI" clientDependency="_10_5_622020d_1132928323301_316129_16389" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_130942_10233" body="Class PrinterURI is a printing attribute class, a URI, that specifies the&#xA;globally unique name of a printer.  If it has such a name, an administrator&#xA;determines a printer's URI and sets this attribute to that name.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>  This implements the&#xA;IPP printer-uri attribute. The string form returned by&#xA;&lt;CODE>toString()&lt;/CODE>  gives the IPP printer-uri value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE>&#xA;gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Robert Herriot&#xA;" annotatedElement="_9_5_f720368_1110473546721_945560_9425"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_58165_16390" isSubstitutable="true" general="_9_5_f720368_1110473546737_141647_9491"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_316129_16389" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_945560_9425" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_261271_9315" name="DateTimeAtCreation" clientDependency="_10_5_622020d_1132928323261_62253_16244" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_872872_10118" body="Class DateTimeAtCreation is a printing attribute class, a date-time&#xA;attribute, that indicates the date and time at which the Print Job was&#xA;created.&#xA;&lt;P>&#xA;To construct a DateTimeAtCreation attribute from separate values of the year,&#xA;month, day, hour, minute, and so on, use a {@link java.util.Calendar&#xA;Calendar} object to construct a {@link java.util.Date Date} object, then use&#xA;the {@link java.util.Date Date} object to construct the DateTimeAtCreation&#xA;attribute. To convert a DateTimeAtCreation attribute to separate values of&#xA;the year, month, day, hour, minute, and so on, create a {@link&#xA;java.util.Calendar Calendar} object and set it to the {@link java.util.Date&#xA;Date} from the DateTimeAtCreation attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The information needed to construct an IPP&#xA;&quot;date-time-at-creation&quot; attribute can be obtained as described above. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_261271_9315"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_32151_16245" isSubstitutable="true" general="_9_5_f720368_1110473546737_558995_9447"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_62253_16244" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_261271_9315" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_951303_9351" name="JobOriginatingUserName" clientDependency="_10_5_622020d_1132928323281_826179_16289" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_871466_10154" body="Class JobOriginatingUserName is a printing attribute class, a text&#xA;attribute, that contains the name of the end user that submitted the&#xA;print job. If possible, the printer sets this attribute to the most&#xA;authenticated printable user name that it can obtain from the&#xA;authentication service that authenticated the submitted Print Request.&#xA;If such is not available, the printer uses the value of the&#xA;{@link RequestingUserName RequestingUserName}&#xA;attribute supplied by the client in the Print Request's attribute set.&#xA;If no authentication service is available, and the client did not supply&#xA;a {@link RequestingUserName RequestingUserName} attribute,&#xA;the printer sets the JobOriginatingUserName attribute to an empty&#xA;(zero-length) string.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_951303_9351"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_879650_16290" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_826179_16289" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_951303_9351" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_4957_9401" name="PrinterInfo" clientDependency="_10_5_622020d_1132928323291_913005_16354" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_937106_10209" body="Class PrinterInfo is a printing attribute class, a text attribute, that&#xA;provides descriptive information about a printer. This could include things&#xA;like: &lt;CODE>&quot;This printer can be used for printing color transparencies for&#xA;HR presentations&quot;&lt;/CODE>, or &lt;CODE>&quot;Out of courtesy for others, please&#xA;print only small (1-5 page) jobs at this printer&quot;&lt;/CODE>, or even \&#xA;&lt;CODE>&quot;This printer is going away on July 1, 1997, please find a new&#xA;printer&quot;&lt;/CODE>.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_4957_9401"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_268594_16355" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_913005_16354" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_4957_9401" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_710555_9413" name="PrinterMoreInfoManufacturer" clientDependency="_10_5_622020d_1132928323301_367925_16366" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_935576_10221" body="Class PrinterMoreInfoManufacturer is a printing attribute class, a URI,&#xA;that is used to obtain more information about this type of device.&#xA;The information obtained from this URI is intended for end user&#xA;consumption. Features outside the scope of the Print Service API&#xA;can be accessed from this URI (e.g.,&#xA;latest firmware, upgrades, service proxies, optional features available,&#xA;details on color support). The information is intended to be germane to&#xA;this kind of printer without regard to site specific modifications or&#xA;services.&#xA;&lt;P&#xA;In contrast, the {@link PrinterMoreInfo PrinterMoreInfo} attribute is used&#xA;to find out more information about this specific printer rather than this&#xA;general kind of printer.&#xA;&lt;P>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string form returned by&#xA;&lt;CODE>toString()&lt;/CODE> gives the IPP uri value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE>&#xA;gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_710555_9413"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_407646_16367" isSubstitutable="true" general="_9_5_f720368_1110473546737_141647_9491"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_367925_16366" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_710555_9413" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_570396_9399" name="PresentationDirection" clientDependency="_10_5_622020d_1132928323291_483016_16352 _10_5_622020d_1132928323291_117677_16351" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_811407_10207" body="Class PresentationDirection is a printing attribute class, an enumeration,&#xA;that is used in conjunction with the {@link  NumberUp NumberUp} attribute to&#xA;indicate the layout of multiple print-stream pages to impose upon a&#xA;single side of an instance of a selected medium.&#xA;This is useful to mirror the text layout conventions of different scripts.&#xA;For example, English is &quot;toright-tobottom&quot;, Hebrew is &quot;toleft-tobottom&quot;&#xA;and Japanese is usually &quot;tobottom-toleft&quot;.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>  This attribute is not an IPP 1.1&#xA;attribute; it is an attribute in the Production Printing Extension&#xA;(&lt;a href=&quot;ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.3.pdf&quot;>PDF&lt;/a>)&#xA;of IPP 1.1.  The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Phil Race.&#xA;" annotatedElement="_9_5_f720368_1110473546721_570396_9399"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_957862_16353" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_117677_16351" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_570396_9399" contract="_9_5_f720368_1110473546737_356648_9467"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_483016_16352" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_570396_9399" contract="_9_5_f720368_1110473546737_975548_9471"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_230954_9327" name="JobHoldUntil" clientDependency="_10_5_622020d_1132928323261_696836_16260 _10_5_622020d_1132928323261_275492_16261" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315630_55125_10130" body="Class JobHoldUntil is a printing attribute class, a date-time attribute, that&#xA;specifies the exact date and time at which the job must become a candidate&#xA;for printing.&#xA;&lt;P>&#xA;If the value of this attribute specifies a date-time that is in the future,&#xA;the printer should add the {@link JobStateReason JobStateReason} value of&#xA;JOB_HOLD_UNTIL_SPECIFIED to the job's {@link JobStateReasons JobStateReasons}&#xA;attribute, must move the job to the PENDING_HELD state, and must not schedule&#xA;the job for printing until the specified date-time arrives.&#xA;&lt;P>&#xA;When the specified date-time arrives, the printer must remove the {@link&#xA;JobStateReason JobStateReason} value of JOB_HOLD_UNTIL_SPECIFIED from the&#xA;job's {@link JobStateReasons JobStateReasons} attribute, if present. If there&#xA;are no other job state reasons that keep the job in the PENDING_HELD state,&#xA;the printer must consider the job as a candidate for processing by moving the&#xA;job to the PENDING state.&#xA;&lt;P>&#xA;If the specified date-time has already passed, the job must be a candidate&#xA;for processing immediately. Thus, one way to make the job immediately become&#xA;a candidate for processing is to specify a JobHoldUntil attribute constructed&#xA;like this (denoting a date-time of January 1, 1970, 00:00:00 GMT):&#xA;&lt;PRE>&#xA;JobHoldUntil immediately = new JobHoldUntil (new Date (0L));&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;If the client does not supply this attribute in a Print Request and the&#xA;printer supports this attribute, the printer must use its&#xA;(implementation-dependent) default JobHoldUntil value at job submission time&#xA;(unlike most job template attributes that are used if necessary at job&#xA;processing time).&#xA;&lt;P>&#xA;To construct a JobHoldUntil attribute from separate values of the year,&#xA;month, day, hour, minute, and so on, use a {@link java.util.Calendar&#xA;Calendar} object to construct a {@link java.util.Date Date} object, then use&#xA;the {@link java.util.Date Date} object to construct the JobHoldUntil&#xA;attribute. To convert a JobHoldUntil attribute to separate values of the&#xA;year, month, day, hour, minute, and so on, create a {@link java.util.Calendar&#xA;Calendar} object and set it to the {@link java.util.Date Date} from the&#xA;JobHoldUntil attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> Although IPP supports a &quot;job-hold-until&quot; attribute&#xA;specified as a keyword, IPP does not at this time support a &quot;job-hold-until&quot;&#xA;attribute specified as a date and time. However, the date and time can be&#xA;converted to one of the standard IPP keywords with some loss of precision;&#xA;for example, a JobHoldUntil value with today's date and 9:00pm local time&#xA;might be converted to the standard IPP keyword &quot;night&quot;. The category name&#xA;returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_230954_9327"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_442133_16262" isSubstitutable="true" general="_9_5_f720368_1110473546737_558995_9447"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_696836_16260" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_230954_9327" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_275492_16261" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_230954_9327" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928323301_691605_16379" name="HashMap&lt;PrinterStateReason, Severity>">
                <templateBinding xmi:id="_10_5_622020d_1132928323301_913883_16380" signature="_10_5_622020d_1132928313206_982769_7254">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928323301_834584_16381" formal="_10_5_622020d_1132928313206_544830_7255" actual="_9_5_f720368_1110473546721_887314_9421"/>
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928323301_390865_16382" formal="_10_5_622020d_1132928313206_88358_7257" actual="_9_5_f720368_1110473546737_313212_9435"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_829448_9427" name="PrintQuality" clientDependency="_10_5_622020d_1132928323301_941799_16392 _10_5_622020d_1132928323301_778525_16391 _10_5_622020d_1132928323301_994093_16393">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_653927_10235" body="Class PrintQuality is a printing attribute class, an enumeration,&#xA;that specifies the print quality that the printer uses for the job.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_829448_9427"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_732260_16394" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_778525_16391" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_829448_9427" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_941799_16392" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_829448_9427" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323301_994093_16393" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_829448_9427" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_634966_9411" name="PrinterMoreInfo" clientDependency="_10_5_622020d_1132928323291_31455_16364" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315740_228334_10219" body="Class PrinterMoreInfo is a printing attribute class, a URI, that is used to&#xA;obtain more information about this specific printer. For example, this&#xA;could be an HTTP type URI referencing an HTML page accessible to a web&#xA;browser. The information obtained from this URI is intended for end user&#xA;consumption. Features outside the scope of the Print Service API can be&#xA;accessed from this URI.&#xA;The information is intended to be specific to this printer instance and&#xA;site specific services (e.g. job pricing, services offered, end user&#xA;assistance).&#xA;&lt;P>&#xA;In contrast, the {@link PrinterMoreInfoManufacturer&#xA;PrinterMoreInfoManufacturer} attribute is used to find out more information&#xA;about this general kind of printer rather than this specific printer.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string form returned by&#xA;&lt;CODE>toString()&lt;/CODE>  gives the IPP uri value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE>&#xA;gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_634966_9411"/>
                <generalization xmi:id="_10_5_622020d_1132928323301_41918_16365" isSubstitutable="true" general="_9_5_f720368_1110473546737_141647_9491"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_31455_16364" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_634966_9411" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_781267_9397" name="PDLOverrideSupported" clientDependency="_10_5_622020d_1132928323291_478096_16349">
                <ownedComment xmi:id="_10_5_622020d_1132928315730_464695_10205" body="Class PDLOverrideSupported is a printing attribute class, an enumeration,&#xA;that expresses the printer's ability to attempt to override processing&#xA;instructions embedded in documents' print data with processing instructions&#xA;specified as attributes outside the print data.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_781267_9397"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_882146_16350" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_478096_16349" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_781267_9397" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_856107_9363" name="JobStateReasons" clientDependency="_10_5_622020d_1132928323281_567736_16303" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_685788_10166" body="Class JobStateReasons is a printing attribute class, a set of enumeration&#xA;values, that provides additional information about the job's current state,&#xA;i.e., information that augments the value of the job's {@link JobState&#xA;JobState} attribute.&#xA;&lt;P>&#xA;Instances of {@link JobStateReason JobStateReason} do not appear in a Print&#xA;Job's attribute set directly. Rather, a JobStateReasons attribute appears in&#xA;the Print Job's attribute set. The JobStateReasons attribute contains zero,&#xA;one, or more than one {@link JobStateReason JobStateReason} objects which&#xA;pertain to the Print Job's status. The printer adds a {@link JobStateReason&#xA;JobStateReason} object to the Print Job's JobStateReasons attribute when the&#xA;corresponding condition becomes true of the Print Job, and the printer&#xA;removes the {@link JobStateReason JobStateReason} object again when the&#xA;corresponding condition becomes false, regardless of whether the Print Job's&#xA;overall {@link JobState JobState} also changed.&#xA;&lt;P>&#xA;Class JobStateReasons inherits its implementation from class {@link&#xA;java.util.HashSet java.util.HashSet}. Unlike most printing attributes which&#xA;are immutable once constructed, class JobStateReasons is designed to be&#xA;mutable; you can add {@link JobStateReason JobStateReason} objects to an&#xA;existing JobStateReasons object and remove them again. However, like class&#xA;{@link java.util.HashSet java.util.HashSet}, class JobStateReasons is not&#xA;multiple thread safe. If a JobStateReasons object will be used by multiple&#xA;threads, be sure to synchronize its operations (e.g., using a synchronized&#xA;set view obtained from class {@link java.util.Collections&#xA;java.util.Collections}).&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value returned by each individual {@link&#xA;JobStateReason JobStateReason} object's &lt;CODE>toString()&lt;/CODE> method gives&#xA;the IPP keyword value. The category name returned by &lt;CODE>getName()&lt;/CODE>&#xA;gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_856107_9363"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_464154_16307" isSubstitutable="true" general="_10_5_622020d_1132928323281_156069_16304"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_567736_16303" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_856107_9363" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_95108_9383" name="NumberUp" clientDependency="_10_5_622020d_1132928323291_227311_16330 _10_5_622020d_1132928323291_550732_16329 _10_5_622020d_1132928323291_425647_16331" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315720_280921_10191" body="Class NumberUp is an integer valued printing attribute class that specifies&#xA;the number of print-stream pages to impose upon a single side of an&#xA;instance of a selected medium. That is, if the NumberUp value is &lt;I>n,&lt;/I>&#xA;the printer must place &lt;I>n&lt;/I> print-stream pages on a single side of&#xA;an instance of the&#xA;selected medium. To accomplish this, the printer may add some sort of&#xA;translation, scaling, or rotation. This attribute primarily controls the&#xA;translation, scaling and rotation of print-stream pages.&#xA;&lt;P>&#xA;The effect of a NumberUp attribute on a multidoc print job (a job with&#xA;multiple documents) depends on whether all the docs have the same number up&#xA;values specified or whether different docs have different number up values&#xA;specified, and on the (perhaps defaulted) value of the {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} attribute.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;If all the docs have the same number up value &lt;I>n&lt;/I> specified, then any&#xA;value of {@link MultipleDocumentHandling MultipleDocumentHandling} makes&#xA;sense, and the printer's processing depends on the {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} value:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be combined together into one&#xA;output document. Each media impression will consist of &lt;I>n&lt;/I>m&#xA;print-stream pages from the output document.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be combined together&#xA;into one output document. Each media impression will consist of &lt;I>n&lt;/I>&#xA;print-stream pages from the output document. However, the first impression of&#xA;each input doc will always start on a new media sheet; this means the last&#xA;impression of an input doc may have fewer than &lt;I>n&lt;/I> print-stream pages&#xA;on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- The input docs will remain separate.&#xA;Each media impression will consist of &lt;I>n&lt;/I> print-stream pages from the&#xA;input doc. Since the input docs are separate, the first impression of each&#xA;input doc will always start on a new media sheet; this means the last&#xA;impression of an input doc may have fewer than &lt;I>n&lt;/I> print-stream pages on&#xA;it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- The input docs will remain separate.&#xA;Each media impression will consist of &lt;I>n&lt;/I> print-stream pages from the&#xA;input doc. Since the input docs are separate, the first impression of each&#xA;input doc will always start on a new media sheet; this means the last&#xA;impression of an input doc may have fewer than &lt;I>n&lt;/I> print-stream pages&#xA;on it.&#xA;&lt;/UL>&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT -- All the input docs will be combined together into one&#xA;output document. Each media impression will consist of &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I>&#xA;print-stream pages from the output document, where &lt;I>i&lt;/I> is the number of&#xA;the input doc corresponding to that point in the output document. When the&#xA;next input doc has a different number up value from the previous input doc,&#xA;the first print-stream page of the next input doc goes at the start of the&#xA;next media impression, possibly leaving fewer than the full number of&#xA;print-stream pages on the previous media impression.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SINGLE_DOCUMENT_NEW_SHEET -- All the input docs will be combined together&#xA;into one output document. Each media impression will consist of &lt;I>n&lt;/I>&#xA;print-stream pages from the output document. However, the first impression of&#xA;each input doc will always start on a new media sheet; this means the last&#xA;impression of an input doc may have fewer than &lt;I>n&lt;/I> print-stream pages&#xA;on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- The input docs will remain separate.&#xA;For input doc &lt;I>i,&lt;/I> each media impression will consist of&#xA;&lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I> print-stream pages from the input doc. Since the input&#xA;docs are separate, the first impression of each input doc will always start&#xA;on a new media sheet; this means the last impression of an input doc may have&#xA;fewer than &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I> print-stream pages on it.&#xA;&lt;P>&#xA;&lt;LI>&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES -- The input docs will remain separate.&#xA;For input doc &lt;I>i,&lt;/I> each media impression will consist of&#xA;&lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I> print-stream pages from the input doc. Since the input&#xA;docs are separate, the first impression of each input doc will always start&#xA;on a new media sheet; this means the last impression of an input doc may&#xA;have fewer than &lt;I>n&lt;SUB>i&lt;/SUB>&lt;/I> print-stream pages on it.&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_95108_9383"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_439370_16332" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_550732_16329" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_95108_9383" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_227311_16330" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_95108_9383" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_425647_16331" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_95108_9383" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_691593_9335" name="JobKOctets" clientDependency="_10_5_622020d_1132928323271_947003_16270 _10_5_622020d_1132928323271_22718_16271" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_825705_10138" body="Class JobKOctets is an integer valued printing attribute class that specifies&#xA;the total size of the document(s) in K octets, i.e., in units of 1024 octets&#xA;requested to be processed in the job. The value must be rounded up, so that a&#xA;job between 1 and 1024 octets must be indicated as being 1K octets, 1025 to&#xA;2048 must be 2K octets, etc. For a multidoc print job (a job with multiple&#xA;documents), the JobKOctets value is computed by adding up the individual&#xA;documents' sizes in octets, then rounding up to the next K octets value.&#xA;&lt;P>&#xA;The JobKOctets attribute describes the size of the job. This attribute is not&#xA;intended to be a counter; it is intended to be useful routing and scheduling&#xA;information if known. The printer may try to compute the JobKOctets&#xA;attribute's value if it is not supplied in the Print Request. Even if the&#xA;client does supply a value for the JobKOctets attribute in the Print Request,&#xA;the printer may choose to change the value if the printer is able to compute&#xA;a value which is more accurate than the client supplied value. The printer&#xA;may be able to determine the correct value for the JobKOctets attribute&#xA;either right at job submission time or at any later point in time.&#xA;&lt;P>&#xA;The JobKOctets value must not include the multiplicative factors contributed&#xA;by the number of copies specified by the {@link Copies Copies} attribute,&#xA;independent of whether the device can process multiple copies without making&#xA;multiple passes over the job or document data and independent of whether the&#xA;output is collated or not. Thus the value is independent of the&#xA;implementation and indicates the size of the document(s) measured in K octets&#xA;independent of the number of copies.&#xA;&lt;P>&#xA;The JobKOctets value must also not include the multiplicative factor due to a&#xA;copies instruction embedded in the document data. If the document data&#xA;actually includes replications of the document data, this value will include&#xA;such replication. In other words, this value is always the size of the source&#xA;document data, rather than a measure of the hardcopy output to be produced.&#xA;&lt;P>&#xA;The size of a doc is computed based on the print data representation class as&#xA;specified by the doc's {@link javax.print.DocFlavor DocFlavor}, as&#xA;shown in the table below.&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=2 CELLSPACING=1 SUMMARY=&quot;Table showing computation of doc sizes&quot;>&#xA;&lt;TR BGCOLOR=&quot;#E5E5E5&quot;>&#xA;&lt;TH>Representation Class&lt;/TH>&#xA;&lt;TH>Document Size&lt;/TH>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>byte[]&lt;/TD>&#xA;&lt;TD>Length of the byte array&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.io.InputStream&lt;/TD>&#xA;&lt;TD>Number of bytes read from the stream&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>char[]&lt;/TD>&#xA;&lt;TD>Length of the character array x 2&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.lang.String&lt;/TD>&#xA;&lt;TD>Length of the string x 2&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.io.Reader&lt;/TD>&#xA;&lt;TD>Number of characters read from the stream x 2&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.net.URL&lt;/TD>&#xA;&lt;TD>Number of bytes read from the file at the given URL address&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.awt.image.renderable.RenderableImage&lt;/TD>&#xA;&lt;TD>Implementation dependent&amp;#42;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.awt.print.Printable&lt;/TD>&#xA;&lt;TD>Implementation dependent&amp;#42;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>java.awt.print.Pageable&lt;/TD>&#xA;&lt;TD>Implementation dependent&amp;#42;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;&amp;#42; In these cases the Print Service itself generates the print data sent&#xA;to the printer. If the Print Service supports the JobKOctets attribute, for&#xA;these cases the Print Service itself must calculate the size of the print&#xA;data, replacing any JobKOctets value the client specified.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobKOctetsSupported&#xA;@see JobKOctetsProcessed&#xA;@see JobImpressions&#xA;@see JobMediaSheets&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_691593_9335"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_73355_16272" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_947003_16270" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_691593_9335" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_22718_16271" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_691593_9335" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_82886_9333" name="JobImpressionsSupported" clientDependency="_10_5_622020d_1132928323271_873182_16268" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315630_693220_10136" body="Class JobImpressionsSupported is a printing attribute class, a set of&#xA;integers, that gives the supported values for a {@link JobImpressions&#xA;JobImpressions} attribute. It is restricted to a single contiguous range of&#xA;integers; multiple non-overlapping ranges are not allowed. This gives the&#xA;lower and upper bounds of the total sizes of print jobs in number of&#xA;impressions that the printer will accept.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The JobImpressionsSupported attribute's canonical&#xA;array form gives the lower and upper bound for the range of values to be&#xA;included in an IPP &quot;job-impressions-supported&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_82886_9333"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_427360_16269" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_873182_16268" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_82886_9333" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_766906_9353" name="JobPriority" clientDependency="_10_5_622020d_1132928323281_423048_16292 _10_5_622020d_1132928323281_844698_16291" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_22568_10156" body="Class JobPriority is an integer valued printing attribute class that&#xA;specifies a print job's priority.&#xA;&lt;P>&#xA;If a JobPriority attribute is specified for a Print Job, it specifies a&#xA;priority for scheduling the job. A higher value specifies a higher priority.&#xA;The value 1 indicates the lowest possible priority. The value 100 indicates&#xA;the highest possible priority. Among those jobs that are ready to print, a&#xA;printer must print all jobs with a priority value of &lt;I>n&lt;/I> before printing&#xA;those with a priority value of &lt;I>n&lt;/I>-1 for all &lt;I>n.&lt;/I>&#xA;&lt;P>&#xA;If the client does not specify a JobPriority attribute for a Print Job and&#xA;the printer does support the JobPriority attribute, the printer must use an&#xA;implementation-defined default JobPriority value.&#xA;&lt;P>&#xA;The client can always specify any job priority value from 1 to 100 for a job.&#xA;However, a Print Service instance may support fewer than 100 different&#xA;job priority levels. If this is the case, the Print Service instance&#xA;automatically maps the client-specified job priority value to one of the&#xA;supported job priority levels, dividing the 100 job priority values equally&#xA;among the available job priority levels.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_766906_9353"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_419122_16293" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_844698_16291" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_766906_9353" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_423048_16292" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_766906_9353" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_56942_9305" name="ColorSupported" clientDependency="_10_5_622020d_1132928323181_551396_16233" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315610_810982_10108" body="Class ColorSupported is a printing attribute class, an enumeration, that&#xA;identifies whether the device is capable of any type of color printing at&#xA;all, including highlight color as well as full process color. All document&#xA;instructions having to do with color are embedded within the print data (none&#xA;are attributes attached to the job outside the print data).&#xA;&lt;P>&#xA;Note: End users are able to determine the nature and details of the color&#xA;support by querying the {@link PrinterMoreInfoManufacturer&#xA;PrinterMoreInfoManufacturer} attribute.&#xA;&lt;P>&#xA;Don't confuse the ColorSupported attribute with the {@link Chromaticity&#xA;Chromaticity} attribute. {@link Chromaticity Chromaticity} is an attribute&#xA;the client can specify for a job to tell the printer whether to print a&#xA;document in monochrome or color, possibly causing the printer to print a&#xA;color document in monochrome. ColorSupported is a printer description&#xA;attribute that tells whether the printer can print in color regardless of how&#xA;the client specifies to print any particular document.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The IPP boolean value is &quot;true&quot; for SUPPORTED and&#xA;&quot;false&quot; for NOT_SUPPORTED. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_56942_9305"/>
                <generalization xmi:id="_10_5_622020d_1132928323181_829372_16234" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323181_551396_16233" name="" supplier="_9_5_f720368_1110473546737_783407_9475" client="_9_5_f720368_1110473546721_56942_9305" contract="_9_5_f720368_1110473546737_783407_9475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_599922_9343" name="JobMediaSheetsCompleted" clientDependency="_10_5_622020d_1132928323271_728602_16280" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_63252_10146" body="Class JobMediaSheetsCompleted is an integer valued printing attribute class&#xA;that specifies the number of media sheets which have completed marking and&#xA;stacking for the entire job so far, whether those sheets have been processed&#xA;on one side or on both.&#xA;&lt;P>&#xA;The JobMediaSheetsCompleted attribute describes the progress of the job. This&#xA;attribute is intended to be a counter. That is, the JobMediaSheetsCompleted&#xA;value for a job that has not started processing must be 0. When the job's&#xA;{@link JobState JobState} is PROCESSING or PROCESSING_STOPPED, the&#xA;JobMediaSheetsCompleted value is intended to increase as the job is&#xA;processed; it indicates the amount of the job that has been processed at the&#xA;time the Print Job's attribute set is queried or at the time a print job&#xA;event is reported. When the job enters the COMPLETED, CANCELED, or ABORTED&#xA;states, the JobMediaSheetsCompleted value is the final value for the job.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobMediaSheets&#xA;@see JobMediaSheetsSupported&#xA;@see JobKOctetsProcessed&#xA;@see JobImpressionsCompleted&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_599922_9343"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_890826_16281" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_728602_16280" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_599922_9343" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928323281_156069_16304" name="HashSet&lt;JobStateReason>">
                <templateBinding xmi:id="_10_5_622020d_1132928323281_470580_16305" signature="_10_5_622020d_1132928313216_611494_7269">
                  <parameterSubstitution xmi:id="_10_5_622020d_1132928323281_121036_16306" formal="_10_5_622020d_1132928313216_919072_7270" actual="_9_5_f720368_1110473546721_151389_9361"/>
                </templateBinding>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_278823_9379" name="NumberOfDocuments" clientDependency="_10_5_622020d_1132928323291_404144_16325" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315690_478295_10187" body="Class NumberOfDocuments is an integer valued printing attribute that&#xA;indicates the number of individual docs the printer has accepted for this&#xA;job, regardless of whether the docs' print data has reached the printer or&#xA;not.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_278823_9379"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_247549_16326" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_404144_16325" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_278823_9379" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_152049_9437" name="SheetCollate" clientDependency="_10_5_622020d_1132928323311_733882_16403 _10_5_622020d_1132928323311_48731_16404 _10_5_622020d_1132928323311_149550_16405" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315760_24329_10245" body="Class SheetCollate is a printing attribute class, an enumeration, that&#xA;specifies whether or not the media sheets of each copy of each printed&#xA;document in a job are to be in sequence, when multiple copies of the document&#xA;are specified by the {@link Copies Copies} attribute. When SheetCollate is&#xA;COLLATED, each copy of each document is printed with the print-stream sheets&#xA;in sequence. When SheetCollate is UNCOLLATED, each print-stream sheet is&#xA;printed a number of times equal to the value of the {@link Copies Copies}&#xA;attribute in succession. For example, suppose a document produces two media&#xA;sheets as output, {@link Copies Copies} is 6, and SheetCollate is UNCOLLATED;&#xA;in this case six copies of the first media sheet are printed followed by&#xA;six copies of the second media sheet.&#xA;&lt;P>&#xA;Whether the effect of sheet collation is achieved by placing copies of a&#xA;document in multiple output bins or in the same output bin with&#xA;implementation defined document separation is implementation dependent.&#xA;Also whether it is achieved by making multiple passes over the job or by&#xA;using an output sorter is implementation dependent.&#xA;&lt;P>&#xA;If a printer does not support the SheetCollate attribute (meaning the client&#xA;cannot specify any particular sheet collation), the printer must behave as&#xA;though SheetCollate were always set to COLLATED.&#xA;&lt;P>&#xA;The SheetCollate attribute interacts with the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} attribute. The {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} attribute describes the collation of entire&#xA;documents, and the SheetCollate attribute describes the semantics of&#xA;collating individual pages within a document.&#xA;&lt;P>&#xA;The effect of a SheetCollate attribute on a multidoc print job (a job with&#xA;multiple documents) depends on whether all the docs have the same sheet&#xA;collation specified or whether different docs have different sheet&#xA;collations specified, and on the (perhaps defaulted) value of the {@link&#xA;MultipleDocumentHandling MultipleDocumentHandling} attribute.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;If all the docs have the same sheet collation specified, then the following&#xA;combinations of SheetCollate and {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} are permitted, and the printer reports an error&#xA;when the job is submitted if any other combination is specified:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;SheetCollate = COLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SINGLE_DOCUMENT -- All the input docs will be&#xA;combined into one output document. Multiple copies of the output document&#xA;will be produced with pages in collated order, i.e. pages 1, 2, 3, . . .,&#xA;1, 2, 3, . . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = COLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SINGLE_DOCUMENT_NEW_SHEET -- All the input docs&#xA;will be combined into one output document, and the first impression of each&#xA;input doc will always start on a new media sheet. Multiple copies of the&#xA;output document will be produced with pages in collated order, i.e. pages&#xA;1, 2, 3, . . ., 1, 2, 3, . . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = COLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- Each&#xA;input doc will remain a separate output document. Multiple copies of each&#xA;output document (call them A, B, . . .) will be produced with each document's&#xA;pages in collated order, but the documents themselves in uncollated order,&#xA;i.e. pages A1, A2, A3, . . ., A1, A2, A3, . . ., B1, B2, B3, . . ., B1, B2,&#xA;B3, . . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = COLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SEPARATE_DOCUMENTS_COLLATED_COPIES -- Each input&#xA;doc will remain a separate output document. Multiple copies of each output&#xA;document (call them A, B, . . .) will be produced with each document's pages&#xA;in collated order, with the documents themselves also in collated order, i.e.&#xA;pages A1, A2, A3, . . ., B1, B2, B3, . . ., A1, A2, A3, . . ., B1, B2, B3,&#xA;. . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = UNCOLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SINGLE_DOCUMENT -- All the input docs will be&#xA;combined into one output document. Multiple copies of the output document&#xA;will be produced with pages in uncollated order, i.e. pages 1, 1, . . .,&#xA;2, 2, . . ., 3, 3, . . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = UNCOLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SINGLE_DOCUMENT_NEW_SHEET -- All the input docs&#xA;will be combined into one output document, and the first impression of each&#xA;input doc will always start on a new media sheet. Multiple copies of the&#xA;output document will be produced with pages in uncollated order, i.e. pages&#xA;1, 1, . . ., 2, 2, . . ., 3, 3, . . .&#xA;&lt;P>&#xA;&lt;LI>&#xA;SheetCollate = UNCOLLATED, {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} = SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- Each&#xA;input doc will remain a separate output document. Multiple copies of each&#xA;output document (call them A, B, . . .) will be produced with each document's&#xA;pages in uncollated order, with the documents themselves also in uncollated&#xA;order, i.e. pages A1, A1, . . ., A2, A2, . . ., A3, A3, . . ., B1, B1, . . .,&#xA;B2, B2, . . ., B3, B3, . . .&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;LI>&#xA;If different docs have different sheet collations specified, then only one&#xA;value of {@link MultipleDocumentHandling MultipleDocumentHandling} is&#xA;permitted, and the printer reports an error when the job is submitted if any&#xA;other value is specified:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;{@link MultipleDocumentHandling MultipleDocumentHandling} =&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES -- Each input doc will remain a separate&#xA;output document. Multiple copies of each output document (call them A, B,&#xA;. . .) will be produced with each document's pages in collated or uncollated&#xA;order as the corresponding input doc's SheetCollate attribute specifies, and&#xA;with the documents themselves in uncollated order. If document A had&#xA;SheetCollate = UNCOLLATED and document B had SheetCollate = COLLATED, the&#xA;following pages would be produced: A1, A1, . . ., A2, A2, . . ., A3, A3,&#xA;. . ., B1, B2, B3, . . ., B1, B2, B3, . . .&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> SheetCollate is not an IPP attribute at present.&#xA;&lt;P>&#xA;&#xA;@see  MultipleDocumentHandling&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_152049_9437"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_293879_16406" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_733882_16403" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546737_152049_9437" contract="_9_5_f720368_1110473546737_117081_9449"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_48731_16404" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546737_152049_9437" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_149550_16405" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546737_152049_9437" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_753177_9311" name="CopiesSupported" clientDependency="_10_5_622020d_1132928323261_571183_16240" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_180503_10114" body="Class CopiesSupported is a printing attribute class, a set of integers, that&#xA;gives the supported values for a {@link Copies Copies} attribute. It is&#xA;restricted to a single contiguous range of integers; multiple non-overlapping&#xA;ranges are not allowed.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The CopiesSupported attribute's canonical array&#xA;form gives the lower and upper bound for the range of copies to be included&#xA;in an IPP &quot;copies-supported&quot; attribute. See class {@link&#xA;javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an&#xA;explanation of canonical array form. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_753177_9311"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_749432_16241" isSubstitutable="true" general="_9_5_f720368_1110473546737_447059_9481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_571183_16240" name="" supplier="_9_5_f720368_1110473546737_331690_9485" client="_9_5_f720368_1110473546721_753177_9311" contract="_9_5_f720368_1110473546737_331690_9485"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_5428_9313" name="DateTimeAtCompleted" clientDependency="_10_5_622020d_1132928323261_328246_16242" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315620_958119_10116" body="Class DateTimeAtCompleted is a printing attribute class, a date-time&#xA;attribute, that indicates the date and time at which the Print Job completed&#xA;(or was canceled or aborted).&#xA;&lt;P>&#xA;To construct a DateTimeAtCompleted attribute from separate values of the&#xA;year, month, day, hour, minute, and so on, use a {@link java.util.Calendar&#xA;Calendar} object to construct a {@link java.util.Date Date} object, then use&#xA;the {@link java.util.Date Date} object to construct the DateTimeAtCompleted&#xA;attribute. To convert a DateTimeAtCompleted attribute to separate values of&#xA;the year, month, day, hour, minute, and so on, create a {@link&#xA;java.util.Calendar Calendar} object and set it to the {@link java.util.Date&#xA;Date} from the DateTimeAtCompleted attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The information needed to construct an IPP&#xA;&quot;date-time-at-completed&quot; attribute can be obtained as described above. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_5428_9313"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_300421_16243" isSubstitutable="true" general="_9_5_f720368_1110473546737_558995_9447"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323261_328246_16242" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_5428_9313" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_202757_9381" name="NumberOfInterveningJobs" clientDependency="_10_5_622020d_1132928323291_553632_16327" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315690_674039_10189" body="Class NumberOfInterveningJobs is an integer valued printing attribute that&#xA;indicates the number of jobs that are ahead of this job in the relative&#xA;chronological order of expected time to complete (i.e., the current&#xA;scheduled order).&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value.&#xA;The category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP&#xA;attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_202757_9381"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_444815_16328" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_553632_16327" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_202757_9381" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_582837_9433" name="RequestingUserName" clientDependency="_10_5_622020d_1132928323311_119659_16399" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315750_585082_10241" body="Class RequestingUserName is a printing attribute class, a text attribute,&#xA;that specifies the name of the end user that submitted the print job. A&#xA;requesting user name is an arbitrary string defined by the client. The&#xA;printer does not put the client-specified RequestingUserName attribute into&#xA;the Print Job's attribute set; rather, the printer puts in a {@link&#xA;JobOriginatingUserName JobOriginatingUserName} attribute.&#xA;This means that services which support specifying a username with this&#xA;attribute should also report a JobOriginatingUserName in the job's&#xA;attribute set. Note that many print services may have a way to independently&#xA;authenticate the user name, and so may state support for a&#xA;requesting user name, but in practice will then report the user name&#xA;authenticated by the service rather than that specified via this&#xA;attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The string value gives the IPP name value. The&#xA;locale gives the IPP natural language. The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> gives the IPP attribute name.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_582837_9433"/>
                <generalization xmi:id="_10_5_622020d_1132928323311_916295_16400" isSubstitutable="true" general="_9_5_f720368_1110473546737_123841_9487"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323311_119659_16399" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546737_582837_9433" contract="_9_5_f720368_1110473546737_975548_9471"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_66337_9337" name="JobKOctetsProcessed" clientDependency="_10_5_622020d_1132928323271_866171_16273" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_241670_10140" body="Class JobKOctetsProcessed is an integer valued printing attribute class that&#xA;specifies the total number of print data octets processed so far in K octets,&#xA;i.e., in units of 1024 octets. The value must be rounded up, so that a job&#xA;between 1 and 1024 octets inclusive must be indicated as being 1K octets,&#xA;1025 to 2048 inclusive must be 2K, etc. For a multidoc print job (a job with&#xA;multiple documents), the JobKOctetsProcessed value is computed by adding up&#xA;the individual documents' number of octets processed so far, then rounding up&#xA;to the next K octets value.&#xA;&lt;P>&#xA;The JobKOctetsProcessed attribute describes the progress of the job. This&#xA;attribute is intended to be a counter. That is, the JobKOctetsProcessed value&#xA;for a job that has not started processing must be 0. When the job's {@link&#xA;JobState JobState} is PROCESSING or PROCESSING_STOPPED, the&#xA;JobKOctetsProcessed value is intended to increase as the job is processed; it&#xA;indicates the amount of the job that has been processed at the time the Print&#xA;Job's attribute set is queried or at the time a print job event is reported.&#xA;When the job enters the COMPLETED, CANCELED, or ABORTED states, the&#xA;JobKOctetsProcessed value is the final value for the job.&#xA;&lt;P>&#xA;For implementations where multiple copies are produced by the interpreter&#xA;with only a single pass over the data, the final value of the&#xA;JobKOctetsProcessed attribute must be equal to the value of the {@link&#xA;JobKOctets JobKOctets} attribute. For implementations where multiple copies&#xA;are produced by the interpreter by processing the data for each copy, the&#xA;final value must be a multiple of the value of the {@link JobKOctets&#xA;JobKOctets} attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobKOctets&#xA;@see JobKOctetsSupported&#xA;@see JobImpressionsCompleted&#xA;@see JobMediaSheetsCompleted&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_66337_9337"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_568028_16274" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_866171_16273" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_66337_9337" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_925327_9357" name="JobSheets" clientDependency="_10_5_622020d_1132928323281_17092_16297 _10_5_622020d_1132928323281_691540_16296">
                <ownedComment xmi:id="_10_5_622020d_1132928315670_801162_10160" body="Class JobSheets is a printing attribute class, an enumeration, that&#xA;determines which job start and end sheets, if any, must be printed with a&#xA;job. Class JobSheets declares keywords for standard job sheets values.&#xA;Implementation- or site-defined names for a job sheets attribute may also be&#xA;created by defining a subclass of class JobSheets.&#xA;&lt;P>&#xA;The effect of a JobSheets attribute on multidoc print jobs (jobs with&#xA;multiple documents) may be affected by the {@link MultipleDocumentHandling&#xA;MultipleDocumentHandling} job attribute, depending on the meaning of the&#xA;particular JobSheets value.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B>  The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The&#xA;enumeration's integer value is the IPP enum value.  The&#xA;&lt;code>toString()&lt;/code> method returns the IPP string representation of&#xA;the attribute value. For a subclass, the attribute value must be&#xA;localized to give the IPP name and natural language values.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_925327_9357"/>
                <generalization xmi:id="_10_5_622020d_1132928323281_497759_16298" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_691540_16296" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_925327_9357" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_17092_16297" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_925327_9357" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_152862_9341" name="JobMediaSheets" clientDependency="_10_5_622020d_1132928323271_18725_16278 _10_5_622020d_1132928323271_222036_16277">
                <ownedComment xmi:id="_10_5_622020d_1132928315660_319682_10144" body="Class JobMediaSheets is an integer valued printing attribute class that&#xA;specifies the total number of media sheets to be produced for this job.&#xA;&lt;P>&#xA;The JobMediaSheets attribute describes the size of the job. This attribute is&#xA;not intended to be a counter; it is intended to be useful routing and&#xA;scheduling information if known. The printer may try to compute the&#xA;JobMediaSheets attribute's value if it is not supplied in the Print Request.&#xA;Even if the client does supply a value for the JobMediaSheets attribute in&#xA;the Print Request, the printer may choose to change the value if the printer&#xA;is able to compute a value which is more accurate than the client supplied&#xA;value. The printer may be able to determine the correct value for the&#xA;JobMediaSheets attribute either right at job submission time or at any later&#xA;point in time.&#xA;&lt;P>&#xA;Unlike the {@link JobKOctets JobKOctets} and {@link JobImpressions&#xA;JobImpressions} attributes, the JobMediaSheets value must include the&#xA;multiplicative factors contributed by the number of copies specified by the&#xA;{@link Copies Copies} attribute and a &quot;number of copies&quot; instruction embedded&#xA;in the document data, if any. This difference allows the system administrator&#xA;to control the lower and upper bounds of both (1) the size of the document(s)&#xA;with {@link JobKOctetsSupported JobKOctetsSupported} and {@link&#xA;JobImpressionsSupported JobImpressionsSupported} and (2) the size of the job&#xA;with {@link JobMediaSheetsSupported JobMediaSheetsSupported}.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The integer value gives the IPP integer value. The&#xA;category name returned by &lt;CODE>getName()&lt;/CODE> gives the IPP attribute&#xA;name.&#xA;&lt;P>&#xA;&#xA;@see JobMediaSheetsSupported&#xA;@see JobMediaSheetsCompleted&#xA;@see JobKOctets&#xA;@see JobImpressions&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_152862_9341"/>
                <generalization xmi:id="_10_5_622020d_1132928323271_894038_16279" isSubstitutable="true" general="_9_5_f720368_1110473546737_118217_9465"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_222036_16277" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_152862_9341" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323271_18725_16278" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_152862_9341" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_878747_9307" name="Compression" clientDependency="_10_5_622020d_1132928323191_624202_16235">
                <ownedComment xmi:id="_10_5_622020d_1132928315610_294494_10110" body="Class Compression is a printing attribute class, an enumeration, that&#xA;specifies how print data is compressed. Compression is an attribute of the&#xA;print data (the doc), not of the Print Job. If a Compression attribute is not&#xA;specified for a doc, the printer assumes the doc's print data is uncompressed&#xA;(i.e., the default Compression value is always {@link #NONE&#xA;&lt;CODE>NONE&lt;/CODE>}).&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_878747_9307"/>
                <generalization xmi:id="_10_5_622020d_1132928323261_600191_16236" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323191_624202_16235" name="" supplier="_9_5_f720368_1110473546737_117081_9449" client="_9_5_f720368_1110473546721_878747_9307" contract="_9_5_f720368_1110473546737_117081_9449"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546721_389528_9377" name="MultipleDocumentHandling" clientDependency="_10_5_622020d_1132928323281_181436_16322 _10_5_622020d_1132928323291_914497_16323">
                <ownedComment xmi:id="_10_5_622020d_1132928315690_693375_10185" body="Class MultipleDocumentHandling is a printing attribute class, an enumeration,&#xA;that controls finishing operations and the placement of one or more&#xA;print-stream pages into impressions and onto media sheets. When the value of&#xA;the {@link Copies Copies} attribute exceeds 1, MultipleDocumentHandling also&#xA;controls the order in which the copies that result from processing the&#xA;documents are produced. This attribute is relevant only for a multidoc print&#xA;job consisting of two or more individual docs.&#xA;&lt;P>&#xA;Briefly, MultipleDocumentHandling determines the relationship between the&#xA;multiple input (electronic) documents fed into a multidoc print job and the&#xA;output (physical) document or documents produced by the multidoc print job.&#xA;There are two possibilities:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;The multiple input documents are combined into a single output document.&#xA;Finishing operations ({@link Finishings Finishings}),&#xA;are performed on this single output&#xA;document. The {@link Copies Copies} attribute tells how many copies of this&#xA;single output document to produce. The MultipleDocumentHandling values&#xA;SINGLE_DOCUMENT and SINGLE_DOCUMENT_NEW_SHEET specify two variations of&#xA;this  possibility.&#xA;&lt;P>&#xA;&lt;LI>&#xA;The multiple input documents remain separate output documents. Finishing&#xA;operations ({@link Finishings Finishings}),&#xA;are performed on each output document&#xA;separately. The {@link Copies Copies} attribute tells how many copies of each&#xA;separate output document to produce. The MultipleDocumentHandling values&#xA;SEPARATE_DOCUMENTS_UNCOLLATED_COPIES and SEPARATE_DOCUMENTS_COLLATED_COPIES&#xA;specify two variations of this possibility.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;In the detailed explanations below, if &quot;&lt;CODE>a&lt;/CODE>&quot; represents an&#xA;instance of document data, then the result of processing the data in&#xA;document &quot;&lt;CODE>a&lt;/CODE>&quot; is a sequence of media sheets represented by&#xA;&quot;&lt;CODE>a(*)&lt;/CODE>&quot;.&#xA;&lt;P>&#xA;The standard MultipleDocumentHandling values are:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;&lt;A NAME=&quot;sdfi&quot;>{@link #SINGLE_DOCUMENT&#xA;&lt;B>&lt;CODE>SINGLE_DOCUMENT&lt;/CODE>&lt;/B>}&lt;/A>. If a print job has multiple&#xA;documents -- say, the document data is called &lt;CODE>a&lt;/CODE> and&#xA;&lt;CODE>b&lt;/CODE> -- then the result of processing all the document data&#xA;(&lt;CODE>a&lt;/CODE> and then &lt;CODE>b&lt;/CODE>) must be treated as a single sequence&#xA;of media sheets for finishing operations; that is, finishing would be&#xA;performed on the concatenation of the sequences &lt;CODE>a(*),b(*)&lt;/CODE>. The&#xA;printer must not force the data in each document instance to be formatted&#xA;onto a new print-stream page, nor to start a new impression on a new media&#xA;sheet. If more than one copy is made, the ordering of the sets of media&#xA;sheets resulting from processing the document data must be&#xA;&lt;CODE>a(*),b(*),a(*),b(*),...&lt;/CODE>, and the printer object must force&#xA;each copy (&lt;CODE>a(*),b(*)&lt;/CODE>) to start on a new media sheet.&#xA;&lt;P>&#xA;&lt;LI>&#xA;&lt;A NAME=&quot;sducfi&quot;>{@link #SEPARATE_DOCUMENTS_UNCOLLATED_COPIES&#xA;&lt;B>&lt;CODE>SEPARATE_DOCUMENTS_UNCOLLATED_COPIES&lt;/CODE>&lt;/B>}&lt;/A>. If a print job&#xA;has multiple documents -- say, the document data is called &lt;CODE>a&lt;/CODE> and&#xA;&lt;CODE>b&lt;/CODE> -- then the result of processing the data in each document&#xA;instance must be treated as a single sequence of media sheets for finishing&#xA;operations; that is, the sets &lt;CODE>a(*)&lt;/CODE> and &lt;CODE>b(*)&lt;/CODE> would&#xA;each be finished separately. The printer must force each copy of the result&#xA;of processing the data in a single document to start on a new media sheet.&#xA;If more than one copy is made, the ordering of the sets of media sheets&#xA;resulting from processing the document data must be&#xA;&lt;CODE>a(*),a(*),...,b(*),b(*)...&lt;/CODE>.&#xA;&lt;P>&#xA;&lt;LI>&#xA;&lt;A NAME=&quot;sdccfi&quot;>{@link #SEPARATE_DOCUMENTS_COLLATED_COPIES&#xA;&lt;B>&lt;CODE>SEPARATE_DOCUMENTS_COLLATED_COPIES&lt;/CODE>&lt;/B>}&lt;/A>. If a print job&#xA;has multiple documents -- say, the document data is called &lt;CODE>a&lt;/CODE> and&#xA;&lt;CODE>b&lt;/CODE> -- then the result of processing the data in each document&#xA;instance must be treated as a single sequence of media sheets for finishing&#xA;operations; that is, the sets &lt;CODE>a(*)&lt;/CODE> and &lt;CODE>b(*)&lt;/CODE> would&#xA;each be finished separately. The printer must force each copy of the result&#xA;of processing the data in a single document to start on a new media sheet.&#xA;If more than one copy is made, the ordering of the sets of media sheets&#xA;resulting from processing the document data must be&#xA;&lt;CODE>a(*),b(*),a(*),b(*),...&lt;/CODE>.&#xA;&lt;P>&#xA;&lt;LI>&#xA;&lt;A NAME=&quot;sdnsfi&quot;>{@link #SINGLE_DOCUMENT_NEW_SHEET&#xA;&lt;B>&lt;CODE>SINGLE_DOCUMENT_NEW_SHEET&lt;/CODE>&lt;/B>}&lt;/A>. Same as SINGLE_DOCUMENT,&#xA;except that the printer must ensure that the first impression of each&#xA;document instance in the job is placed on a new media sheet. This value&#xA;allows multiple documents to be stapled together with a single staple where&#xA;each document starts on a new sheet.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;SINGLE_DOCUMENT is the same as SEPARATE_DOCUMENTS_COLLATED_COPIES with&#xA;respect to ordering of print-stream pages, but not media sheet generation,&#xA;since SINGLE_DOCUMENT will put the first page of the next document on the&#xA;back side of a sheet if an odd number of pages have been produced so far&#xA;for the job, while SEPARATE_DOCUMENTS_COLLATED_COPIES always forces the&#xA;next document or document copy on to a new sheet.&#xA;&lt;P>&#xA;In addition, if a {@link Finishings Finishings} attribute of&#xA;{@link Finishings#STAPLE &lt;CODE>STAPLE&lt;/CODE>} is specified, then:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;With SINGLE_DOCUMENT, documents &lt;CODE>a&lt;/CODE> and &lt;CODE>b&lt;/CODE> are&#xA;stapled together as a single document with no regard to new sheets.&#xA;&lt;P>&#xA;&lt;LI>&#xA;With SINGLE_DOCUMENT_NEW_SHEET, documents &lt;CODE>a&lt;/CODE> and &lt;CODE>b&lt;/CODE>&#xA;are stapled together as a single document, but document &lt;CODE>b&lt;/CODE>&#xA;starts on a new sheet.&#xA;&lt;P>&#xA;&lt;LI>&#xA;With SEPARATE_DOCUMENTS_UNCOLLATED_COPIES and&#xA;SEPARATE_DOCUMENTS_COLLATED_COPIES, documents &lt;CODE>a&lt;/CODE> and&#xA;&lt;CODE>b&lt;/CODE> are stapled separately.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;I>Note:&lt;/I> None of these values provide means to produce uncollated&#xA;sheets within a document, i.e., where multiple copies of sheet &lt;I>n&lt;/I>&#xA;are produced before sheet &lt;I>n&lt;/I>+1 of the same document.&#xA;To specify that, see the {@link SheetCollate SheetCollate} attribute.&#xA;&lt;P>&#xA;&lt;B>IPP Compatibility:&lt;/B> The category name returned by&#xA;&lt;CODE>getName()&lt;/CODE> is the IPP attribute name.  The enumeration's&#xA;integer value is the IPP enum value.  The &lt;code>toString()&lt;/code> method&#xA;returns the IPP string representation of the attribute value.&#xA;&lt;P>&#xA;&#xA;@see  Copies&#xA;@see  Finishings&#xA;@see  NumberUp&#xA;@see  PageRanges&#xA;@see  SheetCollate&#xA;@see  Sides&#xA;&#xA;@author  David Mendenhall&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546721_389528_9377"/>
                <generalization xmi:id="_10_5_622020d_1132928323291_197759_16324" isSubstitutable="true" general="_9_5_f720368_1110473546737_604249_9453"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323281_181436_16322" name="" supplier="_9_5_f720368_1110473546737_975548_9471" client="_9_5_f720368_1110473546721_389528_9377" contract="_9_5_f720368_1110473546737_975548_9471"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323291_914497_16323" name="" supplier="_9_5_f720368_1110473546737_356648_9467" client="_9_5_f720368_1110473546721_389528_9377" contract="_9_5_f720368_1110473546737_356648_9467"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_325688_9457" name="HashDocAttributeSet" clientDependency="_10_5_622020d_1132928323321_470119_16448 _10_5_622020d_1132928323321_35645_16449">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_61481_10275" body="Class HashDocAttributeSet provides an attribute set which&#xA;inherits its implementation from class {@link HashAttributeSet&#xA;HashAttributeSet} and enforces the semantic restrictions of interface {@link&#xA;DocAttributeSet DocAttributeSet}.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_325688_9457"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_574746_16450" isSubstitutable="true" general="_9_5_f720368_1110473546737_622170_9455"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_470119_16448" name="" supplier="_9_5_f720368_1110473546737_811887_9451" client="_9_5_f720368_1110473546737_325688_9457" contract="_9_5_f720368_1110473546737_811887_9451"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323321_35645_16449" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_325688_9457" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_975548_9471" name="PrintRequestAttribute" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315810_151421_10289" body="Interface PrintRequestAttribute is a tagging interface which a printing&#xA;attribute class implements to indicate the attribute denotes a&#xA;requested setting for a print job.&#xA;&lt;p>&#xA;Attributes which are tagged with PrintRequestAttribute and are also tagged&#xA;as PrintJobAttribute, represent the subset of job attributes which&#xA;can be part of the specification of a job request.&#xA;&lt;p>&#xA;If an attribute implements {@link DocAttribute  DocAttribute}&#xA;as well as PrintRequestAttribute, the client may include the&#xA;attribute in a &lt;code>Doc&lt;/code>}'s attribute set to specify&#xA;a job setting which pertains just to that doc.&#xA;&lt;P>&#xA;&#xA;@see DocAttributeSet&#xA;@see PrintRequestAttributeSet&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_975548_9471"/>
              <generalization xmi:id="_10_5_622020d_1132928323321_39930_16464" isSubstitutable="true" general="_9_5_f720368_1110473546737_324874_9441"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_955043_9489" name="UnmodifiableSetException">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_857004_10307" body="Thrown to indicate that the requested operation cannot be performed&#xA;becasue the set is unmodifiable.&#xA;&#xA;@author  Phil Race&#xA;@since   1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_955043_9489"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_59685_16477" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_20330_9529" name="PrintException">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_847449_10358" body="Class PrintException encapsulates a printing-related error condition that&#xA;occurred while using a Print Service instance. This base class&#xA;furnishes only a string description of the error. Subclasses furnish more&#xA;detailed information if applicable.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_20330_9529"/>
            <generalization xmi:id="_10_5_622020d_1132928323331_103164_16503" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_149723_9521" name="MimeType" visibility="package" clientDependency="_10_5_622020d_1132928323331_978621_16495 _10_5_622020d_1132928323331_744145_16496">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_204877_10350" body="Class MimeType encapsulates a Multipurpose Internet Mail Extensions (MIME)&#xA;media type as defined in &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2045.txt&quot;>RFC&#xA;2045&lt;/A> and &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2046.txt&quot;>RFC 2046&lt;/A>. A&#xA;MIME type object is part of a {@link DocFlavor DocFlavor} object and&#xA;specifies the format of the print data.&#xA;&lt;P>&#xA;Class MimeType is similar to the like-named&#xA;class in package {@link java.awt.datatransfer java.awt.datatransfer}. Class&#xA;java.awt.datatransfer.MimeType is not used in the Jini Print Service API&#xA;for two reasons:&#xA;&lt;OL TYPE=1>&#xA;&lt;LI>&#xA;Since not all Java profiles include the AWT, the Jini Print Service should&#xA;not depend on an AWT class.&#xA;&lt;P>&#xA;&lt;LI>&#xA;The implementation of class java.awt.datatransfer.MimeType does not&#xA;guarantee&#xA;that equivalent MIME types will have the same serialized representation.&#xA;Thus, since the Jini Lookup Service (JLUS) matches service attributes based&#xA;on equality of serialized representations, JLUS searches involving MIME&#xA;types encapsulated in class java.awt.datatransfer.MimeType may incorrectly&#xA;fail to match.&#xA;&lt;/OL>&#xA;&lt;P>&#xA;Class MimeType's serialized representation is based on the following&#xA;canonical form of a MIME type string. Thus, two MIME types that are not&#xA;identical but that are equivalent (that have the same canonical form) will&#xA;be considered equal by the JLUS's matching algorithm.&#xA;&lt;UL>&#xA;&lt;LI> The media type, media subtype, and parameters are retained, but all&#xA;comments and whitespace characters are discarded.&#xA;&lt;LI> The media type, media subtype, and parameter names are converted to&#xA;lowercase.&#xA;&lt;LI> The parameter values retain their original case, except a charset&#xA;parameter value for a text media type is converted to lowercase.&#xA;&lt;LI> Quote characters surrounding parameter values are removed.&#xA;&lt;LI> Quoting backslash characters inside parameter values are removed.&#xA;&lt;LI> The parameters are arranged in ascending order of parameter name.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_149723_9521"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323331_978621_16495" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_149723_9521" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323331_744145_16496" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_149723_9521" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_941856_20617" name="ParameterMapEntry" visibility="private" clientDependency="_10_5_622020d_1132928323331_222842_16497">
              <ownedComment xmi:id="_10_5_622020d_1132928315970_308197_10345" body="Parameter map entry.&#xA;" annotatedElement="_9_5_f720368_1110473548049_941856_20617"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_222842_16497" name="" supplier="_9_5_f720368_1110473547799_877742_18990" client="_9_5_f720368_1110473548049_941856_20617" contract="_9_5_f720368_1110473547799_877742_18990"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_108479_20619" name="ParameterMapEntrySetIterator" visibility="private" clientDependency="_10_5_622020d_1132928323331_85545_16498">
              <ownedComment xmi:id="_10_5_622020d_1132928315970_569032_10346" body="Parameter map entry set iterator.&#xA;" annotatedElement="_9_5_f720368_1110473548049_108479_20619"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_85545_16498" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_9_5_f720368_1110473548049_108479_20619" contract="_9_5_f720368_1110473546706_414385_8877"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_101302_20621" name="ParameterMapEntrySet" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928315970_795791_10347" body="Parameter map entry set.&#xA;" annotatedElement="_9_5_f720368_1110473548049_101302_20621"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_822152_16499" isSubstitutable="true" general="_9_5_f720368_1110473546706_136303_8831"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_466352_20623" name="ParameterMap" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928315970_459678_10348" body="Parameter map.&#xA;" annotatedElement="_9_5_f720368_1110473548049_466352_20623"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_138096_16500" isSubstitutable="true" general="_9_5_f720368_1110473546706_309552_8827"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_959051_20625" name="LexicalAnalyzer" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_169550_9515" name="DocFlavor" clientDependency="_10_5_622020d_1132928323331_779988_16487 _10_5_622020d_1132928323331_287416_16486">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_426583_10340" body="Class &lt;code>DocFlavor&lt;/code> encapsulates an object that specifies the&#xA;format in which print data is supplied to a {@link DocPrintJob}.&#xA;&quot;Doc&quot; is a short, easy-to-pronounce term that means &quot;a piece of print data.&quot;&#xA;The print data format, or &quot;doc flavor&quot;, consists of two things:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;&lt;B>MIME type.&lt;/B> This is a Multipurpose Internet Mail Extensions (MIME)&#xA;media type (as defined in &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2045.txt&quot;>RFC&#xA;2045&lt;/A> and &lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2046.txt&quot;>RFC 2046&lt;/A>)&#xA;that specifies how the print data is to be interpreted.&#xA;The charset of text data should be the IANA MIME-preferred name, or its&#xA;canonical name if no preferred name is specified. Additionally a few&#xA;historical names supported by earlier versions of the Java platform may&#xA;be recognized.&#xA;See &lt;a href=&quot;../../java/lang/package-summary.html#charenc&quot;>&#xA;character encodings&lt;/a> for more information on the character encodings&#xA;supported on the Java platform.&#xA;&lt;P>&#xA;&lt;LI>&#xA;&lt;B>Representation class name.&lt;/B> This specifies the fully-qualified name of&#xA;the class of the object from which the actual print data comes, as returned&#xA;by the {@link java.lang.Class#getName() &lt;CODE>Class.getName()&lt;/CODE>} method.&#xA;(Thus the class name for &lt;CODE>byte[]&lt;/CODE> is &lt;CODE>&quot;[B&quot;&lt;/CODE>, for&#xA;&lt;CODE>char[]&lt;/CODE> it is &lt;CODE>&quot;[C&quot;&lt;/CODE>.)&#xA;&lt;/UL>&#xA;&lt;P>&#xA;A &lt;code>DocPrintJob&lt;/code> obtains its print data by means of interface&#xA;{@link Doc Doc}. A &lt;code>Doc&lt;/code> object lets the &lt;code>DocPrintJob&lt;/code>&#xA;determine the doc flavor the client can supply.  A &lt;code>Doc&lt;/code> object&#xA;also lets the &lt;code>DocPrintJob&lt;/code> obtain an instance of the doc flavor's&#xA;representation class, from which the &lt;code>DocPrintJob&lt;/code> then obtains&#xA;the actual print data.&#xA;&lt;P>&#xA;&lt;HR>&#xA;&lt;H3>Client Formatted Print Data&lt;/H3>&#xA;There are two broad categories of print data, client formatted print data&#xA;and service formatted print data.&#xA;&lt;P>&#xA;For &lt;B>client formatted print data&lt;/B>, the client determines or knows the&#xA;print data format.&#xA;For example the client may have a JPEG encoded image, a URL for&#xA;HTML code, or a disk file containing plain text in some encoding,&#xA;possibly obtained from an external source, and&#xA;requires a way to describe the data format to the print service.&#xA;&lt;p>&#xA;The doc flavor's representation class is a conduit for the JPS&#xA;&lt;code>DocPrintJob&lt;/code> to obtain a sequence of characters or&#xA;bytes from the client. The&#xA;doc flavor's MIME type is one of the standard media types telling how to&#xA;interpret the sequence of characters or bytes. For a list of standard media&#xA;types, see the Internet Assigned Numbers Authority's (IANA's) &lt;A&#xA;HREF=&quot;http://www.isi.edu/in-notes/iana/assignments/media-types/&quot;>Media Types&#xA;Directory&lt;/A>. Interface {@link Doc Doc} provides two utility operations,&#xA;{@link Doc#getReaderForText() getReaderForText} and&#xA;{@link Doc#getStreamForBytes() getStreamForBytes()}, to help a&#xA;&lt;code>Doc&lt;/code> object's client extract client formatted print data.&#xA;&lt;P>&#xA;For client formatted print data, the print data representation class is&#xA;typically one of the following (although other representation classes are&#xA;permitted):&#xA;&lt;UL>&#xA;&lt;LI>&#xA;Character array (&lt;CODE>char[]&lt;/CODE>) -- The print data consists of the&#xA;Unicde characters in the array.&#xA;&lt;P>&#xA;&lt;LI>&#xA;&lt;code>String&lt;/code>  --&#xA;The print data consists of the Unicode characters in the string.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Character stream ({@link java.io.Reader java.io.Reader})&#xA;-- The print data consists of the Unicode characters read from the stream&#xA;up to the end-of-stream.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Byte array (&lt;CODE>byte[]&lt;/CODE>) -- The print data consists of the bytes in&#xA;the array. The bytes are encoded in the character set specified by the doc&#xA;flavor's MIME type. If the MIME type does not specify a character set, the&#xA;default character set is US-ASCII.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Byte stream ({@link java.io.InputStream java.io.InputStream}) --&#xA;The print data consists of the bytes read from the stream up to the&#xA;end-of-stream. The bytes are encoded in the character set specified by the&#xA;doc flavor's MIME type. If the MIME type does not specify a character set,&#xA;the default character set is US-ASCII.&#xA;&lt;LI>&#xA;Uniform Resource Locator ({@link java.net.URL URL})&#xA;-- The print data consists of the bytes read from the URL location.&#xA;The bytes are encoded in the character set specified by the doc flavor's&#xA;MIME type. If the MIME type does not specify a character set, the default&#xA;character set is US-ASCII.&#xA;&lt;P>&#xA;When the representation class is a URL, the print service itself accesses&#xA;and downloads the document directly from its URL address, without involving&#xA;the client. The service may be some form of network print service which&#xA;is executing in a different environment.&#xA;This means you should not use a URL print data flavor to print a&#xA;document at a restricted URL that the client can see but the printer cannot&#xA;see. This also means you should not use a URL print data flavor to print a&#xA;document stored in a local file that is not available at a URL&#xA;accessible independently of the client.&#xA;For example, a file that is not served up by an HTTP server or FTP server.&#xA;To print such documents, let the client open an input stream on the URL&#xA;or file and use an input stream data flavor.&#xA;&lt;/UL>&#xA;&lt;p>&#xA;&lt;HR>&#xA;&lt;h3>Default and Platform Encodings&lt;/h3>&#xA;&lt;P>&#xA;For byte print data where the doc flavor's MIME type does not include a&#xA;&lt;CODE>charset&lt;/CODE> parameter, the Java Print Service instance assumes the&#xA;US-ASCII character set by default. This is in accordance with&#xA;&lt;A HREF=&quot;http://www.ietf.org/rfc/rfc2046.txt&quot;>RFC 2046&lt;/A>, which says the&#xA;default character set is US-ASCII. Note that US-ASCII is a subset of&#xA;UTF-8, so in the future this may be widened if a future RFC endorses&#xA;UTF-8 as the default in a compatible manner.&#xA;&lt;p>&#xA;Also note that this is different than the behaviour of the Java runtime&#xA;when interpreting a stream of bytes as text data. That assumes the&#xA;default encoding for the user's locale. Thus, when spooling a file in local&#xA;encoding to a Java Print Service it is important to correctly specify&#xA;the encoding. Developers working in the English locales should&#xA;be particularly conscious of this, as their platform encoding corresponds&#xA;to the default mime charset. By this coincidence that particular&#xA;case may work without specifying the encoding of platform data.&#xA;&lt;p>&#xA;Every instance of the Java virtual machine has a default character encoding&#xA;determined during virtual-machine startup and typically depends upon the&#xA;locale and charset being used by the underlying operating system.&#xA;In a distributed environment there is no gurantee that two VM's share&#xA;the same default encoding. Thus clients which want to stream platform&#xA;encoded text data from the host platform to a Java Print Service instance&#xA;must explicitly declare the charset and not rely on defaults.&#xA;&lt;p>&#xA;The preferred form is the official IANA primary name for an encoding.&#xA;Applications which stream text data should always specify the charset&#xA;in the mime type, which necessitates obtaining the encoding of the host&#xA;platform for data (eg files) stored in that platform's encoding.&#xA;A CharSet which corresponds to this and is suitable for use in a&#xA;mime-type for a DocFlavor can be obtained&#xA;from {@link DocFlavor#hostEncoding &lt;CODE>DocFlavor.hostEncoding&lt;/CODE>}&#xA;This may not always be the primary IANA name but is guaranteed to be&#xA;understood by this VM.&#xA;For common flavors, the pre-defined *HOST DocFlavors may be used.&#xA;&lt;p>&#xA;&lt;p>&#xA;See &lt;a href=&quot;../../java/lang/package-summary.html#charenc&quot;>&#xA;character encodings&lt;/a> for more information on the character encodings&#xA;supported on the Java platform.&#xA;&lt;p>&#xA;&lt;HR>&#xA;&lt;h3>Recommended DocFlavors&lt;/h3>&#xA;&lt;P>&#xA;The Java Print Service API does not define any mandatorily supported&#xA;DocFlavors.&#xA;However, here are some examples of MIME types that a Java Print Service&#xA;instance might support for client formatted print data.&#xA;Nested classes inside class DocFlavor declare predefined static&#xA;constant DocFlavor objects for these example doc flavors; class DocFlavor's&#xA;constructor can be used to create an arbitrary doc flavor.&#xA;&lt;UL>&#xA;&lt;LI>Preformatted text&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 SUMMARY=&quot;MIME-Types and their descriptions&quot;>&#xA;&lt;TR>&#xA;&lt;TH>MIME-Type&lt;/TH>&lt;TH>Description&lt;/TH>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;text/plain&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Plain text in the default character set (US-ASCII)&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;text/plain; charset=&lt;I>xxx&lt;/I>&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Plain text in character set &lt;I>xxx&lt;/I>&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;text/html&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>HyperText Markup Language in the default character set (US-ASCII)&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;text/html; charset=&lt;I>xxx&lt;/I>&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>HyperText Markup Language in character set &lt;I>xxx&lt;/I>&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;In general, preformatted text print data is provided either in a character&#xA;oriented representation class (character array, String, Reader) or in a&#xA;byte oriented representation class (byte array, InputStream, URL).&#xA;&lt;P>&#xA;&lt;LI>Preformatted page description language (PDL) documents&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 SUMMARY=&quot;MIME-Types and their descriptions&quot;>&#xA;&lt;TR>&#xA;&lt;TH>MIME-Type&lt;/TH>&lt;TH>Description&lt;/TH>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;application/pdf&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Portable Document Format document&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;application/postscript&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>PostScript document&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;application/vnd.hp-PCL&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Printer Control Language document&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;In general, preformatted PDL print data is provided in a byte oriented&#xA;representation class (byte array, InputStream, URL).&#xA;&lt;P>&#xA;&lt;LI>Preformatted images&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 SUMMARY=&quot;MIME-Types and their descriptions&quot;>&#xA;&lt;TR>&#xA;&lt;TH>MIME-Type&lt;/TH>&lt;TH>Description&lt;/TH>&#xA;&lt;/TR>&#xA;&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;image/gif&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Graphics Interchange Format image&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;image/jpeg&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Joint Photographic Experts Group image&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;image/png&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>Portable Network Graphics image&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;In general, preformatted image print data is provided in a byte oriented&#xA;representation class (byte array, InputStream, URL).&#xA;&lt;P>&#xA;&lt;LI>Preformatted autosense print data&#xA;&lt;P>&#xA;&lt;TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0 SUMMARY=&quot;MIME-Types and their descriptions&quot;>&#xA;&lt;TR>&#xA;&lt;TH>MIME-Type&lt;/TH>&lt;TH>Description&lt;/TH>&#xA;&lt;/TR>&#xA;&#xA;&lt;TR>&#xA;&lt;TD>&lt;CODE>&quot;application/octet-stream&quot;&lt;/CODE>&lt;/TD>&#xA;&lt;TD>The print data format is unspecified (just an octet stream)&lt;/TD>&#xA;&lt;/TABLE>&#xA;&lt;P>&#xA;The printer decides how to interpret the print data; the way this&#xA;&quot;autosensing&quot; works is implementation dependent. In general, preformatted&#xA;autosense print data is provided in a byte oriented representation class&#xA;(byte array, InputStream, URL).&#xA;&#xA;&lt;P>&#xA;&lt;HR>&#xA;&lt;H3>Service Formatted Print Data&lt;/H3>&#xA;&lt;P>&#xA;For &lt;B>service formatted print data&lt;/B>, the Java Print Service instance&#xA;determines the print data format. The doc flavor's representation class&#xA;denotes an interface whose methods the &lt;code>DocPrintJob&lt;/code> invokes to&#xA;determine the content to be printed -- such as a renderable image&#xA;interface or a Java 2 printable interface.&#xA;The doc flavor's MIME type is the special value&#xA;&lt;CODE>&quot;application/x-java-jvm-local-objectref&quot;&lt;/CODE> indicating the client&#xA;will supply a reference to a Java object that implements the interface&#xA;named as the representation class.&#xA;This MIME type is just a placeholder; what's&#xA;important is the print data representation class.&#xA;&lt;P>&#xA;For service formatted print data, the print data representation class is&#xA;typically one of the following (although other representation classes are&#xA;permitted). Nested classes inside class DocFlavor declare predefined static&#xA;constant DocFlavor objects for these example doc flavors; class DocFlavor's&#xA;constructor can be used to create an arbitrary doc flavor.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;Renderable image object -- The client supplies an object that implements&#xA;interface&#xA;{@link java.awt.image.renderable.RenderableImage RenderableImage}. The&#xA;printer calls methods&#xA;in that interface to obtain the image to be printed.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Printable object -- The client supplies an object that implements interface&#xA;{@link java.awt.print.Printable Printable}.&#xA;The printer calls methods in that interface to obtain the pages to be&#xA;printed, one by one.&#xA;For each page, the printer supplies a graphics context, and whatever the&#xA;client draws in that graphics context gets printed.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Pageable object -- The client supplies an object that implements interface&#xA;{@link java.awt.print.Pageable Pageable}. The printer calls&#xA;methods in that interface to obtain the pages to be printed, one by one.&#xA;For each page, the printer supplies a graphics context, and whatever&#xA;the client draws in that graphics context gets printed.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;&lt;HR>&#xA;&lt;P>&#xA;&lt;HR>&#xA;&lt;H3>Pre-defined Doc Flavors&lt;/H3>&#xA;A Java Print Service instance is not &lt;B>&lt;I>required&lt;/I>&lt;/B> to support the&#xA;following print data formats and print data representation classes.  In&#xA;fact, a developer using this class should &lt;b>never&lt;/b> assume that a&#xA;particular print service supports the document types corresponding to&#xA;these pre-defined doc flavors.  Always query the print service&#xA;to determine what doc flavors it supports.  However,&#xA;developers who have print services that support these doc flavors are&#xA;encouraged to refer to the predefined singleton instances created here.&#xA;&lt;UL>&#xA;&lt;LI>&#xA;Plain text print data provided through a byte stream. Specifically, the&#xA;following doc flavors are recommended to be supported:&#xA;&lt;BR>&amp;#183;&amp;nbsp;&amp;nbsp;&#xA;&lt;CODE>(&quot;text/plain&quot;, &quot;java.io.InputStream&quot;)&lt;/CODE>&#xA;&lt;BR>&amp;#183;&amp;nbsp;&amp;nbsp;&#xA;&lt;CODE>(&quot;text/plain; charset=us-ascii&quot;, &quot;java.io.InputStream&quot;)&lt;/CODE>&#xA;&lt;BR>&amp;#183;&amp;nbsp;&amp;nbsp;&#xA;&lt;CODE>(&quot;text/plain; charset=utf-8&quot;, &quot;java.io.InputStream&quot;)&lt;/CODE>&#xA;&lt;P>&#xA;&lt;LI>&#xA;Renderable image objects. Specifically, the following doc flavor is&#xA;recommended to be supported:&#xA;&lt;BR>&amp;#183;&amp;nbsp;&amp;nbsp;&#xA;&lt;CODE>(&quot;application/x-java-jvm-local-objectref&quot;, &quot;java.awt.image.renderable.RenderableImage&quot;)&lt;/CODE>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;A Java Print Service instance is allowed to support any other doc flavors&#xA;(or none) in addition to the above mandatory ones, at the implementation's&#xA;choice.&#xA;&lt;P>&#xA;Support for the above doc flavors is desirable so a printing client can rely&#xA;on being able to print on any JPS printer, regardless of which doc flavors&#xA;the printer supports. If the printer doesn't support the client's preferred&#xA;doc flavor, the client can at least print plain text, or the client can&#xA;convert its data to a renderable image and print the image.&#xA;&lt;P>&#xA;Furthermore, every Java Print Service instance must fulfill these&#xA;requirements for processing plain text print data:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;The character pair carriage return-line feed (CR-LF) means&#xA;&quot;go to column 1 of the next line.&quot;&#xA;&lt;LI>&#xA;A carriage return (CR) character standing by itself means&#xA;&quot;go to column 1 of the next line.&quot;&#xA;&lt;LI>&#xA;A line feed (CR) character standing by itself means&#xA;&quot;go to column 1 of the next line.&quot;&#xA;&lt;LI>&#xA;&lt;/UL>&#xA;&lt;P>&#xA;The client must itself perform all plain text print data formatting not&#xA;addressed by the above requirements.&#xA;&lt;P>&#xA;&lt;H3>Design Rationale&lt;/H3>&#xA;&lt;P>&#xA;Class DocFlavor in package javax.print.data is similar to class&#xA;{@link java.awt.datatransfer.DataFlavor DataFlavor}. Class&#xA;&lt;code>DataFlavor&lt;/code>&#xA;is not used in the Java Print Service (JPS) API&#xA;for three reasons which are all rooted in allowing the JPS API to be&#xA;shared by other print services APIs which may need to run on Java profiles&#xA;which do not include all of the Java 2 Standard Edition.&#xA;&lt;OL TYPE=1>&#xA;&lt;LI>&#xA;The JPS API is designed to be used in Java profiles which do not support&#xA;AWT.&#xA;&lt;P>&#xA;&lt;LI>&#xA;The implementation of class &lt;code>java.awt.datatransfer.DataFlavor&lt;/code>&#xA;does not guarantee that equivalent data flavors will have the same&#xA;serialized representation. DocFlavor does, and can be used in services&#xA;which need this.&#xA;&lt;P>&#xA;&lt;LI>&#xA;The implementation of class &lt;code>java.awt.datatransfer.DataFlavor&lt;/code>&#xA;includes a human presentable name as part of the serialized representation.&#xA;This is not appropriate as part of a service matching constraint.&#xA;&lt;/OL>&#xA;&lt;P>&#xA;Class DocFlavor's serialized representation uses the following&#xA;canonical form of a MIME type string. Thus, two doc flavors with MIME types&#xA;that are not identical but that are equivalent (that have the same&#xA;canonical form) may be considered equal.&#xA;&lt;UL>&#xA;&lt;LI> The media type, media subtype, and parameters are retained, but all&#xA;comments and whitespace characters are discarded.&#xA;&lt;LI> The media type, media subtype, and parameter names are converted to&#xA;lowercase.&#xA;&lt;LI> The parameter values retain their original case, except a charset&#xA;parameter value for a text media type is converted to lowercase.&#xA;&lt;LI> Quote characters surrounding parameter values are removed.&#xA;&lt;LI> Quoting backslash characters inside parameter values are removed.&#xA;&lt;LI> The parameters are arranged in ascending order of parameter name.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;Class DocFlavor's serialized representation also contains the&#xA;fully-qualified class &lt;I>name&lt;/I> of the representation class&#xA;(a String object), rather than the representation class itself&#xA;(a Class object). This allows a client to examine the doc flavors a&#xA;Java Print Service instance supports without having&#xA;to load the representation classes, which may be problematic for&#xA;limited-resource clients.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473546737_169550_9515"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323331_287416_16486" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_169550_9515" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323331_779988_16487" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_169550_9515" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_838306_20593" name="BYTE_ARRAY">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_87854_10332" body="Class DocFlavor.BYTE_ARRAY provides predefined static constant&#xA;DocFlavor objects for example doc flavors using a byte array&#xA;(&lt;CODE>byte[]&lt;/CODE>) as the print data representation class.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_838306_20593"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_261086_16488" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_953002_20596" name="INPUT_STREAM">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_86841_10333" body="Class DocFlavor.INPUT_STREAM provides predefined static constant&#xA;DocFlavor objects for example doc flavors using a byte stream ({@link&#xA;java.io.InputStream &lt;CODE>java.io.InputStream&lt;/CODE>}) as the print&#xA;data representation class.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_953002_20596"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_949432_16489" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_350261_20599" name="URL">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_452375_10334" body="Class DocFlavor.URL provides predefined static constant DocFlavor&#xA;objects.&#xA;For example doc flavors using a Uniform Resource Locator ({@link&#xA;java.net.URL &lt;CODE>java.net.URL&lt;/CODE>}) as the print data&#xA;representation  class.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_350261_20599"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_268539_16490" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_278609_20602" name="CHAR_ARRAY">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_727993_10335" body="Class DocFlavor.CHAR_ARRAY provides predefined static constant&#xA;DocFlavor objects for example doc flavors using a character array&#xA;(&lt;CODE>char[]&lt;/CODE>) as the print data representation class. As such,&#xA;the character set is Unicode.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_278609_20602"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_614726_16491" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_431265_20605" name="STRING">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_463431_10336" body="Class DocFlavor.STRING provides predefined static constant DocFlavor&#xA;objects for example doc flavors using a string ({@link java.lang.String&#xA;&lt;CODE>java.lang.String&lt;/CODE>}) as the print data representation class.&#xA;As such, the character set is Unicode.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_431265_20605"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_614559_16492" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_672102_20608" name="READER">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_942381_10337" body="Class DocFlavor.READER provides predefined static constant DocFlavor&#xA;objects for example doc flavors using a character stream ({@link&#xA;java.io.Reader &lt;CODE>java.io.Reader&lt;/CODE>}) as the print data&#xA;representation class. As such, the character set is Unicode.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_672102_20608"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_104268_16493" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_411306_20611" name="SERVICE_FORMATTED">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_102856_10338" body="Class DocFlavor.SERVICE_FORMATTED provides predefined static constant&#xA;DocFlavor objects for example doc flavors for service formatted print&#xA;data.&#xA;&lt;P>&#xA;&#xA;@author  Alan Kaminsky&#xA;" annotatedElement="_9_5_f720368_1110473548049_411306_20611"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_549240_16494" isSubstitutable="true" general="_9_5_f720368_1110473546737_169550_9515"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_36396_9517" name="DocPrintJob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_585927_10342" body="This interface represents a print job that can print a specified&#xA;document with a set of job attributes.  An object implementing&#xA;this interface is obtained from a print service.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_36396_9517"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_150045_9511" name="CancelablePrintJob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315830_441959_10329" body="This interface is used by a printing application to cancel a&#xA;print job.  This interface extends {@link DocPrintJob}.  A&#xA;&lt;code>DocPrintJob&lt;/code> implementation returned from a print&#xA;service implements this interface if the print job can be&#xA;cancelled.  Before trying to cancel&#xA;a print job, the client needs to test if the&#xA;&lt;code>DocPrintJob&lt;/code> object returned from the print service&#xA;actually implements this interface.  Clients should never assume&#xA;that a &lt;code>DocPrintJob&lt;/code> implements this interface.  A&#xA;print service might support cancellation only for certain types&#xA;of print data and representation class names.  This means that&#xA;only some of the &lt;code>DocPrintJob&lt;/code> objects returned from&#xA;a service will implement this interface.&#xA;&lt;p>&#xA;Service implementors are encouraged to implement this optional interface&#xA;and to deliver a javax.print.event.PrintJobEvent.JOB_CANCELLED event&#xA;to any listeners if a job is successfully cancelled with an&#xA;implementation of this interface. Services should also note that an&#xA;implementation of this method may be made from a separate client thread&#xA;than that which made the print request.  Thus the implementation of&#xA;this interface must be made thread safe.&#xA;" annotatedElement="_9_5_f720368_1110473546737_150045_9511"/>
            <generalization xmi:id="_10_5_622020d_1132928323331_323911_16485" isSubstitutable="true" general="_9_5_f720368_1110473546737_36396_9517"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_736285_9525" name="MultiDocPrintJob" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_904652_10354" body="Obtained from a MultiDocPrintService, a MultiDocPrintJob can print a&#xA;specified collection of documents as a single print job with a set of&#xA;job attributes.&#xA;&lt;P>&#xA;" annotatedElement="_9_5_f720368_1110473546737_736285_9525"/>
            <generalization xmi:id="_10_5_622020d_1132928323331_878140_16501" isSubstitutable="true" general="_9_5_f720368_1110473546737_36396_9517"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_754980_9531" name="PrintService" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_443033_10360" body="Interface PrintService is the factory for a DocPrintJob. A PrintService&#xA;describes the capabilities of a Printer and can be queried regarding&#xA;a printer's supported attributes.&#xA;&lt;P>&#xA;Example:&#xA;&lt;PRE>&#xA;DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;&#xA;PrintRequestAttributeSet aset = new HashPrintRequestHashAttributeSet();&#xA;aset.add(MediaSizeName.ISO_A4);&#xA;PrintService[] pservices =&#xA;PrintServiceLookup.lookupPrintServices(flavor, aset);&#xA;if (pservices.length > 0) {&#xA;DocPrintJob pj = pservices[0].createPrintJob();&#xA;InputStreamDoc is an implementation of the Doc interface&#xA;Doc doc = new InputStreamDoc(&quot;test.ps&quot;, flavor);&#xA;try {&#xA;pj.print(doc, aset);&#xA;} catch (PrintException e) {&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;" annotatedElement="_9_5_f720368_1110473546737_754980_9531"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_343893_9539" name="SimpleDoc" clientDependency="_10_5_622020d_1132928323331_662898_16504" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_24115_10368" body="This class is an implementation of interface &lt;code>Doc&lt;/code> that can&#xA;be used in many common printing requests.&#xA;It can handle all of the presently defined &quot;pre-defined&quot; doc flavors&#xA;defined as static variables in the DocFlavor class.&#xA;&lt;p>&#xA;In particular this class implements certain required semantics of the&#xA;Doc specification as follows:&#xA;&lt;ul>&#xA;&lt;li>constructs a stream for the service if requested and appropriate.&#xA;&lt;li>ensures the same object is returned for each call on a method.&#xA;&lt;li>ensures multiple threads can access the Doc&#xA;&lt;li>performs some validation of that the data matches the doc flavor.&#xA;&lt;/ul>&#xA;Clients who want to re-use the doc object in other jobs,&#xA;or need a MultiDoc will not want to use this class.&#xA;&lt;p>&#xA;If the print data is a stream, or a print job requests data as a&#xA;stream, then &lt;code>SimpleDoc&lt;/code> does not monitor if the service&#xA;properly closes the stream after data transfer completion or job&#xA;termination.&#xA;Clients may prefer to use provide their own implementation of doc that&#xA;adds a listener to monitor job completion and to validate that&#xA;resources such as streams are freed (ie closed).&#xA;" annotatedElement="_9_5_f720368_1110473546737_343893_9539"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323331_662898_16504" name="" supplier="_9_5_f720368_1110473546737_544729_9513" client="_9_5_f720368_1110473546737_343893_9539" contract="_9_5_f720368_1110473546737_544729_9513"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548049_31501_20575" name="event">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_650911_9507" name="PrintServiceAttributeListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_743814_10325" body="Implementations of this listener interface are attached to a&#xA;{@link javax.print.PrintService PrintService} to monitor&#xA;the status of the print service.&#xA;&lt;p>&#xA;To monitor a particular job see {@link PrintJobListener} and&#xA;{@link PrintJobAttributeListener}.&#xA;" annotatedElement="_9_5_f720368_1110473546737_650911_9507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_289702_9495" name="PrintJobAdapter" clientDependency="_10_5_622020d_1132928323331_444053_16481" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_109957_10313" body="An abstract adapter class for receiving print job events.&#xA;The methods in this class are empty.&#xA;This class exists as a convenience for creating listener objects.&#xA;Extend this class to create a {@link PrintJobEvent} listener and override&#xA;the methods for the events of interest.  Unlike the&#xA;{@link java.awt.event.ComponentListener ComponentListener}&#xA;interface, this abstract interface provides null methods so that you&#xA;only need to define the methods you need, rather than all of the methods.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_289702_9495"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323331_444053_16481" name="" supplier="_9_5_f720368_1110473546737_673933_9503" client="_9_5_f720368_1110473546737_289702_9495" contract="_9_5_f720368_1110473546737_673933_9503"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_297214_9501" name="PrintJobEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_203483_10319" body="Class &lt;code>PrintJobEvent&lt;/code> encapsulates common events a print job&#xA;reports to let a listener know of progress in the processing of the&#xA;{@link DocPrintJob}.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_297214_9501"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_792730_16483" isSubstitutable="true" general="_9_5_f720368_1110473546737_751481_9493"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_815135_9497" name="PrintJobAttributeEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_549938_10315" body="Class PrintJobAttributeEvent encapsulates an event a PrintService&#xA;reports to let the client know that one or more printing attributes for a&#xA;PrintJob have changed.&#xA;" annotatedElement="_9_5_f720368_1110473546737_815135_9497"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_940629_16482" isSubstitutable="true" general="_9_5_f720368_1110473546737_751481_9493"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_145354_9499" name="PrintJobAttributeListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_78465_10317" body="Implementations of this interface are attached to a&#xA;{@link javax.print.DocPrintJob DocPrintJob} to monitor&#xA;the status of attribute changes associated with the print job.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_145354_9499"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_673933_9503" name="PrintJobListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_461111_10321" body="Implementations of this listener interface should be attached to a&#xA;{@link javax.print.DocPrintJob DocPrintJob} to monitor the status of&#xA;the printer job.&#xA;These callback methods may be invoked on the thread processing the&#xA;print job, or a service created notification thread. In either case&#xA;the client should not perform lengthy processing in these callbacks.&#xA;" annotatedElement="_9_5_f720368_1110473546737_673933_9503"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_751481_9493" name="PrintEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928315820_771721_10311" body="Class PrintEvent is the super class of all Print Service API events.&#xA;" annotatedElement="_9_5_f720368_1110473546737_751481_9493"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_889130_16480" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_1337_9505" name="PrintServiceAttributeEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928315830_329252_10323" body="Class PrintServiceAttributeEvent encapsulates an event a&#xA;Print Service instance reports to let the client know of&#xA;changes in the print service state.&#xA;" annotatedElement="_9_5_f720368_1110473546737_1337_9505"/>
              <generalization xmi:id="_10_5_622020d_1132928323331_625101_16484" isSubstitutable="true" general="_9_5_f720368_1110473546737_751481_9493"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_785688_9543" name="StreamPrintServiceFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_522875_10372" body="A &lt;code>StreamPrintServiceFactory&lt;/code> is the factory for&#xA;{@link StreamPrintService} instances,&#xA;which can print to an output stream in a particular&#xA;document format described as a mime type.&#xA;A typical output document format may be Postscript(TM).&#xA;&lt;p>&#xA;This class is implemented by a service and located by the&#xA;implementation using the&#xA;&lt;a href=&quot;http:/java.sun.com/products/jdk/1.3/docs/guide/jar/jar.html#Service Provider&quot;>&#xA;SPI JAR File specification&lt;/a>.&#xA;&lt;p>&#xA;Applications locate instances of this class by calling the&#xA;{@link #lookupStreamPrintServiceFactories(DocFlavor, String)} method.&#xA;&lt;p>&#xA;Applications can use a &lt;code>StreamPrintService&lt;/code> obtained from a&#xA;factory in place of a &lt;code>PrintService&lt;/code> which represents a&#xA;physical printer device.&#xA;" annotatedElement="_9_5_f720368_1110473546737_785688_9543"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548065_922700_20640" name="Services" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_578707_9519" name="FlavorException" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_728466_10344" body="Interface FlavorException is a mixin interface which a subclass of {@link&#xA;PrintException PrintException} can implement to report an error condition&#xA;involving a doc flavor or flavors (class {@link javax.print.DocFlavor&#xA;DocFlavor}). The Print Service API does not define any print exception&#xA;classes that implement interface FlavorException, that being left to the&#xA;Print Service implementor's discretion.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_578707_9519"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_331480_9545" name="URIException" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_615796_10374" body="Interface URIException is a mixin interface which a subclass of {@link&#xA;PrintException PrintException} can implement to report an error condition&#xA;involving a URI address. The Print Service API does not define any print&#xA;exception classes that implement interface URIException, that being left to&#xA;the Print Service implementor's discretion.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546737_331480_9545"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_544729_9513" name="Doc" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315830_107485_10331" body="Interface Doc specifies the interface for an object that supplies one piece&#xA;of print data for a Print Job. &quot;Doc&quot; is a short, easy-to-pronounce term&#xA;that means &quot;a piece of print data.&quot; The client passes to the Print Job an&#xA;object that implements interface Doc, and the Print Job calls methods on&#xA;that object to obtain the print data. The Doc interface lets a Print Job:&#xA;&lt;UL>&#xA;&lt;LI>&#xA;Determine the format, or &quot;doc flavor&quot; (class {@link DocFlavor DocFlavor}),&#xA;in which the print data is available. A doc flavor designates the print&#xA;data format (a MIME type) and the representation class of the object&#xA;from which the print data comes.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Obtain the print data representation object, which is an instance of the&#xA;doc flavor's representation class. The Print Job can then obtain the actual&#xA;print data from the representation object.&#xA;&lt;P>&#xA;&lt;LI>&#xA;Obtain the printing attributes that specify additional characteristics of&#xA;the doc or that specify processing instructions to be applied to the doc.&#xA;Printing attributes are defined in package {@link javax.print.attribute&#xA;javax.print.attribute}. The doc returns its printing attributes stored in&#xA;an {@link javax.print.attribute.DocAttributeSet javax.print.attribute.DocAttributeSet}.&#xA;&lt;/UL>&#xA;&lt;P>&#xA;Each method in an implementation of interface Doc is permitted always to&#xA;return the same object each time the method is called.&#xA;This has implications&#xA;for a Print Job or other caller of a doc object whose print data&#xA;representation object &quot;consumes&quot; the print data as the caller obtains the&#xA;print data, such as a print data representation object which is a stream.&#xA;Once the Print Job has called {@link #getPrintData()&#xA;&lt;CODE>getPrintData()&lt;/CODE>} and obtained the stream, any further calls to&#xA;{@link #getPrintData() &lt;CODE>getPrintData()&lt;/CODE>} will return the same&#xA;stream object upon which reading may already be in progress, &lt;I>not&lt;/I> a new&#xA;stream object that will re-read the print data from the beginning. Specifying&#xA;a doc object to behave this way simplifies the implementation of doc objects,&#xA;and is justified on the grounds that a particular doc is intended to convey&#xA;print data only to one Print Job, not to several different Print Jobs. (To&#xA;convey the same print data to several different Print Jobs, you have to&#xA;create several different doc objects on top of the same print data source.)&#xA;&lt;P>&#xA;Interface Doc affords considerable implementation flexibility. The print data&#xA;might already be in existence when the doc object is constructed. In this&#xA;case the objects returned by the doc's methods can be supplied to the doc's&#xA;constructor, be stored in the doc ahead of time, and simply be returned when&#xA;called for. Alternatively, the print data might not exist yet when the doc&#xA;object is constructed. In this case the doc object might provide a &quot;lazy&quot;&#xA;implementation that generates the print data representation object (and/or&#xA;the print data) only when the Print Job calls for it (when the Print Job&#xA;calls the {@link #getPrintData() &lt;CODE>getPrintData()&lt;/CODE>} method).&#xA;&lt;P>&#xA;There is no restriction on the number of client threads that may be&#xA;simultaneously accessing the same doc. Therefore, all implementations of&#xA;interface Doc must be designed to be multiple thread safe.&#xA;&lt;p>&#xA;However there can only be one consumer of the print data obtained from a&#xA;Doc.&#xA;&lt;p>&#xA;If print data is obtained from the client as a stream, by calling Doc's&#xA;&lt;code>getReaderForText()&lt;/code> or &lt;code>getStreamForBytes()&lt;/code>&#xA;methods, or because the print data source is already an InputStream or&#xA;Reader, then the print service should always close these streams for the&#xA;client on all job completion conditions. With the following caveat.&#xA;If the print data is itself a stream, the service will always close it.&#xA;If the print data is otherwise something that can be requested as a stream,&#xA;the service will only close the stream if it has obtained the stream before&#xA;terminating. That is, just because a print service might request data as&#xA;a stream does not mean that it will, with the implications that Doc&#xA;implementors which rely on the service to close them should create such&#xA;streams only in response to a request from the service.&#xA;&lt;P>&#xA;&lt;HR>&#xA;" annotatedElement="_9_5_f720368_1110473546737_544729_9513"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_828809_9541" name="StreamPrintService" clientDependency="_10_5_622020d_1132928323341_3044_16505" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_956866_10370" body="This class extends {@link PrintService} and represents a&#xA;print service that prints data in different formats to a&#xA;client-provided output stream.&#xA;This is principally intended for services where&#xA;the output format is a document type suitable for viewing&#xA;or archiving.&#xA;The output format must be declared as a mime type.&#xA;This is equivalent to an output document flavor where the&#xA;representation class is always &quot;java.io.OutputStream&quot;&#xA;An instance of the &lt;code>StreamPrintService&lt;/code> class is&#xA;obtained from a {@link StreamPrintServiceFactory} instance.&#xA;&lt;p>&#xA;Note that a &lt;code>StreamPrintService&lt;/code> is different from a&#xA;&lt;code>PrintService&lt;/code>, which supports a&#xA;{@link javax.print.attribute.standard.Destination Destination}&#xA;attribute.  A &lt;code>StreamPrintService&lt;/code> always requires an output&#xA;stream, whereas a &lt;code>PrintService&lt;/code> optionally accepts a&#xA;&lt;code>Destination&lt;/code>. A &lt;code>StreamPrintService&lt;/code>&#xA;has no default destination for its formatted output.&#xA;Additionally a &lt;code>StreamPrintService&lt;/code> is expected to generate&#xA;output in&#xA;a format useful in other contexts.&#xA;StreamPrintService's are not expected to support the Destination attribute.&#xA;" annotatedElement="_9_5_f720368_1110473546737_828809_9541"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323341_3044_16505" name="" supplier="_9_5_f720368_1110473546737_754980_9531" client="_9_5_f720368_1110473546737_828809_9541" contract="_9_5_f720368_1110473546737_754980_9531"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_586030_9527" name="MultiDocPrintService" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_469592_10356" body="Interface MultiPrintService is the factory for a MultiDocPrintJob.&#xA;A MultiPrintService&#xA;describes the capabilities of a Printer and can be queried regarding&#xA;a printer's supported attributes.&#xA;" annotatedElement="_9_5_f720368_1110473546737_586030_9527"/>
            <generalization xmi:id="_10_5_622020d_1132928323331_757864_16502" isSubstitutable="true" general="_9_5_f720368_1110473546737_754980_9531"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_220709_9533" name="PrintServiceLookup" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_45486_10362" body="Implementations of this class provide lookup services for&#xA;print services (typically equivalent to printers) of a particular type.&#xA;&lt;p>&#xA;Multiple implementations may be installed concurrently.&#xA;All implementations must be able to describe the located printers&#xA;as instances of a PrintService.&#xA;Typically implementations of this service class are located&#xA;automatically in JAR files (see the SPI JAR file specification).&#xA;These classes must be instantiable using a default constructor.&#xA;Alternatively applications may explicitly register instances&#xA;at runtime.&#xA;&lt;p>&#xA;Applications use only the static methods of this abstract class.&#xA;The instance methods are implemented by a service provider in a subclass&#xA;and the unification of the results from all installed lookup classes&#xA;are reported by the static methods of this class when called by&#xA;the application.&#xA;&lt;p>&#xA;A PrintServiceLookup implementor is recommended to check for the&#xA;SecurityManager.checkPrintJobAccess() to deny access to untrusted code.&#xA;Following this recommended policy means that untrusted code may not&#xA;be able to locate any print services. Downloaded applets are the most&#xA;common example of untrusted code.&#xA;&lt;p>&#xA;This check is made on a per lookup service basis to allow flexibility in&#xA;the policy to reflect the needs of different lookup services.&#xA;&lt;p>&#xA;Services which are registered by registerService(PrintService)&#xA;will not be included in lookup results if a security manager is&#xA;installed and its checkPrintJobAccess() method denies access.&#xA;" annotatedElement="_9_5_f720368_1110473546737_220709_9533"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548049_651392_20633" name="Services" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_869115_9537" name="ServiceUIFactory" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_441961_10366" body="Services may optionally provide UIs which allow different styles&#xA;of interaction in different roles.&#xA;One role may be end-user browsing and setting of print options.&#xA;Another role may be administering the print service.&#xA;&lt;p>&#xA;Although the Print Service API does not presently provide standardised&#xA;support for administering a print service, monitoring of the print&#xA;service is possible and a UI may provide for private update mechanisms.&#xA;&lt;p>&#xA;The basic design intent is to allow applications to lazily locate and&#xA;initialize services only when needed without any API dependencies&#xA;except in an environment in which they are used.&#xA;&lt;p>&#xA;Swing UIs are preferred as they provide a more consistent L&amp;F and&#xA;can support accessibility APIs.&#xA;&lt;p>&#xA;Example usage:&#xA;&lt;pre>&#xA;ServiceUIFactory factory = printService.getServiceUIFactory();&#xA;if (factory != null) {&#xA;JComponent swingui = (JComponent)factory.getUI(&#xA;ServiceUIFactory.MAIN_UIROLE,&#xA;ServiceUIFactory.JCOMPONENT_UI);&#xA;if (swingui != null) {&#xA;tabbedpane.add(&quot;Custom UI&quot;, swingui);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;" annotatedElement="_9_5_f720368_1110473546737_869115_9537"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_882923_9535" name="ServiceUI">
            <ownedComment xmi:id="_10_5_622020d_1132928315980_222723_10364" body="This class is a collection of UI convenience methods which provide a&#xA;graphical user dialog for browsing print services looked up through the Java&#xA;Print Service API.&#xA;&lt;p>&#xA;The dialogs follow a standard pattern of acting as a continue/cancel option&#xA;for a user as well as allowing the user to select the print service to use&#xA;and specify choices such as paper size and number of copies.&#xA;&lt;p>&#xA;&lt;p>&#xA;The dialogs are designed to work with pluggable print services though the&#xA;public APIs of those print services.&#xA;&lt;p>&#xA;If a print service provides any vendor extensions these may be made&#xA;accessible to the user through a vendor supplied tab panel Component.&#xA;Such a vendor extension is encouraged to use Swing! and to support its&#xA;accessibility APIs.&#xA;The vendor extensions should return the settings as part of the&#xA;AttributeSet.&#xA;Applications which want to preserve the user settings should use those&#xA;settings to specify the print job.&#xA;Note that this class is not referenced by any other part of the Java&#xA;Print Service and may not be included in profiles which cannot depend&#xA;on the presence of the AWT packages.&#xA;" annotatedElement="_9_5_f720368_1110473546737_882923_9535"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_958914_9523" name="MultiDoc" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315970_212384_10352" body="Interface MultiDoc specifies the interface for an object that supplies more&#xA;than one piece of print data for a Print Job. &quot;Doc&quot; is a short,&#xA;easy-to-pronounce term that means &quot;a piece of print data,&quot; and a &quot;multidoc&quot;&#xA;is a group of several docs. The client passes to the Print Job an object&#xA;that implements interface MultiDoc, and the Print Job calls methods on&#xA;that object to obtain the print data.&#xA;&lt;P>&#xA;Interface MultiDoc provides an abstraction similar to a &quot;linked list&quot; of&#xA;docs. A multidoc object is like a node in the linked list, containing the&#xA;current doc in the list and a pointer to the next node (multidoc) in the&#xA;list. The Print Job can call the multidoc's {@link #getDoc()&#xA;&lt;CODE>getDoc()&lt;/CODE>} method to get the current doc. When it's ready to go&#xA;on to the next doc, the Print Job can call the multidoc's {@link #next()&#xA;&lt;CODE>next()&lt;/CODE>} method to get the next multidoc, which contains the&#xA;next doc. So Print Job code for accessing a multidoc might look like this:&#xA;&lt;PRE>&#xA;void processMultiDoc(MultiDoc theMultiDoc) {&#xA;&#xA;MultiDoc current = theMultiDoc;&#xA;while (current != null) {&#xA;processDoc (current.getDoc());&#xA;current = current.next();&#xA;}&#xA;}&#xA;&lt;/PRE>&#xA;&lt;P>&#xA;Of course, interface MultiDoc can be implemented in any way that fulfills&#xA;the contract; it doesn't have to use a linked list in the implementation.&#xA;&lt;P>&#xA;To get all the print data for a multidoc print job, a Print Service&#xA;proxy could use either of two patterns:&#xA;&lt;OL TYPE=1>&#xA;&lt;LI>&#xA;The &lt;B>interleaved&lt;/B> pattern: Get the doc from the current multidoc. Get&#xA;the print data representation object from the current doc. Get all the print&#xA;data from the print data representation object. Get the next multidoc from&#xA;the current multidoc, and repeat until there are no more. (The code example&#xA;above uses the interleaved pattern.)&#xA;&lt;P>&#xA;&lt;LI>&#xA;The &lt;B>all-at-once&lt;/B> pattern: Get the doc from the current multidoc, and&#xA;save the doc in a list. Get the next multidoc from the current multidoc, and&#xA;repeat until there are no more. Then iterate over the list of saved docs. Get&#xA;the print data representation object from the current doc. Get all the print&#xA;data from the print data representation object. Go to the next doc in the&#xA;list, and repeat until there are no more.&#xA;&lt;/OL>&#xA;Now, consider a printing client that is generating print data on the fly and&#xA;does not have the resources to store more than one piece of print data at a&#xA;time. If the print service proxy used the all-at-once pattern to get the&#xA;print data, it would pose a problem for such a client; the client would have&#xA;to keep all the docs' print data around until the print service proxy comes&#xA;back and asks for them, which the client is not able to do. To work with such&#xA;a client, the print service proxy must use the interleaved pattern.&#xA;&lt;P>&#xA;To address this problem, and to simplify the design of clients providing&#xA;multiple docs to a Print Job, every Print Service proxy that supports&#xA;multidoc print jobs is required to access a MultiDoc object using the&#xA;interleaved pattern. That is, given a MultiDoc object, the print service&#xA;proxy will call {@link #getDoc() &lt;CODE>getDoc()&lt;/CODE>} one or more times&#xA;until it successfully obtains the current Doc object. The print service proxy&#xA;will then obtain the current doc's print data, not proceeding until all the&#xA;print data is obtained or an unrecoverable error occurs. If it is able to&#xA;continue, the print service proxy will then call {@link #next()&#xA;&lt;CODE>next()&lt;/CODE>} one or more times until it successfully obtains either&#xA;the next MultiDoc object or an indication that there are no more. An&#xA;implementation of interface MultiDoc can assume the print service proxy will&#xA;follow this interleaved pattern; for any other pattern of usage, the MultiDoc&#xA;implementation's behavior is unspecified.&#xA;&lt;P>&#xA;There is no restriction on the number of client threads that may be&#xA;simultaneously accessing the same multidoc. Therefore, all implementations of&#xA;interface MultiDoc must be designed to be multiple thread safe. In fact, a&#xA;client thread could be adding docs to the end of the (conceptual) list while&#xA;a Print Job thread is simultaneously obtaining docs from the beginning of the&#xA;list; provided the multidoc object synchronizes the threads properly, the two&#xA;threads will not interfere with each other&#xA;" annotatedElement="_9_5_f720368_1110473546737_958914_9523"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_694623_20681" name="security">
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928316121_664184_10504" name="sasl">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316131_643801_10514" name="RealmChoiceCallback">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_273287_10516" body="This callback is used by &lt;tt>SaslClient&lt;/tt> and &lt;tt>SaslServer&lt;/tt>&#xA;to obtain a realm given a list of realm choices.&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_643801_10514"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_733103_16579" isSubstitutable="true" general="_9_5_f720368_1110473546737_310211_9573"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316131_232740_10511" name="RealmCallback">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_701573_10513" body="This callback is used by &lt;tt>SaslClient&lt;/tt> and &lt;tt>SaslServer&lt;/tt>&#xA;to retrieve realm information.&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_232740_10511"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_180150_16578" isSubstitutable="true" general="_9_5_f720368_1110473546737_290829_9583"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316121_619631_10505" name="AuthenticationException">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_967896_10507" body="This exception is thrown by a SASL mechanism implementation&#xA;to indicate that the SASL&#xA;exchange has failed due to reasons related to authentication, such as&#xA;an invalid identity, passphrase, or key.&#xA;&lt;p>&#xA;Note that the lack of an AuthenticationException does not mean that&#xA;the failure was not due to an authentication error.  A SASL mechanism&#xA;implementation might throw the more general SaslException instead of&#xA;AuthenticationException if it is unable to determine the nature&#xA;of the failure, or if does not want to disclose the nature of&#xA;the failure, for example, due to security reasons.&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316121_619631_10505"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_94073_16575" isSubstitutable="true" general="_10_5_622020d_1132928316131_289746_10526"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316131_592267_10520" name="SaslClient" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_618628_10522" body="Performs SASL authentication as a client.&#xA;&lt;p>&#xA;A protocol library such as one for LDAP gets an instance of this&#xA;class in order to perform authentication defined by a specific SASL&#xA;mechanism. Invoking methods on the &lt;tt>SaslClient&lt;/tt> instance&#xA;process challenges and create responses according to the SASL&#xA;mechanism implemented by the &lt;tt>SaslClient&lt;/tt>.&#xA;As the authentication proceeds, the instance&#xA;encapsulates the state of a SASL client's authentication exchange.&#xA;&lt;p>&#xA;Here's an example of how an LDAP library might use a &lt;tt>SaslClient&lt;/tt>.&#xA;It first gets an instance of a &lt;tt>SaslClient&lt;/tt>:&#xA;&lt;blockquote>&lt;pre>&#xA;SaslClient sc = Sasl.createSaslClient(mechanisms,&#xA;authorizationId, protocol, serverName, props, callbackHandler);&#xA;&lt;/pre>&lt;/blockquote>&#xA;It can then proceed to use the client for authentication.&#xA;For example, an LDAP library might use the client as follows:&#xA;&lt;blockquote>&lt;pre>&#xA;Get initial response and send to server&#xA;byte[] response = (sc.hasInitialResponse() ? sc.evaluateChallenge(new byte[0]) :&#xA;null);&#xA;LdapResult res = ldap.sendBindRequest(dn, sc.getName(), response);&#xA;while (!sc.isComplete() &amp;&amp;&#xA;(res.status == SASL_BIND_IN_PROGRESS || res.status == SUCCESS)) {&#xA;response = sc.evaluateChallenge(res.getBytes());&#xA;if (res.status == SUCCESS) {&#xA;we're done; don't expect to send another BIND&#xA;if (response != null) {&#xA;throw new SaslException(&#xA;&quot;Protocol error: attempting to send response after completion&quot;);&#xA;}&#xA;break;&#xA;}&#xA;res = ldap.sendBindRequest(dn, sc.getName(), response);&#xA;}&#xA;if (sc.isComplete() &amp;&amp; res.status == SUCCESS) {&#xA;String qop = (String) sc.getNegotiatedProperty(Sasl.QOP);&#xA;if (qop != null&#xA;&amp;&amp; (qop.equalsIgnoreCase(&quot;auth-int&quot;)&#xA;|| qop.equalsIgnoreCase(&quot;auth-conf&quot;))) {&#xA;&#xA;Use SaslClient.wrap() and SaslClient.unwrap() for future&#xA;communication with server&#xA;ldap.in = new SecureInputStream(sc, ldap.in);&#xA;ldap.out = new SecureOutputStream(sc, ldap.out);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;If the mechanism has an initial response, the library invokes&#xA;&lt;tt>evaluateChallenge()&lt;/tt> with an empty&#xA;challenge and to get initial response.&#xA;Protocols such as IMAP4, which do not include an initial response with&#xA;their first authentication command to the server, initiates the&#xA;authentication without first calling &lt;tt>hasInitialResponse()&lt;/tt>&#xA;or &lt;tt>evaluateChallenge()&lt;/tt>.&#xA;When the server responds to the command, it sends an initial challenge.&#xA;For a SASL mechanism in which the client sends data first, the server should&#xA;have issued a challenge with no data. This will then result in a call&#xA;(on the client) to &lt;tt>evaluateChallenge()&lt;/tt> with an empty challenge.&#xA;&#xA;@since 1.5&#xA;&#xA;@see Sasl&#xA;@see SaslClientFactory&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_592267_10520"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316131_289746_10526" name="SaslException">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_374452_10528" body="This class represents an error that has occurred when using SASL.&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_289746_10526"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_352781_16580" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316121_565284_10508" name="AuthorizeCallback" clientDependency="_10_5_622020d_1132928323351_625687_16577 _10_5_622020d_1132928323351_910083_16576">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_56719_10510" body="This callback is used by &lt;tt>SaslServer&lt;/tt> to determine whether&#xA;one entity (identified by an authenticated authentication id)&#xA;can act on&#xA;behalf of another entity (identified by an authorization id).&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316121_565284_10508"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323351_910083_16576" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_10_5_622020d_1132928316121_565284_10508" contract="_9_5_f720368_1110473546737_911585_9569"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323351_625687_16577" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928316121_565284_10508" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316141_689413_10532" name="SaslServerFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_238960_10534" body="An interface for creating instances of &lt;tt>SaslServer&lt;/tt>.&#xA;A class that implements this interface&#xA;must be thread-safe and handle multiple simultaneous&#xA;requests. It must also have a public constructor that accepts no&#xA;argument.&#xA;&lt;p>&#xA;This interface is not normally accessed directly by a server, which will use the&#xA;&lt;tt>Sasl&lt;/tt> static methods&#xA;instead. However, a particular environment may provide and install a&#xA;new or different &lt;tt>SaslServerFactory&lt;/tt>.&#xA;&#xA;@since 1.5&#xA;&#xA;@see SaslServer&#xA;@see Sasl&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316141_689413_10532"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316131_118363_10517" name="Sasl">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_474815_10519" body="A static class for creating SASL clients and servers.&#xA;&lt;p>&#xA;This class defines the policy of how to locate, load, and instantiate&#xA;SASL clients and servers.&#xA;&lt;p>&#xA;For example, an application or library gets a SASL client by doing&#xA;something like:&#xA;&lt;blockquote>&lt;pre>&#xA;SaslClient sc = Sasl.createSaslClient(mechanisms,&#xA;authorizationId, protocol, serverName, props, callbackHandler);&#xA;&lt;/pre>&lt;/blockquote>&#xA;It can then proceed to use the instance to create an authentication connection.&#xA;&lt;p>&#xA;Similarly, a server gets a SASL server by using code that looks as follows:&#xA;&lt;blockquote>&lt;pre>&#xA;SaslServer ss = Sasl.createSaslServer(mechanism,&#xA;protocol, serverName, props, callbackHandler);&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@since 1.5&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_118363_10517"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316131_289667_10529" name="SaslServer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_8864_10531" body="Performs SASL authentication as a server.&#xA;&lt;p>&#xA;A server such an LDAP server gets an instance of this&#xA;class in order to perform authentication defined by a specific SASL&#xA;mechanism. Invoking methods on the &lt;tt>SaslServer&lt;/tt> instance&#xA;generates challenges according to the SASL&#xA;mechanism implemented by the &lt;tt>SaslServer&lt;/tt>.&#xA;As the authentication proceeds, the instance&#xA;encapsulates the state of a SASL server's authentication exchange.&#xA;&lt;p>&#xA;Here's an example of how an LDAP server might use a &lt;tt>SaslServer&lt;/tt>.&#xA;It first gets an instance of a &lt;tt>SaslServer&lt;/tt> for the SASL mechanism&#xA;requested by the client:&#xA;&lt;blockquote>&lt;pre>&#xA;SaslServer ss = Sasl.createSaslServer(mechanism,&#xA;&quot;ldap&quot;, myFQDN, props, callbackHandler);&#xA;&lt;/pre>&lt;/blockquote>&#xA;It can then proceed to use the server for authentication.&#xA;For example, suppose the LDAP server received an LDAP BIND request&#xA;containing the name of the SASL mechanism and an (optional) initial&#xA;response. It then might use the server as follows:&#xA;&lt;blockquote>&lt;pre>&#xA;while (!ss.isComplete()) {&#xA;try {&#xA;byte[] challenge = ss.evaluateResponse(response);&#xA;if (ss.isComplete()) {&#xA;status = ldap.sendBindResponse(mechanism, challenge, SUCCESS);&#xA;} else {&#xA;status = ldap.sendBindResponse(mechanism, challenge,&#xA;SASL_BIND_IN_PROGRESS);&#xA;response = ldap.readBindRequest();&#xA;}&#xA;} catch (SaslException e) {&#xA;status = ldap.sendErrorResponse(e);&#xA;break;&#xA;}&#xA;}&#xA;if (ss.isComplete() &amp;&amp; status == SUCCESS) {&#xA;String qop = (String) sc.getNegotiatedProperty(Sasl.QOP);&#xA;if (qop != null&#xA;&amp;&amp; (qop.equalsIgnoreCase(&quot;auth-int&quot;)&#xA;|| qop.equalsIgnoreCase(&quot;auth-conf&quot;))) {&#xA;&#xA;Use SaslServer.wrap() and SaslServer.unwrap() for future&#xA;communication with client&#xA;ldap.in = new SecureInputStream(ss, ldap.in);&#xA;ldap.out = new SecureOutputStream(ss, ldap.out);&#xA;}&#xA;}&#xA;&lt;/pre>&lt;/blockquote>&#xA;&#xA;@since 1.5&#xA;&#xA;@see Sasl&#xA;@see SaslServerFactory&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_289667_10529"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928316131_140111_10523" name="SaslClientFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316131_531777_10525" body="An interface for creating instances of &lt;tt>SaslClient&lt;/tt>.&#xA;A class that implements this interface&#xA;must be thread-safe and handle multiple simultaneous&#xA;requests. It must also have a public constructor that accepts no&#xA;argument.&#xA;&lt;p>&#xA;This interface is not normally accessed directly by a client, which will use the&#xA;&lt;tt>Sasl&lt;/tt> static methods&#xA;instead. However, a particular environment may provide and install a&#xA;new or different &lt;tt>SaslClientFactory&lt;/tt>.&#xA;&#xA;@since 1.5&#xA;&#xA;@see SaslClient&#xA;@see Sasl&#xA;&#xA;@author Rosanna Lee&#xA;@author Rob Weltman&#xA;" annotatedElement="_10_5_622020d_1132928316131_140111_10523"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_581421_20682" name="auth">
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_988589_20709" name="kerberos">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_63594_9603" name="KrbServicePermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928323341_597659_16547" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928323341_207269_16548" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_597659_16547" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_63594_9603" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_774235_9597" name="KerberosTicket" clientDependency="_10_5_622020d_1132928323341_990289_16541 _10_5_622020d_1132928323341_948876_16539 _10_5_622020d_1132928323341_595894_16540">
                <ownedComment xmi:id="_10_5_622020d_1132928316010_846977_10433" body="This class encapsulates a Kerberos ticket and associated&#xA;information as viewed from the client's point of view. It captures all&#xA;information that the Key Distribution Center (KDC) sends to the client&#xA;in the reply message KDC-REP defined in the Kerberos Protocol&#xA;Specification (&lt;a href=http://www.ietf.org/rfc/rfc1510.txt>RFC 1510&lt;/a>).&#xA;&lt;p>&#xA;All Kerberos JAAS login modules that authenticate a user to a KDC should&#xA;use this class. Where available, the login module might even read this&#xA;information from a ticket cache in the operating system instead of&#xA;directly communicating with the KDC. During the commit phase of the JAAS&#xA;authentication process, the JAAS login module should instantiate this&#xA;class and store the instance in the private credential set of a&#xA;{@link javax.security.auth.Subject Subject}.&lt;p>&#xA;&#xA;It might be necessary for the application to be granted a&#xA;{@link javax.security.auth.PrivateCredentialPermission&#xA;PrivateCredentialPermission} if it needs to access a KerberosTicket&#xA;instance from a Subject. This permission is not needed when the&#xA;application depends on the default JGSS Kerberos mechanism to access the&#xA;KerberosTicket. In that case, however, the application will need an&#xA;appropriate&#xA;{@link javax.security.auth.kerberos.ServicePermission ServicePermission}.&#xA;&lt;p>&#xA;Note that this class is applicable to both ticket granting tickets and&#xA;other regular service tickets. A ticket granting ticket is just a&#xA;special case of a more generalized service ticket.&#xA;&#xA;@see javax.security.auth.Subject&#xA;@see javax.security.auth.PrivateCredentialPermission&#xA;@see javax.security.auth.login.LoginContext&#xA;@see org.ietf.jgss.GSSCredential&#xA;@see org.ietf.jgss.GSSManager&#xA;&#xA;@author Mayank Upadhyay&#xA;@version 1.16, 06/02/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_774235_9597"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_948876_16539" name="" supplier="_9_5_f720368_1110473546737_590916_9627" client="_9_5_f720368_1110473546737_774235_9597" contract="_9_5_f720368_1110473546737_590916_9627"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_595894_16540" name="" supplier="_9_5_f720368_1110473546737_622091_9635" client="_9_5_f720368_1110473546737_774235_9597" contract="_9_5_f720368_1110473546737_622091_9635"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_990289_16541" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_774235_9597" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_674409_9601" name="ServicePermission" clientDependency="_10_5_622020d_1132928323341_386577_16545" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_909331_10437" body="This class is used to protect Kerberos services and the&#xA;credentials necessary to access those services. There is a one to&#xA;one mapping of a service principal and the credentials necessary&#xA;to access the service. Therefore granting access to a service&#xA;principal implicitly grants access to the credential necessary to&#xA;establish a security context with the service principal. This&#xA;applies regardless of whether the credentials are in a cache&#xA;or acquired via an exchange with the KDC. The credential can&#xA;be either a ticket granting ticket, a service ticket or a secret&#xA;key from a key table.&#xA;&lt;p>&#xA;A ServicePermission contains a service principal name and&#xA;a list of actions which specify the context the credential can be&#xA;used within.&#xA;&lt;p>&#xA;The service principal name is the canonical name of the&#xA;&lt;code>KereberosPrincipal&lt;/code> supplying the service, that is&#xA;the KerberosPrincipal represents a Kerberos service&#xA;principal. This name is treated in a case sensitive manner.&#xA;An asterisk may appear by itself, to signify any service principal.&#xA;&lt;p>&#xA;Granting this permission implies that the caller can use a cached&#xA;credential (TGT, service ticket or secret key) within the context&#xA;designated by the action. In the case of the TGT, granting this&#xA;permission also implies that the TGT can be obtained by an&#xA;Authentication Service exchange.&#xA;&lt;p>&#xA;The possible actions are:&#xA;&lt;p>&#xA;&lt;pre>&#xA;initiate -              allow the caller to use the credential to&#xA;initiate a security context with a service&#xA;principal.&#xA;&#xA;accept -                allow the caller to use the credential to&#xA;accept security context as a particular&#xA;principal.&#xA;&lt;/pre>&#xA;&#xA;For example, to specify the permission to access to the TGT to&#xA;initiate a security context the permission is constructed as follows:&#xA;&lt;p>&#xA;&lt;pre>&#xA;ServicePermission(&quot;krbtgt/EXAMPLE.COM@EXAMPLE.COM&quot;, &quot;initiate&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;To obtain a service ticket to initiate a context with the &quot;host&quot;&#xA;service the permission is constructed as follows:&#xA;&lt;pre>&#xA;ServicePermission(&quot;host/foo.example.com@EXAMPLE.COM&quot;, &quot;initiate&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;For a Kerberized server the action is &quot;accept&quot;. For example, the permission&#xA;necessary to access and use the secret key of the  Kerberized &quot;host&quot;&#xA;service (telnet and the likes)  would be constructed as follows:&#xA;&lt;p>&#xA;&lt;pre>&#xA;ServicePermission(&quot;host/foo.example.com@EXAMPLE.COM&quot;, &quot;accept&quot;);&#xA;&lt;/pre>&#xA;&#xA;@since JDK1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_674409_9601"/>
                <generalization xmi:id="_10_5_622020d_1132928323341_494450_16546" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_386577_16545" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_674409_9601" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_608770_9593" name="KerberosKey" clientDependency="_10_5_622020d_1132928323341_417708_16535 _10_5_622020d_1132928323341_501277_16536">
                <ownedComment xmi:id="_10_5_622020d_1132928316010_429971_10429" body="This class encapsulates a long term secret key for a Kerberos&#xA;principal.&lt;p>&#xA;&#xA;All Kerberos JAAS login modules that obtain a principal's password and&#xA;generate the secret key from it should use this class. Where available,&#xA;the login module might even read this secret key directly from a&#xA;Kerberos &quot;keytab&quot;. Sometimes, such as when authenticating a server in&#xA;the absence of user-to-user authentication, the login module will store&#xA;an instance of this class in the private credential set of a&#xA;{@link javax.security.auth.Subject Subject} during the commit phase of the&#xA;authentication process.&lt;p>&#xA;&#xA;It might be necessary for the application to be granted a&#xA;{@link javax.security.auth.PrivateCredentialPermission&#xA;PrivateCredentialPermission} if it needs to access the KerberosKey&#xA;instance from a Subject. This permission is not needed when the&#xA;application depends on the default JGSS Kerberos mechanism to access the&#xA;KerberosKey. In that case, however, the application will need an&#xA;appropriate&#xA;{@link javax.security.auth.kerberos.ServicePermission ServicePermission}.&#xA;&#xA;@author Mayank Upadhyay&#xA;@version 1.17, 01/13/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_608770_9593"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_417708_16535" name="" supplier="_9_5_f720368_1110473548065_611271_20721" client="_9_5_f720368_1110473546737_608770_9593" contract="_9_5_f720368_1110473548065_611271_20721"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_501277_16536" name="" supplier="_9_5_f720368_1110473546737_590916_9627" client="_9_5_f720368_1110473546737_608770_9593" contract="_9_5_f720368_1110473546737_590916_9627"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_573521_9595" name="KerberosPrincipal" clientDependency="_10_5_622020d_1132928323341_947667_16537 _10_5_622020d_1132928323341_345713_16538" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316010_586731_10431" body="This class encapsulates a Kerberos principal.&#xA;&#xA;@author Mayank Upadhyay&#xA;@version 1.18, 02/03/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_573521_9595"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_947667_16537" name="" supplier="_9_5_f720368_1110473546690_967636_8503" client="_9_5_f720368_1110473546737_573521_9595" contract="_9_5_f720368_1110473546690_967636_8503"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_345713_16538" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_573521_9595" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_989832_9589" name="DelegationPermission" clientDependency="_10_5_622020d_1132928323341_78752_16531" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316010_45438_10426" body="This class is used to restrict the usage of the Kerberos&#xA;delegation model, ie: forwardable and proxiable tickets.&#xA;&lt;p>&#xA;The target name of this &lt;code>Permission&lt;/code> specifies a pair of&#xA;kerberos service principals. The first is the subordinate service principal&#xA;being entrusted to use the TGT. The second service principal designates&#xA;the target service the subordinate service principal is to&#xA;interact with on behalf of the initiating KerberosPrincipal. This&#xA;latter service principal is specified to restrict the use of a&#xA;proxiable ticket.&#xA;&lt;p>&#xA;For example, to specify the &quot;host&quot; service use of a forwardable TGT the&#xA;target permission is specified as follows:&#xA;&lt;p>&#xA;&lt;pre>&#xA;DelegationPermission(&quot;\&quot;host/foo.example.com@EXAMPLE.COM\&quot; \&quot;krbtgt/EXAMPLE.COM@EXAMPLE.COM\&quot;&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;To give the &quot;backup&quot; service a proxiable nfs service ticket the target permission&#xA;might be specified:&#xA;&lt;p>&#xA;&lt;pre>&#xA;DelegationPermission(&quot;\&quot;backup/bar.example.com@EXAMPLE.COM\&quot; \&quot;nfs/home.EXAMPLE.COM@EXAMPLE.COM\&quot;&quot;);&#xA;&lt;/pre>&#xA;&#xA;@since JDK1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_989832_9589"/>
                <generalization xmi:id="_10_5_622020d_1132928323341_281595_16532" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_78752_16531" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_989832_9589" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_670731_9591" name="KrbDelegationPermissionCollection" visibility="package" clientDependency="_10_5_622020d_1132928323341_435982_16533" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928323341_530483_16534" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_435982_16533" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_670731_9591" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_802503_9599" name="KeyImpl" visibility="package" clientDependency="_10_5_622020d_1132928323341_796424_16543 _10_5_622020d_1132928323341_298197_16542 _10_5_622020d_1132928323341_54418_16544">
                <ownedComment xmi:id="_10_5_622020d_1132928316010_871031_10435" body="This class encapsulates a Kerberos encryption key. It is not associated&#xA;with a principal and may represent an ephemeral session key.&#xA;&#xA;@author Mayank Upadhyay&#xA;@version 1.13, 04/01/04&#xA;@since 1.4&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473546737_802503_9599"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_298197_16542" name="" supplier="_9_5_f720368_1110473548065_611271_20721" client="_9_5_f720368_1110473546737_802503_9599" contract="_9_5_f720368_1110473548065_611271_20721"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_796424_16543" name="" supplier="_9_5_f720368_1110473546737_590916_9627" client="_9_5_f720368_1110473546737_802503_9599" contract="_9_5_f720368_1110473546737_590916_9627"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_54418_16544" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_802503_9599" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_242965_9637" name="RefreshFailedException">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_562424_10494" body="Signals that a &lt;code>refresh&lt;/code> operation failed.&#xA;&#xA;&lt;p> This exception is thrown by credentials implementing&#xA;the &lt;code>Refreshable&lt;/code> interface when the &lt;code>refresh&lt;/code>&#xA;method fails.&#xA;&#xA;@version 1.8, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_242965_9637"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_126140_16566" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_99096_20735" name="login">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_477253_9609" name="Configuration" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316050_32133_10454" body="&lt;p> This is an abstract class for representing the configuration of&#xA;LoginModules under an application.  The &lt;code>Configuration&lt;/code> specifies&#xA;which LoginModules should be used for a particular application, and in what&#xA;order the LoginModules should be invoked.&#xA;This abstract class needs to be subclassed to provide an implementation&#xA;which reads and loads the actual &lt;code>Configuration&lt;/code>.&#xA;&#xA;&lt;p> A login configuration contains the following information.&#xA;Note that this example only represents the default syntax for the&#xA;&lt;code>Configuration&lt;/code>.  Subclass implementations of this class&#xA;may implement alternative syntaxes and may retrieve the&#xA;&lt;code>Configuration&lt;/code> from any source such as files, databases,&#xA;or servers.&#xA;&#xA;&lt;pre>&#xA;Name {&#xA;ModuleClass  Flag    ModuleOptions;&#xA;ModuleClass  Flag    ModuleOptions;&#xA;ModuleClass  Flag    ModuleOptions;&#xA;};&#xA;Name {&#xA;ModuleClass  Flag    ModuleOptions;&#xA;ModuleClass  Flag    ModuleOptions;&#xA;};&#xA;other {&#xA;ModuleClass  Flag    ModuleOptions;&#xA;ModuleClass  Flag    ModuleOptions;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;&lt;p> Each entry in the &lt;code>Configuration&lt;/code> is indexed via an&#xA;application name, &lt;i>Name&lt;/i>, and contains a list of&#xA;LoginModules configured for that application.  Each &lt;code>LoginModule&lt;/code>&#xA;is specified via its fully qualified class name.&#xA;Authentication proceeds down the module list in the exact order specified.&#xA;If an application does not have specific entry,&#xA;it defaults to the specific entry for &quot;&lt;i>other&lt;/i>&quot;.&#xA;&#xA;&lt;p> The &lt;i>Flag&lt;/i> value controls the overall behavior as authentication&#xA;proceeds down the stack.  The following represents a description of the&#xA;valid values for &lt;i>Flag&lt;/i> and their respective semantics:&#xA;&#xA;&lt;pre>&#xA;1) Required     - The &lt;code>LoginModule&lt;/code> is required to succeed.&#xA;If it succeeds or fails, authentication still continues&#xA;to proceed down the &lt;code>LoginModule&lt;/code> list.&#xA;&#xA;2) Requisite    - The &lt;code>LoginModule&lt;/code> is required to succeed.&#xA;If it succeeds, authentication continues down the&#xA;&lt;code>LoginModule&lt;/code> list.  If it fails,&#xA;control immediately returns to the application&#xA;(authentication does not proceed down the&#xA;&lt;code>LoginModule&lt;/code> list).&#xA;&#xA;3) Sufficient   - The &lt;code>LoginModule&lt;/code> is not required to&#xA;succeed.  If it does succeed, control immediately&#xA;returns to the application (authentication does not&#xA;proceed down the &lt;code>LoginModule&lt;/code> list).&#xA;If it fails, authentication continues down the&#xA;&lt;code>LoginModule&lt;/code> list.&#xA;&#xA;4) Optional     - The &lt;code>LoginModule&lt;/code> is not required to&#xA;succeed.  If it succeeds or fails,&#xA;authentication still continues to proceed down the&#xA;&lt;code>LoginModule&lt;/code> list.&#xA;&lt;/pre>&#xA;&#xA;&lt;p> The overall authentication succeeds only if all &lt;i>Required&lt;/i> and&#xA;&lt;i>Requisite&lt;/i> LoginModules succeed.  If a &lt;i>Sufficient&lt;/i>&#xA;&lt;code>LoginModule&lt;/code> is configured and succeeds,&#xA;then only the &lt;i>Required&lt;/i> and &lt;i>Requisite&lt;/i> LoginModules prior to&#xA;that &lt;i>Sufficient&lt;/i> &lt;code>LoginModule&lt;/code> need to have succeeded for&#xA;the overall authentication to succeed. If no &lt;i>Required&lt;/i> or&#xA;&lt;i>Requisite&lt;/i> LoginModules are configured for an application,&#xA;then at least one &lt;i>Sufficient&lt;/i> or &lt;i>Optional&lt;/i>&#xA;&lt;code>LoginModule&lt;/code> must succeed.&#xA;&#xA;&lt;p> &lt;i>ModuleOptions&lt;/i> is a space separated list of&#xA;&lt;code>LoginModule&lt;/code>-specific values which are passed directly to&#xA;the underlying LoginModules.  Options are defined by the&#xA;&lt;code>LoginModule&lt;/code> itself, and control the behavior within it.&#xA;For example, a &lt;code>LoginModule&lt;/code> may define options to support&#xA;debugging/testing capabilities.  The correct way to specify options in the&#xA;&lt;code>Configuration&lt;/code> is by using the following key-value pairing:&#xA;&lt;i>debug=&quot;true&quot;&lt;/i>.  The key and value should be separated by an&#xA;'equals' symbol, and the value should be surrounded by double quotes.&#xA;If a String in the form, ${system.property}, occurs in the value,&#xA;it will be expanded to the value of the system property.&#xA;Note that there is no limit to the number of&#xA;options a &lt;code>LoginModule&lt;/code> may define.&#xA;&#xA;&lt;p> The following represents an example &lt;code>Configuration&lt;/code> entry&#xA;based on the syntax above:&#xA;&#xA;&lt;pre>&#xA;Login {&#xA;com.sun.security.auth.module.UnixLoginModule required;&#xA;com.sun.security.auth.module.Krb5LoginModule optional&#xA;useTicketCache=&quot;true&quot;&#xA;ticketCache=&quot;${user.home}${/}tickets&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;&lt;p> This &lt;code>Configuration&lt;/code> specifies that an application named,&#xA;&quot;Login&quot;, requires users to first authenticate to the&#xA;&lt;i>com.sun.security.auth.module.UnixLoginModule&lt;/i>, which is&#xA;required to succeed.  Even if the &lt;i>UnixLoginModule&lt;/i>&#xA;authentication fails, the&#xA;&lt;i>com.sun.security.auth.module.Krb5LoginModule&lt;/i>&#xA;still gets invoked.  This helps hide the source of failure.&#xA;Since the &lt;i>Krb5LoginModule&lt;/i> is &lt;i>Optional&lt;/i>, the overall&#xA;authentication succeeds only if the &lt;i>UnixLoginModule&lt;/i>&#xA;(&lt;i>Required&lt;/i>) succeeds.&#xA;&#xA;&lt;p> Also note that the LoginModule-specific options,&#xA;&lt;i>useTicketCache=&quot;true&quot;&lt;/i> and&#xA;&lt;i>ticketCache=${user.home}${/}tickets&quot;&lt;/i>,&#xA;are passed to the &lt;i>Krb5LoginModule&lt;/i>.&#xA;These options instruct the &lt;i>Krb5LoginModule&lt;/i> to&#xA;use the ticket cache at the specified location.&#xA;The system properties, &lt;i>user.home&lt;/i> and &lt;i>/&lt;/i>&#xA;(file.separator), are expanded to their respective values.&#xA;&#xA;&lt;p> The default Configuration implementation can be changed by setting the&#xA;value of the &quot;login.configuration.provider&quot; security property (in the Java&#xA;security properties file) to the fully qualified name of&#xA;the desired Configuration implementation class.&#xA;The Java security properties file is located in the file named&#xA;&lt;JAVA_HOME>/lib/security/java.security, where &lt;JAVA_HOME>&#xA;refers to the directory where the JDK was installed.&#xA;&#xA;@version 1.57, 12/19/03&#xA;@see javax.security.auth.login.LoginContext&#xA;" annotatedElement="_9_5_f720368_1110473546737_477253_9609"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_564779_9613" name="FailedLoginException">
                <ownedComment xmi:id="_10_5_622020d_1132928316060_449564_10464" body="Signals that user authentication failed.&#xA;&#xA;&lt;p> This exception is thrown by LoginModules if authentication failed.&#xA;For example, a &lt;code>LoginModule&lt;/code> throws this exception if&#xA;the user entered an incorrect password.&#xA;&#xA;@version 1.15, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_564779_9613"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_499512_16556" isSubstitutable="true" general="_9_5_f720368_1110473546737_446079_9617"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_446079_9617" name="LoginException">
                <ownedComment xmi:id="_10_5_622020d_1132928316070_521665_10470" body="This is the basic login exception.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@see javax.security.auth.login.LoginContext&#xA;" annotatedElement="_9_5_f720368_1110473546737_446079_9617"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_212646_16558" isSubstitutable="true" general="_9_5_f720368_1110473546674_120188_8445"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_280512_9611" name="CredentialExpiredException">
                <ownedComment xmi:id="_10_5_622020d_1132928316050_660929_10459" body="Signals that a &lt;code>Credential&lt;/code> has expired.&#xA;&#xA;&lt;p> This exception is thrown by LoginModules when they determine&#xA;that a &lt;code>Credential&lt;/code> has expired.&#xA;For example, a &lt;code>LoginModule&lt;/code> authenticating a user&#xA;in its &lt;code>login&lt;/code> method may determine that the user's&#xA;password, although entered correctly, has expired.  In this case&#xA;the &lt;code>LoginModule&lt;/code> throws this exception to notify&#xA;the application.  The application can then take the appropriate&#xA;steps to assist the user in updating the password.&#xA;&#xA;@version 1.17, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_280512_9611"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_962166_16554" isSubstitutable="true" general="_10_5_622020d_1132928316050_716778_10455"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_586438_9607" name="AppConfigurationEntry">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_814207_10452" body="This class represents a single &lt;code>LoginModule&lt;/code> entry&#xA;configured for the application specified in the&#xA;&lt;code>getAppConfigurationEntry(String appName)&lt;/code>&#xA;method in the &lt;code>Configuration&lt;/code> class.  Each respective&#xA;&lt;code>AppConfigurationEntry&lt;/code> contains a &lt;code>LoginModule&lt;/code> name,&#xA;a control flag (specifying whether this &lt;code>LoginModule&lt;/code> is&#xA;REQUIRED, REQUISITE, SUFFICIENT, or OPTIONAL), and LoginModule-specific&#xA;options.  Please refer to the &lt;code>Configuration&lt;/code> class for&#xA;more information on the different control flags and their semantics.&#xA;&#xA;@version 1.34, 05/05/04&#xA;@see javax.security.auth.login.Configuration&#xA;" annotatedElement="_9_5_f720368_1110473546737_586438_9607"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548065_950199_20738" name="LoginModuleControlFlag">
                  <ownedComment xmi:id="_10_5_622020d_1132928316040_537_10450" body="This class represents whether or not a &lt;code>LoginModule&lt;/code>&#xA;is REQUIRED, REQUISITE, SUFFICIENT or OPTIONAL.&#xA;" annotatedElement="_9_5_f720368_1110473548065_950199_20738"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316040_280190_10447" name="AccountNotFoundException">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_260039_10449" body="Signals that an account was not found.&#xA;&#xA;&lt;p> This exception may be thrown by a LoginModule if it is unable&#xA;to locate an account necessary to perform authentication.&#xA;&#xA;@version 1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928316040_280190_10447"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_231418_16552" isSubstitutable="true" general="_10_5_622020d_1132928316040_535842_10439"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_216511_9605" name="AccountExpiredException">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_696773_10443" body="Signals that a user account has expired.&#xA;&#xA;&lt;p> This exception is thrown by LoginModules when they determine&#xA;that an account has expired.  For example, a &lt;code>LoginModule&lt;/code>,&#xA;after successfully authenticating a user, may determine that the&#xA;user's account has expired.  In this case the &lt;code>LoginModule&lt;/code>&#xA;throws this exception to notify the application.  The application can&#xA;then take the appropriate steps to notify the user.&#xA;&#xA;@version 1.18, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_216511_9605"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_909055_16550" isSubstitutable="true" general="_10_5_622020d_1132928316040_535842_10439"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316040_911535_10444" name="AccountLockedException">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_645924_10446" body="Signals that an account was locked.&#xA;&#xA;&lt;p> This exception may be thrown by a LoginModule if it&#xA;determines that authentication is being attempted on a&#xA;locked account.&#xA;&#xA;@version 1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928316040_911535_10444"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_165063_16551" isSubstitutable="true" general="_10_5_622020d_1132928316040_535842_10439"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316050_716778_10455" name="CredentialException">
                <ownedComment xmi:id="_10_5_622020d_1132928316050_257467_10457" body="A generic credential exception.&#xA;&#xA;@version 1.3, 02/03/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928316050_716778_10455"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_739948_16553" isSubstitutable="true" general="_9_5_f720368_1110473546737_446079_9617"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316050_569743_10460" name="CredentialNotFoundException">
                <ownedComment xmi:id="_10_5_622020d_1132928316060_257237_10462" body="Signals that a credential was not found.&#xA;&#xA;&lt;p> This exception may be thrown by a LoginModule if it is unable&#xA;to locate a credential necessary to perform authentication.&#xA;&#xA;@version 1.2, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928316050_569743_10460"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_713561_16555" isSubstitutable="true" general="_10_5_622020d_1132928316050_716778_10455"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316040_535842_10439" name="AccountException">
                <ownedComment xmi:id="_10_5_622020d_1132928316040_950381_10441" body="A generic account exception.&#xA;&#xA;@version 1.3, 02/03/04&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928316040_535842_10439"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_842545_16549" isSubstitutable="true" general="_9_5_f720368_1110473546737_446079_9617"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_944817_9615" name="LoginContext">
                <ownedComment xmi:id="_10_5_622020d_1132928316070_704954_10468" body="&lt;p> The &lt;code>LoginContext&lt;/code> class describes the basic methods used&#xA;to authenticate Subjects and provides a way to develop an&#xA;application independent of the underlying authentication technology.&#xA;A &lt;code>Configuration&lt;/code> specifies the authentication technology, or&#xA;&lt;code>LoginModule&lt;/code>, to be used with a particular application.&#xA;Different LoginModules can be plugged in under an application&#xA;without requiring any modifications to the application itself.&#xA;&#xA;&lt;p> In addition to supporting &lt;i>pluggable&lt;/i> authentication, this class&#xA;also supports the notion of &lt;i>stacked&lt;/i> authentication.&#xA;Applications may be configured to use more than one&#xA;LoginModule.  For example, one could&#xA;configure both a Kerberos LoginModule and a smart card&#xA;LoginModule under an application.&#xA;&#xA;&lt;p> A typical caller instantiates a LoginContext with&#xA;a &lt;i>name&lt;/i> and a &lt;code>CallbackHandler&lt;/code>.&#xA;LoginContext uses the &lt;i>name&lt;/i> as the index into a&#xA;Configuration to determine which LoginModules should be used,&#xA;and which ones must succeed in order for the overall authentication to&#xA;succeed.  The &lt;code>CallbackHandler&lt;/code> is passed to the underlying&#xA;LoginModules so they may communicate and interact with users&#xA;(prompting for a username and password via a graphical user interface,&#xA;for example).&#xA;&#xA;&lt;p> Once the caller has instantiated a LoginContext,&#xA;it invokes the &lt;code>login&lt;/code> method to authenticate&#xA;a &lt;code>Subject&lt;/code>.  The &lt;code>login&lt;/code> method invokes&#xA;the configured modules to perform their respective types of authentication&#xA;(username/password, smart card pin verification, etc.).&#xA;Note that the LoginModules will not attempt authentication retries nor&#xA;introduce delays if the authentication fails.&#xA;Such tasks belong to the LoginContext caller.&#xA;&#xA;&lt;p> If the &lt;code>login&lt;/code> method returns without&#xA;throwing an exception, then the overall authentication succeeded.&#xA;The caller can then retrieve&#xA;the newly authenticated Subject by invoking the&#xA;&lt;code>getSubject&lt;/code> method.  Principals and Credentials associated&#xA;with the Subject may be retrieved by invoking the Subject's&#xA;respective &lt;code>getPrincipals&lt;/code>, &lt;code>getPublicCredentials&lt;/code>,&#xA;and &lt;code>getPrivateCredentials&lt;/code> methods.&#xA;&#xA;&lt;p> To logout the Subject, the caller calls&#xA;the &lt;code>logout&lt;/code> method.  As with the &lt;code>login&lt;/code>&#xA;method, this &lt;code>logout&lt;/code> method invokes the &lt;code>logout&lt;/code>&#xA;method for the configured modules.&#xA;&#xA;&lt;p> A LoginContext should not be used to authenticate&#xA;more than one Subject.  A separate LoginContext&#xA;should be used to authenticate each different Subject.&#xA;&#xA;&lt;p> The following documentation applies to all LoginContext constructors:&#xA;&lt;ol>&#xA;&#xA;&lt;li> &lt;code>Subject&lt;/code>&#xA;&lt;ul>&#xA;&lt;li> If the constructor has a Subject&#xA;input parameter, the LoginContext uses the caller-specified&#xA;Subject object.&#xA;&lt;p>&#xA;&lt;li> If the caller specifies a &lt;code>null&lt;/code> Subject&#xA;and a &lt;code>null&lt;/code> value is permitted,&#xA;the LoginContext instantiates a new Subject.&#xA;&lt;p>&#xA;&lt;li> If the constructor does &lt;b>not&lt;/b> have a Subject&#xA;input parameter, the LoginContext instantiates a new Subject.&#xA;&lt;p>&#xA;&lt;/ul>&#xA;&#xA;&lt;li> &lt;code>Configuration&lt;/code>&#xA;&lt;ul>&#xA;&lt;li> If the constructor has a Configuration&#xA;input parameter and the caller specifies a non-null Configuration,&#xA;the LoginContext uses the caller-specified Configuration.&#xA;&lt;p>&#xA;If the constructor does &lt;b>not&lt;/b> have a Configuration&#xA;input parameter, or if the caller specifies a &lt;code>null&lt;/code>&#xA;Configuration object, the constructor uses the following call to&#xA;get the installed Configuration:&#xA;&lt;pre>&#xA;config = Configuration.getConfiguration();&#xA;&lt;/pre>&#xA;For both cases,&#xA;the &lt;i>name&lt;/i> argument given to the constructor is passed to the&#xA;&lt;code>Configuration.getAppConfigurationEntry&lt;/code> method.&#xA;If the Configuration has no entries for the specified &lt;i>name&lt;/i>,&#xA;then the &lt;code>LoginContext&lt;/code> calls&#xA;&lt;code>getAppConfigurationEntry&lt;/code> with the name, &quot;&lt;i>other&lt;/i>&quot;&#xA;(the default entry name).  If there is no entry for &quot;&lt;i>other&lt;/i>&quot;,&#xA;then a &lt;code>LoginException&lt;/code> is thrown.&#xA;&lt;p>&#xA;&lt;li> When LoginContext uses the installed Configuration, the caller&#xA;requires the createLoginContext.&lt;em>name&lt;/em> and possibly&#xA;createLoginContext.other AuthPermissions. Furthermore, the&#xA;LoginContext will invoke configured modules from within an&#xA;&lt;code>AccessController.doPrivileged&lt;/code> call so that modules that&#xA;perform security-sensitive tasks (such as connecting to remote hosts,&#xA;and updating the Subject) will require the respective permissions, but&#xA;the callers of the LoginContext will not require those permissions.&#xA;&lt;p>&#xA;&lt;li> When LoginContext uses a caller-specified Configuration, the caller&#xA;does not require any createLoginContext AuthPermission.  The LoginContext&#xA;saves the &lt;code>AccessControlContext&lt;/code> for the caller,&#xA;and invokes the configured modules from within an&#xA;&lt;tt>AccessController.doPrivileged&lt;/tt> call constrained by that context.&#xA;This means the caller context (stored when the LoginContext was created)&#xA;must have sufficient permissions to perform any security-sensitive tasks&#xA;that the modules may perform.&#xA;&lt;p>&#xA;&lt;/ul>&#xA;&#xA;&lt;li> &lt;code>CallbackHandler&lt;/code>&#xA;&lt;ul>&#xA;&lt;li> If the constructor has a CallbackHandler&#xA;input parameter, the LoginContext uses the caller-specified&#xA;CallbackHandler object.&#xA;&lt;p>&#xA;&lt;li> If the constructor does &lt;b>not&lt;/b> have a CallbackHandler&#xA;input parameter, or if the caller specifies a &lt;code>null&lt;/code>&#xA;CallbackHandler object (and a &lt;code>null&lt;/code> value is permitted),&#xA;the LoginContext queries the&#xA;&lt;i>auth.login.defaultCallbackHandler&lt;/i> security property&#xA;for the fully qualified class name of a default handler implementation.&#xA;If the security property is not set,&#xA;then the underlying modules will not have a&#xA;CallbackHandler for use in communicating&#xA;with users.  The caller thus assumes that the configured&#xA;modules have alternative means for authenticating the user.&#xA;&#xA;&lt;p>&#xA;&lt;li> When the LoginContext uses the installed Configuration (instead of&#xA;a caller-specified Configuration, see above),&#xA;then this LoginContext must wrap any&#xA;caller-specified or default CallbackHandler implementation&#xA;in a new CallbackHandler implementation&#xA;whose &lt;code>handle&lt;/code> method implementation invokes the&#xA;specified CallbackHandler's &lt;code>handle&lt;/code> method in a&#xA;&lt;code>java.security.AccessController.doPrivileged&lt;/code> call&#xA;constrained by the caller's current &lt;code>AccessControlContext&lt;/code>.&#xA;&lt;/ul>&#xA;&lt;/ol>&#xA;&#xA;&lt;p> Note that Security Properties&#xA;(such as &lt;code>auth.login.defaultCallbackHandler&lt;/code>)&#xA;can be set programmatically via the&#xA;&lt;code>java.security.Security&lt;/code> class,&#xA;or statically in the Java security properties file located in the&#xA;file named &lt;JAVA_HOME>/lib/security/java.security,&#xA;where &lt;JAVA_HOME> refers to the directory where the JDK&#xA;was installed.&#xA;&#xA;@version 1.98, 06/28/04&#xA;@see java.security.Security&#xA;@see javax.security.auth.AuthPermission&#xA;@see javax.security.auth.Subject&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;@see javax.security.auth.login.Configuration&#xA;@see javax.security.auth.spi.LoginModule&#xA;" annotatedElement="_9_5_f720368_1110473546737_944817_9615"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_292582_20745" name="SecureCallbackHandler" visibility="private" clientDependency="_10_5_622020d_1132928323351_736657_16557">
                  <ownedComment xmi:id="_10_5_622020d_1132928316060_266299_10465" body="Wrap the caller-specified CallbackHandler in our own&#xA;and invoke it within a privileged block, constrained by&#xA;the caller's AccessControlContext.&#xA;" annotatedElement="_9_5_f720368_1110473548081_292582_20745"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323351_736657_16557" name="" supplier="_9_5_f720368_1110473546737_150058_9571" client="_9_5_f720368_1110473548081_292582_20745" contract="_9_5_f720368_1110473546737_150058_9571"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_640239_20748" name="ModuleInfo" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928316060_444186_10466" body="LoginModule information -&#xA;incapsulates Configuration info and actual module instances&#xA;" annotatedElement="_9_5_f720368_1110473548081_640239_20748"/>
                </nestedClassifier>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_103117_9625" name="AuthPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316111_183581_10478" body="This class is for authentication permissions.&#xA;An AuthPermission contains a name&#xA;(also referred to as a &quot;target name&quot;)&#xA;but no actions list; you either have the named permission&#xA;or you don't.&#xA;&#xA;&lt;p> The target name is the name of a security configuration parameter&#xA;(see below).  Currently the AuthPermission object is used to&#xA;guard access to the Policy, Subject, LoginContext,&#xA;and Configuration objects.&#xA;&#xA;&lt;p> The possible target names for an Authentication Permission are:&#xA;&#xA;&lt;pre>&#xA;doAs -&#x9;&#x9;&#x9;allow the caller to invoke the&#xA;&lt;code>Subject.doAs&lt;/code> methods.&#xA;&#xA;doAsPrivileged -&#x9;allow the caller to invoke the&#xA;&lt;code>Subject.doAsPrivileged&lt;/code> methods.&#xA;&#xA;getSubject -&#x9;&#x9;allow for the retrieval of the&#xA;Subject(s) associated with the&#xA;current Thread.&#xA;&#xA;getSubjectFromDomainCombiner -&#x9;allow for the retrieval of the&#xA;Subject associated with the&#xA;a &lt;code>SubjectDomainCombiner&lt;/code>.&#xA;&#xA;setReadOnly -&#x9;&#x9;allow the caller to set a Subject&#xA;to be read-only.&#xA;&#xA;modifyPrincipals -&#x9;allow the caller to modify the &lt;code>Set&lt;/code>&#xA;of Principals associated with a&#xA;&lt;code>Subject&lt;/code>&#xA;&#xA;modifyPublicCredentials - allow the caller to modify the&#xA;&lt;code>Set&lt;/code> of public credentials&#xA;associated with a &lt;code>Subject&lt;/code>&#xA;&#xA;modifyPrivateCredentials - allow the caller to modify the&#xA;&lt;code>Set&lt;/code> of private credentials&#xA;associated with a &lt;code>Subject&lt;/code>&#xA;&#xA;refreshCredential -&#x9;allow code to invoke the &lt;code>refresh&lt;/code>&#xA;method on a credential which implements&#xA;the &lt;code>Refreshable&lt;/code> interface.&#xA;&#xA;destroyCredential -&#x9;allow code to invoke the &lt;code>destroy&lt;/code>&#xA;method on a credential &lt;code>object&lt;/code>&#xA;which implements the &lt;code>Destroyable&lt;/code>&#xA;interface.&#xA;&#xA;createLoginContext.{name} -  allow code to instantiate a&#xA;&lt;code>LoginContext&lt;/code> with the&#xA;specified &lt;i>name&lt;/i>.  &lt;i>name&lt;/i>&#xA;is used as the index into the installed login&#xA;&lt;code>Configuration&lt;/code>&#xA;(that returned by&#xA;&lt;code>Configuration.getConfiguration()&lt;/code>).&#xA;&lt;i>name&lt;/i> can be wildcarded (set to '*')&#xA;to allow for any name.&#xA;&#xA;getLoginConfiguration - allow for the retrieval of the system-wide&#xA;login Configuration.&#xA;&#xA;setLoginConfiguration - allow for the setting of the system-wide&#xA;login Configuration.&#xA;&#xA;refreshLoginConfiguration - allow for the refreshing of the system-wide&#xA;login Configuration.&#xA;&lt;/pre>&#xA;&#xA;&lt;p> The following target name has been deprecated in favor of&#xA;&lt;code>createLoginContext.{name}&lt;/code>.&#xA;&#xA;&lt;pre>&#xA;createLoginContext -&#x9;allow code to instantiate a&#xA;&lt;code>LoginContext&lt;/code>.&#xA;&lt;/pre>&#xA;&#xA;&lt;p> &lt;code>javax.security.auth.Policy&lt;/code> has been&#xA;deprecated in favor of &lt;code>java.security.Policy&lt;/code>.&#xA;Therefore, the following target names have also been deprecated:&#xA;&#xA;&lt;pre>&#xA;getPolicy -&#x9;&#x9;allow the caller to retrieve the system-wide&#xA;Subject-based access control policy.&#xA;&#xA;setPolicy -&#x9;&#x9;allow the caller to set the system-wide&#xA;Subject-based access control policy.&#xA;&#xA;refreshPolicy -&#x9;&#x9;allow the caller to refresh the system-wide&#xA;Subject-based access control policy.&#xA;&lt;/pre>&#xA;&#xA;@version 1.51, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_103117_9625"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_677624_16562" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_590916_9627" name="Destroyable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316111_730439_10480" body="Objects such as credentials may optionally implement this interface&#xA;to provide the capability to destroy its contents.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@see javax.security.auth.Subject&#xA;" annotatedElement="_9_5_f720368_1110473546737_590916_9627"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_24897_9641" name="SubjectDomainCombiner" clientDependency="_10_5_622020d_1132928323351_16361_16574">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_613331_10503" body="A &lt;code>SubjectDomainCombiner&lt;/code> updates ProtectionDomains&#xA;with Principals from the &lt;code>Subject&lt;/code> associated with this&#xA;&lt;code>SubjectDomainCombiner&lt;/code>.&#xA;&#xA;@version 1.45, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_24897_9641"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323351_16361_16574" name="" supplier="_9_5_f720368_1110473546674_440101_8443" client="_9_5_f720368_1110473546737_24897_9641" contract="_9_5_f720368_1110473546674_440101_8443"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_755275_20683" name="callback">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_231292_9585" name="TextOutputCallback" clientDependency="_10_5_622020d_1132928323341_814238_16528 _10_5_622020d_1132928323341_233622_16529">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_614126_10422" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>TextOutputCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to display information messages,&#xA;warning messages and error messages.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_231292_9585"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_814238_16528" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_231292_9585" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_233622_16529" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_231292_9585" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_603589_9587" name="UnsupportedCallbackException">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_223341_10424" body="Signals that a &lt;code>CallbackHandler&lt;/code> does not&#xA;recognize a particular &lt;code>Callback&lt;/code>.&#xA;&#xA;@version 1.11, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_603589_9587"/>
                <generalization xmi:id="_10_5_622020d_1132928323341_947091_16530" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_150058_9571" name="CallbackHandler" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_406403_10408" body="&lt;p> An application implements a &lt;code>CallbackHandler&lt;/code> and passes&#xA;it to underlying security services so that they may interact with&#xA;the application to retrieve specific authentication data,&#xA;such as usernames and passwords, or to display certain information,&#xA;such as error and warning messages.&#xA;&#xA;&lt;p> CallbackHandlers are implemented in an application-dependent fashion.&#xA;For example, implementations for an application with a graphical user&#xA;interface (GUI) may pop up windows to prompt for requested information&#xA;or to display error messages.  An implementation may also choose to obtain&#xA;requested information from an alternate source without asking the end user.&#xA;&#xA;&lt;p> Underlying security services make requests for different types&#xA;of information by passing individual Callbacks to the&#xA;&lt;code>CallbackHandler&lt;/code>.  The &lt;code>CallbackHandler&lt;/code>&#xA;implementation decides how to retrieve and display information&#xA;depending on the Callbacks passed to it.  For example,&#xA;if the underlying service needs a username and password to&#xA;authenticate a user, it uses a &lt;code>NameCallback&lt;/code> and&#xA;&lt;code>PasswordCallback&lt;/code>.  The &lt;code>CallbackHandler&lt;/code>&#xA;can then choose to prompt for a username and password serially,&#xA;or to prompt for both in a single window.&#xA;&#xA;&lt;p> A default &lt;code>CallbackHandler&lt;/code> class implementation&#xA;may be specified in the &lt;i>auth.login.defaultCallbackHandler&lt;/i>&#xA;security property.  The security property can be set&#xA;in the Java security properties file located in the file named&#xA;&lt;JAVA_HOME>/lib/security/java.security, where &lt;JAVA_HOME>&#xA;refers to the directory where the JDK was installed.&#xA;&#xA;&lt;p> If the security property is set to the fully qualified name of a&#xA;&lt;code>CallbackHandler&lt;/code> implementation class,&#xA;then a &lt;code>LoginContext&lt;/code> will load the specified&#xA;&lt;code>CallbackHandler&lt;/code> and pass it to the underlying LoginModules.&#xA;The &lt;code>LoginContext&lt;/code> only loads the default handler&#xA;if it was not provided one.&#xA;&#xA;&lt;p> All default handler implementations must provide a public&#xA;zero-argument constructor.&#xA;&#xA;@version 1.17, 06/28/04&#xA;" annotatedElement="_9_5_f720368_1110473546737_150058_9571"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_990239_9579" name="NameCallback" clientDependency="_10_5_622020d_1132928323341_29162_16522 _10_5_622020d_1132928323341_654729_16523">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_217228_10416" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>NameCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to retrieve name information.&#xA;&#xA;@version 1.14, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_990239_9579"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_29162_16522" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_990239_9579" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_654729_16523" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_990239_9579" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_310211_9573" name="ChoiceCallback" clientDependency="_10_5_622020d_1132928323341_213582_16516 _10_5_622020d_1132928323341_521428_16517">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_577595_10410" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>ChoiceCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to display a list of choices&#xA;and to retrieve the selected choice(s).&#xA;&#xA;@version 1.17, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_310211_9573"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_213582_16516" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_310211_9573" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_521428_16517" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_310211_9573" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_540837_9577" name="LanguageCallback" clientDependency="_10_5_622020d_1132928323341_748443_16520 _10_5_622020d_1132928323341_773309_16521">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_301690_10414" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>LanguageCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to retrieve the &lt;code>Locale&lt;/code>&#xA;used for localizing text.&#xA;&#xA;@version 1.14, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_540837_9577"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_748443_16520" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_540837_9577" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_773309_16521" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_540837_9577" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_911585_9569" name="Callback" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_321226_10406" body="&lt;p> Implementations of this interface are passed to a&#xA;&lt;code>CallbackHandler&lt;/code>, allowing underlying security services&#xA;the ability to interact with a calling application to retrieve specific&#xA;authentication data such as usernames and passwords, or to display&#xA;certain information, such as error and warning messages.&#xA;&#xA;&lt;p> &lt;code>Callback&lt;/code> implementations do not retrieve or&#xA;display the information requested by underlying security services.&#xA;&lt;code>Callback&lt;/code> implementations simply provide the means&#xA;to pass such requests to applications, and for applications,&#xA;if appropriate, to return requested information back to the&#xA;underlying security services.&#xA;&#xA;@version 1.10, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;@see javax.security.auth.callback.ChoiceCallback&#xA;@see javax.security.auth.callback.ConfirmationCallback&#xA;@see javax.security.auth.callback.LanguageCallback&#xA;@see javax.security.auth.callback.NameCallback&#xA;@see javax.security.auth.callback.PasswordCallback&#xA;@see javax.security.auth.callback.TextInputCallback&#xA;@see javax.security.auth.callback.TextOutputCallback&#xA;" annotatedElement="_9_5_f720368_1110473546737_911585_9569"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_582291_9581" name="PasswordCallback" clientDependency="_10_5_622020d_1132928323341_467697_16524 _10_5_622020d_1132928323341_948422_16525">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_182232_10418" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>PasswordCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to retrieve password information.&#xA;&#xA;@version 1.18, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_582291_9581"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_467697_16524" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_582291_9581" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_948422_16525" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_582291_9581" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_495772_9575" name="ConfirmationCallback" clientDependency="_10_5_622020d_1132928323341_265213_16519 _10_5_622020d_1132928323341_191003_16518">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_221467_10412" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>ConfirmationCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to ask for YES/NO,&#xA;OK/CANCEL, YES/NO/CANCEL or other similar confirmations.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_495772_9575"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_191003_16518" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_495772_9575" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_265213_16519" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_495772_9575" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_290829_9583" name="TextInputCallback" clientDependency="_10_5_622020d_1132928323341_704088_16526 _10_5_622020d_1132928323341_423127_16527">
                <ownedComment xmi:id="_10_5_622020d_1132928316000_240641_10420" body="&lt;p> Underlying security services instantiate and pass a&#xA;&lt;code>TextInputCallback&lt;/code> to the &lt;code>handle&lt;/code>&#xA;method of a &lt;code>CallbackHandler&lt;/code> to retrieve generic text&#xA;information.&#xA;&#xA;@version 1.14, 12/19/03&#xA;@see javax.security.auth.callback.CallbackHandler&#xA;" annotatedElement="_9_5_f720368_1110473546737_290829_9583"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_704088_16526" name="" supplier="_9_5_f720368_1110473546737_911585_9569" client="_9_5_f720368_1110473546737_290829_9583" contract="_9_5_f720368_1110473546737_911585_9569"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323341_423127_16527" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_290829_9583" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928323351_62754_16570" name="AbstractSet&lt;T>">
              <templateBinding xmi:id="_10_5_622020d_1132928323351_627788_16571" signature="_10_5_622020d_1132928310803_326819_6974">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928323351_140912_16572" formal="_10_5_622020d_1132928310803_863661_6975" actual="_10_5_622020d_1132928316121_567052_10498"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_132330_9633" name="PrivateCredentialPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_82749_10490" body="This class is used to protect access to private Credentials&#xA;belonging to a particular &lt;code>Subject&lt;/code>.  The &lt;code>Subject&lt;/code>&#xA;is represented by a Set of Principals.&#xA;&#xA;&lt;p> The target name of this &lt;code>Permission&lt;/code> specifies&#xA;a Credential class name, and a Set of Principals.&#xA;The only valid value for this Permission's actions is, &quot;read&quot;.&#xA;The target name must abide by the following syntax:&#xA;&#xA;&lt;pre>&#xA;CredentialClass {PrincipalClass &quot;PrincipalName&quot;}&#xA;&lt;/pre>&#xA;&#xA;For example, the following permission grants access to the&#xA;com.sun.PrivateCredential owned by Subjects which have&#xA;a com.sun.Principal with the name, &quot;duke&quot;.  Note that although&#xA;this example, as well as all the examples below, do not contain&#xA;Codebase, SignedBy, or Principal information in the grant statement&#xA;(for simplicity reasons), actual policy configurations should&#xA;specify that information when appropriate.&#xA;&#xA;&lt;pre>&#xA;&#xA;grant {&#xA;permission javax.security.auth.PrivateCredentialPermission&#xA;&quot;com.sun.PrivateCredential com.sun.Principal \&quot;duke\&quot;&quot;,&#xA;&quot;read&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;If CredentialClass is &quot;*&quot;, then access is granted to&#xA;all private Credentials belonging to the specified&#xA;&lt;code>Subject&lt;/code>.&#xA;If &quot;PrincipalName&quot; is &quot;*&quot;, then access is granted to the&#xA;specified Credential owned by any &lt;code>Subject&lt;/code> that has the&#xA;specified &lt;code>Principal&lt;/code> (the actual PrincipalName doesn't matter).&#xA;For example, the following grants access to the&#xA;a.b.Credential owned by any &lt;code>Subject&lt;/code> that has&#xA;an a.b.Principal.&#xA;&#xA;&lt;pre>&#xA;grant {&#xA;permission javax.security.auth.PrivateCredentialPermission&#xA;&quot;a.b.Credential a.b.Principal &quot;*&quot;&quot;,&#xA;&quot;read&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;If both the PrincipalClass and &quot;PrincipalName&quot; are &quot;*&quot;,&#xA;then access is granted to the specified Credential owned by&#xA;any &lt;code>Subject&lt;/code>.&#xA;&#xA;&lt;p> In addition, the PrincipalClass/PrincipalName pairing may be repeated:&#xA;&#xA;&lt;pre>&#xA;grant {&#xA;permission javax.security.auth.PrivateCredentialPermission&#xA;&quot;a.b.Credential a.b.Principal &quot;duke&quot; c.d.Principal &quot;dukette&quot;&quot;,&#xA;&quot;read&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;The above grants access to the private Credential, &quot;a.b.Credential&quot;,&#xA;belonging to a &lt;code>Subject&lt;/code> with at least two associated Principals:&#xA;&quot;a.b.Principal&quot; with the name, &quot;duke&quot;, and &quot;c.d.Principal&quot;, with the name,&#xA;&quot;dukette&quot;.&#xA;&#xA;@version 1.31, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_132330_9633"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_517920_16564" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_538679_20770" name="CredOwner" visibility="package" clientDependency="_10_5_622020d_1132928323351_172054_16565">
                <ownedComment xmi:id="_10_5_622020d_1132928316121_685618_10488" body="@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548081_538679_20770"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323351_172054_16565" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548081_538679_20770" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548081_233625_20757" name="spi">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_878604_9619" name="LoginModule" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316070_572077_10472" body="&lt;p> &lt;code>LoginModule&lt;/code> describes the interface&#xA;implemented by authentication technology providers.  LoginModules&#xA;are plugged in under applications to provide a particular type of&#xA;authentication.&#xA;&#xA;&lt;p> While applications write to the &lt;code>LoginContext&lt;/code> API,&#xA;authentication technology providers implement the&#xA;&lt;code>LoginModule&lt;/code> interface.&#xA;A &lt;code>Configuration&lt;/code> specifies the LoginModule(s)&#xA;to be used with a particular login application.  Therefore different&#xA;LoginModules can be plugged in under the application without&#xA;requiring any modifications to the application itself.&#xA;&#xA;&lt;p> The &lt;code>LoginContext&lt;/code> is responsible for reading the&#xA;&lt;code>Configuration&lt;/code> and instantiating the appropriate&#xA;LoginModules.  Each &lt;code>LoginModule&lt;/code> is initialized with&#xA;a &lt;code>Subject&lt;/code>, a &lt;code>CallbackHandler&lt;/code>, shared&#xA;&lt;code>LoginModule&lt;/code> state, and LoginModule-specific options.&#xA;&#xA;The &lt;code>Subject&lt;/code> represents the&#xA;&lt;code>Subject&lt;/code> currently being authenticated and is updated&#xA;with relevant Credentials if authentication succeeds.&#xA;LoginModules use the &lt;code>CallbackHandler&lt;/code> to&#xA;communicate with users.  The &lt;code>CallbackHandler&lt;/code> may be&#xA;used to prompt for usernames and passwords, for example.&#xA;Note that the &lt;code>CallbackHandler&lt;/code> may be null.  LoginModules&#xA;which absolutely require a &lt;code>CallbackHandler&lt;/code> to authenticate&#xA;the &lt;code>Subject&lt;/code> may throw a &lt;code>LoginException&lt;/code>.&#xA;LoginModules optionally use the shared state to share information&#xA;or data among themselves.&#xA;&#xA;&lt;p> The LoginModule-specific options represent the options&#xA;configured for this &lt;code>LoginModule&lt;/code> by an administrator or user&#xA;in the login &lt;code>Configuration&lt;/code>.&#xA;The options are defined by the &lt;code>LoginModule&lt;/code> itself&#xA;and control the behavior within it.  For example, a&#xA;&lt;code>LoginModule&lt;/code> may define options to support debugging/testing&#xA;capabilities.  Options are defined using a key-value syntax,&#xA;such as &lt;i>debug=true&lt;/i>.  The &lt;code>LoginModule&lt;/code>&#xA;stores the options as a &lt;code>Map&lt;/code> so that the values may&#xA;be retrieved using the key.  Note that there is no limit to the number&#xA;of options a &lt;code>LoginModule&lt;/code> chooses to define.&#xA;&#xA;&lt;p> The calling application sees the authentication process as a single&#xA;operation.  However, the authentication process within the&#xA;&lt;code>LoginModule&lt;/code> proceeds in two distinct phases.&#xA;In the first phase, the LoginModule's&#xA;&lt;code>login&lt;/code> method gets invoked by the LoginContext's&#xA;&lt;code>login&lt;/code> method.  The &lt;code>login&lt;/code>&#xA;method for the &lt;code>LoginModule&lt;/code> then performs&#xA;the actual authentication (prompt for and verify a password for example)&#xA;and saves its authentication status as private state&#xA;information.  Once finished, the LoginModule's &lt;code>login&lt;/code>&#xA;method either returns &lt;code>true&lt;/code> (if it succeeded) or&#xA;&lt;code>false&lt;/code> (if it should be ignored), or throws a&#xA;&lt;code>LoginException&lt;/code> to specify a failure.&#xA;In the failure case, the &lt;code>LoginModule&lt;/code> must not retry the&#xA;authentication or introduce delays.  The responsibility of such tasks&#xA;belongs to the application.  If the application attempts to retry&#xA;the authentication, the LoginModule's &lt;code>login&lt;/code> method will be&#xA;called again.&#xA;&#xA;&lt;p> In the second phase, if the LoginContext's overall authentication&#xA;succeeded (the relevant REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL&#xA;LoginModules succeeded), then the &lt;code>commit&lt;/code>&#xA;method for the &lt;code>LoginModule&lt;/code> gets invoked.&#xA;The &lt;code>commit&lt;/code> method for a &lt;code>LoginModule&lt;/code> checks its&#xA;privately saved state to see if its own authentication succeeded.&#xA;If the overall &lt;code>LoginContext&lt;/code> authentication succeeded&#xA;and the LoginModule's own authentication succeeded, then the&#xA;&lt;code>commit&lt;/code> method associates the relevant&#xA;Principals (authenticated identities) and Credentials (authentication data&#xA;such as cryptographic keys) with the &lt;code>Subject&lt;/code>&#xA;located within the &lt;code>LoginModule&lt;/code>.&#xA;&#xA;&lt;p> If the LoginContext's overall authentication failed (the relevant&#xA;REQUIRED, REQUISITE, SUFFICIENT and OPTIONAL LoginModules did not succeed),&#xA;then the &lt;code>abort&lt;/code> method for each &lt;code>LoginModule&lt;/code>&#xA;gets invoked.  In this case, the &lt;code>LoginModule&lt;/code> removes/destroys&#xA;any authentication state originally saved.&#xA;&#xA;&lt;p> Logging out a &lt;code>Subject&lt;/code> involves only one phase.&#xA;The &lt;code>LoginContext&lt;/code> invokes the LoginModule's &lt;code>logout&lt;/code>&#xA;method.  The &lt;code>logout&lt;/code> method for the &lt;code>LoginModule&lt;/code>&#xA;then performs the logout procedures, such as removing Principals or&#xA;Credentials from the &lt;code>Subject&lt;/code> or logging session information.&#xA;&#xA;&lt;p> A &lt;code>LoginModule&lt;/code> implementation must have a constructor with&#xA;no arguments.  This allows classes which load the &lt;code>LoginModule&lt;/code>&#xA;to instantiate it.&#xA;&#xA;@version 1.53, 05/05/04&#xA;@see javax.security.auth.login.LoginContext&#xA;@see javax.security.auth.login.Configuration&#xA;" annotatedElement="_9_5_f720368_1110473546737_878604_9619"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_196025_9631" name="Policy" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_685119_10487" body="&lt;p> This is an abstract class for representing the system policy for&#xA;Subject-based authorization.  A subclass implementation&#xA;of this class provides a means to specify a Subject-based&#xA;access control &lt;code>Policy&lt;/code>.&#xA;&#xA;&lt;p> A &lt;code>Policy&lt;/code> object can be queried for the set of&#xA;Permissions granted to code running as a&#xA;&lt;code>Principal&lt;/code> in the following manner:&#xA;&#xA;&lt;pre>&#xA;policy = Policy.getPolicy();&#xA;PermissionCollection perms = policy.getPermissions(subject,&#xA;codeSource);&#xA;&lt;/pre>&#xA;&#xA;The &lt;code>Policy&lt;/code> object consults the local policy and returns&#xA;and appropriate &lt;code>Permissions&lt;/code> object with the&#xA;Permissions granted to the Principals associated with the&#xA;provided &lt;i>subject&lt;/i>, and granted to the code specified&#xA;by the provided &lt;i>codeSource&lt;/i>.&#xA;&#xA;&lt;p> A &lt;code>Policy&lt;/code> contains the following information.&#xA;Note that this example only represents the syntax for the default&#xA;&lt;code>Policy&lt;/code> implementation. Subclass implementations of this class&#xA;may implement alternative syntaxes and may retrieve the&#xA;&lt;code>Policy&lt;/code> from any source such as files, databases,&#xA;or servers.&#xA;&#xA;&lt;p> Each entry in the &lt;code>Policy&lt;/code> is represented as&#xA;a &lt;b>&lt;i>grant&lt;/i>&lt;/b> entry.  Each &lt;b>&lt;i>grant&lt;/i>&lt;/b> entry&#xA;specifies a codebase, code signers, and Principals triplet,&#xA;as well as the Permissions granted to that triplet.&#xA;&#xA;&lt;pre>&#xA;grant CodeBase [&quot;URL&quot;], Signedby [&quot;signers&quot;],&#xA;Principal [Principal_Class] &quot;Principal_Name&quot; {&#xA;Permission Permission_Class [&quot;Target_Name&quot;]&#xA;[, &quot;Permission_Actions&quot;]&#xA;[, signedBy &quot;SignerName&quot;];&#xA;};&#xA;&lt;/pre>&#xA;&#xA;The CodeBase and Signedby components of the triplet name/value pairs&#xA;are optional.  If they are not present, then any any codebase will match,&#xA;and any signer (including unsigned code) will match.&#xA;For Example,&#xA;&#xA;&lt;pre>&#xA;grant CodeBase &quot;foo.com&quot;, Signedby &quot;foo&quot;,&#xA;Principal com.sun.security.auth.SolarisPrincipal &quot;duke&quot; {&#xA;permission java.io.FilePermission &quot;/home/duke&quot;, &quot;read, write&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;This &lt;b>&lt;i>grant&lt;/i>&lt;/b> entry specifies that code from &quot;foo.com&quot;,&#xA;signed by &quot;foo', and running as a &lt;code>SolarisPrincipal&lt;/code> with the&#xA;name, duke, has one &lt;code>Permission&lt;/code>.  This &lt;code>Permission&lt;/code>&#xA;permits the executing code to read and write files in the directory,&#xA;&quot;/home/duke&quot;.&#xA;&#xA;&lt;p> To &quot;run&quot; as a particular &lt;code>Principal&lt;/code>,&#xA;code invokes the &lt;code>Subject.doAs(subject, ...)&lt;/code> method.&#xA;After invoking that method, the code runs as all the Principals&#xA;associated with the specified &lt;code>Subject&lt;/code>.&#xA;Note that this &lt;code>Policy&lt;/code> (and the Permissions&#xA;granted in this &lt;code>Policy&lt;/code>) only become effective&#xA;after the call to &lt;code>Subject.doAs&lt;/code> has occurred.&#xA;&#xA;&lt;p> Multiple Principals may be listed within one &lt;b>&lt;i>grant&lt;/i>&lt;/b> entry.&#xA;All the Principals in the grant entry must be associated with&#xA;the &lt;code>Subject&lt;/code> provided to &lt;code>Subject.doAs&lt;/code>&#xA;for that &lt;code>Subject&lt;/code> to be granted the specified Permissions.&#xA;&#xA;&lt;pre>&#xA;grant Principal com.sun.security.auth.SolarisPrincipal &quot;duke&quot;,&#xA;Principal com.sun.security.auth.SolarisNumericUserPrincipal &quot;0&quot; {&#xA;permission java.io.FilePermission &quot;/home/duke&quot;, &quot;read, write&quot;;&#xA;permission java.net.SocketPermission &quot;duke.com&quot;, &quot;connect&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;This entry grants any code running as both &quot;duke&quot; and &quot;0&quot;&#xA;permission to read and write files in duke's home directory,&#xA;as well as permission to make socket connections to &quot;duke.com&quot;.&#xA;&#xA;&lt;p> Note that non Principal-based grant entries are not permitted&#xA;in this &lt;code>Policy&lt;/code>.  Therefore, grant entries such as:&#xA;&#xA;&lt;pre>&#xA;grant CodeBase &quot;foo.com&quot;, Signedby &quot;foo&quot; {&#xA;permission java.io.FilePermission &quot;/tmp/scratch&quot;, &quot;read, write&quot;;&#xA;};&#xA;&lt;/pre>&#xA;&#xA;are rejected.  Such permission must be listed in the&#xA;&lt;code>java.security.Policy&lt;/code>.&#xA;&#xA;&lt;p> The default &lt;code>Policy&lt;/code> implementation can be changed by&#xA;setting the value of the &quot;auth.policy.provider&quot; security property&#xA;(in the Java security properties file) to the fully qualified name of&#xA;the desired &lt;code>Policy&lt;/code> implementation class.&#xA;The Java security properties file is located in the file named&#xA;&lt;JAVA_HOME>/lib/security/java.security, where &lt;JAVA_HOME>&#xA;refers to the directory where the JDK was installed.&#xA;&#xA;@deprecated&#x9;as of JDK version 1.4 -- Replaced by java.security.Policy.&#xA;java.security.Policy has a method:&#xA;&lt;pre>&#xA;public PermissionCollection getPermissions&#xA;(java.security.ProtectionDomain pd)&#xA;&#xA;&lt;/pre>&#xA;and ProtectionDomain has a constructor:&#xA;&lt;pre>&#xA;public ProtectionDomain&#xA;(CodeSource cs,&#xA;PermissionCollection permissions,&#xA;ClassLoader loader,&#xA;Principal[] principals)&#xA;&lt;/pre>&#xA;&#xA;These two APIs provide callers the means to query the&#xA;Policy for Principal-based Permission entries.&#xA;&#xA;&#xA;@version 1.50, 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546737_196025_9631"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_645176_9629" name="DestroyFailedException">
              <ownedComment xmi:id="_10_5_622020d_1132928316111_925988_10482" body="Signals that a &lt;code>destroy&lt;/code> operation failed.&#xA;&#xA;&lt;p> This exception is thrown by credentials implementing&#xA;the &lt;code>Destroyable&lt;/code> interface when the &lt;code>destroy&lt;/code>&#xA;method fails.&#xA;&#xA;@version 1.8, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_645176_9629"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_456930_16563" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_622091_9635" name="Refreshable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_997122_10492" body="Objects such as credentials may optionally implement this&#xA;interface to provide the capability to refresh itself.&#xA;For example, a credential with a particular time-restricted lifespan&#xA;may implement this interface to allow callers to refresh the time period&#xA;for which it is valid.&#xA;&#xA;@version 1.9, 12/19/03&#xA;@see javax.security.auth.Subject&#xA;" annotatedElement="_9_5_f720368_1110473546737_622091_9635"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548081_80209_20759" name="x500">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_663427_9623" name="X500PrivateCredential" clientDependency="_10_5_622020d_1132928323351_51699_16561" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316111_941623_10476" body="&lt;p> This class represents an &lt;code>X500PrivateCredential&lt;/code>.&#xA;It associates an X.509 certificate, corresponding private key and the&#xA;KeyStore alias used to reference that exact key pair in the KeyStore.&#xA;This enables looking up the private credentials for an X.500 principal&#xA;in a subject.&#xA;&#xA;@version 1.8, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546737_663427_9623"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323351_51699_16561" name="" supplier="_9_5_f720368_1110473546737_590916_9627" client="_9_5_f720368_1110473546737_663427_9623" contract="_9_5_f720368_1110473546737_590916_9627"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_451081_9621" name="X500Principal" clientDependency="_10_5_622020d_1132928323351_267545_16559 _10_5_622020d_1132928323351_2047_16560" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316100_69685_10474" body="&lt;p> This class represents an X.500 &lt;code>Principal&lt;/code>.&#xA;&lt;code>X500Principal&lt;/code>s are represented by distinguished names such as&#xA;&quot;CN=Duke, OU=JavaSoft, O=Sun Microsystems, C=US&quot;.&#xA;&#xA;&lt;p> This class can be instantiated by using a string representation&#xA;of the distinguished name, or by using the ASN.1 DER encoded byte&#xA;representation of the distinguished name.  The current specification&#xA;for the string representation of a distinguished name is defined in&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2253.txt&quot;>RFC 2253&lt;/a>.&#xA;This class, however, accepts string formats from both RFC 2253 and&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc1779.txt&quot;>RFC 1779&lt;/a>,&#xA;and also recognizes attribute type keywords whose OIDs&#xA;(Object Identifiers) are defined in&#xA;&lt;a href=&quot;http://www.ietf.org/rfc/rfc2459.txt&quot;>RFC 2459&lt;/a>.&#xA;&#xA;&lt;p> The string representation for this &lt;code>X500Principal&lt;/code>&#xA;can be obtained by calling the &lt;code>getName&lt;/code> methods.&#xA;&#xA;&lt;p> Note that the &lt;code>getSubjectX500Principal&lt;/code> and&#xA;&lt;code>getIssuerX500Principal&lt;/code> methods of&#xA;&lt;code>X509Certificate&lt;/code> return X500Principals representing the&#xA;issuer and subject fields of the certificate.&#xA;&#xA;@version 1.21, 12/19/03&#xA;@see java.security.cert.X509Certificate&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546737_451081_9621"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323351_267545_16559" name="" supplier="_9_5_f720368_1110473546690_967636_8503" client="_9_5_f720368_1110473546737_451081_9621" contract="_9_5_f720368_1110473546690_967636_8503"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323351_2047_16560" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_451081_9621" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_91918_9639" name="Subject" clientDependency="_10_5_622020d_1132928323351_287470_16567" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316121_416603_10501" body="&lt;p> A &lt;code>Subject&lt;/code> represents a grouping of related information&#xA;for a single entity, such as a person.&#xA;Such information includes the Subject's identities as well as&#xA;its security-related attributes&#xA;(passwords and cryptographic keys, for example).&#xA;&#xA;&lt;p> Subjects may potentially have multiple identities.&#xA;Each identity is represented as a &lt;code>Principal&lt;/code>&#xA;within the &lt;code>Subject&lt;/code>.  Principals simply bind names to a&#xA;&lt;code>Subject&lt;/code>.  For example, a &lt;code>Subject&lt;/code> that happens&#xA;to be a person, Alice, might have two Principals:&#xA;one which binds &quot;Alice Bar&quot;, the name on her driver license,&#xA;to the &lt;code>Subject&lt;/code>, and another which binds,&#xA;&quot;999-99-9999&quot;, the number on her student identification card,&#xA;to the &lt;code>Subject&lt;/code>.  Both Principals refer to the same&#xA;&lt;code>Subject&lt;/code> even though each has a different name.&#xA;&#xA;&lt;p> A &lt;code>Subject&lt;/code> may also own security-related attributes,&#xA;which are referred to as credentials.&#xA;Sensitive credentials that require special protection, such as&#xA;private cryptographic keys, are stored within a private credential&#xA;&lt;code>Set&lt;/code>.  Credentials intended to be shared, such as&#xA;public key certificates or Kerberos server tickets are stored&#xA;within a public credential &lt;code>Set&lt;/code>.  Different permissions&#xA;are required to access and modify the different credential Sets.&#xA;&#xA;&lt;p> To retrieve all the Principals associated with a &lt;code>Subject&lt;/code>,&#xA;invoke the &lt;code>getPrincipals&lt;/code> method.  To retrieve&#xA;all the public or private credentials belonging to a &lt;code>Subject&lt;/code>,&#xA;invoke the &lt;code>getPublicCredentials&lt;/code> method or&#xA;&lt;code>getPrivateCredentials&lt;/code> method, respectively.&#xA;To modify the returned &lt;code>Set&lt;/code> of Principals and credentials,&#xA;use the methods defined in the &lt;code>Set&lt;/code> class.&#xA;For example:&#xA;&lt;pre>&#xA;Subject subject;&#xA;Principal principal;&#xA;Object credential;&#xA;&#xA;add a Principal and credential to the Subject&#xA;subject.getPrincipals().add(principal);&#xA;subject.getPublicCredentials().add(credential);&#xA;&lt;/pre>&#xA;&#xA;&lt;p> This &lt;code>Subject&lt;/code> class implements &lt;code>Serializable&lt;/code>.&#xA;While the Principals associated with the &lt;code>Subject&lt;/code> are serialized,&#xA;the credentials associated with the &lt;code>Subject&lt;/code> are not.&#xA;Note that the &lt;code>java.security.Principal&lt;/code> class&#xA;does not implement &lt;code>Serializable&lt;/code>.  Therefore all concrete&#xA;&lt;code>Principal&lt;/code> implementations associated with Subjects&#xA;must implement &lt;code>Serializable&lt;/code>.&#xA;&#xA;@version 1.123, 05/05/04&#xA;@see java.security.Principal&#xA;@see java.security.DomainCombiner&#xA;" annotatedElement="_9_5_f720368_1110473546737_91918_9639"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323351_287470_16567" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_91918_9639" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_823602_20776" name="SecureSet" visibility="private" clientDependency="_10_5_622020d_1132928323351_186222_16568">
                <ownedComment xmi:id="_10_5_622020d_1132928316121_482958_10495" body="Prevent modifications unless caller has permission.&#xA;&#xA;@serial include&#xA;" annotatedElement="_9_5_f720368_1110473548081_823602_20776"/>
                <generalization xmi:id="_10_5_622020d_1132928323351_859892_16569" isSubstitutable="true" general="_9_5_f720368_1110473546706_136303_8831"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323351_186222_16568" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548081_823602_20776" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_737260_20779" name="ClassSet" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928316121_896603_10499" body="This class implements a &lt;code>Set&lt;/code> which returns only&#xA;members that are an instance of a specified Class.&#xA;" annotatedElement="_9_5_f720368_1110473548081_737260_20779"/>
                <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_10_5_622020d_1132928316121_364173_10496" name="" parameter="_10_5_622020d_1132928316121_631391_10497">
                  <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_10_5_622020d_1132928316121_631391_10497" parameteredElement="_10_5_622020d_1132928316121_567052_10498">
                    <ownedParameteredElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316121_567052_10498" name="T" templateParameter="_10_5_622020d_1132928316121_631391_10497"/>
                  </ownedParameter>
                </ownedTemplateSignature>
                <generalization xmi:id="_10_5_622020d_1132928323351_761808_16573" isSubstitutable="true" general="_10_5_622020d_1132928323351_62754_16570"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473547909_851843_19810" name="accessibility">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_892822_8989" name="AccessibleTable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_469705_9140" body="Class AccessibleTable describes a user-interface component that&#xA;presents data in a two-dimensional table format.&#xA;&#xA;@version     1.2 10/12/99&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_892822_8989"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_399481_8995" name="AccessibleValue" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_469270_9149" body="The AccessibleValue interface should be supported by any object&#xA;that supports a numerical value (e.g., a scroll bar).  This interface&#xA;provides the standard mechanism for an assistive technology to determine&#xA;and set the numerical value as well as get the minimum and maximum values.&#xA;Applications can determine&#xA;if an object supports the AccessibleValue interface by first&#xA;obtaining its AccessibleContext (see&#xA;{@link Accessible}) and then calling the&#xA;{@link AccessibleContext#getAccessibleValue} method.&#xA;If the return value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleValue&#xA;&#xA;@version     1.9 10/12/99 15:41:54&#xA;@author&#x9;Peter Korn&#xA;@author      Hans Muller&#xA;@author      Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546706_399481_8995"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_919532_8967" name="AccessibleHyperlink" clientDependency="_10_5_622020d_1132928322910_35294_15761" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_968543_9113" body="Encapsulation of a link, or set of links (e.g. client side imagemap)&#xA;in a Hypertext document&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleText&#xA;@see AccessibleContext#getAccessibleText&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author&#x9;Peter Korn&#xA;" annotatedElement="_9_5_f720368_1110473546706_919532_8967"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928322910_35294_15761" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473546706_919532_8967" contract="_9_5_f720368_1110473546706_522529_8953"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_751837_8987" name="AccessibleStateSet">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_104863_9136" body="Class AccessibleStateSet determines a component's state set.  The state set&#xA;of a component is a set of AccessibleState objects and descriptions. E.G., The&#xA;current overall state of the object, such as whether it is enabled,&#xA;has focus, etc.&#xA;&#xA;@see AccessibleState&#xA;&#xA;@version     1.10 10/12/99 15:05:34&#xA;@author      Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546706_751837_8987"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_184903_8973" name="AccessibleKeyBinding" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_557641_9119" body="The AccessibleKeyBinding interface should be supported by any object&#xA;that has a keyboard bindings such as a keyboard mnemonic and/or keyboard&#xA;shortcut which can be used to select the object.  This interface provides&#xA;the standard mechanism for an assistive technology to determine the&#xA;key bindings which exist for this object.&#xA;Any object that has such key bindings should support this&#xA;interface.  Applications can determine if an object supports the&#xA;AccessibleKeyBinding interface by first obtaining its AccessibleContext&#xA;(see @link Accessible} and then calling the&#xA;{@link AccessibleContext#getAccessibleKeyBinding} method.  If the return&#xA;value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleKeyBinding&#xA;&#xA;@version     1.4 12/19/03&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_184903_8973"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_812616_8971" name="AccessibleIcon" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_632542_9117" body="The AccessibleIcon interface should be supported by any object&#xA;that has an associated icon (e.g., buttons). This interface&#xA;provides the standard mechanism for an assistive technology&#xA;to get descriptive information about icons.&#xA;Applications can determine&#xA;if an object supports the AccessibleIcon interface by first&#xA;obtaining its AccessibleContext (see&#xA;{@link Accessible}) and then calling the&#xA;{@link AccessibleContext#getAccessibleIcon} method.&#xA;If the return value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see AccessibleContext&#xA;&#xA;@version     1.3 10/12/99&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_812616_8971"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_90789_8961" name="AccessibleEditableText" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_176378_9104" body="&lt;P>The AccessibleEditableText interface should be implemented by all&#xA;classes that present editable textual information on the display.&#xA;Along with the AccessibleText interface, this interface provides&#xA;the standard mechanism for an assistive technology to access&#xA;that text via its content, attributes, and spatial location.&#xA;Applications can determine if an object supports the AccessibleEditableText&#xA;interface by first obtaining its AccessibleContext (see {@link Accessible})&#xA;and then calling the {@link AccessibleContext#getAccessibleEditableText}&#xA;method of AccessibleContext.  If the return value is not null, the object&#xA;supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleText&#xA;@see AccessibleContext#getAccessibleEditableText&#xA;&#xA;@version&#x9;1.4 @(#)AccessibleEditableText.java&#x9;1.4&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_90789_8961"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_653773_15758" isSubstitutable="true" general="_9_5_f720368_1110473546706_466273_8993"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_410169_8979" name="AccessibleResourceBundle">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_797189_9128" body="A resource bundle containing the localized strings in the accessibility&#xA;package.  This is meant only for internal use by Java Accessibility and&#xA;is not meant to be used by assistive technologies or applications.&#xA;&#xA;@version     1.32 05/18/04 21:18:13&#xA;@author      Willie Walker&#xA;@deprecated This class is deprecated as of version 1.3 of the&#xA;Java 2 Platform.&#xA;" annotatedElement="_9_5_f720368_1110473546706_410169_8979"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_205446_15764" isSubstitutable="true" general="_9_5_f720368_1110473546706_340170_8889"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_824207_8957" name="AccessibleComponent" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_170511_9100" body="The AccessibleComponent interface should be supported by any object&#xA;that is rendered on the screen.  This interface provides the standard&#xA;mechanism for an assistive technology to determine and set the&#xA;graphical representation of an object.  Applications can determine&#xA;if an object supports the AccessibleComponent interface by first&#xA;obtaining its AccessibleContext&#xA;and then calling the&#xA;{@link AccessibleContext#getAccessibleComponent} method.&#xA;If the return value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleComponent&#xA;&#xA;@version     1.7 10/05/99 14:00:28&#xA;@author&#x9;Peter Korn&#xA;@author&#x9;Hans Muller&#xA;@author      Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546706_824207_8957"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_746063_8959" name="AccessibleContext" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_139678_9102" body="AccessibleContext represents the minimum information all accessible objects&#xA;return.  This information includes the accessible name, description, role,&#xA;and state of the object, as well as information about its parent and&#xA;children.  AccessibleContext also contains methods for&#xA;obtaining more specific accessibility information about a component.&#xA;If the component supports them, these methods will return an object that&#xA;implements one or more of the following interfaces:&#xA;&lt;P>&lt;ul>&#xA;&lt;li>{@link AccessibleAction} - the object can perform one or more actions.&#xA;This interface provides the standard mechanism for an assistive&#xA;technology to determine what those actions are and tell the object&#xA;to perform them.  Any object that can be manipulated should&#xA;support this interface.&#xA;&lt;li>{@link AccessibleComponent} - the object has a graphical representation.&#xA;This interface provides the standard mechanism for an assistive&#xA;technology to determine and set the graphical representation of the&#xA;object.  Any object that is rendered on the screen should support&#xA;this interface.&#xA;&lt;li>{@link  AccessibleSelection} - the object allows its children to be&#xA;selected.  This interface provides the standard mechanism for an&#xA;assistive technology to determine the currently selected children of the object&#xA;as well as modify its selection set.  Any object that has children&#xA;that can be selected should support this interface.&#xA;&lt;li>{@link AccessibleText} - the object presents editable textual information&#xA;on the display.  This interface provides the standard mechanism for&#xA;an assistive technology to access that text via its content, attributes,&#xA;and spatial location.  Any object that contains editable text should&#xA;support this interface.&#xA;&lt;li>{@link AccessibleValue} - the object supports a numerical value.  This&#xA;interface provides the standard mechanism for an assistive technology&#xA;to determine and set the current value of the object, as well as obtain its&#xA;minimum and maximum values.  Any object that supports a numerical value&#xA;should support this interface.&lt;/ul>&#xA;&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: Minimal information that all accessible objects return&#xA;&#xA;@version     1.43 04/02/04&#xA;@author&#x9;Peter Korn&#xA;@author      Hans Muller&#xA;@author      Willie Walker&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_746063_8959"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_198600_8955" name="AccessibleBundle" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_753411_9098" body="&lt;p>Base class used to maintain a strongly typed enumeration.  This is&#xA;the superclass of {@link AccessibleState} and {@link AccessibleRole}.&#xA;&lt;p>The toDisplayString method allows you to obtain the localized string&#xA;for a locale independent key from a predefined ResourceBundle for the&#xA;keys defined in this class.  This localized string is intended to be&#xA;readable by humans.&#xA;&#xA;@see AccessibleRole&#xA;@see AccessibleState&#xA;&#xA;@version     1.12 10/05/99&#xA;@author      Willie Walker&#xA;@author&#x9;Peter Korn&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_198600_8955"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314759_337140_9109" name="AccessibleExtendedText" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_327001_9111" body="&lt;P>The AccessibleExtendedText interface contains additional methods&#xA;not provided by the AccessibleText interface&#xA;&#xA;Applications can determine if an object supports the AccessibleExtendedText&#xA;interface by first obtaining its AccessibleContext (see {@link Accessible})&#xA;and then calling the {@link AccessibleContext#getAccessibleText} method of&#xA;AccessibleContext.  If the return value is an instance of&#xA;AccessibleExtendedText, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleText&#xA;@see AccessibleText.AccessibleTextChunk&#xA;&#xA;@version      1.2 12/19/03&#xA;@author       Peter Korn&#xA;@author       Lynn Monsanto&#xA;" annotatedElement="_10_5_622020d_1132928314759_337140_9109"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_389575_8977" name="AccessibleRelationSet">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_665041_9123" body="Class AccessibleRelationSet determines a component's relation set.  The&#xA;relation set of a component is a set of AccessibleRelation objects that&#xA;describe the component's relationships with other components.&#xA;&#xA;@see AccessibleRelation&#xA;&#xA;@version     1.13 05/05/04&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_389575_8977"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_554994_8975" name="AccessibleRelation">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_626769_9121" body="&lt;P>Class AccessibleRelation describes a relation between the&#xA;object that implements the AccessibleRelation and one or more other&#xA;objects.  The actual relations that an object has with other&#xA;objects are defined as an AccessibleRelationSet, which is a composed&#xA;set of AccessibleRelations.&#xA;&lt;p>The toDisplayString method allows you to obtain the localized string&#xA;for a locale independent key from a predefined ResourceBundle for the&#xA;keys defined in this class.&#xA;&lt;p>The constants in this class present a strongly typed enumeration&#xA;of common object roles. If the constants in this class are not sufficient&#xA;to describe the role of an object, a subclass should be generated&#xA;from this class and it should provide constants in a similar manner.&#xA;&#xA;@version     1.14 04/15/04&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_554994_8975"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_368289_15763" isSubstitutable="true" general="_9_5_f720368_1110473546706_198600_8955"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_827345_8951" name="Accessible" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_653748_9091" body="Interface Accessible is the main interface for the accessibility package.&#xA;All components that support&#xA;the accessibility package must implement this interface.&#xA;It contains a single method, {@link #getAccessibleContext}, which&#xA;returns an instance of the class {@link AccessibleContext}.&#xA;&#xA;@version     1.1 11/24/97 20:34:48&#xA;@author&#x9;Peter Korn&#xA;@author      Hans Muller&#xA;@author      Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546706_827345_8951"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_594235_8991" name="AccessibleTableModelChange" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_45152_9142" body="The AccessibleTableModelChange interface describes a change to&#xA;the table model.  The attributes of the model change can be&#xA;obtained by the following methods:&#xA;&lt;ul>&#xA;&lt;li> public int getType()&#xA;&lt;li> public int getFirstRow();&#xA;&lt;li> public int getLastRow();&#xA;&lt;li> public int getFirstColumn();&#xA;&lt;li> public int getLastColumn();&#xA;&lt;/ul>&#xA;The model change type returned by getType() will be one of:&#xA;&lt;ul>&#xA;&lt;li> INSERT - one or more rows and/or columns have been inserted&#xA;&lt;li> UPDATE - some of the table data has changed&#xA;&lt;li> DELETE - one or more rows and/or columns have been deleted&#xA;&lt;/ul>&#xA;The affected area of the table can be determined by the other&#xA;four methods which specify ranges of rows and columns&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleTable&#xA;&#xA;@version     1.2 10/12/99&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_594235_8991"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_522529_8953" name="AccessibleAction" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_69575_9093" body="The AccessibleAction interface should be supported by any object&#xA;that can perform one or more actions.  This interface&#xA;provides the standard mechanism for an assistive technology to determine&#xA;what those actions are as well as tell the object to perform them.&#xA;Any object that can be manipulated should support this&#xA;interface.  Applications can determine if an object supports the&#xA;AccessibleAction interface by first obtaining its AccessibleContext (see&#xA;{@link Accessible}) and then calling the {@link AccessibleContext#getAccessibleAction}&#xA;method.  If the return value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleAction&#xA;&#xA;@version     1.17 04/15/04&#xA;@author&#x9;Peter Korn&#xA;@author      Hans Muller&#xA;@author      Willie Walker&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_522529_8953"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_688082_8969" name="AccessibleHypertext" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_770472_9115" body="&lt;P>The AccessibleHypertext class is the base class for all&#xA;classes that present hypertext information on the display.  This class&#xA;provides the standard mechanism for an assistive technology to access&#xA;that text via its content, attributes, and spatial location.&#xA;It also provides standard mechanisms for manipulating hyperlinks.&#xA;Applications can determine if an object supports the AccessibleHypertext&#xA;interface by first obtaining its AccessibleContext (see {@link Accessible})&#xA;and then calling the {@link AccessibleContext#getAccessibleText}&#xA;method of AccessibleContext.  If the return value is a class which extends&#xA;AccessibleHypertext, then that object supports AccessibleHypertext.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleText&#xA;@see AccessibleContext#getAccessibleText&#xA;&#xA;@version&#xA;@author&#x9;Peter Korn&#xA;" annotatedElement="_9_5_f720368_1110473546706_688082_8969"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_109302_15762" isSubstitutable="true" general="_9_5_f720368_1110473546706_466273_8993"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314749_991416_9094" name="AccessibleAttributeSequence">
            <ownedComment xmi:id="_10_5_622020d_1132928314749_280906_9096" body="Information about a contiguous sequence of text attributes&#xA;" annotatedElement="_10_5_622020d_1132928314749_991416_9094"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314769_945816_9137" name="AccessibleStreamable" isAbstract="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_257542_8981" name="AccessibleRole">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_59198_9130" body="&lt;P>Class AccessibleRole determines the role of a component.  The role of a&#xA;component describes its generic function. (E.G.,&#xA;&quot;push button,&quot; &quot;table,&quot; or &quot;list.&quot;)&#xA;&lt;p>The toDisplayString method allows you to obtain the localized string&#xA;for a locale independent key from a predefined ResourceBundle for the&#xA;keys defined in this class.&#xA;&lt;p>The constants in this class present a strongly typed enumeration&#xA;of common object roles.  A public constructor for this class has been&#xA;purposely omitted and applications should use one of the constants&#xA;from this class.  If the constants in this class are not sufficient&#xA;to describe the role of an object, a subclass should be generated&#xA;from this class and it should provide constants in a similar manner.&#xA;&#xA;@version     1.45 04/15/04&#xA;@author      Willie Walker&#xA;@author&#x9;Peter Korn&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_257542_8981"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_898726_15765" isSubstitutable="true" general="_9_5_f720368_1110473546706_198600_8955"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314769_590812_9145" name="AccessibleTextSequence">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_73329_9147" body="Information about a contiguous sequence of text.&#xA;" annotatedElement="_10_5_622020d_1132928314769_590812_9145"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_225404_8963" name="AccessibleExtendedComponent" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_740361_9106" body="The AccessibleExtendedComponent interface should be supported by any object&#xA;that is rendered on the screen.  This interface provides the standard&#xA;mechanism for an assistive technology to determine the extended&#xA;graphical representation of an object.  Applications can determine&#xA;if an object supports the AccessibleExtendedComponent interface by first&#xA;obtaining its AccessibleContext&#xA;and then calling the&#xA;{@link AccessibleContext#getAccessibleComponent} method.&#xA;If the return value is not null and the type of the return value is&#xA;AccessibleEditableComponent, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleComponent&#xA;&#xA;@version     1.4 12/19/03&#xA;@author&#x9;Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_225404_8963"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_163240_15759" isSubstitutable="true" general="_9_5_f720368_1110473546706_824207_8957"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_639543_8965" name="AccessibleExtendedTable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314759_148219_9108" body="Class AccessibleExtendedTable provides extended information about&#xA;a user-interface component that presents data in a two-dimensional&#xA;table format.&#xA;Applications can determine if an object supports the&#xA;AccessibleExtendedTable interface by first obtaining its&#xA;AccessibleContext and then calling the&#xA;{@link AccessibleContext#getAccessibleTable} method.&#xA;If the return value is not null and the type of the return value is&#xA;AccessibleExtendedTable, the object supports this interface.&#xA;&#xA;@version     1.5 12/19/03&#xA;@author      Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546706_639543_8965"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_210969_15760" isSubstitutable="true" general="_9_5_f720368_1110473546706_892822_8989"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_797948_8983" name="AccessibleSelection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_933904_9132" body="This AccessibleSelection interface&#xA;provides the standard mechanism for an assistive technology to determine&#xA;what the current selected children are, as well as modify the selection set.&#xA;Any object that has children that can be selected should support&#xA;the AccessibleSelection interface.  Applications can determine if an object supports the&#xA;AccessibleSelection interface by first obtaining its AccessibleContext (see&#xA;{@link Accessible}) and then calling the&#xA;{@link AccessibleContext#getAccessibleSelection} method.&#xA;If the return value is not null, the object supports this interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleSelection&#xA;&#xA;@version     1.7 08/26/98 21:14:11&#xA;@author&#x9;Peter Korn&#xA;@author      Hans Muller&#xA;@author      Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546706_797948_8983"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546706_622971_8985" name="AccessibleState">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_207523_9134" body="&lt;P>Class AccessibleState describes a component's particular state.  The actual&#xA;state of the component is defined as an AccessibleStateSet, which is a&#xA;composed set of AccessibleStates.&#xA;&lt;p>The toDisplayString method allows you to obtain the localized string&#xA;for a locale independent key from a predefined ResourceBundle for the&#xA;keys defined in this class.&#xA;&lt;p>The constants in this class present a strongly typed enumeration&#xA;of common object roles.  A public constructor for this class has been&#xA;purposely omitted and applications should use one of the constants&#xA;from this class.  If the constants in this class are not sufficient&#xA;to describe the role of an object, a subclass should be generated&#xA;from this class and it should provide constants in a similar manner.&#xA;&#xA;@version     1.38 04/15/04&#xA;@author      Willie Walker&#xA;@author&#x9;Peter Korn&#xA;" annotatedElement="_9_5_f720368_1110473546706_622971_8985"/>
            <generalization xmi:id="_10_5_622020d_1132928322910_24229_15766" isSubstitutable="true" general="_9_5_f720368_1110473546706_198600_8955"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546706_466273_8993" name="AccessibleText" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928314769_996933_9144" body="&lt;P>The AccessibleText interface should be implemented by all&#xA;classes that present textual information on the display.  This interface&#xA;provides the standard mechanism for an assistive technology to access&#xA;that text via its content, attributes, and spatial location.&#xA;Applications can determine if an object supports the AccessibleText&#xA;interface by first obtaining its AccessibleContext (see {@link Accessible})&#xA;and then calling the {@link AccessibleContext#getAccessibleText} method of&#xA;AccessibleContext.  If the return value is not null, the object supports this&#xA;interface.&#xA;&#xA;@see Accessible&#xA;@see Accessible#getAccessibleContext&#xA;@see AccessibleContext&#xA;@see AccessibleContext#getAccessibleText&#xA;&#xA;@version&#x9;1.13 01/20/98 07:53:43&#xA;@author&#x9;Peter Korn&#xA;" annotatedElement="_9_5_f720368_1110473546706_466273_8993"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314869_787899_9268" name="management">
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_135708_9790" name="MBeanServerPermissionCollection" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_606716_9792" body="Class returned by {@link MBeanServerPermission#newPermissionCollection()}.&#xA;&#xA;@serial include&#xA;" annotatedElement="_10_5_622020d_1132928315229_135708_9790"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_475694_16077" isSubstitutable="true" general="_9_5_f720368_1110473546690_911762_8493"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315249_199955_9838" name="OrQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323111_697572_16095">
            <ownedComment xmi:id="_10_5_622020d_1132928315249_814588_9840" body="This class is used by the query-building mechanism to represent&#xA;disjunctions of relational expressions.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315249_199955_9838"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_729984_16096" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_697572_16095" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315249_199955_9838" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315229_797230_9802" name="NotificationBroadcaster" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_444306_9804" body="&lt;p>Interface implemented by an MBean that emits Notifications. It&#xA;allows a listener to be registered with the MBean as a notification&#xA;listener.&lt;/p>&#xA;&#xA;&lt;p>New code should use the {@link NotificationEmitter} interface&#xA;instead.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315229_797230_9802"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315239_45817_9824" name="NumericValueExp" visibility="package" clientDependency="_10_5_622020d_1132928323111_111267_16089">
            <ownedComment xmi:id="_10_5_622020d_1132928315249_152112_9826" body="This class represents numbers that are arguments to relational constraints.&#xA;A NumericValueExp may be used anywhere a ValueExp is required.&#xA;&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315239_45817_9824"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_998589_16090" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_111267_16089" name="" supplier="_10_5_622020d_1132928315289_830132_9879" client="_10_5_622020d_1132928315239_45817_9824" contract="_10_5_622020d_1132928315289_830132_9879"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_229231_9729" name="MBeanAttributeInfo" clientDependency="_10_5_622020d_1132928323101_186114_16049 _10_5_622020d_1132928323101_169179_16050">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_926513_9731" body="Describes an MBean attribute exposed for management.  Instances of&#xA;this class are immutable.  Subclasses may be mutable but this is&#xA;not recommended.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_229231_9729"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_542011_16051" isSubstitutable="true" general="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_186114_16049" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315139_229231_9729" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_169179_16050" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315139_229231_9729" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315159_590504_9757" name="MBeanRegistration" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315159_586046_9759" body="Can be implemented by an MBean in order to&#xA;carry out operations before and after being registered or unregistered from&#xA;the MBean server.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315159_590504_9757"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315279_213577_9862" name="RuntimeMBeanException">
            <ownedComment xmi:id="_10_5_622020d_1132928315279_325140_9864" body="Represents runtime exceptions thrown by MBean methods in&#xA;the agent. It &quot;wraps&quot; the actual &lt;CODE>java.lang.RuntimeException&lt;/CODE> exception thrown.&#xA;This exception will be built by the MBeanServer when a call to an&#xA;MBean method throws a runtime exception.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315279_213577_9862"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_138371_16103" isSubstitutable="true" general="_10_5_622020d_1132928315139_469160_9717"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_996282_9793" name="MBeanTrustPermission">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_622209_9795" body="This permission represents &quot;trust&quot; in a signer or codebase.&#xA;&lt;p>&#xA;MBeanTrustPermission contains a target name but no actions list.&#xA;A single target name, &quot;register&quot;, is defined for this permission.&#xA;The target &quot;*&quot; is also allowed, permitting &quot;register&quot; and any future&#xA;targets that may be defined.&#xA;Only the null value or the empty string are allowed for the action&#xA;to allow the policy object to create the permissions specified in&#xA;the policy file.&#xA;&lt;p>&#xA;If a signer, or codesource is granted this permission, then it is&#xA;considered a trusted source for MBeans. Only MBeans from trusted&#xA;sources may be registered in the MBeanServer.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315229_996282_9793"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_716182_16078" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_175932_9805" name="NotificationBroadcasterSupport" clientDependency="_10_5_622020d_1132928323111_195309_16081">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_311001_9808" body="&lt;p>Provides an implementation of {@link&#xA;javax.management.NotificationEmitter NotificationEmitter}&#xA;interface.  This can be used as the super class of an MBean that&#xA;sends notifications.&lt;/p>&#xA;&#xA;&lt;p>It is not specified whether the notification dispatch model is&#xA;synchronous or asynchronous.  That is, when a thread calls {@link&#xA;#sendNotification sendNotification}, the {@link&#xA;NotificationListener#handleNotification&#xA;NotificationListener.handleNotification} method of each listener&#xA;may be called within that thread (a synchronous model) or within&#xA;some other thread (an asynchronous model).&lt;/p>&#xA;&#xA;&lt;p>Applications should not depend on notification dispatch being&#xA;synchronous or being asynchronous.  Thus:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>Applications should not assume a synchronous model.  When the&#xA;{@link #sendNotification sendNotification} method returns, it is&#xA;not guaranteed that every listener's {@link&#xA;NotificationListener#handleNotification handleNotification} method&#xA;has been called.  It is not guaranteed either that a listener will&#xA;see notifications in the same order as they were generated.&#xA;Listeners that depend on order should use the sequence number of&#xA;notifications to determine their order (see {@link&#xA;Notification#getSequenceNumber()}).&#xA;&#xA;&lt;li>Applications should not assume an asynchronous model.  If the&#xA;actions performed by a listener are potentially slow, the listener&#xA;should arrange for them to be performed in another thread, to avoid&#xA;holding up other listeners and the caller of {@link&#xA;#sendNotification sendNotification}.&#xA;&#xA;&lt;/ul>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315229_175932_9805"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_195309_16081" name="" supplier="_10_5_622020d_1132928315239_884551_9809" client="_10_5_622020d_1132928315229_175932_9805" contract="_10_5_622020d_1132928315239_884551_9809"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_920052_9806" name="ListenerInfo" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_33965_9732" name="MBeanConstructorInfo" clientDependency="_10_5_622020d_1132928323101_631889_16052 _10_5_622020d_1132928323101_869487_16053">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_412362_9734" body="Describes a constructor exposed by an MBean.  Instances of this&#xA;class are immutable.  Subclasses may be mutable but this is not&#xA;recommended.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_33965_9732"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_672309_16054" isSubstitutable="true" general="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_631889_16052" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_33965_9732" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_869487_16053" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315149_33965_9732" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315249_198010_9835" name="OperationsException">
            <ownedComment xmi:id="_10_5_622020d_1132928315249_660718_9837" body="Represents exceptions thrown in the MBean server when performing operations&#xA;on MBeans.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315249_198010_9835"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_760645_16094" isSubstitutable="true" general="_10_5_622020d_1132928315139_189458_9714"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_898183_9654" name="AttributeValueExp" clientDependency="_10_5_622020d_1132928323071_695074_16021">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_854130_9656" body="Represents attributes used as arguments to relational constraints.&#xA;An &lt;CODE>AttributeValueExp&lt;/CODE> may be used anywhere a &lt;CODE>ValueExp&lt;/CODE> is required.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_898183_9654"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_695074_16021" name="" supplier="_10_5_622020d_1132928315289_830132_9879" client="_10_5_622020d_1132928315109_898183_9654" contract="_10_5_622020d_1132928315289_830132_9879"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315239_958048_9812" name="NotificationFilter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_703834_9814" body="To be implemented by a any class acting as a notification filter.&#xA;It allows a registered notification listener to filter the notifications of interest.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315239_958048_9812"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_523335_16083" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_641989_9636" name="AndQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323071_643358_16013">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_893264_9638" body="This class is used by the query building mechanism to represent conjunctions&#xA;of relational expressions.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_641989_9636"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_728451_16014" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_643358_16013" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315109_641989_9636" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_366905_9657" name="BadAttributeValueExpException">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_854709_9659" body="Thrown when an invalid MBean attribute is passed to a query&#xA;constructing method.  This exception is used internally by JMX&#xA;during the evaluation of a query.  User code does not usually&#xA;see it.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_366905_9657"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_89763_16022" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315129_588815_9687" name="Descriptor" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_5829_9689" body="This interface represents the behavioral metadata set for a JMX Element.&#xA;For examples, a descriptor is part of the ModelMBeanInfo, ModelMBeanNotificationInfo, ModelMBeanAttributeInfo,&#xA;ModelMBeanConstructorInfo, and ModelMBeanParameterInfo.&#xA;&lt;P>&#xA;A descriptor consists of a collection of fields.  Each field is in fieldname=fieldvalue format.&#xA;&lt;P>&#xA;All field names and values are not predefined. New fields can be defined and added by any program.&#xA;In the case of ModelMBean some fields have been predefined for consistency of implementation and support by the ModelMBeanInfo&#xA;ModelMBean*Info, and ModelMBean classes.&#xA;&lt;P>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_588815_9687"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_554893_16034" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_513220_16035" isSubstitutable="true" general="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315249_252607_9841" name="PersistentMBean" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315259_114082_9843" body="This class is the interface to be implemented by MBeans that are meant to be&#xA;persistent.  MBeans supporting this interface should call the load method during&#xA;construction in order to prime the MBean from the persistent store.&#xA;In the case of a ModelMBean, the store method should be called by the MBeanServer based on the descriptors in&#xA;the ModelMBean or by the MBean itself during normal processing of the ModelMBean.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315249_252607_9841"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_600383_9748" name="MBeanOperationInfo" clientDependency="_10_5_622020d_1132928323101_117607_16063 _10_5_622020d_1132928323101_295061_16064">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_38370_9750" body="Describes a management operation exposed by an MBean.  Instances of&#xA;this class are immutable.  Subclasses may be mutable but this is&#xA;not recommended.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_600383_9748"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_877042_16065" isSubstitutable="true" general="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_117607_16063" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_600383_9748" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_295061_16064" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315149_600383_9748" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315289_883324_9865" name="RuntimeOperationsException">
            <ownedComment xmi:id="_10_5_622020d_1132928315289_373974_9867" body="Represents runtime exceptions thrown in the agent when performing operations on MBeans.&#xA;It wraps the actual &lt;CODE>java.lang.RuntimeException&lt;/CODE> thrown.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315289_883324_9865"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_267703_16104" isSubstitutable="true" general="_10_5_622020d_1132928315139_469160_9717"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_135236_9642" name="AttributeChangeNotification">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_319214_9644" body="Provides definitions of the attribute change notifications sent by MBeans.&#xA;&lt;P>&#xA;It's up to the MBean owning the attribute of interest to create and send&#xA;attribute change notifications when the attribute change occurs.&#xA;So the &lt;CODE>NotificationBroadcaster&lt;/CODE> interface has to be implemented&#xA;by any MBean for which an attribute change is of interest.&#xA;&lt;P>&#xA;Example:&#xA;If an MBean called &lt;CODE>myMbean&lt;/CODE> needs to notify registered listeners&#xA;when its attribute:&#xA;&lt;BLOCKQUOTE>&lt;CODE>&#xA;String myString&#xA;&lt;/CODE>&lt;/BLOCKQUOTE>&#xA;is modified, &lt;CODE>myMbean&lt;/CODE> creates and emits the following notification:&#xA;&lt;BLOCKQUOTE>&lt;CODE>&#xA;new AttributeChangeNotification(myMbean, sequenceNumber, timeStamp, msg,&#xA;&quot;myString&quot;, &quot;String&quot;, oldValue, newValue);&#xA;&lt;/CODE>&lt;/BLOCKQUOTE>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_135236_9642"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_826777_16016" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315129_642912_9705" name="IntrospectionException">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_383857_9707" body="An exception occurred during the introspection of an MBean.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_642912_9705"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_865479_16040" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315259_467008_9850" name="QueryEval" clientDependency="_10_5_622020d_1132928323111_577765_16099" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315259_47174_9852" body="Allows a query to be performed in the context of a specific MBean server.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_577765_16099" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315259_467008_9850" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_974506_9675" name="BooleanValueExp" visibility="package" clientDependency="_10_5_622020d_1132928323081_952324_16031">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_886193_9677" body="This class represents a boolean value. A BooleanValueExp may be&#xA;used anywhere a ValueExp is required.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_974506_9675"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_357100_16032" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323081_952324_16031" name="" supplier="_10_5_622020d_1132928315289_830132_9879" client="_10_5_622020d_1132928315119_974506_9675" contract="_10_5_622020d_1132928315289_830132_9879"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_697332_9723" name="MalformedObjectNameException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_504623_9725" body="The format of the string does not correspond to a valid ObjectName.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_697332_9723"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_222460_16046" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_891560_9678" name="ClassAttributeValueExp" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_121869_9680" body="This class represents the name of the Java implementation class of&#xA;the MBean. It is used for performing queries based on the class of&#xA;the MBean.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_891560_9678"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_342429_16033" isSubstitutable="true" general="_10_5_622020d_1132928315109_898183_9654"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315219_403760_9769" name="MBeanServerConnection" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_15028_9771" body="This interface represents a way to talk to an MBean server, whether&#xA;local or remote.  The {@link MBeanServer} interface, representing a&#xA;local MBean server, extends this interface.&#xA;&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315219_403760_9769"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315239_884551_9809" name="NotificationEmitter" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_29790_9811" body="&lt;p>Interface implemented by an MBean that emits Notifications. It&#xA;allows a listener to be registered with the MBean as a notification&#xA;listener.&lt;/p>&#xA;&#xA;&lt;p>This interface should be used by new code in preference to the&#xA;{@link NotificationBroadcaster} interface.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315239_884551_9809"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_488586_16082" isSubstitutable="true" general="_10_5_622020d_1132928315229_797230_9802"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_200634_9711" name="InvalidAttributeValueException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_231667_9713" body="The value specified is not valid for the attribute.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_200634_9711"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_767168_16042" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315259_993595_9853" name="QueryExp" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315279_879356_9855" body="&lt;p>Represents relational constraints that can be used in database&#xA;query &quot;where clauses&quot;.  Instances of QueryExp are returned by the&#xA;static methods of the {@link Query} class.&lt;/p>&#xA;&#xA;&lt;p>It is possible, but not&#xA;recommended, to create custom queries by implementing this&#xA;interface.  In that case, it is better to extend the {@link&#xA;QueryEval} class than to implement the interface directly, so that&#xA;the {@link #setMBeanServer} method works correctly.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315259_993595_9853"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_574695_16100" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_391995_9735" name="MBeanException">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_309861_9737" body="Represents &quot;user defined&quot; exceptions thrown by MBean methods&#xA;in the agent. It &quot;wraps&quot; the actual &quot;user defined&quot; exception thrown.&#xA;This exception will be built by the MBeanServer when a call to an&#xA;MBean method results in an unknown exception.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_391995_9735"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_362612_16055" isSubstitutable="true" general="_10_5_622020d_1132928315139_189458_9714"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_770909_9672" name="BinaryRelQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323081_294517_16029">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_334170_9674" body="This class is used by the query-building mechanism to represent binary&#xA;operations.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_770909_9672"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_363584_16030" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323081_294517_16029" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315119_770909_9672" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315279_757947_9856" name="ReflectionException">
            <ownedComment xmi:id="_10_5_622020d_1132928315279_410420_9858" body="Represents exceptions thrown in the MBean server when using the&#xA;java.lang.reflect classes to invoke methods on MBeans. It &quot;wraps&quot; the&#xA;actual java.lang.Exception thrown.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315279_757947_9856"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_407164_16101" isSubstitutable="true" general="_10_5_622020d_1132928315139_189458_9714"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_376314_9741" name="MBeanInfo" clientDependency="_10_5_622020d_1132928323101_231044_16057 _10_5_622020d_1132928323101_470583_16058">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_535540_9744" body="&lt;p>Describes the management interface exposed by an MBean; that is,&#xA;the set of attributes and operations which are available for&#xA;management operations.  Instances of this class are immutable.&#xA;Subclasses may be mutable but this is not recommended.&lt;/p>&#xA;&#xA;&lt;p>The contents of the &lt;code>MBeanInfo&lt;/code> for a Dynamic MBean&#xA;are determined by its {@link DynamicMBean#getMBeanInfo&#xA;getMBeanInfo()} method.  This includes Open MBeans and Model&#xA;MBeans, which are kinds of Dynamic MBeans.&lt;/p>&#xA;&#xA;&lt;p>The contents of the &lt;code>MBeanInfo&lt;/code> for a Standard MBean&#xA;are determined by the MBean server as follows:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>{@link #getClassName()} returns the Java class name of the MBean&#xA;object;&#xA;&#xA;&lt;li>{@link #getConstructors()} returns the list of all public&#xA;constructors in that object;&#xA;&#xA;&lt;li>{@link #getAttributes()} returns the list of all attributes&#xA;whose existence is deduced from the presence in the MBean interface&#xA;of a &lt;code>get&lt;i>Name&lt;/i>&lt;/code>, &lt;code>is&lt;i>Name&lt;/i>&lt;/code>, or&#xA;&lt;code>set&lt;i>Name&lt;/i>&lt;/code> method that conforms to the conventions&#xA;for Standard MBeans;&#xA;&#xA;&lt;li>{@link #getOperations()} returns the list of all methods in&#xA;the MBean interface that do not represent attributes;&#xA;&#xA;&lt;li>{@link #getNotifications()} returns an empty array if the MBean&#xA;does not implement the {@link NotificationBroadcaster} interface,&#xA;otherwise the result of calling {@link&#xA;NotificationBroadcaster#getNotificationInfo()} on it.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>The remaining details of the &lt;code>MBeanInfo&lt;/code> for a&#xA;Standard MBean are not specified.  This includes the description of&#xA;the &lt;code>MBeanInfo&lt;/code> and of any contained constructors,&#xA;attributes, operations, and notifications; and the names and&#xA;descriptions of parameters to constructors and operations.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_376314_9741"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_231044_16057" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315149_376314_9741" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_470583_16058" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_376314_9741" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_501658_9742" name="ImmutabilityAction" visibility="private" clientDependency="_10_5_622020d_1132928323101_318629_16059">
              <interfaceRealization xmi:id="_10_5_622020d_1132928323101_318629_16059" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_10_5_622020d_1132928315149_501658_9742" contract="_9_5_f720368_1110473546690_3186_8507"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315219_196625_9781" name="MBeanServerInvocationHandler" clientDependency="_10_5_622020d_1132928323111_283512_16074">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_913644_9783" body="&lt;p>{@link InvocationHandler} that forwards methods in an MBean's&#xA;management interface through the MBean server to the MBean.&lt;/p>&#xA;&#xA;&lt;p>Given an {@link MBeanServerConnection}, the {@link ObjectName}&#xA;of an MBean within that MBean server, and a Java interface&#xA;&lt;code>Intf&lt;/code> that describes the management interface of the&#xA;MBean using the patterns for a Standard MBean, this class can be&#xA;used to construct a proxy for the MBean.  The proxy implements&#xA;the interface &lt;code>Intf&lt;/code> such that all of its methods are&#xA;forwarded through the MBean server to the MBean.&lt;/p>&#xA;&#xA;&lt;p>If you have an MBean server &lt;code>mbs&lt;/code> containing an MBean&#xA;with {@link ObjectName} &lt;code>name&lt;/code>, and if the MBean's&#xA;management interface is described by the Java interface&#xA;&lt;code>Intf&lt;/code>, you can construct a proxy for the MBean like&#xA;this:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;Intf proxy = (Intf)&#xA;MBeanServerInvocationHandler.{@link #newProxyInstance newProxyInstance}(mbs,&#xA;name,&#xA;Intf.class,&#xA;false);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Suppose, for example, &lt;code>Intf&lt;/code> looks like this:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;public interface Intf {&#xA;public String getSomeAttribute();&#xA;public void setSomeAttribute(String value);&#xA;public void someOperation(String param1, int param2);&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>Then you can execute:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;code>proxy.getSomeAttribute()&lt;/code> which will result in a&#xA;call to &lt;code>mbs.&lt;/code>{@link MBeanServerConnection#getAttribute&#xA;getAttribute}&lt;code>(name, &quot;SomeAttribute&quot;)&lt;/code>.&#xA;&#xA;&lt;li>&lt;code>proxy.setSomeAttribute(&quot;whatever&quot;)&lt;/code> which will result&#xA;in a call to &lt;code>mbs.&lt;/code>{@link MBeanServerConnection#setAttribute&#xA;setAttribute}&lt;code>(name, new Attribute(&quot;SomeAttribute&quot;, &quot;whatever&quot;))&lt;/code>.&#xA;&#xA;&lt;li>&lt;code>proxy.someOperation(&quot;param1&quot;, 2)&lt;/code> which will be&#xA;translated into a call to &lt;code>mbs.&lt;/code>{@link&#xA;MBeanServerConnection#invoke invoke}&lt;code>(name, &quot;someOperation&quot;, &lt;etc>)&lt;/code>.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>If the last parameter to {@link #newProxyInstance&#xA;newProxyInstance} is &lt;code>true&lt;/code>, then the MBean is assumed&#xA;to be a {@link NotificationBroadcaster} or {@link&#xA;NotificationEmitter} and the returned proxy will implement {@link&#xA;NotificationEmitter}.  A call to {@link&#xA;NotificationBroadcaster#addNotificationListener} on the proxy will&#xA;result in a call to {@link&#xA;MBeanServerConnection#addNotificationListener(ObjectName,&#xA;NotificationListener, NotificationFilter, Object)}, and likewise&#xA;for the other methods of {@link NotificationBroadcaster} and {@link&#xA;NotificationEmitter}.&lt;/p>&#xA;&#xA;&lt;p>The methods {@link Object#toString()}, {@link Object#hashCode()},&#xA;and {@link Object#equals(Object)}, when invoked on a proxy using&#xA;this invocation handler, are forwarded to the MBean server as&#xA;methods on the proxied MBean.  This will only work if the MBean&#xA;declares those methods in its management interface.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315219_196625_9781"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_283512_16074" name="" supplier="_9_5_f720368_1110473546612_149432_7531" client="_10_5_622020d_1132928315219_196625_9781" contract="_9_5_f720368_1110473546612_149432_7531"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_951384_9639" name="Attribute" clientDependency="_10_5_622020d_1132928323071_526566_16015">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_341800_9641" body="Represents an MBean attribute by associating its name with its value.&#xA;The MBean server and other objects use this class to get and set attributes values.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_951384_9639"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_526566_16015" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315109_951384_9639" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315249_145728_9830" name="ObjectName" clientDependency="_10_5_622020d_1132928323111_697200_16093 _10_5_622020d_1132928323111_617719_16092">
            <ownedComment xmi:id="_10_5_622020d_1132928315249_606611_9834" body="&lt;p>Represents the object name of an MBean, or a pattern that can&#xA;match the names of several MBeans.  Instances of this class are&#xA;immutable.&lt;/p>&#xA;&#xA;&lt;p>An instance of this class can&#xA;be used to represent:&#xA;&lt;ul>&#xA;&lt;li> An object name&#xA;&lt;li> An object name pattern, within the context of a query&#xA;&lt;/ul>&lt;/p>&#xA;&#xA;&lt;p>An object name consists of two parts, the domain and the key&#xA;properties.&lt;/p>&#xA;&#xA;&lt;p>The &lt;em>domain&lt;/em> is a string of characters not including&#xA;the character colon (&lt;code>:&lt;/code>).&lt;/p>&#xA;&#xA;&lt;p>If the domain includes at least one occurrence of the wildcard&#xA;characters asterisk (&lt;code>*&lt;/code>) or question mark&#xA;(&lt;code>?&lt;/code>), then the object name is a pattern.  The asterisk&#xA;matches any sequence of zero or more characters, while the question&#xA;mark matches any single character.&lt;/p>&#xA;&#xA;&lt;p>If the domain is empty, it will be replaced in certain contexts&#xA;by the &lt;em>default domain&lt;/em> of the MBean server in which the&#xA;ObjectName is used.&lt;/p>&#xA;&#xA;&lt;p>The &lt;em>key properties&lt;/em> are an unordered set of keys and&#xA;associated values.&lt;/p>&#xA;&#xA;&lt;p>Each &lt;em>key&lt;/em> is a nonempty string of characters which may&#xA;not contain any of the characters comma (&lt;code>,&lt;/code>), equals&#xA;(&lt;code>=&lt;/code>), colon, asterisk, or question mark.  The same key&#xA;may not occur twice in a given ObjectName.&lt;/p>&#xA;&#xA;&lt;p>Each &lt;em>value&lt;/em> associated with a key is a string of&#xA;characters that is either unquoted or quoted.&lt;/p>&#xA;&#xA;&lt;p>An &lt;em>unquoted value&lt;/em> is a possibly empty string of&#xA;characters which may not contain any of the characters comma,&#xA;equals, colon, quote, asterisk, or question mark.&lt;/p>&#xA;&#xA;&lt;p>A &lt;em>quoted value&lt;/em> consists of a quote (&lt;code>&quot;&lt;/code>),&#xA;followed by a possibly empty string of characters, followed by&#xA;another quote.  Within the string of characters, the backslash&#xA;(&lt;code>\&lt;/code>) has a special meaning.  It must be followed by&#xA;one of the following characters:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&lt;li>Another backslash.  The second backslash has no special&#xA;meaning and the two characters represent a single backslash.&#xA;&#xA;&lt;li>The character 'n'.  The two characters represent a newline&#xA;('\n' in Java).&#xA;&#xA;&lt;li>A quote.  The two characters represent a quote, and that quote&#xA;is not considered to terminate the quoted value. An ending closing&#xA;quote must be present for the quoted value to be valid.&#xA;&#xA;&lt;li>A question mark (?) or star (*).  The two characters represent&#xA;a question mark or star respectively.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>A quote, question mark, or star may not appear inside a quoted&#xA;value except immediately after an odd number of consecutive&#xA;backslashes.&lt;/p>&#xA;&#xA;&lt;p>The quotes surrounding a quoted value, and any backslashes&#xA;within that value, are considered to be part of the value.&lt;/p>&#xA;&#xA;&lt;p>An ObjectName may be a &lt;em>property pattern&lt;/em>.  In this case&#xA;it may have zero or more keys and associated values.  It matches a&#xA;nonpattern ObjectName whose domain matches and that contains the&#xA;same keys and associated values, as well as possibly other keys and&#xA;values.&lt;/p>&#xA;&#xA;&lt;p>An ObjectName is a pattern if its domain contains a wildcard or&#xA;if the ObjectName is a property pattern.&lt;/p>&#xA;&#xA;&lt;p>If an ObjectName is not a pattern, it must contain at least one&#xA;key with its associated value.&lt;/p>&#xA;&#xA;&lt;p>An ObjectName can be written as a String with the following&#xA;elements in order:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&lt;li>The domain.&#xA;&lt;li>A colon (&lt;code>:&lt;/code>).&#xA;&lt;li>A key property list as defined below.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>A key property list written as a String is a comma-separated&#xA;list of elements.  Each element is either an asterisk or a key&#xA;property.  A key property consists of a key, an equals&#xA;(&lt;code>=&lt;/code>), and the associated value.&lt;/p>&#xA;&#xA;&lt;p>At most one element of a key property list may be an asterisk.&#xA;If the key property list contains an asterisk element, the&#xA;ObjectName is a property pattern.&lt;/p>&#xA;&#xA;&lt;p>Spaces have no special significance in a String representing an&#xA;ObjectName.  For example, the String:&#xA;&lt;pre>&#xA;domain: key1 = value1 , key2 = value2&#xA;&lt;/pre>&#xA;represents an ObjectName with two keys.  The name of each key&#xA;contains six characters, of which the first and last are spaces.&#xA;The value associated with the key &lt;code>&quot;&amp;nbsp;key1&amp;nbsp;&quot;&lt;/code>&#xA;also begins and ends with a space.&lt;/p>&#xA;&#xA;&lt;p>In addition to the restrictions on characters spelt out above,&#xA;no part of an ObjectName may contain a newline character&#xA;(&lt;code>'\n'&lt;/code>), whether the domain, a key, or a value, whether&#xA;quoted or unquoted.  The newline character can be represented in a&#xA;quoted value with the sequence &lt;code>\n&lt;/code>.&#xA;&#xA;&lt;p>The rules on special characters and quoting apply regardless of&#xA;which constructor is used to make an ObjectName.&lt;/p>&#xA;&#xA;&lt;p>To avoid collisions between MBeans supplied by different&#xA;vendors, a useful convention is to begin the domain name with the&#xA;reverse DNS name of the organization that specifies the MBeans,&#xA;followed by a period and a string whose interpretation is&#xA;determined by that organization.  For example, MBeans specified by&#xA;Sun Microsystems Inc., DNS name &lt;code>sun.com&lt;/code>, would have&#xA;domains such as &lt;code>com.sun.MyDomain&lt;/code>.  This is essentially&#xA;the same convention as for Java-language package names.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315249_145728_9830"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_617719_16092" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315249_145728_9830" contract="_10_5_622020d_1132928315259_993595_9853"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_697200_16093" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315249_145728_9830" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315249_694369_9831" name="Property" visibility="private" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315249_205100_9832" body="A structure recording property structure and&#xA;proposing minimal services&#xA;" annotatedElement="_10_5_622020d_1132928315249_694369_9831"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315249_765868_9827" name="ObjectInstance" clientDependency="_10_5_622020d_1132928323111_243999_16091">
            <ownedComment xmi:id="_10_5_622020d_1132928315249_797548_9829" body="Used to represent the object name of an MBean and its class name.&#xA;If the MBean is a Dynamic MBean the class name should be retrieved from&#xA;the &lt;CODE>MBeanInfo&lt;/CODE> it provides.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315249_765868_9827"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_243999_16091" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315249_765868_9827" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315239_796423_9815" name="NotificationFilterSupport" clientDependency="_10_5_622020d_1132928323111_79952_16084 _10_5_622020d_1132928323111_813879_16085">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_802127_9817" body="Provides an implementation of the {@link javax.management.NotificationFilter} interface.&#xA;The filtering is performed on the notification type attribute.&#xA;&lt;P>&#xA;Manages a list of enabled notification types.&#xA;A method allows users to enable/disable as many notification types as required.&#xA;&lt;P>&#xA;Then, before sending a notification to a listener registered with a filter,&#xA;the notification broadcaster compares this notification type with all notification types&#xA;enabled by the filter. The notification will be sent to the listener&#xA;only if its filter enables this notification type.&#xA;&lt;P>&#xA;Example:&#xA;&lt;BLOCKQUOTE>&#xA;&lt;PRE>&#xA;NotificationFilterSupport myFilter = new NotificationFilterSupport();&#xA;myFilter.enableType(&quot;my_example.my_type&quot;);&#xA;myBroadcaster.addListener(myListener, myFilter, null);&#xA;&lt;/PRE>&#xA;&lt;/BLOCKQUOTE>&#xA;The listener &lt;CODE>myListener&lt;/CODE> will only receive notifications the type of which equals/starts with &quot;my_example.my_type&quot;.&#xA;&#xA;@see javax.management.NotificationBroadcaster#addNotificationListener&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315239_796423_9815"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_79952_16084" name="" supplier="_10_5_622020d_1132928315239_958048_9812" client="_10_5_622020d_1132928315239_796423_9815" contract="_10_5_622020d_1132928315239_958048_9812"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_813879_16085" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315239_796423_9815" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_391152_9745" name="MBeanNotificationInfo" clientDependency="_10_5_622020d_1132928323101_220657_16060 _10_5_622020d_1132928323101_153910_16061">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_696536_9747" body="&lt;p>The &lt;CODE>MBeanNotificationInfo&lt;/CODE> class is used to describe the&#xA;characteristics of the different notification instances&#xA;emitted by an MBean, for a given Java class of notification.&#xA;If an MBean emits notifications that can be instances of different Java classes,&#xA;then the metadata for that MBean should provide an &lt;CODE>MBeanNotificationInfo&lt;/CODE>&#xA;object for each of these notification Java classes.&lt;/p>&#xA;&#xA;&lt;p>Instances of this class are immutable.  Subclasses may be&#xA;mutable but this is not recommended.&lt;/p>&#xA;&#xA;&lt;p>This class extends &lt;CODE>javax.management.MBeanFeatureInfo&lt;/CODE>&#xA;and thus provides &lt;CODE>name&lt;/CODE> and &lt;CODE>description&lt;/CODE> fields.&#xA;The &lt;CODE>name&lt;/CODE> field should be the fully qualified Java class name of&#xA;the notification objects described by this class.&lt;/p>&#xA;&#xA;&lt;p>The &lt;CODE>getNotifTypes&lt;/CODE> method returns an array of&#xA;strings containing the notification types that the MBean may&#xA;emit. The notification type is a dot-notation string which&#xA;describes what the emitted notification is about, not the Java&#xA;class of the notification.  A single generic notification class can&#xA;be used to send notifications of several types.  All of these types&#xA;are returned in the string array result of the&#xA;&lt;CODE>getNotifTypes&lt;/CODE> method.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_391152_9745"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_695836_16062" isSubstitutable="true" general="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_220657_16060" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315149_391152_9745" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_153910_16061" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_391152_9745" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_745475_9666" name="BetweenQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323071_448724_16025">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_440129_9668" body="This class is used by the query-building mechanism to represent binary&#xA;relations.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_745475_9666"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_831428_16026" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_448724_16025" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315119_745475_9666" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315129_804968_9699" name="InstanceAlreadyExistsException">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_128152_9701" body="The MBean is already registered in the repository.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_804968_9699"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_681512_16038" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315159_143068_9760" name="MBeanRegistrationException">
            <ownedComment xmi:id="_10_5_622020d_1132928315159_443186_9762" body="Wraps exceptions thrown by the preRegister(), preDeregister() methods&#xA;of the &lt;CODE>MBeanRegistration&lt;/CODE> interface.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315159_143068_9760"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_487312_16070" isSubstitutable="true" general="_10_5_622020d_1132928315149_391995_9735"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315219_310324_9778" name="MBeanServerFactory">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_939279_9780" body="&lt;p>Provides MBean server references.  There are no instances of&#xA;this class.&lt;/p>&#xA;&#xA;&lt;p>Since JMX 1.2 this class makes it possible to replace the default&#xA;MBeanServer implementation. This is done using the&#xA;{@link javax.management.MBeanServerBuilder} class.&#xA;The class of the initial MBeanServerBuilder to be&#xA;instantiated can be specified through the&#xA;&lt;b>javax.management.builder.initial&lt;/b> system property.&#xA;The specified class must be a public subclass of&#xA;{@link javax.management.MBeanServerBuilder}, and must have a public&#xA;empty constructor.&#xA;&lt;p>By default, if no value for that property is specified, an instance of&#xA;{@link&#xA;javax.management.MBeanServerBuilder javax.management.MBeanServerBuilder}&#xA;is created. Otherwise, the MBeanServerFactory attempts to load the&#xA;specified class using&#xA;{@link java.lang.Thread#getContextClassLoader()&#xA;Thread.currentThread().getContextClassLoader()}, or if that is null,&#xA;{@link java.lang.Class#forName(java.lang.String) Class.forName()}. Then&#xA;it creates an initial instance of that Class using&#xA;{@link java.lang.Class#newInstance()}. If any checked exception&#xA;is raised during this process (e.g.&#xA;{@link java.lang.ClassNotFoundException},&#xA;{@link java.lang.InstantiationException}) the MBeanServerFactory&#xA;will propagate this exception from within a RuntimeException.&lt;/p>&#xA;&#xA;&lt;p>The &lt;b>javax.management.builder.initial&lt;/b> system property is&#xA;consulted every time a new MBeanServer needs to be created, and the&#xA;class pointed to by that property is loaded. If that class is different&#xA;from that of the current MBeanServerBuilder, then a new MBeanServerBuilder&#xA;is created. Otherwise, the MBeanServerFactory may create a new&#xA;MBeanServerBuilder or reuse the current one.&lt;/p>&#xA;&#xA;&lt;p>If the class pointed to by the property cannot be&#xA;loaded, or does not correspond to a valid subclass of MBeanServerBuilder&#xA;then an exception is propagated, and no MBeanServer can be created until&#xA;the &lt;b>javax.management.builder.initial&lt;/b> system property is reset to&#xA;valid value.&lt;/p>&#xA;&#xA;&lt;p>The MBeanServerBuilder makes it possible to wrap the MBeanServers&#xA;returned by the default MBeanServerBuilder implementation, for the purpose&#xA;of e.g. adding an additional security layer.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315219_310324_9778"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_617273_9648" name="AttributeList">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_331196_9650" body="Represents a list of values for attributes of an&#xA;MBean. The methods used for the insertion of {@link javax.management.Attribute Attribute} objects in&#xA;the &lt;CODE>AttributeList&lt;/CODE> overrides the corresponding methods in the superclass&#xA;&lt;CODE>ArrayList&lt;/CODE>. This is needed in order to insure that the objects contained&#xA;in the &lt;CODE>AttributeList&lt;/CODE> are only &lt;CODE>Attribute&lt;/CODE> objects. This avoids getting&#xA;an exception when retrieving elements from the &lt;CODE>AttributeList&lt;/CODE>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_617273_9648"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_272949_16019" isSubstitutable="true" general="_9_5_f720368_1110473546706_839346_8833"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315219_749473_9784" name="MBeanServerNotification">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_718662_9786" body="Represents a notification emitted by the MBean server through the MBeanServerDelegate MBean.&#xA;The MBean Server emits the following types of notifications: MBean registration, MBean&#xA;de-registration.&#xA;&lt;P>&#xA;To receive to MBeanServerNotifications, you need to be declared as listener to&#xA;the {@link javax.management.MBeanServerDelegate javax.management.MBeanServerDelegate} MBean&#xA;that represents the MBeanServer. The ObjectName of the MBeanServerDelegate is:&#xA;&lt;CODE>JMImplementation:type=MBeanServerDelegate&lt;/CODE>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315219_749473_9784"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_441257_16075" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_275357_9669" name="BinaryOpValueExp" visibility="package" clientDependency="_10_5_622020d_1132928323071_696919_16027">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_602638_9671" body="This class is used by the query-building mechanism to represent binary&#xA;operations.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_275357_9669"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_593492_16028" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_696919_16027" name="" supplier="_10_5_622020d_1132928315289_830132_9879" client="_10_5_622020d_1132928315119_275357_9669" contract="_10_5_622020d_1132928315289_830132_9879"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315289_164003_9871" name="StandardMBean" clientDependency="_10_5_622020d_1132928323121_216700_16106">
            <ownedComment xmi:id="_10_5_622020d_1132928315289_358034_9875" body="&lt;p>An MBean whose management interface is determined by reflection&#xA;on a Java interface.&lt;/p>&#xA;&#xA;&lt;p>This class brings more flexibility to the notion of Management&#xA;Interface in the use of Standard MBeans.  Straightforward use of&#xA;the patterns for Standard MBeans described in the JMX Specification&#xA;means that there is a fixed relationship between the implementation&#xA;class of an MBean and its management interface (i.e., if the&#xA;implementation class is Thing, the management interface must be&#xA;ThingMBean).  This class makes it possible to keep the convenience&#xA;of specifying the management interface with a Java interface,&#xA;without requiring that there be any naming relationship between the&#xA;implementation and interface classes.&lt;/p>&#xA;&#xA;&lt;p>By making a DynamicMBean out of an MBean, this class makes&#xA;it possible to select any interface implemented by the MBean as its&#xA;management interface, provided that it complies with JMX patterns&#xA;(i.e., attributes defined by getter/setter etc...).&lt;/p>&#xA;&#xA;&lt;p> This class also provides hooks that make it possible to supply&#xA;custom descriptions and names for the {@link MBeanInfo} returned by&#xA;the DynamicMBean interface.&lt;/p>&#xA;&#xA;&lt;p>Using this class, an MBean can be created with any&#xA;implementation class name &lt;i>Impl&lt;/i> and with a management&#xA;interface defined (as for current Standard MBeans) by any interface&#xA;&lt;i>Intf&lt;/i>, in one of two general ways:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>Using the public constructor&#xA;{@link #StandardMBean(java.lang.Object, java.lang.Class)&#xA;StandardMBean(impl,interface)}:&#xA;&lt;pre>&#xA;MBeanServer mbs;&#xA;...&#xA;Impl impl = new Impl(...);&#xA;StandardMBean mbean = new StandardMBean(impl, Intf.class);&#xA;mbs.registerMBean(mbean, objectName);&#xA;&lt;/pre>&lt;/li>&#xA;&#xA;&lt;li>Subclassing StandardMBean:&#xA;&lt;pre>&#xA;public class Impl extends StandardMBean implements Intf {&#xA;public Impl() {&#xA;super(Intf.class);&#xA;}&#xA;implement methods of Intf&#xA;}&#xA;&#xA;[...]&#xA;&#xA;MBeanServer mbs;&#xA;....&#xA;Impl impl = new Impl();&#xA;mbs.registerMBean(impl, objectName);&#xA;&lt;/pre>&lt;/li>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>In either case, the class &lt;i>Impl&lt;/i> must implement the&#xA;interface &lt;i>Intf&lt;/i>.&lt;/p>&#xA;&#xA;&lt;p>Standard MBeans based on the naming relationship between&#xA;implementation and interface classes are of course still&#xA;available.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315289_164003_9871"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323121_216700_16106" name="" supplier="_10_5_622020d_1132928315129_133729_9693" client="_10_5_622020d_1132928315289_164003_9871" contract="_10_5_622020d_1132928315129_133729_9693"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315289_190637_9872" name="StandardMBeanMeta" visibility="private" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315289_768718_9873" body="Override StandardMetaDataImpl in order to redefine the caching&#xA;of MBean Information.&#xA;" annotatedElement="_10_5_622020d_1132928315289_190637_9872"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315209_877241_9766" name="MBeanServerBuilder">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_975388_9768" body="&lt;p>This class represents a builder that creates a default&#xA;{@link javax.management.MBeanServer} implementation.&#xA;The JMX {@link javax.management.MBeanServerFactory} allows&#xA;applications to provide their custom MBeanServer&#xA;implementation by providing a subclass of this class.&lt;/p>&#xA;&#xA;@see MBeanServer&#xA;@see MBeanServerFactory&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315209_877241_9766"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315129_661431_9708" name="InvalidApplicationException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_75797_9710" body="Thrown when an attempt is made to apply either of the following: A&#xA;subquery expression to an MBean or a qualified attribute expression&#xA;to an MBean of the wrong class.  This exception is used internally&#xA;by JMX during the evaluation of a query.  User code does not&#xA;usually see it.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_661431_9708"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_204634_16041" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314869_286972_9269" name="loading">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314879_382739_9282" name="MLetContent" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_790401_9284" body="This class represents the contents of the &lt;CODE>MLET&lt;/CODE> tag.&#xA;&lt;p>&#xA;The &lt;CODE>MLET&lt;/CODE> tag has the following syntax:&#xA;&lt;p>&#xA;&lt;&lt;CODE>MLET&lt;/CODE>&lt;BR>&#xA;&lt;CODE>CODE = &lt;/CODE>&lt;VAR>class&lt;/VAR>&lt;CODE> | OBJECT = &lt;/CODE>&lt;VAR>serfile&lt;/VAR>&lt;BR>&#xA;&lt;CODE>ARCHIVE = &quot;&lt;/CODE>&lt;VAR>archiveList&lt;/VAR>&lt;CODE>&quot;&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[CODEBASE = &lt;/CODE>&lt;VAR>codebaseURL&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[NAME = &lt;/CODE>&lt;VAR>mbeanname&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[VERSION = &lt;/CODE>&lt;VAR>version&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;>&lt;BR>&#xA;&lt;CODE>[&lt;/CODE>&lt;VAR>arglist&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;&lt;CODE>/MLET&lt;/CODE>>&#xA;&lt;p>&#xA;where:&#xA;&lt;DL>&#xA;&lt;DT>&lt;CODE>CODE = &lt;/CODE>&lt;VAR>class&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This attribute specifies the full Java class name, including package name, of the MBean to be obtained.&#xA;The compiled &lt;CODE>.class&lt;/CODE> file of the MBean must be contained in one of the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE>&#xA;attribute. Either &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> must be present.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>OBJECT = &lt;/CODE>&lt;VAR>serfile&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This attribute specifies the &lt;CODE>.ser&lt;/CODE> file that contains a serialized representation of the MBean to be obtained.&#xA;This file must be contained in one of the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE> attribute. If the &lt;CODE>.jar&lt;/CODE> file contains a directory hierarchy, specify the path of the file within this hierarchy. Otherwise  a match will not be found. Either &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> must be present.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>ARCHIVE = &quot;&lt;/CODE>&lt;VAR>archiveList&lt;/VAR>&lt;CODE>&quot;&lt;/CODE>&lt;/DT>&#xA;&lt;DD>&#xA;This mandatory attribute specifies one or more &lt;CODE>.jar&lt;/CODE> files&#xA;containing MBeans or other resources used by&#xA;the MBean to be obtained. One of the &lt;CODE>.jar&lt;/CODE> files must contain the file specified by the &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> attribute.&#xA;If archivelist contains more than one file:&#xA;&lt;UL>&#xA;&lt;LI>Each file must be separated from the one that follows it by a comma (,).&#xA;&lt;LI>&lt;VAR>archivelist&lt;/VAR> must be enclosed in double quote marks.&#xA;&lt;/UL>&#xA;All &lt;CODE>.jar&lt;/CODE> files in &lt;VAR>archivelist&lt;/VAR> must be stored in the directory specified by the code base URL.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>CODEBASE = &lt;/CODE>&lt;VAR>codebaseURL&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the code base URL of the MBean to be obtained. It identifies the directory that contains&#xA;the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE> attribute. Specify this attribute only if the &lt;CODE>.jar&lt;/CODE> files are not in the same&#xA;directory as the MLet text file. If this attribute is not specified, the base URL of the MLet text file is used.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>NAME = &lt;/CODE>&lt;VAR>mbeanname&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the object name to be assigned to the&#xA;MBean instance when the MLet service registers it. If&#xA;&lt;VAR>mbeanname&lt;/VAR> starts with the colon character (:), the domain&#xA;part of the object name is the domain of the agent. The MLet service&#xA;invokes the &lt;CODE>getDomain()&lt;/CODE> method of the Framework class to&#xA;obtain this information.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>PERSISTENT = &lt;/CODE>&lt;VAR>true | false&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the persistency or not persistency of the&#xA;MBean instance when the MLet service registers it.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>VERSION = &lt;/CODE>&lt;VAR>version&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the version number of the MBean and&#xA;associated &lt;CODE>.jar&lt;/CODE> files to be obtained. This version number can&#xA;be used to specify that the &lt;CODE>.jar&lt;/CODE> files are loaded from the&#xA;server to update those stored locally in the cache the next time the MLet&#xA;text file is loaded. &lt;VAR>version&lt;/VAR> must be a series of non-negative&#xA;decimal integers each separated by a period from the one that precedes it.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;VAR>paramlist&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies a list of one or more parameters for the&#xA;MBean to be instantiated. Each parameter in &lt;VAR>paramlist&lt;/VAR> corresponds to a modification in the&#xA;modification list. Use the following syntax to specify each item in&#xA;&lt;VAR>paramlist&lt;/VAR>:&lt;/DD>&#xA;&lt;DL>&#xA;&lt;P>&#xA;&lt;DT>&lt;&lt;CODE>PARAM NAME=&lt;/CODE>&lt;VAR>propertyName&lt;/VAR> &lt;CODE>VALUE=&lt;/CODE>&lt;VAR>value&lt;/VAR>>&lt;/DT>&#xA;&lt;P>&#xA;&lt;DD>where:&lt;/DD>&#xA;&lt;UL>&#xA;&lt;LI>&lt;VAR>propertyName&lt;/VAR> is the name of the property in the modification&#xA;&lt;LI>&lt;VAR>value&lt;/VAR> is the value in the modification&lt;/UL>&#xA;&lt;/DL>&#xA;&lt;P>The MLet service passes all the values in the modification list as&#xA;&lt;CODE>String&lt;/CODE> objects.&#xA;&lt;/DL>&#xA;&#xA;&lt;p>&lt;STRONG>Note - &lt;/STRONG>Multiple &lt;CODE>MLET&lt;/CODE> tags with the same&#xA;code base URL share the same instance of the &lt;CODE>MLetClassLoader&lt;/CODE>&#xA;class.&#xA;&#xA;@version     3.3     02/08/99&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314879_382739_9282"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314889_278007_9291" name="MLetParser" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_558662_9293" body="This class is used for parsing URLs.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314889_278007_9291"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314879_243650_9273" name="DefaultLoaderRepository">
              <ownedComment xmi:id="_10_5_622020d_1132928314879_297990_9278" body="&lt;p>Keeps the list of Class Loaders registered in the MBean Server.&#xA;It provides the necessary methods to load classes using the registered&#xA;Class Loaders.&lt;/p>&#xA;&#xA;&lt;p>This deprecated class is maintained for compatibility.  In&#xA;previous versions of JMX, there was one&#xA;&lt;code>DefaultLoaderRepository&lt;/code> shared by all MBean servers.&#xA;As of JMX 1.2, that functionality is approximated by using {@link&#xA;MBeanServerFactory#findMBeanServer} to find all known MBean&#xA;servers, and consulting the {@link ClassLoaderRepository} of each&#xA;one.  It is strongly recommended that code referencing&#xA;&lt;code>DefaultLoaderRepository&lt;/code> be rewritten.&lt;/p>&#xA;&#xA;@deprecated Use&#xA;{@link javax.management.MBeanServer#getClassLoaderRepository()}}&#xA;instead.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314879_243650_9273"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314889_956291_9288" name="MLetObjectInputStream" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_580121_9290" body="This subclass of ObjectInputStream delegates loading of classes to&#xA;an existing MLetClassLoader.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314889_956291_9288"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_652474_15838" isSubstitutable="true" general="_9_5_f720368_1110473546596_774585_7437"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314889_283723_9285" name="MLetMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_603673_9287" body="Exposes the remote management interface of the MLet&#xA;MBean.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314889_283723_9285"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314869_87503_9270" name="ClassLoaderRepository" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314879_100585_9272" body="&lt;p>Instances of this interface are used to keep the list of ClassLoaders&#xA;registered in an MBean Server.&#xA;They provide the necessary methods to load classes using the registered&#xA;ClassLoaders.&lt;/p>&#xA;&#xA;&lt;p>The first ClassLoader in a &lt;code>ClassLoaderRepository&lt;/code> is&#xA;always the MBean Server's own ClassLoader.&lt;/p>&#xA;&#xA;&lt;p>When an MBean is registered in an MBean Server, if it is of a&#xA;subclass of {@link java.lang.ClassLoader} and if it does not&#xA;implement the interface {@link PrivateClassLoader}, it is added to&#xA;the end of the MBean Server's &lt;code>ClassLoaderRepository&lt;/code>.&#xA;If it is subsequently unregistered from the MBean Server, it is&#xA;removed from the &lt;code>ClassLoaderRepository&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>The order of MBeans in the &lt;code>ClassLoaderRepository&lt;/code> is&#xA;significant.  For any two MBeans &lt;em>X&lt;/em> and &lt;em>Y&lt;/em> in the&#xA;&lt;code>ClassLoaderRepository&lt;/code>, &lt;em>X&lt;/em> must appear before&#xA;&lt;em>Y&lt;/em> if the registration of &lt;em>X&lt;/em> was completed before&#xA;the registration of &lt;em>Y&lt;/em> started.  If &lt;em>X&lt;/em> and&#xA;&lt;em>Y&lt;/em> were registered concurrently, their order is&#xA;indeterminate.  The registration of an MBean corresponds to the&#xA;call to {@link MBeanServer#registerMBean} or one of the {@link&#xA;MBeanServer}&lt;code>.createMBean&lt;/code> methods.&lt;/p>&#xA;&#xA;@see javax.management.MBeanServerFactory&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314869_87503_9270"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314889_342554_9294" name="PrivateClassLoader" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_560359_9296" body="Marker interface indicating that a ClassLoader should not be added&#xA;to the {@link ClassLoaderRepository}.  When a ClassLoader is&#xA;registered as an MBean in the MBean server, it is added to the&#xA;MBean server's ClassLoaderRepository unless it implements this&#xA;interface.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928314889_342554_9294"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314889_798636_9297" name="PrivateMLet" clientDependency="_10_5_622020d_1132928322940_510039_15839">
              <ownedComment xmi:id="_10_5_622020d_1132928314889_344226_9299" body="An MLet that is not added to the {@link ClassLoaderRepository}.&#xA;This class acts exactly like its parent class, {@link MLet}, with&#xA;one exception.  When a PrivateMLet is registered in an MBean&#xA;server, it is not added to that MBean server's {@link&#xA;ClassLoaderRepository}.  This is true because this class implements&#xA;the interface {@link PrivateClassLoader}.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928314889_798636_9297"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_428877_15840" isSubstitutable="true" general="_10_5_622020d_1132928314879_337376_9279"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_510039_15839" name="" supplier="_10_5_622020d_1132928314889_342554_9294" client="_10_5_622020d_1132928314889_798636_9297" contract="_10_5_622020d_1132928314889_342554_9294"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314879_337376_9279" name="MLet" clientDependency="_10_5_622020d_1132928322940_130550_15834 _10_5_622020d_1132928322940_780057_15835 _10_5_622020d_1132928322940_68341_15836">
              <ownedComment xmi:id="_10_5_622020d_1132928314879_198735_9281" body="Allows you to instantiate and register one or several MBeans in the MBean server&#xA;coming from a remote URL. M-let is a shortcut for management applet. The m-let service does this&#xA;by loading an m-let text file, which specifies information on the MBeans to be obtained.&#xA;The information on each MBean is specified in a single instance of a tag, called the MLET tag.&#xA;The location of the m-let text file is specified by a URL.&#xA;&lt;p>&#xA;The &lt;CODE>MLET&lt;/CODE> tag has the following syntax:&#xA;&lt;p>&#xA;&lt;&lt;CODE>MLET&lt;/CODE>&lt;BR>&#xA;&lt;CODE>CODE = &lt;/CODE>&lt;VAR>class&lt;/VAR>&lt;CODE> | OBJECT = &lt;/CODE>&lt;VAR>serfile&lt;/VAR>&lt;BR>&#xA;&lt;CODE>ARCHIVE = &quot;&lt;/CODE>&lt;VAR>archiveList&lt;/VAR>&lt;CODE>&quot;&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[CODEBASE = &lt;/CODE>&lt;VAR>codebaseURL&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[NAME = &lt;/CODE>&lt;VAR>mbeanname&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;CODE>[VERSION = &lt;/CODE>&lt;VAR>version&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;>&lt;BR>&#xA;&lt;CODE>[&lt;/CODE>&lt;VAR>arglist&lt;/VAR>&lt;CODE>]&lt;/CODE>&lt;BR>&#xA;&lt;&lt;CODE>/MLET&lt;/CODE>>&#xA;&lt;p>&#xA;where:&#xA;&lt;DL>&#xA;&lt;DT>&lt;CODE>CODE = &lt;/CODE>&lt;VAR>class&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This attribute specifies the full Java class name, including package name, of the MBean to be obtained.&#xA;The compiled &lt;CODE>.class&lt;/CODE> file of the MBean must be contained in one of the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE>&#xA;attribute. Either &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> must be present.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>OBJECT = &lt;/CODE>&lt;VAR>serfile&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This attribute specifies the &lt;CODE>.ser&lt;/CODE> file that contains a serialized representation of the MBean to be obtained.&#xA;This file must be contained in one of the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE> attribute. If the &lt;CODE>.jar&lt;/CODE> file contains a directory hierarchy, specify the path of the file within this hierarchy. Otherwise  a match will not be found. Either &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> must be present.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>ARCHIVE = &quot;&lt;/CODE>&lt;VAR>archiveList&lt;/VAR>&lt;CODE>&quot;&lt;/CODE>&lt;/DT>&#xA;&lt;DD>&#xA;This mandatory attribute specifies one or more &lt;CODE>.jar&lt;/CODE> files&#xA;containing MBeans or other resources used by&#xA;the MBean to be obtained. One of the &lt;CODE>.jar&lt;/CODE> files must contain the file specified by the &lt;CODE>CODE&lt;/CODE> or &lt;CODE>OBJECT&lt;/CODE> attribute.&#xA;If archivelist contains more than one file:&#xA;&lt;UL>&#xA;&lt;LI>Each file must be separated from the one that follows it by a comma (,).&#xA;&lt;LI>&lt;VAR>archivelist&lt;/VAR> must be enclosed in double quote marks.&#xA;&lt;/UL>&#xA;All &lt;CODE>.jar&lt;/CODE> files in &lt;VAR>archivelist&lt;/VAR> must be stored in the directory specified by the code base URL.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>CODEBASE = &lt;/CODE>&lt;VAR>codebaseURL&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the code base URL of the MBean to be obtained. It identifies the directory that contains&#xA;the &lt;CODE>.jar&lt;/CODE> files specified by the &lt;CODE>ARCHIVE&lt;/CODE> attribute. Specify this attribute only if the &lt;CODE>.jar&lt;/CODE> files are not in the same&#xA;directory as the m-let text file. If this attribute is not specified, the base URL of the m-let text file is used.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>NAME = &lt;/CODE>&lt;VAR>mbeanname&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the object name to be assigned to the&#xA;MBean instance when the m-let service registers it. If&#xA;&lt;VAR>mbeanname&lt;/VAR> starts with the colon character (:), the domain&#xA;part of the object name is the domain of the agent. The m-let service&#xA;invokes the &lt;CODE>getDomain()&lt;/CODE> method of the Framework class to&#xA;obtain this information.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;CODE>VERSION = &lt;/CODE>&lt;VAR>version&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies the version number of the MBean and&#xA;associated &lt;CODE>.jar&lt;/CODE> files to be obtained. This version number can&#xA;be used to specify that the &lt;CODE>.jar&lt;/CODE> files are loaded from the&#xA;server to update those stored locally in the cache the next time the m-let&#xA;text file is loaded. &lt;VAR>version&lt;/VAR> must be a series of non-negative&#xA;decimal integers each separated by a period from the one that precedes it.&#xA;&lt;/DD>&#xA;&lt;DT>&lt;VAR>arglist&lt;/VAR>&lt;/DT>&#xA;&lt;DD>&#xA;This optional attribute specifies a list of one or more parameters for the&#xA;MBean to be instantiated. This list describes the parameters to be passed the MBean's constructor.&#xA;Use the following syntax to specify each item in&#xA;&lt;VAR>arglist&lt;/VAR>:&lt;/DD>&#xA;&lt;DL>&#xA;&lt;P>&#xA;&lt;DT>&lt;&lt;CODE>ARG TYPE=&lt;/CODE>&lt;VAR>argumentType&lt;/VAR> &lt;CODE>VALUE=&lt;/CODE>&lt;VAR>value&lt;/VAR>>&lt;/DT>&#xA;&lt;P>&#xA;&lt;DD>where:&lt;/DD>&#xA;&lt;UL>&#xA;&lt;LI>&lt;VAR>argumentType&lt;/VAR> is the type of the argument that will be passed as parameter to the MBean's constructor.&lt;/UL>&#xA;&lt;/DL>&#xA;&lt;P>The arguments' type in the argument list should be a Java primitive type or a Java basic type&#xA;(&lt;CODE>java.lang.Boolean, java.lang.Byte, java.lang.Short, java.lang.Long, java.lang.Integer, java.lang.Float, java.lang.Double, java.lang.String&lt;/CODE>).&#xA;&lt;/DL>&#xA;&#xA;When an m-let text file is loaded, an&#xA;instance of each MBean specified in the file is created and registered.&#xA;&lt;P>&#xA;The m-let Service extends the &lt;CODE>java.net.URLClassLoader&lt;/CODE> and can be used to load remote classes&#xA;and jar files in the VM of the agent.&#xA;&lt;p>&lt;STRONG>Note - &lt;/STRONG> The &lt;CODE>MLet&lt;/CODE> class loader uses the {@link javax.management.MBeanServerFactory#getClassLoaderRepository(javax.management.MBeanServer)}&#xA;to load classes that could not be found in the loaded jar files.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314879_337376_9279"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_878308_15837" isSubstitutable="true" general="_9_5_f720368_1110473546643_203154_7843"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_130550_15834" name="" supplier="_10_5_622020d_1132928314889_283723_9285" client="_10_5_622020d_1132928314879_337376_9279" contract="_10_5_622020d_1132928314889_283723_9285"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_780057_15835" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928314879_337376_9279" contract="_10_5_622020d_1132928315159_590504_9757"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_68341_15836" name="" supplier="_9_5_f720368_1110473546596_293067_7381" client="_10_5_622020d_1132928314879_337376_9279" contract="_9_5_f720368_1110473546596_293067_7381"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315259_332190_9847" name="Query">
            <ownedComment xmi:id="_10_5_622020d_1132928315259_375597_9849" body="&lt;p>Constructs query object constraints. The static methods provided&#xA;return query expressions that may be used in listing and&#xA;enumerating MBeans. Individual constraint construction methods&#xA;allow only appropriate types as arguments. Composition of calls can&#xA;construct arbitrary nestings of constraints, as the following&#xA;example illustrates:&lt;/p>&#xA;&#xA;&lt;pre>&#xA;QueryExp exp = Query.and(Query.gt(Query.attr(&quot;age&quot;),Query.value(5)),&#xA;Query.match(Query.attr(&quot;name&quot;),&#xA;Query.value(&quot;Smith&quot;)));&#xA;&lt;/pre>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315259_332190_9847"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_485529_16098" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315219_202070_9775" name="MBeanServerDelegateMBean" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_41805_9777" body="Defines the management interface  of an object of class MBeanServerDelegate.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315219_202070_9775"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_8237_9796" name="NotCompliantMBeanException">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_893127_9798" body="Exception which occurs when trying to register an  object in the MBean server that is not a JMX compliant MBean.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315229_8237_9796"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_902962_16079" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315219_703465_9772" name="MBeanServerDelegate" clientDependency="_10_5_622020d_1132928323101_20664_16072 _10_5_622020d_1132928323101_129495_16073">
            <ownedComment xmi:id="_10_5_622020d_1132928315219_515700_9774" body="Represents  the MBean server from the management point of view.&#xA;The MBeanServerDelegate MBean emits the MBeanServerNotifications when&#xA;an MBean is registered/unregistered in the MBean server.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315219_703465_9772"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_20664_16072" name="" supplier="_10_5_622020d_1132928315219_202070_9775" client="_10_5_622020d_1132928315219_703465_9772" contract="_10_5_622020d_1132928315219_202070_9775"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_129495_16073" name="" supplier="_10_5_622020d_1132928315239_884551_9809" client="_10_5_622020d_1132928315219_703465_9772" contract="_10_5_622020d_1132928315239_884551_9809"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_442862_9754" name="MBeanPermission">
            <ownedComment xmi:id="_10_5_622020d_1132928315159_77341_9756" body="&lt;p>Permission controlling access to MBeanServer operations.  If a&#xA;security manager has been set using {@link&#xA;System#setSecurityManager}, most operations on the MBean Server&#xA;require that the caller's permissions imply an MBeanPermission&#xA;appropriate for the operation.  This is described in detail in the&#xA;documentation for the {@link MBeanServer} interface.&lt;/p>&#xA;&#xA;&lt;p>As with other {@link Permission} objects, an MBeanPermission can&#xA;represent either a permission that you &lt;em>have&lt;/em> or a&#xA;permission that you &lt;em>need&lt;/em>.  When a sensitive operation is&#xA;being checked for permission, an MBeanPermission is constructed&#xA;representing the permission you need.  The operation is only&#xA;allowed if the permissions you have {@link #implies imply} the&#xA;permission you need.&lt;/p>&#xA;&#xA;&lt;p>An MBeanPermission contains four items of information:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p>The &lt;em>action&lt;/em>.  For a permission you need,&#xA;this is one of the actions in the list &lt;a&#xA;href=&quot;#action-list&quot;>below&lt;/a>.  For a permission you have, this is&#xA;a comma-separated list of those actions, or &lt;code>*&lt;/code>,&#xA;representing all actions.&lt;/p>&#xA;&#xA;&lt;p>The action is returned by {@link #getActions()}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>The &lt;em>class name&lt;/em>.&lt;/p>&#xA;&#xA;&lt;p>For a permission you need, this is the class name of an MBean&#xA;you are accessing, as returned by {@link&#xA;MBeanServer#getMBeanInfo(ObjectName)&#xA;MBeanServer.getMBeanInfo(name)}.{@link MBeanInfo#getClassName()&#xA;getClassName()}.  Certain operations do not reference a class name,&#xA;in which case the class name is null.&lt;/p>&#xA;&#xA;&lt;p>For a permission you have, this is either empty or a &lt;em>class&#xA;name pattern&lt;/em>.  A class name pattern is a string following the&#xA;Java conventions for dot-separated class names.  It may end with&#xA;&quot;&lt;code>.*&lt;/code>&quot; meaning that the permission grants access to any&#xA;class that begins with the string preceding &quot;&lt;code>.*&lt;/code>&quot;.  For&#xA;instance, &quot;&lt;code>javax.management.*&lt;/code>&quot; grants access to&#xA;&lt;code>javax.management.MBeanServerDelegate&lt;/code> and&#xA;&lt;code>javax.management.timer.Timer&lt;/code>, among other classes.&lt;/p>&#xA;&#xA;&lt;p>A class name pattern can also be empty or the single character&#xA;&quot;&lt;code>*&lt;/code>&quot;, both of which grant access to any class.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>The &lt;em>member&lt;/em>.&lt;/p>&#xA;&#xA;&lt;p>For a permission you need, this is the name of the attribute or&#xA;operation you are accessing.  For operations that do not reference&#xA;an attribute or operation, the member is null.&lt;/p>&#xA;&#xA;&lt;p>For a permission you have, this is either the name of an attribute&#xA;or operation you can access, or it is empty or the single character&#xA;&quot;&lt;code>*&lt;/code>&quot;, both of which grant access to any member.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>The &lt;em>object name&lt;/em>.&lt;/p>&#xA;&#xA;&lt;p>For a permission you need, this is the {@link ObjectName} of the&#xA;MBean you are accessing.  For operations that do not reference a&#xA;single MBean, it is null.  It is never an object name pattern.&lt;/p>&#xA;&#xA;&lt;p>For a permission you have, this is the {@link ObjectName} of the&#xA;MBean or MBeans you can access.  It may be an object name pattern&#xA;to grant access to all MBeans whose names match the pattern.  It&#xA;may also be empty, which grants access to all MBeans whatever their&#xA;name.&lt;/p>&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>If you have an MBeanPermission, it allows operations only if all&#xA;four of the items match.&lt;/p>&#xA;&#xA;&lt;p>The class name, member, and object name can be written together&#xA;as a single string, which is the &lt;em>name&lt;/em> of this permission.&#xA;The name of the permission is the string returned by {@link&#xA;Permission#getName() getName()}.  The format of the string is:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&lt;code>className#member[objectName]&lt;/code>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>The object name is written using the usual syntax for {@link&#xA;ObjectName}.  It may contain any legal characters, including&#xA;&lt;code>]&lt;/code>.  It is terminated by a &lt;code>]&lt;/code> character&#xA;that is the last character in the string.&lt;/p>&#xA;&#xA;&lt;p>One or more of the &lt;code>className&lt;/code>, &lt;code>member&lt;/code>,&#xA;or &lt;code>objectName&lt;/code> may be omitted.  If the&#xA;&lt;code>member&lt;/code> is omitted, the &lt;code>#&lt;/code> may be too (but&#xA;does not have to be).  If the &lt;code>objectName&lt;/code> is omitted,&#xA;the &lt;code>[]&lt;/code> may be too (but does not have to be).  It is&#xA;not legal to omit all three items, that is to have a &lt;em>name&lt;/em>&#xA;that is the empty string.&lt;/p>&#xA;&#xA;&lt;p>One or more of the &lt;code>className&lt;/code>, &lt;code>member&lt;/code>,&#xA;or &lt;code>objectName&lt;/code> may be the character &quot;&lt;code>-&lt;/code>&quot;,&#xA;which is equivalent to a null value.  A null value is implied by&#xA;any value (including another null value) but does not imply any&#xA;other value.&lt;/p>&#xA;&#xA;&lt;p>&lt;a name=&quot;action-list&quot;>The possible actions are these:&lt;/a>&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&lt;li>addNotificationListener&lt;/li>&#xA;&lt;li>getAttribute&lt;/li>&#xA;&lt;li>getClassLoader&lt;/li>&#xA;&lt;li>getClassLoaderFor&lt;/li>&#xA;&lt;li>getClassLoaderRepository&lt;/li>&#xA;&lt;li>getDomains&lt;/li>&#xA;&lt;li>getMBeanInfo&lt;/li>&#xA;&lt;li>getObjectInstance&lt;/li>&#xA;&lt;li>instantiate&lt;/li>&#xA;&lt;li>invoke&lt;/li>&#xA;&lt;li>isInstanceOf&lt;/li>&#xA;&lt;li>queryMBeans&lt;/li>&#xA;&lt;li>queryNames&lt;/li>&#xA;&lt;li>registerMBean&lt;/li>&#xA;&lt;li>removeNotificationListener&lt;/li>&#xA;&lt;li>setAttribute&lt;/li>&#xA;&lt;li>unregisterMBean&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>In a comma-separated list of actions, spaces are allowed before&#xA;and after each action.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.2&#xA;" annotatedElement="_10_5_622020d_1132928315149_442862_9754"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_636785_16069" isSubstitutable="true" general="_9_5_f720368_1110473546690_144720_8491"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_469160_9717" name="JMRuntimeException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_490219_9719" body="Runtime exceptions emitted by JMX implementations.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_469160_9717"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_496131_16044" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315289_830132_9879" name="ValueExp" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315289_120548_9881" body="Represents values that can be passed as arguments to&#xA;relational expressions. Strings, numbers, attributes are valid values&#xA;and should be represented by implementations of &lt;CODE>ValueExp&lt;/CODE>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315289_830132_9879"/>
            <generalization xmi:id="_10_5_622020d_1132928323151_521880_16114" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315289_593055_9876" name="StringValueExp" clientDependency="_10_5_622020d_1132928323151_535499_16113">
            <ownedComment xmi:id="_10_5_622020d_1132928315289_953084_9878" body="Represents strings that are arguments to relational constraints.&#xA;A &lt;CODE>StringValueExp&lt;/CODE> may be used anywhere a &lt;CODE>ValueExp&lt;/CODE> is required.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315289_593055_9876"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323151_535499_16113" name="" supplier="_10_5_622020d_1132928315289_830132_9879" client="_10_5_622020d_1132928315289_593055_9876" contract="_10_5_622020d_1132928315289_830132_9879"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_596562_9660" name="BadBinaryOpValueExpException">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_602033_9662" body="Thrown when an invalid expression is passed to a method for&#xA;constructing a query.  This exception is used internally by JMX&#xA;during the evaluation of a query.  User code does not usually see&#xA;it.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_596562_9660"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_733312_16023" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_987795_9645" name="AttributeChangeNotificationFilter" clientDependency="_10_5_622020d_1132928323071_556468_16018 _10_5_622020d_1132928323071_905228_16017">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_969430_9647" body="This class implements of the {@link javax.management.NotificationFilter NotificationFilter}&#xA;interface for the {@link javax.management.AttributeChangeNotification attribute change notification}.&#xA;The filtering is performed on the name of the observed attribute.&#xA;&lt;P>&#xA;It manages a list of enabled attribute names.&#xA;A method allows users to enable/disable as many attribute names as required.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_987795_9645"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_905228_16017" name="" supplier="_10_5_622020d_1132928315239_958048_9812" client="_10_5_622020d_1132928315109_987795_9645" contract="_10_5_622020d_1132928315239_958048_9812"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323071_556468_16018" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315109_987795_9645" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315239_385071_9818" name="NotificationListener" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_276993_9820" body="Should be implemented by an object that wants to receive notifications.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315239_385071_9818"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_434232_16086" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928315009_847083_9527" name="remote">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315089_154934_9608" name="NotificationResult" clientDependency="_10_5_622020d_1132928323071_47219_16004">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_314807_9610" body="&lt;p>Result of a query for buffered notifications.  Notifications in&#xA;a notification buffer have positive, monotonically increasing&#xA;sequence numbers.  The result of a notification query contains the&#xA;following elements:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>The sequence number of the earliest notification still in&#xA;the buffer.&#xA;&#xA;&lt;li>The sequence number of the next notification available for&#xA;querying.  This will be the starting sequence number for the next&#xA;notification query.&#xA;&#xA;&lt;li>An array of (Notification,listenerID) pairs corresponding to&#xA;the returned notifications and the listeners they correspond to.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>It is possible for the &lt;code>nextSequenceNumber&lt;/code> to be less&#xA;than the &lt;code>earliestSequenceNumber&lt;/code>.  This signifies that&#xA;notifications between the two might have been lost.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_154934_9608"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_47219_16004" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315089_154934_9608" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928315009_82244_9528" name="rmi">
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315009_921607_9532" name="RMIConnection" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315009_273347_9534" body="&lt;p>RMI object used to forward an MBeanServer request from a client&#xA;to its MBeanServer implementation on the server side.  There is one&#xA;Remote object implementing this interface for each remote client&#xA;connected to an RMI connector.&lt;/p>&#xA;&#xA;&lt;p>User code does not usually refer to this interface.  It is&#xA;specified as part of the public API so that different&#xA;implementations of that API will interoperate.&lt;/p>&#xA;&#xA;&lt;p>To ensure that client parameters will be deserialized at the&#xA;server side with the correct classloader, client parameters such as&#xA;parameters used to invoke a method are wrapped in a {@link&#xA;MarshalledObject}.  An implementation of this interface must first&#xA;get the appropriate class loader for the operation and its target,&#xA;then deserialize the marshalled parameters with this classloader.&#xA;Except as noted, a parameter that is a&#xA;&lt;code>MarshalledObject&lt;/code> or &lt;code>MarshalledObject[]&lt;/code>&#xA;must not be null; the behavior is unspecified if it is.&lt;/p>&#xA;&#xA;&lt;p>Class loading aspects are detailed in the companion document&#xA;&lt;em>JMX Remote API&lt;/em>, which completes this documentation.&#xA;It should be available as a PDF document in the same place as this&#xA;Javadoc specification.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;&lt;p>Most methods in this interface parallel methods in the {@link&#xA;MBeanServerConnection} interface.  Where an aspect of the behavior&#xA;of a method is not specified here, it is the same as in the&#xA;corresponding &lt;code>MBeanServerConnection&lt;/code> method.&#xA;" annotatedElement="_10_5_622020d_1132928315009_921607_9532"/>
                <generalization xmi:id="_10_5_622020d_1132928322970_357668_15950" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_200862_9542" name="RMIConnector" clientDependency="_10_5_622020d_1132928323000_89004_15971 _10_5_622020d_1132928323000_807507_15970">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_879632_9548" body="&lt;p>A connection to a remote RMI connector.  Usually, such&#xA;connections are made using {@link&#xA;javax.management.remote.JMXConnectorFactory JMXConnectorFactory}.&#xA;However, specialized applications can use this class directly, for&#xA;example with an {@link RMIServer} stub obtained without going&#xA;through JNDI.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315019_200862_9542"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323000_807507_15970" name="" supplier="_10_5_622020d_1132928315029_683400_9572" client="_10_5_622020d_1132928315019_200862_9542" contract="_10_5_622020d_1132928315029_683400_9572"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323000_89004_15971" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315019_200862_9542" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_212291_9543" name="RemoteMBeanServerConnection" visibility="private" clientDependency="_10_5_622020d_1132928323000_502371_15972">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323000_502371_15972" name="" supplier="_10_5_622020d_1132928315219_403760_9769" client="_10_5_622020d_1132928315019_212291_9543" contract="_10_5_622020d_1132928315219_403760_9769"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_13245_9544" name="RMINotifClient" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_217734_9545" name="RMIClientCommunicatorAdmin" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_257844_9546" name="ObjectInputStreamWithLoader" visibility="private" isLeaf="true">
                  <generalization xmi:id="_10_5_622020d_1132928323061_238574_15986" isSubstitutable="true" general="_9_5_f720368_1110473546596_774585_7437"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_179955_9540" name="RMIConnectionImpl_Stub" clientDependency="_10_5_622020d_1132928323000_953070_15968" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928323000_697014_15969" isSubstitutable="true" general="_9_5_f720368_1110473546674_623871_8181"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323000_953070_15968" name="" supplier="_10_5_622020d_1132928315009_921607_9532" client="_10_5_622020d_1132928315019_179955_9540" contract="_10_5_622020d_1132928315009_921607_9532"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315029_270564_9561" name="RMIServerImpl" clientDependency="_10_5_622020d_1132928323071_963964_15991" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315029_228785_9563" body="&lt;p>An RMI object representing a connector server.  Remote clients&#xA;can make connections using the {@link #newClient(Object)} method.  This&#xA;method returns an RMI object representing the connection.&lt;/p>&#xA;&#xA;&lt;p>User code does not usually reference this class directly.  RMI&#xA;connection servers are usually created with the class {@link&#xA;RMIConnectorServer}.  Remote clients usually create connections&#xA;either with {@link JMXConnectorFactory} or by instantiating {@link&#xA;RMIConnector}.&lt;/p>&#xA;&#xA;&lt;p>This is an abstract class.  Concrete subclasses define the&#xA;details of the client connection objects, such as whether they use&#xA;JRMP or IIOP.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315029_270564_9561"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323071_963964_15991" name="" supplier="_10_5_622020d_1132928315019_77072_9558" client="_10_5_622020d_1132928315029_270564_9561" contract="_10_5_622020d_1132928315019_77072_9558"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315029_849638_9564" name="RMIServerImpl_Stub" clientDependency="_10_5_622020d_1132928323071_743875_15992" isLeaf="true">
                <generalization xmi:id="_10_5_622020d_1132928323071_780869_15993" isSubstitutable="true" general="_9_5_f720368_1110473546674_623871_8181"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323071_743875_15992" name="" supplier="_10_5_622020d_1132928315019_77072_9558" client="_10_5_622020d_1132928315029_849638_9564" contract="_10_5_622020d_1132928315019_77072_9558"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_626493_9552" name="RMIIIOPServerImpl">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_482774_9554" body="&lt;p>An {@link RMIServerImpl} that is exported through IIOP and that&#xA;creates client connections as RMI objects exported through IIOP.&#xA;User code does not usually reference this class directly.&lt;/p>&#xA;&#xA;@see RMIServerImpl&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315019_626493_9552"/>
                <generalization xmi:id="_10_5_622020d_1132928323071_794637_15988" isSubstitutable="true" general="_10_5_622020d_1132928315029_270564_9561"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315019_77072_9558" name="RMIServer" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_217372_9560" body="&lt;p>RMI object used to establish connections to an RMI connector.&#xA;There is one Remote object implementing this interface for each RMI&#xA;connector.&lt;/p>&#xA;&#xA;&lt;p>User code does not usually refer to this interface.  It is&#xA;specified as part of the public API so that different&#xA;implementations of that API will interoperate.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315019_77072_9558"/>
                <generalization xmi:id="_10_5_622020d_1132928323071_63388_15990" isSubstitutable="true" general="_9_5_f720368_1110473546674_219881_8233"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_820840_9549" name="RMIConnectorServer">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_246595_9551" body="&lt;p>A JMX API connector server that creates RMI-based connections&#xA;from remote clients.  Usually, such connector servers are made&#xA;using {@link javax.management.remote.JMXConnectorServerFactory&#xA;JMXConnectorServerFactory}.  However, specialized applications can&#xA;use this class directly, for example with an {@link RMIServerImpl}&#xA;object.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315019_820840_9549"/>
                <generalization xmi:id="_10_5_622020d_1132928323071_464023_15987" isSubstitutable="true" general="_10_5_622020d_1132928315039_380720_9581"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_411713_9535" name="RMIConnectionImpl" clientDependency="_10_5_622020d_1132928322970_361032_15951 _10_5_622020d_1132928322970_91598_15952">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_667910_9539" body="&lt;p>Implementation of the {@link RMIConnection} interface.  User&#xA;code will not usually reference this class.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315009_411713_9535"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322970_361032_15951" name="" supplier="_10_5_622020d_1132928315009_921607_9532" client="_10_5_622020d_1132928315009_411713_9535" contract="_10_5_622020d_1132928315009_921607_9532"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928322970_91598_15952" name="" supplier="_9_5_f720368_1110473546674_425078_8213" client="_10_5_622020d_1132928315009_411713_9535" contract="_9_5_f720368_1110473546674_425078_8213"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_463910_9536" name="PrivilegedOperation" visibility="private" clientDependency="_10_5_622020d_1132928322970_271393_15953">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928322970_271393_15953" name="" supplier="_9_5_f720368_1110473546690_56745_8511" client="_10_5_622020d_1132928315019_463910_9536" contract="_9_5_f720368_1110473546690_56745_8511"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_392555_9537" name="RMIServerCommunicatorAdmin" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_40555_9529" name="NoCallStackClassLoader" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928315009_487060_9531" body="&lt;p>A class loader that only knows how to define a limited number&#xA;of classes, and load a limited number of other classes through&#xA;delegation to another loader.  It is used to get around a problem&#xA;with Serialization, in particular as used by RMI (including&#xA;RMI/IIOP).  The JMX Remote API defines exactly what class loader&#xA;must be used to deserialize arguments on the server, and return&#xA;values on the client.  We communicate this class loader to RMI by&#xA;setting it as the context class loader.  RMI uses the context&#xA;class loader to load classes as it deserializes, which is what we&#xA;want.  However, before consulting the context class loader, it&#xA;looks up the call stack for a class with a non-null class loader,&#xA;and uses that if it finds one.  So, in the standalone version of&#xA;javax.management.remote, if the class you're looking for is known&#xA;to the loader of jmxremote.jar (typically the system class loader)&#xA;then that loader will load it.  This contradicts the class-loading&#xA;semantics required.&#xA;&#xA;&lt;p>We get around the problem by ensuring that the search up the&#xA;call stack will find a non-null class loader that doesn't load any&#xA;classes of interest, namely this one.  So even though this loader&#xA;is indeed consulted during deserialization, it never finds the&#xA;class being deserialized.  RMI then proceeds to use the context&#xA;class loader, as we require.&#xA;&lt;p>This loader is constructed with the name and byte-code of one&#xA;or more classes that it defines, and a class-loader to which it&#xA;will delegate certain other classes required by that byte-code.&#xA;We construct the byte-code somewhat painstakingly, by compiling&#xA;the Java code directly, converting into a string, copying that&#xA;string into the class that needs this loader, and using the&#xA;stringToBytes method to convert it into the byte array.  We&#xA;compile with -g:none because there's not much point in having&#xA;line-number information and the like in these directly-encoded&#xA;classes.&#xA;&lt;p>The referencedClassNames should contain the names of all&#xA;classes that are referenced by the classes defined by this loader.&#xA;It is not necessary to include standard J2SE classes, however.&#xA;Here, a class is referenced if it is the superclass or a&#xA;superinterface of a defined class, or if it is the type of a&#xA;field, parameter, or return value.  A class is not referenced if&#xA;it only appears in the throws clause of a method or constructor.&#xA;Of course, referencedClassNames should not contain any classes&#xA;that the user might want to deserialize, because the whole point&#xA;of this loader is that it does not find such classes.&#xA;" annotatedElement="_10_5_622020d_1132928315009_40555_9529"/>
                <generalization xmi:id="_10_5_622020d_1132928322970_912749_15949" isSubstitutable="true" general="_9_5_f720368_1110473546612_433369_7581"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315019_284225_9555" name="RMIJRMPServerImpl">
                <ownedComment xmi:id="_10_5_622020d_1132928315019_224050_9557" body="&lt;p>An {@link RMIServer} object that is exported through JRMP and that&#xA;creates client connections as RMI objects exported through JRMP.&#xA;User code does not usually reference this class directly.&lt;/p>&#xA;&#xA;@see RMIServerImpl&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315019_284225_9555"/>
                <generalization xmi:id="_10_5_622020d_1132928323071_950010_15989" isSubstitutable="true" general="_10_5_622020d_1132928315029_270564_9561"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315039_380720_9581" name="JMXConnectorServer" clientDependency="_10_5_622020d_1132928323071_478776_15996 _10_5_622020d_1132928323071_569522_15995" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315039_458622_9583" body="&lt;p>Superclass of every connector server.  A connector server is&#xA;attached to an MBean server.  It listens for client connection&#xA;requests and creates a connection for each one.&lt;/p>&#xA;&#xA;&lt;p>A connector server is associated with an MBean server either by&#xA;registering it in that MBean server, or by passing the MBean server&#xA;to its constructor.&lt;/p>&#xA;&#xA;&lt;p>A connector server is inactive when created.  It only starts&#xA;listening for client connections when the {@link #start() start}&#xA;method is called.  A connector server stops listening for client&#xA;connections when the {@link #stop() stop} method is called or when&#xA;the connector server is unregistered from its MBean server.&lt;/p>&#xA;&#xA;&lt;p>Stopping a connector server does not unregister it from its&#xA;MBean server.  A connector server once stopped cannot be&#xA;restarted.&lt;/p>&#xA;&#xA;&lt;p>Each time a client connection is made or broken, a notification&#xA;of class {@link JMXConnectionNotification} is emitted.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315039_380720_9581"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_930872_15997" isSubstitutable="true" general="_10_5_622020d_1132928315229_175932_9805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_569522_15995" name="" supplier="_10_5_622020d_1132928315079_601254_9587" client="_10_5_622020d_1132928315039_380720_9581" contract="_10_5_622020d_1132928315079_601254_9587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_478776_15996" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928315039_380720_9581" contract="_10_5_622020d_1132928315159_590504_9757"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315089_916555_9590" name="JMXConnectorServerProvider" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_735075_9592" body="&lt;p>A provider for creating JMX API connector servers using a given&#xA;protocol.  Instances of this interface are created by {@link&#xA;JMXConnectorServerFactory} as part of its {@link&#xA;JMXConnectorServerFactory#newJMXConnectorServer(JMXServiceURL,Map,MBeanServer)&#xA;newJMXConnectorServer} method.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_916555_9590"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315039_100486_9584" name="JMXConnectorServerFactory">
              <ownedComment xmi:id="_10_5_622020d_1132928315079_196444_9586" body="&lt;p>Factory to create JMX API connector servers.  There&#xA;are no instances of this class.&lt;/p>&#xA;&#xA;&lt;p>Each connector server is created by an instance of {@link&#xA;JMXConnectorServerProvider}.  This instance is found as follows.  Suppose&#xA;the given {@link JMXServiceURL} looks like&#xA;&lt;code>&quot;service:jmx:&lt;em>protocol&lt;/em>:&lt;em>remainder&lt;/em>&quot;&lt;/code>.&#xA;Then the factory will attempt to find the appropriate {@link&#xA;JMXConnectorServerProvider} for &lt;code>&lt;em>protocol&lt;/em>&lt;/code>.  Each&#xA;occurrence of the character &lt;code>+&lt;/code> or &lt;code>-&lt;/code> in&#xA;&lt;code>&lt;em>protocol&lt;/em>&lt;/code> is replaced by &lt;code>.&lt;/code> or&#xA;&lt;code>_&lt;/code>, respectively.&lt;/p>&#xA;&#xA;&lt;p>A &lt;em>provider package list&lt;/em> is searched for as follows:&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>If the &lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnectorServer(JMXServiceURL,Map,MBeanServer)&#xA;newJMXConnectorServer} contains the key&#xA;&lt;code>jmx.remote.protocol.provider.pkgs&lt;/code> then the associated&#xA;value is the provider package list.&#xA;&#xA;&lt;li>Otherwise, if the system property&#xA;&lt;code>jmx.remote.protocol.provider.pkgs&lt;/code> exists, then its value&#xA;is the provider package list.&#xA;&#xA;&lt;li>Otherwise, there is no provider package list.&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p>The provider package list is a string that is interpreted as a&#xA;list of non-empty Java package names separated by vertical bars&#xA;(&lt;code>|&lt;/code>).  If the string is empty, then so is the provider&#xA;package list.  If the provider package list is not a String, or if&#xA;it contains an element that is an empty string, a {@link&#xA;JMXProviderException} is thrown.&lt;/p>&#xA;&#xA;&lt;p>If the provider package list exists and is not empty, then for&#xA;each element &lt;code>&lt;em>pkg&lt;/em>&lt;/code> of the list, the factory&#xA;will attempt to load the class&#xA;&#xA;&lt;blockquote>&#xA;&lt;code>&lt;em>pkg&lt;/em>.&lt;em>protocol&lt;/em>.ServerProvider&lt;/code>&#xA;&lt;/blockquote>&#xA;&lt;p>If the &lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnectorServer(JMXServiceURL, Map, MBeanServer)&#xA;newJMXConnectorServer} contains the key&#xA;&lt;code>jmx.remote.protocol.provider.class.loader&lt;/code> then the&#xA;associated value is the class loader to use to load the provider.&#xA;If the associated value is not an instance of {@link&#xA;java.lang.ClassLoader}, an {@link&#xA;java.lang.IllegalArgumentException} is thrown.&lt;/p>&#xA;&#xA;&lt;p>If the &lt;code>jmx.remote.protocol.provider.class.loader&lt;/code>&#xA;key is not present in the &lt;code>environment&lt;/code> parameter, the&#xA;calling thread's context class loader is used.&lt;/p>&#xA;&#xA;&lt;p>If the attempt to load this class produces a {@link&#xA;ClassNotFoundException}, the search for a handler continues with&#xA;the next element of the list.&lt;/p>&#xA;&#xA;&lt;p>Otherwise, a problem with the provider found is signalled by a&#xA;{@link JMXProviderException} whose {@link&#xA;JMXProviderException#getCause() &lt;em>cause&lt;/em>} indicates the&#xA;underlying exception, as follows:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>if the attempt to load the class produces an exception other&#xA;than &lt;code>ClassNotFoundException&lt;/code>, that is the&#xA;&lt;em>cause&lt;/em>;&#xA;&#xA;&lt;li>if {@link Class#newInstance()} for the class produces an&#xA;exception, that is the &lt;em>cause&lt;/em>.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>If no provider is found by the above steps, including the&#xA;default case where there is no provider package list, then the&#xA;implementation will use its own provider for&#xA;&lt;code>&lt;em>protocol&lt;/em>&lt;/code>, or it will throw a&#xA;&lt;code>MalformedURLException&lt;/code> if there is none.  An&#xA;implementation may choose to find providers by other means.  For&#xA;example, it may support the &lt;a&#xA;href=&quot;http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service Provider&quot;>&#xA;JAR conventions for service providers&lt;/a>, where the service&#xA;interface is &lt;code>JMXConnectorServerProvider&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>Every implementation must support the RMI connector protocols,&#xA;specified with the string &lt;code>rmi&lt;/code> or&#xA;&lt;code>iiop&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>Once a provider is found, the result of the&#xA;&lt;code>newJMXConnectorServer&lt;/code> method is the result of calling&#xA;{@link&#xA;JMXConnectorServerProvider#newJMXConnectorServer(JMXServiceURL,&#xA;Map, MBeanServer) newJMXConnectorServer} on the provider.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>Map&lt;/code> parameter passed to the&#xA;&lt;code>JMXConnectorServerProvider&lt;/code> is a new read-only&#xA;&lt;code>Map&lt;/code> that contains all the entries that were in the&#xA;&lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnectorServer(JMXServiceURL,Map,MBeanServer)&#xA;JMXConnectorServerFactory.newJMXConnectorServer}, if there was one.&#xA;Additionally, if the&#xA;&lt;code>jmx.remote.protocol.provider.class.loader&lt;/code> key is not&#xA;present in the &lt;code>environment&lt;/code> parameter, it is added to&#xA;the new read-only &lt;code>Map&lt;/code>. The associated value is the&#xA;calling thread's context class loader.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315039_100486_9584"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315089_484454_9596" name="JMXProviderException">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_719651_9598" body="&lt;p>Exception thrown by {@link JMXConnectorFactory} when a provider&#xA;exists for the required protocol but cannot be used for some&#xA;reason.&lt;/p>&#xA;&#xA;@see JMXConnectorFactory#connect(JMXServiceURL, Map)&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_484454_9596"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_539884_16000" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315089_968283_9593" name="JMXPrincipal" clientDependency="_10_5_622020d_1132928323071_500219_15998 _10_5_622020d_1132928323071_931917_15999">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_969112_9595" body="&lt;p>The identity of a remote client of the JMX Remote API.&lt;/p>&#xA;&#xA;&lt;p>Principals such as this &lt;code>JMXPrincipal&lt;/code>&#xA;may be associated with a particular &lt;code>Subject&lt;/code>&#xA;to augment that &lt;code>Subject&lt;/code> with an additional&#xA;identity.  Refer to the {@link javax.security.auth.Subject}&#xA;class for more information on how to achieve this.&#xA;Authorization decisions can then be based upon&#xA;the Principals associated with a &lt;code>Subject&lt;/code>.&#xA;&#xA;@see java.security.Principal&#xA;@see javax.security.auth.Subject&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_968283_9593"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_500219_15998" name="" supplier="_9_5_f720368_1110473546690_967636_8503" client="_10_5_622020d_1132928315089_968283_9593" contract="_9_5_f720368_1110473546690_967636_8503"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_931917_15999" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315089_968283_9593" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315029_740705_9569" name="JMXConnectionNotification">
              <ownedComment xmi:id="_10_5_622020d_1132928315029_162018_9571" body="&lt;p>Notification emitted when a client connection is opened or&#xA;closed or when notifications are lost.  These notifications are&#xA;sent by connector servers (instances of {@link JMXConnectorServer})&#xA;and by connector clients (instances of {@link JMXConnector}).  For&#xA;certain connectors, a session can consist of a sequence of&#xA;connections.  Connection-opened and connection-closed notifications&#xA;will be sent for each one.&lt;/p>&#xA;&#xA;&lt;p>The notification type is one of the following:&lt;/p>&#xA;&#xA;&lt;table>&#xA;&#xA;&lt;tr>&#xA;&lt;th align=left>Type&lt;/th>&#xA;&lt;th align=left>Meaning&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>&lt;code>jmx.remote.connection.opened&lt;/code>&lt;/td>&#xA;&lt;td>A new client connection has been opened.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>&lt;code>jmx.remote.connection.closed&lt;/code>&lt;/td>&#xA;&lt;td>A client connection has been closed.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>&lt;code>jmx.remote.connection.failed&lt;/code>&lt;/td>&#xA;&lt;td>A client connection has failed unexpectedly.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>&lt;code>jmx.remote.connection.notifs.lost&lt;/code>&lt;/td>&#xA;&lt;td>A client connection has potentially lost notifications.  This&#xA;notification only appears on the client side.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>The &lt;code>timeStamp&lt;/code> of the notification is a time value&#xA;(consistent with {@link System#currentTimeMillis()}) indicating&#xA;when the notification was constructed.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315029_740705_9569"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_375978_15994" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315029_649745_9566" name="JMXAuthenticator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315029_959229_9568" body="&lt;p>Interface to define how remote credentials are converted into a&#xA;JAAS Subject.  This interface is used by the RMI Connector Server,&#xA;and can be used by other connector servers.&lt;/p>&#xA;&#xA;&lt;p>The user-defined authenticator instance is passed to the&#xA;connector server in the environment map as the value of the&#xA;attribute {@link JMXConnectorServer#AUTHENTICATOR}.  For connector&#xA;servers that use only this authentication system, if this attribute&#xA;is not present or its value is &lt;code>null&lt;/code> then no user&#xA;authentication will be performed and full access to the methods&#xA;exported by the &lt;code>MBeanServerConnection&lt;/code> object will be&#xA;allowed.&lt;/p>&#xA;&#xA;&lt;p>If authentication is successful then an authenticated&#xA;{@link Subject subject} filled in with its associated&#xA;{@link Principal principals} is returned. Authorization checks&#xA;will be then performed based on the given set of principals.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315029_649745_9566"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315099_501278_9611" name="SubjectDelegationPermission" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_880498_9613" body="&lt;p>Permission required by an authentication identity to perform&#xA;operations on behalf of an authorization identity.&lt;/p>&#xA;&#xA;&lt;p>A SubjectDelegationPermission contains a name (also referred&#xA;to as a &quot;target name&quot;) but no actions list; you either have the&#xA;named permission or you don't.&lt;/p>&#xA;&#xA;&lt;p>The target name is the name of the authorization principal&#xA;classname followed by a period and the authorization principal&#xA;name, that is&#xA;&lt;code>&quot;&lt;em>PrincipalClassName&lt;/em>.&lt;em>PrincipalName&lt;/em>&quot;&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>An asterisk may appear by itself, or if immediately preceded&#xA;by a &quot;.&quot; may appear at the end of the target name, to signify a&#xA;wildcard match.&lt;/p>&#xA;&#xA;&lt;p>For example, &quot;*&quot;, &quot;javax.management.remote.JMXPrincipal.*&quot; and&#xA;&quot;javax.management.remote.JMXPrincipal.delegate&quot; are valid target&#xA;names. The first one denotes any principal name from any principal&#xA;class, the second one denotes any principal name of the concrete&#xA;principal class &lt;code>javax.management.remote.JMXPrincipal&lt;/code>&#xA;and the third one denotes a concrete principal name&#xA;&lt;code>delegate&lt;/code> of the concrete principal class&#xA;&lt;code>javax.management.remote.JMXPrincipal&lt;/code>.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315099_501278_9611"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_760312_16005" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315029_460910_9575" name="JMXConnectorFactory">
              <ownedComment xmi:id="_10_5_622020d_1132928315039_486941_9577" body="&lt;p>Factory to create JMX API connector clients.  There&#xA;are no instances of this class.&lt;/p>&#xA;&#xA;&lt;p>Connections are usually made using the {@link&#xA;#connect(JMXServiceURL) connect} method of this class.  More&#xA;advanced applications can separate the creation of the connector&#xA;client, using {@link #newJMXConnector(JMXServiceURL, Map)&#xA;newJMXConnector} and the establishment of the connection itself, using&#xA;{@link JMXConnector#connect(Map)}.&lt;/p>&#xA;&#xA;&lt;p>Each client is created by an instance of {@link&#xA;JMXConnectorProvider}.  This instance is found as follows.  Suppose&#xA;the given {@link JMXServiceURL} looks like&#xA;&lt;code>&quot;service:jmx:&lt;em>protocol&lt;/em>:&lt;em>remainder&lt;/em>&quot;&lt;/code>.&#xA;Then the factory will attempt to find the appropriate {@link&#xA;JMXConnectorProvider} for &lt;code>&lt;em>protocol&lt;/em>&lt;/code>.  Each&#xA;occurrence of the character &lt;code>+&lt;/code> or &lt;code>-&lt;/code> in&#xA;&lt;code>&lt;em>protocol&lt;/em>&lt;/code> is replaced by &lt;code>.&lt;/code> or&#xA;&lt;code>_&lt;/code>, respectively.&lt;/p>&#xA;&#xA;&lt;p>A &lt;em>provider package list&lt;/em> is searched for as follows:&lt;/p>&#xA;&#xA;&lt;ol>&#xA;&#xA;&lt;li>If the &lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnector(JMXServiceURL, Map) newJMXConnector} contains the&#xA;key &lt;code>jmx.remote.protocol.provider.pkgs&lt;/code> then the&#xA;associated value is the provider package list.&#xA;&#xA;&lt;li>Otherwise, if the system property&#xA;&lt;code>jmx.remote.protocol.provider.pkgs&lt;/code> exists, then its value&#xA;is the provider package list.&#xA;&#xA;&lt;li>Otherwise, there is no provider package list.&#xA;&#xA;&lt;/ol>&#xA;&#xA;&lt;p>The provider package list is a string that is interpreted as a&#xA;list of non-empty Java package names separated by vertical bars&#xA;(&lt;code>|&lt;/code>).  If the string is empty, then so is the provider&#xA;package list.  If the provider package list is not a String, or if&#xA;it contains an element that is an empty string, a {@link&#xA;JMXProviderException} is thrown.&lt;/p>&#xA;&#xA;&lt;p>If the provider package list exists and is not empty, then for&#xA;each element &lt;code>&lt;em>pkg&lt;/em>&lt;/code> of the list, the factory&#xA;will attempt to load the class&#xA;&#xA;&lt;blockquote>&#xA;&lt;code>&lt;em>pkg&lt;/em>.&lt;em>protocol&lt;/em>.ClientProvider&lt;/code>&#xA;&lt;/blockquote>&#xA;&lt;p>If the &lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnector(JMXServiceURL, Map) newJMXConnector} contains the&#xA;key &lt;code>jmx.remote.protocol.provider.class.loader&lt;/code> then the&#xA;associated value is the class loader to use to load the provider.&#xA;If the associated value is not an instance of {@link&#xA;java.lang.ClassLoader}, an {@link&#xA;java.lang.IllegalArgumentException} is thrown.&lt;/p>&#xA;&#xA;&lt;p>If the &lt;code>jmx.remote.protocol.provider.class.loader&lt;/code>&#xA;key is not present in the &lt;code>environment&lt;/code> parameter, the&#xA;calling thread's context class loader is used.&lt;/p>&#xA;&#xA;&lt;p>If the attempt to load this class produces a {@link&#xA;ClassNotFoundException}, the search for a handler continues with&#xA;the next element of the list.&lt;/p>&#xA;&#xA;&lt;p>Otherwise, a problem with the provider found is signalled by a&#xA;{@link JMXProviderException} whose {@link&#xA;JMXProviderException#getCause() &lt;em>cause&lt;/em>} indicates the underlying&#xA;exception, as follows:&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>if the attempt to load the class produces an exception other&#xA;than &lt;code>ClassNotFoundException&lt;/code>, that is the&#xA;&lt;em>cause&lt;/em>;&#xA;&#xA;&lt;li>if {@link Class#newInstance()} for the class produces an&#xA;exception, that is the &lt;em>cause&lt;/em>.&#xA;&#xA;&lt;/ul>&#xA;&#xA;&lt;p>If no provider is found by the above steps, including the&#xA;default case where there is no provider package list, then the&#xA;implementation will use its own provider for&#xA;&lt;code>&lt;em>protocol&lt;/em>&lt;/code>, or it will throw a&#xA;&lt;code>MalformedURLException&lt;/code> if there is none.  An&#xA;implementation may choose to find providers by other means.  For&#xA;example, it may support the &lt;a&#xA;href=&quot;http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service Provider&quot;>&#xA;JAR conventions for service providers&lt;/a>, where the service&#xA;interface is &lt;code>JMXConnectorProvider&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>Every implementation must support the RMI connector protocols,&#xA;specified with the string &lt;code>rmi&lt;/code> or&#xA;&lt;code>iiop&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>Once a provider is found, the result of the&#xA;&lt;code>newJMXConnector&lt;/code> method is the result of calling {@link&#xA;JMXConnectorProvider#newJMXConnector(JMXServiceURL,Map) newJMXConnector}&#xA;on the provider.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>Map&lt;/code> parameter passed to the&#xA;&lt;code>JMXConnectorProvider&lt;/code> is a new read-only&#xA;&lt;code>Map&lt;/code> that contains all the entries that were in the&#xA;&lt;code>environment&lt;/code> parameter to {@link&#xA;#newJMXConnector(JMXServiceURL,Map)&#xA;JMXConnectorFactory.newJMXConnector}, if there was one.&#xA;Additionally, if the&#xA;&lt;code>jmx.remote.protocol.provider.class.loader&lt;/code> key is not&#xA;present in the &lt;code>environment&lt;/code> parameter, it is added to&#xA;the new read-only &lt;code>Map&lt;/code>.  The associated value is the&#xA;calling thread's context class loader.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315029_460910_9575"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315099_524334_9614" name="TargetedNotification" clientDependency="_10_5_622020d_1132928323071_931570_16006">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_727081_9616" body="&lt;p>A (Notification, Listener ID) pair.&lt;/p>&#xA;&lt;p>This class is used to associate an emitted notification&#xA;with the listener ID to which it is targeted.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315099_524334_9614"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_931570_16006" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315099_524334_9614" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315089_762253_9599" name="JMXServerErrorException">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_7067_9601" body="Exception thrown as the result of a remote {@link MBeanServer}&#xA;method invocation when an &lt;code>Error&lt;/code> is thrown while&#xA;processing the invocation in the remote MBean server.  A&#xA;&lt;code>JMXServerErrorException&lt;/code> instance contains the original&#xA;&lt;code>Error&lt;/code> that occurred as its cause.&#xA;&#xA;@see java.rmi.ServerError&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_762253_9599"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_235216_16001" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315039_890403_9578" name="JMXConnectorProvider" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315039_691852_9580" body="&lt;p>A provider for creating JMX API connector clients using a given&#xA;protocol.  Instances of this interface are created by {@link&#xA;JMXConnectorFactory} as part of its {@link&#xA;JMXConnectorFactory#newJMXConnector(JMXServiceURL, Map)&#xA;newJMXConnector} method.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315039_890403_9578"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315089_94914_9602" name="JMXServiceURL" clientDependency="_10_5_622020d_1132928323071_473535_16002">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_938154_9604" body="&lt;p>The address of a JMX API connector server.  Instances of this class&#xA;are immutable.&lt;/p>&#xA;&#xA;&lt;p>The address is an &lt;em>Abstract Service URL&lt;/em> for SLP, as&#xA;defined in RFC 2609 and amended by RFC 3111.  It must look like&#xA;this:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&#xA;&lt;code>service:jmx:&lt;em>protocol&lt;/em>:&lt;em>sap&lt;/em>&lt;/code>&#xA;&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>Here, &lt;code>&lt;em>protocol&lt;/em>&lt;/code> is the transport&#xA;protocol to be used to connect to the connector server.  It is&#xA;a string of one or more ASCII characters, each of which is a&#xA;letter, a digit, or one of the characters &lt;code>+&lt;/code> or&#xA;&lt;code>-&lt;/code>.  The first character must be a letter.&#xA;Uppercase letters are converted into lowercase ones.&lt;/p>&#xA;&#xA;&lt;p>&lt;code>&lt;em>sap&lt;/em>&lt;/code> is the address at which the connector&#xA;server is found.  This address uses a subset of the syntax defined&#xA;by RFC 2609 for IP-based protocols.  It is a subset because the&#xA;&lt;code>user@host&lt;/code> syntax is not supported.&lt;/p>&#xA;&#xA;&lt;p>The other syntaxes defined by RFC 2609 are not currently&#xA;supported by this class.&lt;/p>&#xA;&#xA;&lt;p>The supported syntax is:&lt;/p>&#xA;&#xA;&lt;blockquote>&#xA;&#xA;&lt;code>//&lt;em>[host[&lt;/em>:&lt;em>port]][url-path]&lt;/em>&lt;/code>&#xA;&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>Square brackets &lt;code>[]&lt;/code> indicate optional parts of&#xA;the address.  Not all protocols will recognize all optional&#xA;parts.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>&lt;em>host&lt;/em>&lt;/code> is a host name, an IPv4 numeric&#xA;host address, or an IPv6 numeric address enclosed in square&#xA;brackets.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>&lt;em>port&lt;/em>&lt;/code> is a decimal port number.  0&#xA;means a default or anonymous port, depending on the protocol.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>&lt;em>host&lt;/em>&lt;/code> and &lt;code>&lt;em>port&lt;/em>&lt;/code>&#xA;can be omitted.  The &lt;code>&lt;em>port&lt;/em>&lt;/code> cannot be supplied&#xA;without a &lt;code>&lt;em>host&lt;/em>&lt;/code>.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>&lt;em>url-path&lt;/em>&lt;/code>, if any, begins with a slash&#xA;(&lt;code>/&lt;/code>) or a semicolon (&lt;code>;&lt;/code>) and continues to&#xA;the end of the address.  It can contain attributes using the&#xA;semicolon syntax specified in RFC 2609.  Those attributes are not&#xA;parsed by this class and incorrect attribute syntax is not&#xA;detected.&lt;/p>&#xA;&#xA;&lt;p>Although it is legal according to RFC 2609 to have a&#xA;&lt;code>&lt;em>url-path&lt;/em>&lt;/code> that begins with a semicolon, not&#xA;all implementations of SLP allow it, so it is recommended to avoid&#xA;that syntax.&lt;/p>&#xA;&#xA;&lt;p>Case is not significant in the initial&#xA;&lt;code>service:jmx:&lt;em>protocol&lt;/em>&lt;/code> string or in the host&#xA;part of the address.  Depending on the protocol, case can be&#xA;significant in the &lt;code>&lt;em>url-path&lt;/em>&lt;/code>.&lt;/p>&#xA;&#xA;@see &lt;a&#xA;href=&quot;ftp://ftp.rfc-editor.org/in-notes/rfc2609.txt&quot;>RFC 2609,&#xA;&quot;Service Templates and &lt;code>Service:&lt;/code> Schemes&quot;&lt;/a>&#xA;@see &lt;a&#xA;href=&quot;ftp://ftp.rfc-editor.org/in-notes/rfc3111.txt&quot;>RFC 3111,&#xA;&quot;Service Location Protocol Modifications for IPv6&quot;&lt;/a>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_94914_9602"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_473535_16002" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315089_94914_9602" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315079_601254_9587" name="JMXConnectorServerMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_174834_9589" body="&lt;p>MBean interface for connector servers.  A JMX API connector server&#xA;is attached to an MBean server, and establishes connections to that&#xA;MBean server for remote clients.&lt;/p>&#xA;&#xA;&lt;p>A newly-created connector server is &lt;em>inactive&lt;/em>, and does&#xA;not yet listen for connections.  Only when its {@link #start start}&#xA;method has been called does it start listening for connections.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315079_601254_9587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315029_683400_9572" name="JMXConnector" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315029_556216_9574" body="&lt;p>The client end of a JMX API connector.  An object of this type can&#xA;be used to establish a connection to a connector server.&lt;/p>&#xA;&#xA;&lt;p>A newly-created object of this type is unconnected.  Its {@link&#xA;#connect connect} method must be called before it can be used.&#xA;However, objects created by {@link&#xA;JMXConnectorFactory#connect(JMXServiceURL, Map)&#xA;JMXConnectorFactory.connect} are already connected.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315029_683400_9572"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315089_596575_9605" name="MBeanServerForwarder" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315089_581857_9607" body="&lt;p>An object of this class implements the MBeanServer interface and&#xA;wraps another object that also implements that interface.&#xA;Typically, an implementation of this interface performs some action&#xA;in some or all methods of the &lt;code>MBeanServer&lt;/code> interface&#xA;before and/or after forwarding the method to the wrapped object.&#xA;Examples include security checking and logging.&lt;/p>&#xA;&#xA;@since 1.5&#xA;@since.unbundled 1.0&#xA;" annotatedElement="_10_5_622020d_1132928315089_596575_9605"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_387081_16003" isSubstitutable="true" general="_10_5_622020d_1132928315159_538503_9763"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928315099_373710_9617" name="timer">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_240977_9633" name="TimerNotification">
              <ownedComment xmi:id="_10_5_622020d_1132928315109_105860_9635" body="This class provides definitions of the notifications sent by timer MBeans.&#xA;&lt;BR>It defines a timer notification identifier which allows to retrieve a timer notification&#xA;from the list of notifications of a timer MBean.&#xA;&lt;P>&#xA;The timer notifications are created and handled by the timer MBean.&#xA;&#xA;@version     1.26     02/10/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_240977_9633"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_569249_16012" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315099_517227_9630" name="TimerMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315109_406289_9632" body="Exposes the management interface of the timer MBean.&#xA;&#xA;@version     4.25     02/10/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315099_517227_9630"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315099_134272_9624" name="TimerAlarmClockNotification">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_300487_9629" body="&lt;p>Definitions of the notifications sent by TimerAlarmClock&#xA;MBeans.&lt;/p>&#xA;&#xA;@deprecated This class is of no use to user code.  It is retained&#xA;purely for compatibility reasons.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928315099_134272_9624"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_126010_16011" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315099_789576_9618" name="Timer" clientDependency="_10_5_622020d_1132928323071_800915_16007 _10_5_622020d_1132928323071_986438_16008">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_882850_9620" body="Provides the implementation of the timer MBean.&#xA;The timer MBean sends out an alarm at a specified time&#xA;that wakes up all the listeners registered to receive timer notifications.&#xA;&lt;P>&#xA;&#xA;This class manages a list of dated timer notifications.&#xA;A method allows users to add/remove as many notifications as required.&#xA;When a timer notification is emitted by the timer and becomes obsolete,&#xA;it is automatically removed from the list of timer notifications.&#xA;&lt;BR>Additional timer notifications can be added into regularly repeating notifications.&#xA;&lt;P>&#xA;&#xA;Note:&#xA;&lt;OL>&#xA;&lt;LI>All notifications before the time when the &lt;CODE>addNotification&lt;/CODE> method is called&#xA;are ignored, irrespective of the &lt;CODE>sendPastNotifications&lt;/CODE> flag.&#xA;&lt;LI>When sending timer notifications, the timer updates the notification sequence number&#xA;irrespective of the notification type.&#xA;&lt;LI>The timer service relies on the system date of the host where the &lt;CODE>Timer&lt;/CODE> class is loaded.&#xA;Listeners may receive untimely notifications&#xA;if their host has a different system date.&#xA;To avoid such problems, synchronize the system date of all host machines where timing is needed.&#xA;&lt;LI>The default behavior for periodic notifications is &lt;i>fixed-delay execution&lt;/i>, as&#xA;specified in {@link java.util.Timer}. In order to use &lt;i>fixed-rate execution&lt;/i>, use the&#xA;overloaded {@link #addNotification(String, String, Object, Date, long, long, boolean)} method.&#xA;&lt;LI>Notification listeners are potentially all executed in the same&#xA;thread.  Therefore, they should execute rapidly to avoid holding up&#xA;other listeners or perturbing the regularity of fixed-delay&#xA;executions.  See {@link NotificationBroadcasterSupport}.&#xA;&lt;/OL>&#xA;&#xA;@version     4.58     04/13/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315099_789576_9618"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_619181_16009" isSubstitutable="true" general="_10_5_622020d_1132928315229_175932_9805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_800915_16007" name="" supplier="_10_5_622020d_1132928315099_517227_9630" client="_10_5_622020d_1132928315099_789576_9618" contract="_10_5_622020d_1132928315099_517227_9630"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323071_986438_16008" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928315099_789576_9618" contract="_10_5_622020d_1132928315159_590504_9757"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315099_82906_9621" name="TimerAlarmClock" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928315099_579634_9623" body="TimerAlarmClock inner class:&#xA;This class provides a simple implementation of an alarm clock MBean.&#xA;The aim of this MBean is to set up an alarm which wakes up the timer every timeout (fixed-delay)&#xA;or at the specified date (fixed-rate).&#xA;" annotatedElement="_10_5_622020d_1132928315099_82906_9621"/>
              <generalization xmi:id="_10_5_622020d_1132928323071_825024_16010" isSubstitutable="true" general="_9_5_f720368_1110473546706_970212_8937"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315259_277429_9844" name="QualifiedAttributeValueExp" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928315259_837893_9846" body="This class represents indexed attributes used as arguments to relational&#xA;constraints. An QualifiedAttributeValueExp may be used anywhere a&#xA;ValueExp is required.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315259_277429_9844"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_552124_16097" isSubstitutable="true" general="_10_5_622020d_1132928315109_898183_9654"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315129_133729_9693" name="DynamicMBean" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_811747_9695" body="Defines the methods that should be implemented by&#xA;a Dynamic MBean (MBean that exposes a dynamic management interface).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_133729_9693"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315239_697438_9821" name="NotQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323111_280484_16087">
            <ownedComment xmi:id="_10_5_622020d_1132928315239_356730_9823" body="This class is used by the query-building mechanism to represent negations&#xA;of relational expressions.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315239_697438_9821"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_557974_16088" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323111_280484_16087" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315239_697438_9821" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_547734_9720" name="ListenerNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_584390_9722" body="The specified MBean listener does not exist in the repository.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_547734_9720"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_700563_16045" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_108856_9799" name="Notification">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_493976_9801" body="&lt;p>The Notification class represents a notification emitted by an&#xA;MBean.  It contains a reference to the source MBean: if the&#xA;notification has been forwarded through the MBean server, and the&#xA;original source of the notification was a reference to the emitting&#xA;MBean object, then the MBean server replaces it by the MBean's&#xA;ObjectName.  If the listener has registered directly with the&#xA;MBean, this is either the object name or a direct reference to the&#xA;MBean.&lt;/p>&#xA;&#xA;&lt;p>It is strongly recommended that notification senders use the&#xA;object name rather than a reference to the MBean object as the&#xA;source.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315229_108856_9799"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_924911_16080" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314979_204275_9445" name="relation">
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314999_566815_9491" name="RelationType" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_302208_9493" body="The RelationType interface has to be implemented by any class expected to&#xA;represent a relation type.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_566815_9491"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_762625_15938" isSubstitutable="true" general="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_454337_9455" name="InvalidRoleInfoException">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_661949_9457" body="This exception is raised when, in a role info, its minimum degree is greater&#xA;than its maximum degree.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_454337_9455"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_135112_15924" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_595935_9500" name="Role" clientDependency="_10_5_622020d_1132928322970_63814_15941">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_229148_9502" body="Represents a role: includes a role name and referenced MBeans (via their&#xA;ObjectNames). The role value is always represented as an ArrayList&#xA;collection (of ObjectNames) to homogenize the access.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_595935_9500"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_63814_15941" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314999_595935_9500" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_450969_9515" name="RoleResult" clientDependency="_10_5_622020d_1132928322970_353044_15946">
              <ownedComment xmi:id="_10_5_622020d_1132928315009_673227_9517" body="Represents the result of a multiple access to several roles of a relation&#xA;(either for reading or writing).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315009_450969_9515"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_353044_15946" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315009_450969_9515" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314989_831316_9464" name="Relation" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_526825_9466" body="This interface has to be implemented by any MBean class expected to&#xA;represent a relation managed using the Relation Service.&#xA;&lt;P>Simple relations, i.e. having only roles, no properties or methods, can&#xA;be created directly by the Relation Service (represented as RelationSupport&#xA;objects, internally handled by the Relation Service).&#xA;&lt;P>If the user wants to represent more complex relations, involving&#xA;properties and/or methods, he has to provide his own class implementing the&#xA;Relation interface. This can be achieved either by inheriting from&#xA;RelationSupport class, or by implementing the interface (fully or delegation to&#xA;a RelationSupport object member).&#xA;&lt;P>Specifying such user relation class is to introduce properties and/or&#xA;methods. Those have to be exposed for remote management. So this means that&#xA;any user relation class must be a MBean class.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_831316_9464"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_677737_9458" name="InvalidRoleValueException">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_749267_9460" body="Role value is invalid.&#xA;This exception is raised when, in a role, the number of referenced MBeans&#xA;in given value is less than expected minimum degree, or the number of&#xA;referenced MBeans in provided value exceeds expected maximum degree, or&#xA;one referenced MBean in the value is not an Object of the MBean&#xA;class expected for that role, or an MBean provided for that role does not&#xA;exist.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_677737_9458"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_473380_15925" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_886057_9521" name="RoleUnresolved" clientDependency="_10_5_622020d_1132928322970_350233_15947">
              <ownedComment xmi:id="_10_5_622020d_1132928315009_137074_9523" body="Represents an unresolved role: a role not retrieved from a relation due&#xA;to a problem. It provides the role name, value (if problem when trying to&#xA;set the role) and an integer defining the problem (constants defined in&#xA;RoleStatus).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315009_886057_9521"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_350233_15947" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315009_886057_9521" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_226155_9470" name="RelationNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_744222_9472" body="This exception is raised when there is no relation for a given relation id&#xA;in a Relation Service.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_226155_9470"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_568000_15928" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314989_932397_9488" name="RelationSupportMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_9660_9490" body="A RelationSupport object is used internally by the Relation Service to&#xA;represent simple relations (only roles, no properties or methods), with an&#xA;unlimited number of roles, of any relation type. As internal representation,&#xA;it is not exposed to the user.&#xA;&lt;P>RelationSupport class conforms to the design patterns of standard MBean. So&#xA;the user can decide to instantiate a RelationSupport object himself as&#xA;a MBean (as it follows the MBean design patterns), to register it in the&#xA;MBean Server, and then to add it in the Relation Service.&#xA;&lt;P>The user can also, when creating his own MBean relation class, have it&#xA;extending RelationSupport, to retrieve the implementations of required&#xA;interfaces (see below).&#xA;&lt;P>It is also possible to have in a user relation MBean class a member&#xA;being a RelationSupport object, and to implement the required interfaces by&#xA;delegating all to this member.&#xA;&lt;P> RelationSupport implements the Relation interface (to be handled by the&#xA;Relation Service).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_932397_9488"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_699699_15937" isSubstitutable="true" general="_10_5_622020d_1132928314989_831316_9464"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_424261_9485" name="RelationSupport" clientDependency="_10_5_622020d_1132928322970_644338_15936 _10_5_622020d_1132928322970_787176_15935">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_146872_9487" body="A RelationSupport object is used internally by the Relation Service to&#xA;represent simple relations (only roles, no properties or methods), with an&#xA;unlimited number of roles, of any relation type. As internal representation,&#xA;it is not exposed to the user.&#xA;&lt;P>RelationSupport class conforms to the design patterns of standard MBean. So&#xA;the user can decide to instantiate a RelationSupport object himself as&#xA;a MBean (as it follows the MBean design patterns), to register it in the&#xA;MBean Server, and then to add it in the Relation Service.&#xA;&lt;P>The user can also, when creating his own MBean relation class, have it&#xA;extending RelationSupport, to retrieve the implementations of required&#xA;interfaces (see below).&#xA;&lt;P>It is also possible to have in a user relation MBean class a member&#xA;being a RelationSupport object, and to implement the required interfaces by&#xA;delegating all to this member.&#xA;&lt;P> RelationSupport implements the Relation interface (to be handled by the&#xA;Relation Service).&#xA;&lt;P>It implements also the MBeanRegistration interface to be able to retrieve&#xA;the MBean Server where it is registered (if registered as a MBean) to access&#xA;to its Relation Service.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_424261_9485"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_787176_15935" name="" supplier="_10_5_622020d_1132928314989_932397_9488" client="_10_5_622020d_1132928314989_424261_9485" contract="_10_5_622020d_1132928314989_932397_9488"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_644338_15936" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928314989_424261_9485" contract="_10_5_622020d_1132928315159_590504_9757"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_900047_9503" name="RoleInfo" clientDependency="_10_5_622020d_1132928322970_684735_15942">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_617356_9505" body="A RoleInfo object summarises a role in a relation type.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_900047_9503"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_684735_15942" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314999_900047_9503" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_275530_9494" name="RelationTypeNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_590362_9496" body="This exception is raised when there is no relation type with given name in&#xA;Relation Service.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_275530_9494"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_528731_15939" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_658021_9461" name="MBeanServerNotificationFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_135568_9463" body="Filter for {@link MBeanServerNotification}.&#xA;This filter filters MBeanServerNotification notifications by&#xA;selecting the ObjectNames of interest and the operations (registration,&#xA;unregistration, both) of interest (corresponding to notification&#xA;types).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_658021_9461"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_628353_15926" isSubstitutable="true" general="_10_5_622020d_1132928315239_796423_9815"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_538836_9509" name="RoleList">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_537540_9511" body="A RoleList represents a list of roles (Role objects). It is used as&#xA;parameter when creating a relation, and when trying to set several roles in&#xA;a relation (via 'setRoles()' method). It is returned as part of a&#xA;RoleResult, to provide roles successfully retrieved.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_538836_9509"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_430596_15944" isSubstitutable="true" general="_9_5_f720368_1110473546706_839346_8833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_940216_9512" name="RoleNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928315009_244960_9514" body="This exception is raised when a role in a relation does not exist, or is not&#xA;readable, or is not settable.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_940216_9512"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_289409_15945" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_185143_9518" name="RoleStatus">
              <ownedComment xmi:id="_10_5_622020d_1132928315009_65752_9520" body="This class describes the various problems which can be encountered when&#xA;accessing a role.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315009_185143_9518"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_991696_9473" name="RelationNotification">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_115741_9475" body="A notification of a change in the Relation Service.&#xA;A RelationNotification notification is sent when a relation is created via&#xA;the Relation Service, or an MBean is added as a relation in the Relation&#xA;Service, or a role is updated in a relation, or a relation is removed from&#xA;the Relation Service.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_991696_9473"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_768582_15929" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315009_820909_9524" name="RoleUnresolvedList">
              <ownedComment xmi:id="_10_5_622020d_1132928315009_514483_9526" body="A RoleUnresolvedList represents a list of RoleUnresolved objects,&#xA;representing roles not retrieved from a relation due to a problem&#xA;encountered when trying to access (read or write to roles).&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315009_820909_9524"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_236186_15948" isSubstitutable="true" general="_9_5_f720368_1110473546706_839346_8833"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_415303_9482" name="RelationServiceNotRegisteredException">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_219638_9484" body="This exception is raised when an access is done to the Relation Service and&#xA;that one is not registered.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_415303_9482"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_162457_15934" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314989_886890_9479" name="RelationServiceMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_944515_9481" body="The Relation Service is in charge of creating and deleting relation types&#xA;and relations, of handling the consistency and of providing query&#xA;mechanisms.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_886890_9479"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_629314_9506" name="RoleInfoNotFoundException">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_903087_9508" body="This exception is raised when there is no role info with given name in a&#xA;given relation type.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_629314_9506"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_4638_15943" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_282567_9449" name="InvalidRelationServiceException">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_535014_9451" body="This exception is raised when an invalid Relation Service is provided.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_282567_9449"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_935411_15922" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314999_117651_9497" name="RelationTypeSupport" clientDependency="_10_5_622020d_1132928322970_776684_15940">
              <ownedComment xmi:id="_10_5_622020d_1132928314999_352939_9499" body="A RelationTypeSupport object implements the RelationType interface.&#xA;&lt;P>It represents a relation type, providing role information for each role&#xA;expected to be supported in every relation of that type.&#xA;&#xA;&lt;P>A relation type includes a relation type name and a list of&#xA;role infos (represented by RoleInfo objects).&#xA;&#xA;&lt;P>A relation type has to be declared in the Relation Service:&#xA;&lt;P>- either using the createRelationType() method, where a RelationTypeSupport&#xA;object will be created and kept in the Relation Service&#xA;&lt;P>- either using the addRelationType() method where the user has to create&#xA;an object implementing the RelationType interface, and this object will be&#xA;used as representing a relation type in the Relation Service.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314999_117651_9497"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322970_776684_15940" name="" supplier="_10_5_622020d_1132928314999_566815_9491" client="_10_5_622020d_1132928314999_117651_9497" contract="_10_5_622020d_1132928314999_566815_9491"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_172031_9467" name="RelationException">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_933225_9469" body="This class is the superclass of any exception which can be raised during&#xA;relation management.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_172031_9467"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_234401_15927" isSubstitutable="true" general="_10_5_622020d_1132928315139_189458_9714"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_675677_9446" name="InvalidRelationIdException">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_863316_9448" body="This exception is raised when relation id provided for a relation is already&#xA;used.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_675677_9446"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_668594_15921" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_223194_9452" name="InvalidRelationTypeException">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_803082_9454" body="Invalid relation type.&#xA;This exception is raised when, in a relation type, there is already a&#xA;relation type with that name, or the same name has been used for two&#xA;different role infos, or no role info provided, or one null role info&#xA;provided.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314979_223194_9452"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_236396_15923" isSubstitutable="true" general="_10_5_622020d_1132928314989_172031_9467"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314989_976687_9476" name="RelationService" clientDependency="_10_5_622020d_1132928322960_409705_15930 _10_5_622020d_1132928322960_136462_15931 _10_5_622020d_1132928322960_305785_15932">
              <ownedComment xmi:id="_10_5_622020d_1132928314989_166360_9478" body="The Relation Service is in charge of creating and deleting relation types&#xA;and relations, of handling the consistency and of providing query&#xA;mechanisms.&#xA;&lt;P>It implements the NotificationBroadcaster by extending&#xA;NotificationBroadcasterSupport to send notifications when a relation is&#xA;removed from it.&#xA;&lt;P>It implements the NotificationListener interface to be able to receive&#xA;notifications concerning unregistration of MBeans referenced in relation&#xA;roles and of relation MBeans.&#xA;&lt;P>It implements the MBeanRegistration interface to be able to retrieve&#xA;its ObjectName and MBean Server.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314989_976687_9476"/>
              <generalization xmi:id="_10_5_622020d_1132928322970_697339_15933" isSubstitutable="true" general="_10_5_622020d_1132928315229_175932_9805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_409705_15930" name="" supplier="_10_5_622020d_1132928314989_886890_9479" client="_10_5_622020d_1132928314989_976687_9476" contract="_10_5_622020d_1132928314989_886890_9479"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_136462_15931" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928314989_976687_9476" contract="_10_5_622020d_1132928315159_590504_9757"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_305785_15932" name="" supplier="_10_5_622020d_1132928315239_385071_9818" client="_10_5_622020d_1132928314989_976687_9476" contract="_10_5_622020d_1132928315239_385071_9818"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315279_962538_9859" name="RuntimeErrorException">
            <ownedComment xmi:id="_10_5_622020d_1132928315279_322170_9861" body="When a &lt;CODE>java.lang.Error&lt;/CODE> occurs in the agent it should be caught and&#xA;re-thrown as a &lt;CODE>RuntimeErrorException&lt;/CODE>.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315279_962538_9859"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_411368_16102" isSubstitutable="true" general="_10_5_622020d_1132928315139_469160_9717"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314929_657435_9338" name="monitor">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_820668_9347" name="GaugeMonitor" clientDependency="_10_5_622020d_1132928322950_830265_15869">
              <ownedComment xmi:id="_10_5_622020d_1132928314939_304467_9351" body="Defines a monitor MBean designed to observe the values of a gauge attribute.&#xA;&#xA;&lt;P> A gauge monitor observes an attribute that is continuously&#xA;variable with time.  A gauge monitor sends notifications as&#xA;follows:&#xA;&#xA;&lt;UL>&#xA;&#xA;&lt;LI> if the attribute value is increasing and becomes equal to or&#xA;greater than the high threshold value, a {@link&#xA;MonitorNotification#THRESHOLD_HIGH_VALUE_EXCEEDED threshold high&#xA;notification} is sent.  The notify high flag must be set to&#xA;&lt;CODE>true&lt;/CODE>&#xA;&#xA;&lt;BR>Subsequent crossings of the high threshold value do not cause&#xA;further notifications unless the attribute value becomes equal to&#xA;or less than the low threshold value.&#xA;&#xA;&lt;LI> if the attribute value is decreasing and becomes equal to or&#xA;less than the low threshold value, a {@link&#xA;MonitorNotification#THRESHOLD_LOW_VALUE_EXCEEDED threshold low&#xA;notification} is sent.  The notify low flag must be set to&#xA;&lt;CODE>true&lt;/CODE>.&#xA;&#xA;&lt;BR>Subsequent crossings of the low threshold value do not cause&#xA;further notifications unless the attribute value becomes equal to&#xA;or greater than the high threshold value.&#xA;&#xA;&lt;/UL>&#xA;&#xA;This provides a hysteresis mechanism to avoid repeated triggering&#xA;of notifications when the attribute value makes small oscillations&#xA;around the high or low threshold value.&#xA;&#xA;&lt;P> If the gauge difference mode is used, the value of the derived&#xA;gauge is calculated as the difference between the observed gauge&#xA;values for two successive observations.&#xA;&#xA;&lt;BR>The derived gauge value (V[t]) is calculated using the following method:&#xA;&lt;UL>&#xA;&lt;LI>V[t] = gauge[t] - gauge[t-GP]&#xA;&lt;/UL>&#xA;&#xA;This implementation of the gauge monitor requires the observed&#xA;attribute to be of the type integer or floating-point&#xA;(&lt;CODE>Byte&lt;/CODE>, &lt;CODE>Integer&lt;/CODE>, &lt;CODE>Short&lt;/CODE>,&#xA;&lt;CODE>Long&lt;/CODE>, &lt;CODE>Float&lt;/CODE>, &lt;CODE>Double&lt;/CODE>).&#xA;&#xA;@version     1.73     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_820668_9347"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_519935_15870" isSubstitutable="true" general="_10_5_622020d_1132928314939_487129_9355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_830265_15869" name="" supplier="_10_5_622020d_1132928314939_359694_9352" client="_10_5_622020d_1132928314929_820668_9347" contract="_10_5_622020d_1132928314939_359694_9352"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_588278_9348" name="GaugeAlarmClock" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928314939_32357_9349" body="GaugeAlarmClock inner class:&#xA;This class provides a simple implementation of an alarm clock MBean.&#xA;The aim of this MBean is to set up an alarm which wakes up the&#xA;gauge monitor every granularity period.&#xA;" annotatedElement="_10_5_622020d_1132928314929_588278_9348"/>
                <generalization xmi:id="_10_5_622020d_1132928322950_564567_15871" isSubstitutable="true" general="_9_5_f720368_1110473546706_970212_8937"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_494231_9339" name="CounterMonitor" clientDependency="_10_5_622020d_1132928322950_264990_15865">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_323627_9343" body="Defines a monitor MBean designed to observe the values of a counter&#xA;attribute.&#xA;&#xA;&lt;P> A counter monitor sends a {@link&#xA;MonitorNotification#THRESHOLD_VALUE_EXCEEDED threshold&#xA;notification} when the value of the counter reaches or exceeds a&#xA;threshold known as the comparison level.  The notify flag must be&#xA;set to &lt;CODE>true&lt;/CODE>.&#xA;&#xA;&lt;P> In addition, an offset mechanism enables particular counting&#xA;intervals to be detected.  If the offset value is not zero,&#xA;whenever the threshold is triggered by the counter value reaching a&#xA;comparison level, that comparison level is incremented by the&#xA;offset value.  This is regarded as taking place instantaneously,&#xA;that is, before the count is incremented.  Thus, for each level,&#xA;the threshold triggers an event notification every time the count&#xA;increases by an interval equal to the offset value.&#xA;&#xA;&lt;P> If the counter can wrap around its maximum value, the modulus&#xA;needs to be specified.  The modulus is the value at which the&#xA;counter is reset to zero.&#xA;&#xA;&lt;P> If the counter difference mode is used, the value of the&#xA;derived gauge is calculated as the difference between the observed&#xA;counter values for two successive observations.  If this difference&#xA;is negative, the value of the derived gauge is incremented by the&#xA;value of the modulus.  The derived gauge value (V[t]) is calculated&#xA;using the following method:&#xA;&#xA;&lt;UL>&#xA;&lt;LI>if (counter[t] - counter[t-GP]) is positive then&#xA;V[t] = counter[t] - counter[t-GP]&#xA;&lt;LI>if (counter[t] - counter[t-GP]) is negative then&#xA;V[t] = counter[t] - counter[t-GP] + MODULUS&#xA;&lt;/UL>&#xA;&#xA;This implementation of the counter monitor requires the observed&#xA;attribute to be of the type integer (&lt;CODE>Byte&lt;/CODE>,&#xA;&lt;CODE>Integer&lt;/CODE>, &lt;CODE>Short&lt;/CODE>, &lt;CODE>Long&lt;/CODE>).&#xA;&#xA;@version     1.74     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_494231_9339"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_523320_15866" isSubstitutable="true" general="_10_5_622020d_1132928314939_487129_9355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_264990_15865" name="" supplier="_10_5_622020d_1132928314929_248016_9344" client="_10_5_622020d_1132928314929_494231_9339" contract="_10_5_622020d_1132928314929_248016_9344"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_441601_9340" name="CounterAlarmClock" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928314929_911131_9341" body="CounterAlarmClock inner class: This class provides a simple&#xA;implementation of an alarm clock MBean.  The aim of this MBean is&#xA;to set up an alarm which wakes up the counter monitor every&#xA;granularity period.&#xA;" annotatedElement="_10_5_622020d_1132928314929_441601_9340"/>
                <generalization xmi:id="_10_5_622020d_1132928322950_163877_15867" isSubstitutable="true" general="_9_5_f720368_1110473546706_970212_8937"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314949_508483_9372" name="StringMonitorMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_955920_9374" body="Exposes the remote management interface of the string monitor MBean.&#xA;&#xA;@version     4.24     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314949_508483_9372"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_643830_15881" isSubstitutable="true" general="_10_5_622020d_1132928314939_544972_9358"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_608052_9367" name="StringMonitor" clientDependency="_10_5_622020d_1132928322950_511736_15878">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_661380_9371" body="Defines a monitor MBean designed to observe the values of a string&#xA;attribute.&#xA;&lt;P>&#xA;A string monitor sends notifications as follows:&#xA;&lt;UL>&#xA;&lt;LI> if the attribute value matches the string to compare value,&#xA;a {@link MonitorNotification#STRING_TO_COMPARE_VALUE_MATCHED&#xA;match notification} is sent.&#xA;The notify match flag must be set to &lt;CODE>true&lt;/CODE>.&#xA;&lt;BR>Subsequent matchings of the string to compare values do not&#xA;cause further notifications unless&#xA;the attribute value differs from the string to compare value.&#xA;&lt;LI> if the attribute value differs from the string to compare value,&#xA;a {@link MonitorNotification#STRING_TO_COMPARE_VALUE_DIFFERED&#xA;differ notification} is sent.&#xA;The notify differ flag must be set to &lt;CODE>true&lt;/CODE>.&#xA;&lt;BR>Subsequent differences from the string to compare value do&#xA;not cause further notifications unless&#xA;the attribute value matches the string to compare value.&#xA;&lt;/UL>&#xA;&#xA;@version     4.41     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314949_608052_9367"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_682801_15879" isSubstitutable="true" general="_10_5_622020d_1132928314939_487129_9355"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_511736_15878" name="" supplier="_10_5_622020d_1132928314949_508483_9372" client="_10_5_622020d_1132928314949_608052_9367" contract="_10_5_622020d_1132928314949_508483_9372"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_736999_9368" name="StringAlarmClock" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928314949_395603_9369" body="StringAlarmClock inner class:&#xA;This class provides a simple implementation of an alarm clock MBean.&#xA;The aim of this MBean is to set up an alarm which wakes up the&#xA;string monitor every granularity period.&#xA;" annotatedElement="_10_5_622020d_1132928314949_736999_9368"/>
                <generalization xmi:id="_10_5_622020d_1132928322950_579125_15880" isSubstitutable="true" general="_9_5_f720368_1110473546706_970212_8937"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314939_487129_9355" name="Monitor" clientDependency="_10_5_622020d_1132928322950_970077_15873 _10_5_622020d_1132928322950_10439_15874" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314939_578174_9357" body="Defines the common part to all monitor MBeans.&#xA;A monitor MBean monitors values of an attribute common to a set of observed&#xA;MBeans. The observed attribute is monitored at intervals specified by the&#xA;granularity period. A gauge value (derived gauge) is derived from the values&#xA;of the observed attribute.&#xA;&#xA;@version     4.42     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314939_487129_9355"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_822364_15875" isSubstitutable="true" general="_10_5_622020d_1132928315229_175932_9805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_970077_15873" name="" supplier="_10_5_622020d_1132928314939_544972_9358" client="_10_5_622020d_1132928314939_487129_9355" contract="_10_5_622020d_1132928314939_544972_9358"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_10439_15874" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928314939_487129_9355" contract="_10_5_622020d_1132928315159_590504_9757"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314939_359694_9352" name="GaugeMonitorMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314939_958055_9354" body="Exposes the remote management interface of the gauge monitor MBean.&#xA;&#xA;@version     4.25     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314939_359694_9352"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_204837_15872" isSubstitutable="true" general="_10_5_622020d_1132928314939_544972_9358"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314939_709176_9361" name="MonitorNotification">
              <ownedComment xmi:id="_10_5_622020d_1132928314939_279192_9363" body="Provides definitions of the notifications sent by monitor MBeans.&#xA;&lt;P>&#xA;The notification source and a set of parameters concerning the monitor MBean's state&#xA;need to be specified when creating a new object of this class.&#xA;&#xA;The list of notifications fired by the monitor MBeans is the following:&#xA;&#xA;&lt;UL>&#xA;&lt;LI>Common to all kind of monitors:&#xA;&lt;UL>&#xA;&lt;LI>The observed object is not registered in the MBean server.&#xA;&lt;LI>The observed attribute is not contained in the observed object.&#xA;&lt;LI>The type of the observed attribute is not correct.&#xA;&lt;LI>Any exception (except the cases described above) occurs when trying to get the value of the observed attribute.&#xA;&lt;/UL>&#xA;&lt;LI>Common to the counter and the gauge monitors:&#xA;&lt;UL>&#xA;&lt;LI>The threshold high or threshold low are not of the same type as the gauge (gauge monitors).&#xA;&lt;LI>The threshold or the offset or the modulus are not of the same type as the counter (counter monitors).&#xA;&lt;/UL>&#xA;&lt;LI>Counter monitors only:&#xA;&lt;UL>&#xA;&lt;LI>The observed attribute has reached the threshold value.&#xA;&lt;/UL>&#xA;&lt;LI>Gauge monitors only:&#xA;&lt;UL>&#xA;&lt;LI>The observed attribute has exceeded the threshold high value.&#xA;&lt;LI>The observed attribute has exceeded the threshold low value.&#xA;&lt;/UL>&#xA;&lt;LI>String monitors only:&#xA;&lt;UL>&#xA;&lt;LI>The observed attribute has matched the &quot;string to compare&quot; value.&#xA;&lt;LI>The observed attribute has differed from the &quot;string to compare&quot; value.&#xA;&lt;/UL>&#xA;&lt;/UL>&#xA;&#xA;@version     4.22     12/19/03&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314939_709176_9361"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_439090_15876" isSubstitutable="true" general="_10_5_622020d_1132928315229_108856_9799"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314939_204321_9364" name="MonitorSettingException">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_331166_9366" body="Exception thrown by the monitor when a monitor setting becomes invalid while the monitor is running.&#xA;&lt;P>&#xA;As the monitor attributes may change at runtime, a check is performed before each observation.&#xA;If a monitor attribute has become invalid, a monitor setting exception is thrown.&#xA;&#xA;@version     4.16     12/19/03&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314939_204321_9364"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_894577_15877" isSubstitutable="true" general="_10_5_622020d_1132928315139_469160_9717"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314939_544972_9358" name="MonitorMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314939_710225_9360" body="Exposes the remote management interface of monitor MBeans.&#xA;&#xA;@version     4.23     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314939_544972_9358"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314929_248016_9344" name="CounterMonitorMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_197906_9346" body="Exposes the remote management interface of the counter monitor MBean.&#xA;&#xA;@version     4.26     05/18/04&#xA;@author      Sun Microsystems, Inc&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_248016_9344"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_855204_15868" isSubstitutable="true" general="_10_5_622020d_1132928314939_544972_9358"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315289_292248_9868" name="ServiceNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928315289_1293_9870" body="Represents exceptions raised when a requested service is not supported.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315289_292248_9868"/>
            <generalization xmi:id="_10_5_622020d_1132928323121_353611_16105" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315129_375987_9696" name="InQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323081_287511_16036">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_833656_9698" body="This class is used by the query-building mechanism to represent binary&#xA;operations.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_375987_9696"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_573540_16037" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323081_287511_16036" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315129_375987_9696" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314889_696536_9300" name="modelmbean">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_228233_9335" name="XMLParseException">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_633602_9337" body="This exception is thrown when an XML formatted string is being parsed into ModelMBean objects&#xA;or when XML formatted strings are being created from ModelMBean objects.&#xA;&#xA;It is also used to wrapper exceptions from XML parsers that may be used.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_228233_9335"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_266482_15864" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314919_404863_9320" name="ModelMBeanInfoSupport" clientDependency="_10_5_622020d_1132928322950_313811_15853 _10_5_622020d_1132928322940_866837_15852">
              <ownedComment xmi:id="_10_5_622020d_1132928314919_7836_9322" body="This class represents the meta data for ModelMBeans.  Descriptors have been added on the meta data objects.&#xA;&lt;P>&#xA;Java resources wishing to be manageable instantiate the ModelMBean using the MBeanServer's&#xA;createMBean method.  The resource then sets the ModelMBeanInfo and Descriptors for the ModelMBean&#xA;instance. The attributes and operations exposed via the ModelMBeanInfo for the ModelMBean are accessible&#xA;from MBeans, connectors/adaptors like other MBeans. Through the Descriptors, values and methods in&#xA;the managed application can be defined and mapped to attributes and operations of the ModelMBean.&#xA;This mapping can be defined during development in a file or dynamically and&#xA;programmatically at runtime.&#xA;&lt;P>&#xA;Every ModelMBean which is instantiated in the MBeanServer becomes manageable:&#xA;its attributes and operations&#xA;become remotely accessible through the connectors/adaptors connected to that MBeanServer.&#xA;A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.&#xA;By instantiating a ModelMBean, resources are guaranteed that the MBean is valid.&#xA;&#xA;MBeanException and RuntimeOperationsException must be thrown on every public method.  This allows&#xA;for wrapping exceptions from distributed communications (RMI, EJB, etc.)&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314919_404863_9320"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_574469_15854" isSubstitutable="true" general="_10_5_622020d_1132928315149_376314_9741"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_866837_15852" name="" supplier="_10_5_622020d_1132928314919_210687_9317" client="_10_5_622020d_1132928314919_404863_9320" contract="_10_5_622020d_1132928314919_210687_9317"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_313811_15853" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314919_404863_9320" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314889_542063_9301" name="DescriptorSupport" clientDependency="_10_5_622020d_1132928322940_613120_15841">
              <ownedComment xmi:id="_10_5_622020d_1132928314899_425218_9304" body="This class represents the metadata set for a ModelMBean element.  A&#xA;descriptor is part of the ModelMBeanInfo,&#xA;ModelMBeanNotificationInfo, ModelMBeanAttributeInfo,&#xA;ModelMBeanConstructorInfo, and ModelMBeanParameterInfo.&#xA;&lt;P>&#xA;A descriptor consists of a collection of fields.  Each field is in&#xA;fieldname=fieldvalue format.  Field names are not case sensitive,&#xA;case will be preserved on field values.&#xA;&lt;P>&#xA;All field names and values are not predefined. New fields can be&#xA;defined and added by any program.  Some fields have been predefined&#xA;for consistency of implementation and support by the&#xA;ModelMBeanInfo, ModelMBeanAttributeInfo, ModelMBeanConstructorInfo,&#xA;ModelMBeanNotificationInfo, ModelMBeanOperationInfo and ModelMBean&#xA;classes.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314889_542063_9301"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_613120_15841" name="" supplier="_10_5_622020d_1132928315129_588815_9687" client="_10_5_622020d_1132928314889_542063_9301" contract="_10_5_622020d_1132928315129_588815_9687"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314889_762617_9302" name="CaseIgnoreString" visibility="private"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_359671_9332" name="RequiredModelMBean" clientDependency="_10_5_622020d_1132928322950_787142_15861 _10_5_622020d_1132928322950_823432_15862 _10_5_622020d_1132928322950_271907_15863">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_691215_9334" body="This class is the implementation of a ModelMBean. An appropriate&#xA;implementation of a ModelMBean must be shipped with every JMX Agent&#xA;and the class must be named RequiredModelMBean.&#xA;&lt;P>&#xA;Java resources wishing to be manageable instantiate the&#xA;RequiredModelMBean using the MBeanServer's createMBean method.&#xA;The resource then sets the MBeanInfo and Descriptors for the&#xA;RequiredModelMBean instance. The attributes and operations exposed&#xA;via the ModelMBeanInfo for the ModelMBean are accessible&#xA;from MBeans, connectors/adaptors like other MBeans. Through the&#xA;Descriptors, values and methods in the managed application can be&#xA;defined and mapped to attributes and operations of the ModelMBean.&#xA;This mapping can be defined in an XML formatted file or dynamically and&#xA;programmatically at runtime.&#xA;&lt;P>&#xA;Every RequiredModelMBean which is instantiated in the MBeanServer&#xA;becomes manageable:&lt;br>&#xA;its attributes and operations become remotely accessible through the&#xA;connectors/adaptors connected to that MBeanServer.&#xA;&lt;P>&#xA;A Java object cannot be registered in the MBeanServer unless it is a&#xA;JMX compliant MBean. By instantiating a RequiredModelMBean, resources&#xA;are guaranteed that the MBean is valid.&#xA;&#xA;MBeanException and RuntimeOperationsException must be thrown on every&#xA;public method.  This allows for wrapping exceptions from distributed&#xA;communications (RMI, EJB, etc.)&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_359671_9332"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_787142_15861" name="" supplier="_10_5_622020d_1132928314899_871767_9308" client="_10_5_622020d_1132928314929_359671_9332" contract="_10_5_622020d_1132928314899_871767_9308"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_823432_15862" name="" supplier="_10_5_622020d_1132928315159_590504_9757" client="_10_5_622020d_1132928314929_359671_9332" contract="_10_5_622020d_1132928315159_590504_9757"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_271907_15863" name="" supplier="_10_5_622020d_1132928315239_884551_9809" client="_10_5_622020d_1132928314929_359671_9332" contract="_10_5_622020d_1132928315239_884551_9809"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314919_210687_9317" name="ModelMBeanInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314919_194904_9319" body="This interface is implemented by the ModelMBeanInfo for every ModelMBean. An implementation of this interface&#xA;must be shipped with every JMX Agent.&#xA;&lt;P>&#xA;Java resources wishing to be manageable instantiate the ModelMBean using the MBeanServer's&#xA;createMBean method.  The resource then sets the ModelMBeanInfo and Descriptors for the ModelMBean&#xA;instance. The attributes, operations, and notifications exposed via the ModelMBeanInfo for the&#xA;ModelMBean comprise the management interface and are accessible&#xA;from MBeans, connectors/adaptors like other MBeans. Through the Descriptors, values and methods in&#xA;the managed application can be defined and mapped to attributes and operations of the ModelMBean.&#xA;This mapping can be defined during development in a file or dynamically and&#xA;programmatically at runtime.&#xA;&lt;P>&#xA;Every ModelMBean which is instantiated in the MBeanServer becomes manageable:&#xA;its attributes, operations, and notifications&#xA;become remotely accessible through the connectors/adaptors connected to that MBeanServer.&#xA;A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.&#xA;By instantiating a ModelMBean, resources are guaranteed that the MBean is valid.&#xA;&#xA;MBeanException and RuntimeOperationsException must be thrown on every public method.  This allows&#xA;for wrapping exceptions from distributed communications (RMI, EJB, etc.)&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314919_210687_9317"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314919_654467_9314" name="ModelMBeanConstructorInfo" clientDependency="_10_5_622020d_1132928322940_810256_15849 _10_5_622020d_1132928322940_787768_15850">
              <ownedComment xmi:id="_10_5_622020d_1132928314919_765467_9316" body="The ModelMBeanConstructorInfo object describes a constructor of the ModelMBean.&#xA;It is a subclass of MBeanConstructorInfo with the addition of an associated Descriptor&#xA;and an implementation of the DescriptorAccess interface.&#xA;&lt;P>&#xA;&lt;PRE>&#xA;The fields in the descriptor are defined, but not limited to, the following: &lt;P>&#xA;name           : constructor name&#xA;descriptorType : must be &quot;operation&quot;&#xA;role           : must be &quot;constructor&quot;&#xA;displayName    : human readable name of constructor&#xA;visibility            : 1-4 where 1: always visible 4: rarely visible&#xA;presentationString :  xml formatted string to describe how to present operation&#xA;&lt;/PRE>&#xA;The persistPolicy and currencyTimeLimit fields are not valid for the constructor.&#xA;The default descriptor will have the name, descriptorType, displayName and role fields.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314919_654467_9314"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_509234_15851" isSubstitutable="true" general="_10_5_622020d_1132928315149_33965_9732"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_810256_15849" name="" supplier="_10_5_622020d_1132928315129_900314_9690" client="_10_5_622020d_1132928314919_654467_9314" contract="_10_5_622020d_1132928315129_900314_9690"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_787768_15850" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928314919_654467_9314" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314899_871767_9308" name="ModelMBean" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314899_146787_9310" body="This interface must be implemented by the ModelMBeans. An implementation of this interface&#xA;must be shipped with every JMX Agent.&#xA;&lt;P>&#xA;Java resources wishing to be manageable instantiate the ModelMBean using the MBeanServer's&#xA;createMBean method.  The resource then sets the ModelMBeanInfo (with Descriptors) for the ModelMBean&#xA;instance. The attributes and operations exposed via the ModelMBeanInfo for the ModelMBean are accessible&#xA;from MBeans, connectors/adaptors like other MBeans. Through the ModelMBeanInfo Descriptors, values and methods in&#xA;the managed application can be defined and mapped to attributes and operations of the ModelMBean.&#xA;This mapping can be defined during development in an XML formatted file or dynamically and&#xA;programmatically at runtime.&#xA;&lt;P>&#xA;Every ModelMBean which is instantiated in the MBeanServer becomes manageable:&#xA;its attributes and operations&#xA;become remotely accessible through the connectors/adaptors connected to that MBeanServer.&#xA;A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.&#xA;By instantiating a ModelMBean, resources are guaranteed that the MBean is valid.&#xA;&lt;P>&#xA;MBeanException and RuntimeOperationsException must be thrown on every public method.  This allows&#xA;for wrapping exceptions from distributed communications (RMI, EJB, etc.).  These exceptions do&#xA;not have to be thrown by the implementation except in the scenarios described in the specification&#xA;and javadoc.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314899_871767_9308"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_312426_15843" isSubstitutable="true" general="_10_5_622020d_1132928315129_133729_9693"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_498740_15844" isSubstitutable="true" general="_10_5_622020d_1132928315249_252607_9841"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_224738_15845" isSubstitutable="true" general="_10_5_622020d_1132928314919_307512_9323"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314899_2129_9311" name="ModelMBeanAttributeInfo" clientDependency="_10_5_622020d_1132928322940_48264_15846 _10_5_622020d_1132928322940_666694_15847">
              <ownedComment xmi:id="_10_5_622020d_1132928314919_755870_9313" body="The ModelMBeanAttributeInfo object describes an attribute of the ModelMBean.&#xA;It is a subclass of MBeanAttributeInfo with the addition of an associated Descriptor&#xA;and an implementation of the DescriptorAccess interface.&#xA;&lt;P>&#xA;The fields in the descriptor are defined, but not limited to, the following: &lt;P>&#xA;&lt;PRE>&#xA;name           : attribute name&#xA;descriptorType : must be &quot;attribute&quot;&#xA;value          : current value for attribute&#xA;default        : default value for attribute&#xA;displayName    : name of attribute to be used in displays&#xA;getMethod      : name of operation descriptor for get method&#xA;setMethod      : name of operation descriptor for set method&#xA;protocolMap    : object which implements the Descriptor interface: mappings must be appropriate for the attribute&#xA;and entries can be updated or augmented at runtime.&#xA;persistPolicy  : OnUpdate|OnTimer|NoMoreOftenThan|Always|Never&#xA;persistPeriod  : seconds - frequency of persist cycle. Used when persistPolicy is&quot;OnTimer&quot; or &quot;NoMoreOftenThan&quot;.&#xA;currencyTimeLimit : how long value is valid, &lt;0 never, =0 always, >0 seconds&#xA;lastUpdatedTimeStamp : when value was set&#xA;visibility     : 1-4 where 1: always visible 4: rarely visible&#xA;presentationString : xml formatted string to allow presentation of data&#xA;&lt;/PRE>&#xA;The default descriptor contains the name, descriptorType and displayName fields.&#xA;&#xA;&lt;p>&lt;b>Note:&lt;/b> because of inconsistencies in previous versions of&#xA;this specification, it is recommended not to use negative or zero&#xA;values for &lt;code>currencyTimeLimit&lt;/code>.  To indicate that a&#xA;cached value is never valid, omit the&#xA;&lt;code>currencyTimeLimit&lt;/code> field.  To indicate that it is&#xA;always valid, use a very large number for this field.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314899_2129_9311"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_461841_15848" isSubstitutable="true" general="_10_5_622020d_1132928315139_229231_9729"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_48264_15846" name="" supplier="_10_5_622020d_1132928315129_900314_9690" client="_10_5_622020d_1132928314899_2129_9311" contract="_10_5_622020d_1132928315129_900314_9690"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322940_666694_15847" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928314899_2129_9311" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314919_307512_9323" name="ModelMBeanNotificationBroadcaster" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314919_290179_9325" body="This interface must be implemented by the ModelMBeans. An implementation of this interface&#xA;must be shipped with every JMX Agent.&#xA;&lt;P>&#xA;Java resources wishing to be manageable instantiate the ModelMBean using the MBeanServer's&#xA;createMBean method.  The resource then sets the ModelMBeanInfo (with Descriptors) for the ModelMBean&#xA;instance. The attributes and operations exposed via the ModelMBeanInfo for the ModelMBean are accessible&#xA;from MBeans, connectors/adaptors like other MBeans. Through the ModelMBeanInfo Descriptors, values and methods in&#xA;the managed application can be defined and mapped to attributes and operations of the ModelMBean.&#xA;This mapping can be defined during development in an XML formatted file or dynamically and&#xA;programmatically at runtime.&#xA;&lt;P>&#xA;Every ModelMBean which is instantiated in the MBeanServer becomes manageable:&#xA;its attributes and operations&#xA;become remotely accessible through the connectors/adaptors connected to that MBeanServer.&#xA;A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.&#xA;By instantiating a ModelMBean, resources are guaranteed that the MBean is valid.&#xA;&lt;P>&#xA;MBeanException and RuntimeOperationsException must be thrown on every public method.  This allows&#xA;for wrapping exceptions from distributed communications (RMI, EJB, etc.).  These exceptions do&#xA;not have to be thrown by the implementation except in the scenarios described in the specification&#xA;and javadoc.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314919_307512_9323"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_161203_15855" isSubstitutable="true" general="_10_5_622020d_1132928315229_797230_9802"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314919_422176_9326" name="ModelMBeanNotificationInfo" clientDependency="_10_5_622020d_1132928322950_56583_15856 _10_5_622020d_1132928322950_208678_15857">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_26222_9328" body="The ModelMBeanNotificationInfo object describes a notification emitted&#xA;by a ModelMBean.&#xA;It is a subclass of MBeanNotificationInfo with the addition of an&#xA;associated Descriptor and an implementation of the Descriptor interface.&#xA;&lt;P>&#xA;The fields in the descriptor are defined, but not limited to,&#xA;the following:&#xA;&lt;PRE>&#xA;name           : notification name&#xA;descriptorType : must be &quot;notification&quot;&#xA;severity       : 0-6 where 0: unknown; 1: non-recoverable;&#xA;2: critical, failure; 3: major, severe;&#xA;4: minor, marginal, error; 5: warning;&#xA;6: normal, cleared, informative&#xA;messageID      : unique key for message text (to allow translation,&#xA;analysis)&#xA;messageText    : text of notification&#xA;log            : T - log message F - do not log message&#xA;logfile        : string fully qualified file name appropriate for&#xA;operating system&#xA;visibility     : 1-4 where 1: always visible 4: rarely visible&#xA;presentationString : xml formatted string to allow presentation of data&#xA;&lt;/PRE>&#xA;The default descriptor contains the name, descriptorType, displayName&#xA;and severity(=6) fields.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314919_422176_9326"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_958751_15858" isSubstitutable="true" general="_10_5_622020d_1132928315149_391152_9745"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_56583_15856" name="" supplier="_10_5_622020d_1132928315129_900314_9690" client="_10_5_622020d_1132928314919_422176_9326" contract="_10_5_622020d_1132928315129_900314_9690"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_208678_15857" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928314919_422176_9326" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314899_659579_9305" name="InvalidTargetObjectTypeException">
              <ownedComment xmi:id="_10_5_622020d_1132928314899_570129_9307" body="Exception thrown when an invalid target object type is specified.&#xA;&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314899_659579_9305"/>
              <generalization xmi:id="_10_5_622020d_1132928322940_925206_15842" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314929_813822_9329" name="ModelMBeanOperationInfo" clientDependency="_10_5_622020d_1132928322950_104887_15859">
              <ownedComment xmi:id="_10_5_622020d_1132928314929_862895_9331" body="The ModelMBeanOperationInfo object describes a management operation of the ModelMBean.&#xA;It is a subclass of MBeanOperationInfo with the addition of an associated Descriptor&#xA;and an implementation of the DescriptorAccess interface.&#xA;&lt;P>&#xA;&lt;PRE>&#xA;The fields in the descriptor are defined, but not limited to, the following:&#xA;name           : operation name&#xA;descriptorType : must be &quot;operation&quot;&#xA;class          : class where method is defined (fully qualified)&#xA;role           : must be &quot;operation&quot;, &quot;getter&quot;, or &quot;setter&#xA;targetObject   : object on which to execute this method&#xA;targetType     : type of object reference for targetObject. Can be: ObjectReference | Handle | EJBHandle | IOR | RMIReference.&#xA;value          : cached value for operation&#xA;currencyTimeLimit : how long cached value is valid&#xA;lastUpdatedTimeStamp : when cached value was set&#xA;visibility            : 1-4 where 1: always visible 4: rarely visible&#xA;presentationString :  xml formatted string to describe how to present operation&#xA;&lt;/PRE>&#xA;The default descriptor will have name, descriptorType, displayName and role fields set.&#xA;&#xA;&lt;p>&lt;b>Note:&lt;/b> because of inconsistencies in previous versions of&#xA;this specification, it is recommended not to use negative or zero&#xA;values for &lt;code>currencyTimeLimit&lt;/code>.  To indicate that a&#xA;cached value is never valid, omit the&#xA;&lt;code>currencyTimeLimit&lt;/code> field.  To indicate that it is&#xA;always valid, use a very large number for this field.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928314929_813822_9329"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_840592_15860" isSubstitutable="true" general="_10_5_622020d_1132928315149_600383_9748"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_104887_15859" name="" supplier="_10_5_622020d_1132928315129_900314_9690" client="_10_5_622020d_1132928314929_813822_9329" contract="_10_5_622020d_1132928315129_900314_9690"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315129_900314_9690" name="DescriptorAccess" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_972854_9692" body="This interface is used to gain access to descriptors of the Descriptor class&#xA;which are associated with a JMX component, i.e. MBean, MBeanInfo,&#xA;MBeanAttributeInfo, MBeanNotificationInfo,&#xA;MBeanOperationInfo, MBeanParameterInfo.&#xA;&lt;P>&#xA;ModelMBeans make extensive use of this interface in ModelMBeanInfo classes.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_900314_9690"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315159_538503_9763" name="MBeanServer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928315209_61742_9765" body="&lt;p>This is the interface for MBean manipulation on the agent&#xA;side. It contains the methods necessary for the creation,&#xA;registration, and deletion of MBeans as well as the access methods&#xA;for registered MBeans.  This is the core component of the JMX&#xA;infrastructure.&lt;/p>&#xA;&#xA;&lt;p>User code does not usually implement this interface.  Instead,&#xA;an object that implements this interface is obtained with one of&#xA;the methods in the {@link MBeanServerFactory} class.&lt;/p>&#xA;&#xA;&lt;p>Every MBean which is added to the MBean server becomes&#xA;manageable: its attributes and operations become remotely&#xA;accessible through the connectors/adaptors connected to that MBean&#xA;server.  A Java object cannot be registered in the MBean server&#xA;unless it is a JMX compliant MBean.&lt;/p>&#xA;&#xA;&lt;p>When an MBean is registered or unregistered in the MBean server&#xA;a {@link javax.management.MBeanServerNotification&#xA;MBeanServerNotification} Notification is emitted. To register an&#xA;object as listener to MBeanServerNotifications you should call the&#xA;MBean server method {@link #addNotificationListener&#xA;addNotificationListener} with &lt;CODE>ObjectName&lt;/CODE> the&#xA;&lt;CODE>ObjectName&lt;/CODE> of the {@link&#xA;javax.management.MBeanServerDelegate MBeanServerDelegate}.  This&#xA;&lt;CODE>ObjectName&lt;/CODE> is: &lt;BR>&#xA;&lt;CODE>JMImplementation:type=MBeanServerDelegate&lt;/CODE>.&lt;/p>&#xA;&#xA;&lt;p>An object obtained from the {@link&#xA;MBeanServerFactory#createMBeanServer(String) createMBeanServer} or&#xA;{@link MBeanServerFactory#newMBeanServer(String) newMBeanServer}&#xA;methods of the {@link MBeanServerFactory} class applies security&#xA;checks to its methods, as follows.&lt;/p>&#xA;&#xA;&lt;p>First, if there is no security manager ({@link&#xA;System#getSecurityManager()} is null), then no checks are made.&lt;/p>&#xA;&#xA;&lt;p>Assuming there is a security manager, the checks are made as&#xA;detailed below.  In what follows, &lt;code>className&lt;/code> is the&#xA;string returned by {@link MBeanInfo#getClassName()} for the target&#xA;MBean.&lt;/p>&#xA;&#xA;&lt;p>If a security check fails, the method throws {@link&#xA;SecurityException}.&lt;/p>&#xA;&#xA;&lt;p>For methods that can throw {@link InstanceNotFoundException},&#xA;this exception is thrown for a non-existent MBean, regardless of&#xA;permissions.  This is because a non-existent MBean has no&#xA;&lt;code>className&lt;/code>.&lt;/p>&#xA;&#xA;&lt;ul>&#xA;&#xA;&lt;li>&lt;p>For the {@link #invoke invoke} method, the caller's&#xA;permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, operationName, name, &quot;invoke&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getAttribute getAttribute} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, attribute, name, &quot;getAttribute&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getAttributes getAttributes} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;getAttribute&quot;)}.&#xA;Additionally, for each attribute &lt;em>a&lt;/em> in the {@link&#xA;AttributeList}, if the caller's permissions do not imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, &lt;em>a&lt;/em>, name, &quot;getAttribute&quot;)}, the&#xA;MBean server will behave as if that attribute had not been in the&#xA;supplied list.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #setAttribute setAttribute} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, attrName, name, &quot;setAttribute&quot;)}, where&#xA;&lt;code>attrName&lt;/code> is {@link Attribute#getName()&#xA;attribute.getName()}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #setAttributes setAttributes} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;setAttribute&quot;)}.&#xA;Additionally, for each attribute &lt;em>a&lt;/em> in the {@link&#xA;AttributeList}, if the caller's permissions do not imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, &lt;em>a&lt;/em>, name, &quot;setAttribute&quot;)}, the&#xA;MBean server will behave as if that attribute had not been in the&#xA;supplied list.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the &lt;code>addNotificationListener&lt;/code> methods,&#xA;the caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name,&#xA;&quot;addNotificationListener&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the &lt;code>removeNotificationListener&lt;/code> methods,&#xA;the caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name,&#xA;&quot;removeNotificationListener&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getMBeanInfo getMBeanInfo} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;getMBeanInfo&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getObjectInstance getObjectInstance} method,&#xA;the caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;getObjectInstance&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #isInstanceOf isInstanceOf} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;isInstanceOf&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #queryMBeans queryMBeans} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(null, null, name, &quot;queryMBeans&quot;)}.&#xA;Additionally, for each MBean that matches &lt;code>name&lt;/code>,&#xA;if the caller's permissions do not imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;queryMBeans&quot;)}, the&#xA;MBean server will behave as if that MBean did not exist.&lt;/p>&#xA;&#xA;&lt;p>Certain query elements perform operations on the MBean server.&#xA;If the caller does not have the required permissions for a given&#xA;MBean, that MBean will not be included in the result of the query.&#xA;The standard query elements that are affected are {@link&#xA;Query#attr(String)}, {@link Query#attr(String,String)}, and {@link&#xA;Query#classattr()}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #queryNames queryNames} method, the checks&#xA;are the same as for &lt;code>queryMBeans&lt;/code> except that&#xA;&lt;code>&quot;queryNames&quot;&lt;/code> is used instead of&#xA;&lt;code>&quot;queryMBeans&quot;&lt;/code> in the &lt;code>MBeanPermission&lt;/code>&#xA;objects.  Note that a &lt;code>&quot;queryMBeans&quot;&lt;/code> permission implies&#xA;the corresponding &lt;code>&quot;queryNames&quot;&lt;/code> permission.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getDomains getDomains} method, the caller's&#xA;permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(null, null, name, &quot;getDomains&quot;)}.  Additionally,&#xA;for each domain &lt;var>d&lt;/var> in the returned array, if the caller's&#xA;permissions do not imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(null, null, new ObjectName(&quot;&lt;var>d&lt;/var>:x=x&quot;),&#xA;&quot;getDomains&quot;)}, the domain is eliminated from the array.  Here,&#xA;&lt;code>x=x&lt;/code> is any &lt;var>key=value&lt;/var> pair, needed to&#xA;satisfy ObjectName's constructor but not otherwise relevant.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getClassLoader getClassLoader} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, loaderName,&#xA;&quot;getClassLoader&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getClassLoaderFor getClassLoaderFor} method,&#xA;the caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, mbeanName,&#xA;&quot;getClassLoaderFor&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #getClassLoaderRepository&#xA;getClassLoaderRepository} method, the caller's permissions must&#xA;imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(null, null, null, &quot;getClassLoaderRepository&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the deprecated &lt;code>deserialize&lt;/code> methods, the&#xA;required permissions are the same as for the methods that replace&#xA;them.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the &lt;code>instantiate&lt;/code> methods, the caller's&#xA;permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, null, &quot;instantiate&quot;)}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #registerMBean registerMBean} method, the&#xA;caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;registerMBean&quot;)}.  Here&#xA;&lt;code>className&lt;/code> is the string returned by {@link&#xA;MBeanInfo#getClassName()} for an object of this class.&#xA;&#xA;&lt;p>If the &lt;code>MBeanPermission&lt;/code> check succeeds, the MBean's&#xA;class is validated by checking that its {@link&#xA;java.security.ProtectionDomain ProtectionDomain} implies {@link&#xA;MBeanTrustPermission#MBeanTrustPermission(String)&#xA;MBeanTrustPermission(&quot;register&quot;)}.&lt;/p>&#xA;&#xA;&lt;p>Finally, if the &lt;code>name&lt;/code> argument is null, another&#xA;&lt;code>MBeanPermission&lt;/code> check is made using the&#xA;&lt;code>ObjectName&lt;/code> returned by {@link&#xA;MBeanRegistration#preRegister MBeanRegistration.preRegister}.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the &lt;code>createMBean&lt;/code> methods, the caller's&#xA;permissions must imply the permissions needed by the equivalent&#xA;&lt;code>instantiate&lt;/code> followed by&#xA;&lt;code>registerMBean&lt;/code>.&lt;/p>&#xA;&#xA;&lt;li>&lt;p>For the {@link #unregisterMBean unregisterMBean} method,&#xA;the caller's permissions must imply {@link&#xA;MBeanPermission#MBeanPermission(String,String,ObjectName,String)&#xA;MBeanPermission(className, null, name, &quot;unregisterMBean&quot;)}.&lt;/p>&#xA;&#xA;&lt;/ul>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315159_538503_9763"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_286650_16071" isSubstitutable="true" general="_10_5_622020d_1132928315219_403760_9769"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_87500_9681" name="DefaultLoaderRepository">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_225915_9686" body="&lt;p>Keeps the list of Class Loaders registered in the MBean Server.&#xA;It provides the necessary methods to load classes using the registered&#xA;Class Loaders.&lt;/p>&#xA;&#xA;&lt;p>This deprecated class is maintained for compatibility.  In&#xA;previous versions of the JMX API, there was one&#xA;&lt;code>DefaultLoaderRepository&lt;/code> shared by all MBean servers.&#xA;As of version 1.2 of the JMX API, that functionality is&#xA;approximated by using {@link MBeanServerFactory#findMBeanServer} to&#xA;find all known MBean servers, and consulting the {@link&#xA;ClassLoaderRepository} of each one.  It is strongly recommended&#xA;that code referencing &lt;code>DefaultLoaderRepository&lt;/code> be&#xA;rewritten.&lt;/p>&#xA;&#xA;@deprecated Use&#xA;{@link javax.management.MBeanServer#getClassLoaderRepository()}&#xA;instead.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_87500_9681"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_139469_9751" name="MBeanParameterInfo" clientDependency="_10_5_622020d_1132928323101_718080_16067 _10_5_622020d_1132928323101_502107_16066">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_229069_9753" body="Describes an argument of an operation exposed by an MBean.&#xA;Instances of this class are immutable.  Subclasses may be mutable&#xA;but this is not recommended.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_139469_9751"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_576737_16068" isSubstitutable="true" general="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_502107_16066" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_139469_9751" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_718080_16067" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928315149_139469_9751" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_189458_9714" name="JMException">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_996101_9716" body="Exceptions thrown by JMX implementations.&#xA;It does not include the runtime exceptions.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_189458_9714"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_803837_16043" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315229_898662_9787" name="MBeanServerPermission">
            <ownedComment xmi:id="_10_5_622020d_1132928315229_76023_9789" body="A Permission to perform actions related to MBeanServers.&#xA;The &lt;em>name&lt;/em> of the permission specifies the operation requested&#xA;or granted by the permission.  For a granted permission, it can be&#xA;&lt;code>*&lt;/code> to allow all of the MBeanServer operations specified below.&#xA;Otherwise, for a granted or requested permission, it must be one of the&#xA;following:&#xA;&lt;dl>&#xA;&lt;dt>createMBeanServer&lt;/dt>&#xA;&lt;dd>Create a new MBeanServer object using the method&#xA;{@link MBeanServerFactory#createMBeanServer()} or&#xA;{@link MBeanServerFactory#createMBeanServer(java.lang.String)}.&#xA;&lt;dt>findMBeanServer&lt;/dt>&#xA;&lt;dd>Find an MBeanServer with a given name, or all MBeanServers in this&#xA;JVM, using the method {@link MBeanServerFactory#findMBeanServer}.&#xA;&lt;dt>newMBeanServer&lt;/dt>&#xA;&lt;dd>Create a new MBeanServer object without keeping a reference to it,&#xA;using the method {@link MBeanServerFactory#newMBeanServer()} or&#xA;{@link MBeanServerFactory#newMBeanServer(java.lang.String)}.&#xA;&lt;dt>releaseMBeanServer&lt;/dt>&#xA;&lt;dd>Remove the MBeanServerFactory's reference to an MBeanServer,&#xA;using the method {@link MBeanServerFactory#releaseMBeanServer}.&#xA;&lt;/dl>&#xA;The &lt;em>name&lt;/em> of the permission can also denote a list of one or more&#xA;comma-separated operations.  Spaces are allowed at the beginning and&#xA;end of the &lt;em>name&lt;/em> and before and after commas.&#xA;&lt;p>&#xA;&lt;code>MBeanServerPermission(&quot;createMBeanServer&quot;)&lt;/code> implies&#xA;&lt;code>MBeanServerPermission(&quot;newMBeanServer&quot;)&lt;/code>.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928315229_898662_9787"/>
            <generalization xmi:id="_10_5_622020d_1132928323111_582995_16076" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928314949_880475_9375" name="openmbean">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314969_834188_9430" name="OpenType" clientDependency="_10_5_622020d_1132928322960_677968_15912" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_42956_9432" body="The &lt;code>OpenType&lt;/code> class is the parent abstract class of all classes which describe the actual &lt;i>open type&lt;/i>&#xA;of open data values.&#xA;&lt;p>&#xA;An &lt;i>open type&lt;/i> is defined by:&#xA;&lt;ul>&#xA;&lt;li>the fully qualified Java class name of the open data values this type describes;&#xA;note that only a limited set of Java classes is allowed for open data values&#xA;(see {@link #ALLOWED_CLASSNAMES ALLOWED_CLASSNAMES}),&lt;/li>&#xA;&lt;li>its name,&lt;/li>&#xA;&lt;li>its description.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;@version     3.27  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_834188_9430"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_677968_15912" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314969_834188_9430" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_32856_9385" name="CompositeType" clientDependency="_10_5_622020d_1132928322950_561441_15886">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_923697_9387" body="The &lt;code>CompositeType&lt;/code> class is the &lt;i>open type&lt;/i> class&#xA;whose instances describe the types of {@link CompositeData &lt;code>CompositeData&lt;/code>} values.&#xA;&#xA;@version     3.25  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_32856_9385"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_684498_15887" isSubstitutable="true" general="_10_5_622020d_1132928314969_834188_9430"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_561441_15886" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314949_32856_9385" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314959_161224_9409" name="OpenMBeanConstructorInfoSupport" clientDependency="_10_5_622020d_1132928322960_731691_15900 _10_5_622020d_1132928322960_980771_15901">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_235637_9411" body="Describes a constructor of an Open MBean.&#xA;&#xA;@version     3.22  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_161224_9409"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_601019_15902" isSubstitutable="true" general="_10_5_622020d_1132928315149_33965_9732"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_731691_15900" name="" supplier="_10_5_622020d_1132928314959_666169_9406" client="_10_5_622020d_1132928314959_161224_9409" contract="_10_5_622020d_1132928314959_666169_9406"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_980771_15901" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314959_161224_9409" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314969_404954_9436" name="TabularData" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_691155_9438" body="The &lt;tt>TabularData&lt;/tt> interface specifies the behavior of a specific type of complex &lt;i>open data&lt;/i> objects&#xA;which represent &lt;i>tabular data&lt;/i> structures.&#xA;&#xA;@version     3.19  04/02/10&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_404954_9436"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314959_180726_9400" name="OpenMBeanAttributeInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_282490_9402" body="&lt;p>Describes an attribute of an open MBean.&lt;/p>&#xA;&#xA;&lt;p>This interface declares the same methods as the class {@link&#xA;javax.management.MBeanAttributeInfo}.  A class implementing this&#xA;interface (typically {@link OpenMBeanAttributeInfoSupport}) should&#xA;extend {@link javax.management.MBeanAttributeInfo}.&lt;/p>&#xA;&#xA;@version     3.20  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_180726_9400"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_144714_15896" isSubstitutable="true" general="_10_5_622020d_1132928314969_812810_9424"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314969_970277_9433" name="SimpleType" clientDependency="_10_5_622020d_1132928322960_276960_15913" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_791199_9435" body="The &lt;code>SimpleType&lt;/code> class is the &lt;i>open type&lt;/i> class whose instances describe&#xA;all &lt;i>open data&lt;/i> values which are neither arrays,&#xA;nor {@link CompositeData &lt;code>CompositeData&lt;/code>} values,&#xA;nor {@link TabularData &lt;code>TabularData&lt;/code>} values.&#xA;It predefines all its possible instances as static fields, and has no public constructor.&#xA;&lt;p>&#xA;Given a &lt;code>SimpleType&lt;/code> instance describing values whose Java class name is &lt;i>className&lt;/i>,&#xA;the internal fields corresponding to the name and description of this &lt;code>SimpleType&lt;/code> instance&#xA;are also set to &lt;i>className&lt;/i>.&#xA;In other words, its methods &lt;code>getClassName&lt;/code>, &lt;code>getTypeName&lt;/code> and &lt;code>getDescription&lt;/code>&#xA;all return the same string value &lt;i>className&lt;/i>.&#xA;&#xA;@version     3.23  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_970277_9433"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_570279_15914" isSubstitutable="true" general="_10_5_622020d_1132928314969_834188_9430"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_276960_15913" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314969_970277_9433" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314969_321334_9427" name="OpenMBeanParameterInfoSupport" clientDependency="_10_5_622020d_1132928322960_857698_15909 _10_5_622020d_1132928322960_113938_15910">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_997915_9429" body="Describes a parameter used in one or more operations or constructors of an open MBean.&#xA;&#xA;@version     3.28  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_321334_9427"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_400161_15911" isSubstitutable="true" general="_10_5_622020d_1132928315149_139469_9751"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_857698_15909" name="" supplier="_10_5_622020d_1132928314969_812810_9424" client="_10_5_622020d_1132928314969_321334_9427" contract="_10_5_622020d_1132928314969_812810_9424"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_113938_15910" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314969_321334_9427" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_159431_9382" name="CompositeDataSupport" clientDependency="_10_5_622020d_1132928322950_551151_15884 _10_5_622020d_1132928322950_511147_15885">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_635865_9384" body="The &lt;tt>CompositeDataSupport&lt;/tt> class is the &lt;i>open data&lt;/i> class which implements the &lt;tt>CompositeData&lt;/tt> interface.&#xA;&#xA;@version     3.27  04/03/24&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_159431_9382"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_551151_15884" name="" supplier="_10_5_622020d_1132928314949_617749_9379" client="_10_5_622020d_1132928314949_159431_9382" contract="_10_5_622020d_1132928314949_617749_9379"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_511147_15885" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314949_159431_9382" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314959_977671_9415" name="OpenMBeanInfoSupport" clientDependency="_10_5_622020d_1132928322960_301536_15904 _10_5_622020d_1132928322960_512533_15903">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_673279_9417" body="The &lt;tt>OpenMBeanInfoSupport&lt;/tt> class describes the management information of an &lt;i>open MBean&lt;/i>:&#xA;it is a subclass of {@link javax.management.MBeanInfo}, and it implements the {@link OpenMBeanInfo} interface.&#xA;Note that an &lt;i>open MBean&lt;/i> is recognized as such if its &lt;tt>getMBeanInfo()&lt;/tt> method returns an instance of a class&#xA;which implements the OpenMBeanInfo interface, typically &lt;tt>OpenMBeanInfoSupport&lt;/tt>.&#xA;&#xA;@version     3.22  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_977671_9415"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_270999_15905" isSubstitutable="true" general="_10_5_622020d_1132928315149_376314_9741"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_512533_15903" name="" supplier="_10_5_622020d_1132928314959_517499_9412" client="_10_5_622020d_1132928314959_977671_9415" contract="_10_5_622020d_1132928314959_517499_9412"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_301536_15904" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314959_977671_9415" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314969_498095_9439" name="TabularDataSupport" clientDependency="_10_5_622020d_1132928322960_8356_15915 _10_5_622020d_1132928322960_80141_15916 _10_5_622020d_1132928322960_667746_15917 _10_5_622020d_1132928322960_486409_15918">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_481784_9441" body="The &lt;tt>TabularDataSupport&lt;/tt> class is the &lt;i>open data&lt;/i> class which implements the &lt;tt>TabularData&lt;/tt>&#xA;and the &lt;tt>Map&lt;/tt> interfaces, and which is internally based on a hash map data structure.&#xA;&#xA;@version     3.30  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_498095_9439"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_8356_15915" name="" supplier="_10_5_622020d_1132928314969_404954_9436" client="_10_5_622020d_1132928314969_498095_9439" contract="_10_5_622020d_1132928314969_404954_9436"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_80141_15916" name="" supplier="_9_5_f720368_1110473546706_995864_8893" client="_10_5_622020d_1132928314969_498095_9439" contract="_9_5_f720368_1110473546706_995864_8893"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_667746_15917" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928314969_498095_9439" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_486409_15918" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314969_498095_9439" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314959_517499_9412" name="OpenMBeanInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_425767_9414" body="&lt;p>Describes an Open MBean: an Open MBean is recognized as such if&#xA;its {@link javax.management.DynamicMBean#getMBeanInfo()&#xA;getMBeanInfo()} method returns an instance of a class which&#xA;implements the {@link OpenMBeanInfo} interface, typically {@link&#xA;OpenMBeanInfoSupport}.&lt;/p>&#xA;&#xA;&lt;p>This interface declares the same methods as the class {@link&#xA;javax.management.MBeanInfo}.  A class implementing this interface&#xA;(typically {@link OpenMBeanInfoSupport}) should extend {@link&#xA;javax.management.MBeanInfo}.&lt;/p>&#xA;&#xA;&lt;p>The {@link #getAttributes()}, {@link #getOperations()} and&#xA;{@link #getConstructors()} methods of the implementing class should&#xA;return at runtime an array of instances of a subclass of {@link&#xA;MBeanAttributeInfo}, {@link MBeanOperationInfo} or {@link&#xA;MBeanConstructorInfo} respectively which implement the {@link&#xA;OpenMBeanAttributeInfo}, {@link OpenMBeanOperationInfo} or {@link&#xA;OpenMBeanConstructorInfo} interface respectively.&#xA;&#xA;@version     3.22  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_517499_9412"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314959_785124_9397" name="OpenDataException" clientDependency="_10_5_622020d_1132928322960_506113_15894">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_526_9399" body="This checked exception is thrown when an &lt;i>open type&lt;/i>, an &lt;i>open data&lt;/i>  or an &lt;i>open MBean metadata info&lt;/i> instance&#xA;could not be constructed because one or more validity constraints were not met.&#xA;&#xA;@version     3.17  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_785124_9397"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_396826_15895" isSubstitutable="true" general="_10_5_622020d_1132928315139_189458_9714"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_506113_15894" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314959_785124_9397" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314969_812810_9424" name="OpenMBeanParameterInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_312740_9426" body="&lt;p>Describes a parameter used in one or more operations or&#xA;constructors of an open MBean.&lt;/p>&#xA;&#xA;&lt;p>This interface declares the same methods as the class {@link&#xA;javax.management.MBeanParameterInfo}.  A class implementing this&#xA;interface (typically {@link OpenMBeanParameterInfoSupport}) should&#xA;extend {@link javax.management.MBeanParameterInfo}.&lt;/p>&#xA;&#xA;@version     3.21  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_812810_9424"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314959_666169_9406" name="OpenMBeanConstructorInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_948827_9408" body="&lt;p>Describes a constructor of an Open MBean.&lt;/p>&#xA;&#xA;&lt;p>This interface declares the same methods as the class {@link&#xA;javax.management.MBeanConstructorInfo}.  A class implementing this&#xA;interface (typically {@link OpenMBeanConstructorInfoSupport})&#xA;should extend {@link javax.management.MBeanConstructorInfo}.&lt;/p>&#xA;&#xA;&lt;p>The {@link #getSignature()} method should return at runtime an&#xA;array of instances of a subclass of {@link MBeanParameterInfo}&#xA;which implements the {@link OpenMBeanParameterInfo} interface&#xA;(typically {@link OpenMBeanParameterInfoSupport}).&lt;/p>&#xA;&#xA;&#xA;@version     3.19  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_666169_9406"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_322920_9391" name="InvalidOpenTypeException" clientDependency="_10_5_622020d_1132928322950_656646_15890">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_23370_9393" body="This runtime exception is thrown to indicate that the &lt;i>open type&lt;/i> of an &lt;i>open data&lt;/i> value&#xA;is not the one expected.&#xA;&#xA;@version     3.17  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_322920_9391"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_461655_15891" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_656646_15890" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314949_322920_9391" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314959_108480_9394" name="KeyAlreadyExistsException" clientDependency="_10_5_622020d_1132928322960_433231_15892">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_991187_9396" body="This runtime exception is thrown to indicate that the index of a row to be added to a &lt;i>tabular data&lt;/i> instance&#xA;is already used to refer to another row in this &lt;i>tabular data&lt;/i> instance.&#xA;&#xA;@version     3.17  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_108480_9394"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_106532_15893" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_433231_15892" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314959_108480_9394" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314969_631987_9421" name="OpenMBeanOperationInfoSupport" clientDependency="_10_5_622020d_1132928322960_387576_15906 _10_5_622020d_1132928322960_861373_15907">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_994238_9423" body="Describes an operation of an Open MBean.&#xA;&#xA;@version     3.25  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_631987_9421"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_891982_15908" isSubstitutable="true" general="_10_5_622020d_1132928315149_600383_9748"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_387576_15906" name="" supplier="_10_5_622020d_1132928314969_810753_9418" client="_10_5_622020d_1132928314969_631987_9421" contract="_10_5_622020d_1132928314969_810753_9418"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_861373_15907" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314969_631987_9421" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314969_810753_9418" name="OpenMBeanOperationInfo" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314969_795388_9420" body="&lt;p>Describes an operation of an Open MBean.&lt;/p>&#xA;&#xA;&lt;p>This interface declares the same methods as the class {@link&#xA;javax.management.MBeanOperationInfo}.  A class implementing this&#xA;interface (typically {@link OpenMBeanOperationInfoSupport}) should&#xA;extend {@link javax.management.MBeanOperationInfo}.&lt;/p>&#xA;&#xA;&lt;p>The {@link #getSignature()} method should return at runtime an&#xA;array of instances of a subclass of {@link MBeanParameterInfo}&#xA;which implements the {@link OpenMBeanParameterInfo} interface&#xA;(typically {@link OpenMBeanParameterInfoSupport}).&lt;/p>&#xA;&#xA;@version     3.20  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314969_810753_9418"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314979_892810_9442" name="TabularType" clientDependency="_10_5_622020d_1132928322960_850855_15919">
              <ownedComment xmi:id="_10_5_622020d_1132928314979_898859_9444" body="The &lt;code>TabularType&lt;/code> class is the &lt;i> open type&lt;/i> class&#xA;whose instances describe the types of {@link TabularData &lt;code>TabularData&lt;/code>} values.&#xA;&#xA;@version     3.22  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314979_892810_9442"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_597763_15920" isSubstitutable="true" general="_10_5_622020d_1132928314969_834188_9430"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_850855_15919" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314979_892810_9442" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928314949_617749_9379" name="CompositeData" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_749643_9381" body="The &lt;tt>CompositeData&lt;/tt> interface specifies the behavior of a specific type of complex &lt;i>open data&lt;/i> objects&#xA;which represent &lt;i>composite data&lt;/i> structures.&#xA;&#xA;@version     3.19  04/02/10&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_617749_9379"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_649582_9388" name="InvalidKeyException" clientDependency="_10_5_622020d_1132928322950_207254_15888">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_338705_9390" body="This runtime exception is thrown to indicate that a method parameter which was expected to be&#xA;an item name of a &lt;i>composite data&lt;/i> or a row index of a &lt;i>tabular data&lt;/i> is not valid.&#xA;&#xA;@version     3.17  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_649582_9388"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_745571_15889" isSubstitutable="true" general="_9_5_f720368_1110473546612_1187_7613"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_207254_15888" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314949_649582_9388" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314959_573209_9403" name="OpenMBeanAttributeInfoSupport" clientDependency="_10_5_622020d_1132928322960_449760_15898 _10_5_622020d_1132928322960_735309_15897">
              <ownedComment xmi:id="_10_5_622020d_1132928314959_792467_9405" body="Describes an attribute of an open MBean.&#xA;&#xA;@version     3.28  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314959_573209_9403"/>
              <generalization xmi:id="_10_5_622020d_1132928322960_730676_15899" isSubstitutable="true" general="_10_5_622020d_1132928315139_229231_9729"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_735309_15897" name="" supplier="_10_5_622020d_1132928314959_180726_9400" client="_10_5_622020d_1132928314959_573209_9403" contract="_10_5_622020d_1132928314959_180726_9400"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322960_449760_15898" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314959_573209_9403" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928314949_553210_9376" name="ArrayType" clientDependency="_10_5_622020d_1132928322950_353901_15882">
              <ownedComment xmi:id="_10_5_622020d_1132928314949_956619_9378" body="The &lt;code>ArrayType&lt;/code> class is the &lt;i>open type&lt;/i> class whose instances describe&#xA;all &lt;i>open data&lt;/i> values which are n-dimensional arrays of &lt;i>open data&lt;/i> values.&#xA;&#xA;@version     3.24  03/12/19&#xA;@author      Sun Microsystems, Inc.&#xA;&#xA;@since 1.5&#xA;@since.unbundled JMX 1.1&#xA;" annotatedElement="_10_5_622020d_1132928314949_553210_9376"/>
              <generalization xmi:id="_10_5_622020d_1132928322950_433143_15883" isSubstitutable="true" general="_10_5_622020d_1132928314969_834188_9430"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928322950_353901_15882" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928314949_553210_9376" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315109_113151_9651" name="AttributeNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928315109_965489_9653" body="The specified attribute does not exist or cannot be retrieved.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315109_113151_9651"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_290912_16020" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315129_290569_9702" name="InstanceNotFoundException">
            <ownedComment xmi:id="_10_5_622020d_1132928315129_528043_9704" body="The specified MBean does not exist in the repository.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315129_290569_9702"/>
            <generalization xmi:id="_10_5_622020d_1132928323081_135825_16039" isSubstitutable="true" general="_10_5_622020d_1132928315249_198010_9835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315149_116705_9738" name="MBeanFeatureInfo" clientDependency="_10_5_622020d_1132928323101_413685_16056">
            <ownedComment xmi:id="_10_5_622020d_1132928315149_743591_9740" body="&lt;p>Provides general information for an MBean descriptor object.&#xA;The feature described can be an attribute, an operation, a&#xA;parameter, or a notification.  Instances of this class are&#xA;immutable.  Subclasses may be mutable but this is not&#xA;recommended.&lt;/p>&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315149_116705_9738"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_413685_16056" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315149_116705_9738" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315119_569062_9663" name="BadStringOperationException">
            <ownedComment xmi:id="_10_5_622020d_1132928315119_228071_9665" body="Thrown when an invalid string operation is passed&#xA;to a method for constructing a query.&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315119_569062_9663"/>
            <generalization xmi:id="_10_5_622020d_1132928323071_346182_16024" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315139_363772_9726" name="MatchQueryExp" visibility="package" clientDependency="_10_5_622020d_1132928323101_670494_16047">
            <ownedComment xmi:id="_10_5_622020d_1132928315139_590762_9728" body="This class is used by the query-building mechanism to represent binary&#xA;relations.&#xA;@serial include&#xA;&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315139_363772_9726"/>
            <generalization xmi:id="_10_5_622020d_1132928323101_797225_16048" isSubstitutable="true" general="_10_5_622020d_1132928315259_467008_9850"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323101_670494_16047" name="" supplier="_10_5_622020d_1132928315259_993595_9853" client="_10_5_622020d_1132928315139_363772_9726" contract="_10_5_622020d_1132928315259_993595_9853"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548112_353725_20951" name="swing">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_719040_10689" name="GraphicsWrapper" visibility="package" isAbstract="true"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_94607_10833" name="ProgressMonitorInputStream">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_50496_12619" body="Monitors the progress of reading from some InputStream. This ProgressMonitor&#xA;is normally invoked in roughly this form:&#xA;&lt;pre>&#xA;InputStream in = new BufferedInputStream(&#xA;new ProgressMonitorInputStream(&#xA;parentComponent,&#xA;&quot;Reading &quot; + fileName,&#xA;new FileInputStream(fileName)));&#xA;&lt;/pre>&lt;p>&#xA;This creates a progress monitor to monitor the progress of reading&#xA;the input stream.  If it's taking a while, a ProgressDialog will&#xA;be popped up to inform the user.  If the user hits the Cancel button&#xA;an InterruptedIOException will be thrown on the next read.&#xA;All the right cleanup is done when the stream is closed.&#xA;&#xA;&#xA;&lt;p>&#xA;&#xA;For further documentation and examples see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html&quot;>How to Monitor Progress&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@see ProgressMonitor&#xA;@see JOptionPane&#xA;@author James Gosling&#xA;@version 1.19 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546799_94607_10833"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_871374_18645" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_127899_10677" name="DefaultListModel">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_595293_12353" body="This class loosely implements the &lt;code>java.util.Vector&lt;/code>&#xA;API, in that it implements the 1.1.x version of&#xA;&lt;code>java.util.Vector&lt;/code>, has no collection class support,&#xA;and notifies the &lt;code>ListDataListener&lt;/code>s when changes occur.&#xA;Presently it delegates to a &lt;code>Vector&lt;/code>,&#xA;in a future release it will be a real Collection implementation.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.35 05/05/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546784_127899_10677"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_764641_18263" isSubstitutable="true" general="_9_5_f720368_1110473546784_136098_10617"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_723131_10879" name="TimerQueue" visibility="package" clientDependency="_10_5_622020d_1132928324172_178869_18684">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_184566_12679" body="Internal class to manage all Timers using one thread.&#xA;TimerQueue manages a queue of Timers. The Timers are chained&#xA;together in a linked list sorted by the order in which they will expire.&#xA;&#xA;@version 1.37 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546799_723131_10879"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_178869_18684" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473546799_723131_10879" contract="_9_5_f720368_1110473546612_953158_7669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317823_986333_12296" name="ArrayTable" visibility="package" clientDependency="_10_5_622020d_1132928323912_367631_18218">
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_367631_18218" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928317823_986333_12296" contract="_9_5_f720368_1110473546612_888397_7587"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_678280_10777" name="JTable" clientDependency="_10_5_622020d_1132928324132_712522_18527 _10_5_622020d_1132928324132_908022_18529 _10_5_622020d_1132928324132_109039_18524 _10_5_622020d_1132928324132_731012_18525 _10_5_622020d_1132928324132_847053_18526 _10_5_622020d_1132928324132_772968_18528">
            <ownedComment xmi:id="_10_5_622020d_1132928318123_1474_12538" body="The &lt;code>JTable&lt;/code> is used to display and edit regular two-dimensional tables&#xA;of cells.&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/table.html&quot;>How to Use Tables&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for task-oriented documentation and examples of using &lt;code>JTable&lt;/code>.&#xA;&#xA;&lt;p>&#xA;The &lt;code>JTable&lt;/code> has many&#xA;facilities that make it possible to customize its rendering and editing&#xA;but provides defaults for these features so that simple tables can be&#xA;set up easily.  For example, to set up a table with 10 rows and 10&#xA;columns of numbers:&#xA;&lt;p>&#xA;&lt;pre>&#xA;TableModel dataModel = new AbstractTableModel() {&#xA;public int getColumnCount() { return 10; }&#xA;public int getRowCount() { return 10;}&#xA;public Object getValueAt(int row, int col) { return new Integer(row*col); }&#xA;};&#xA;JTable table = new JTable(dataModel);&#xA;JScrollPane scrollpane = new JScrollPane(table);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Note that if you wish to use a &lt;code>JTable&lt;/code> in a standalone&#xA;view (outside of a &lt;code>JScrollPane&lt;/code>) and want the header&#xA;displayed, you can get it using {@link #getTableHeader} and&#xA;display it separately.&#xA;&lt;p>&#xA;When designing applications that use the &lt;code>JTable&lt;/code> it is worth paying&#xA;close attention to the data structures that will represent the table's data.&#xA;The &lt;code>DefaultTableModel&lt;/code> is a model implementation that&#xA;uses a &lt;code>Vector&lt;/code> of &lt;code>Vector&lt;/code>s of &lt;code>Object&lt;/code>s to&#xA;store the cell values. As well as copying the data from an&#xA;application into the &lt;code>DefaultTableModel&lt;/code>,&#xA;it is also possible to wrap the data in the methods of the&#xA;&lt;code>TableModel&lt;/code> interface so that the data can be passed to the&#xA;&lt;code>JTable&lt;/code> directly, as in the example above. This often results&#xA;in more efficient applications because the model is free to choose the&#xA;internal representation that best suits the data.&#xA;A good rule of thumb for deciding whether to use the &lt;code>AbstractTableModel&lt;/code>&#xA;or the &lt;code>DefaultTableModel&lt;/code> is to use the &lt;code>AbstractTableModel&lt;/code>&#xA;as the base class for creating subclasses and the &lt;code>DefaultTableModel&lt;/code>&#xA;when subclassing is not required.&#xA;&lt;p>&#xA;The &quot;TableExample&quot; directory in the demo area of the source distribution&#xA;gives a number of complete examples of &lt;code>JTable&lt;/code> usage,&#xA;covering how the &lt;code>JTable&lt;/code> can be used to provide an&#xA;editable view of data taken from a database and how to modify&#xA;the columns in the display to use specialized renderers and editors.&#xA;&lt;p>&#xA;The &lt;code>JTable&lt;/code> uses integers exclusively to refer to both the rows and the columns&#xA;of the model that it displays. The &lt;code>JTable&lt;/code> simply takes a tabular range of cells&#xA;and uses &lt;code>getValueAt(int, int)&lt;/code> to retrieve the&#xA;values from the model during painting.&#xA;&lt;p>&#xA;By default, columns may be rearranged in the &lt;code>JTable&lt;/code> so that the&#xA;view's columns appear in a different order to the columns in the model.&#xA;This does not affect the implementation of the model at all: when the&#xA;columns are reordered, the &lt;code>JTable&lt;/code> maintains the new order of the columns&#xA;internally and converts its column indices before querying the model.&#xA;&lt;p>&#xA;So, when writing a &lt;code>TableModel&lt;/code>, it is not necessary to listen for column&#xA;reordering events as the model will be queried in its own coordinate&#xA;system regardless of what is happening in the view.&#xA;In the examples area there is a demonstration of a sorting algorithm making&#xA;use of exactly this technique to interpose yet another coordinate system&#xA;where the order of the rows is changed, rather than the order of the columns.&#xA;&lt;p>&#xA;J2SE 5 adds methods to &lt;code>JTable&lt;/code> to provide convenient access to some&#xA;common printing needs. Simple new {@link #print()} methods allow for quick&#xA;and easy addition of printing support to your application. In addition, a new&#xA;{@link #getPrintable} method is available for more advanced printing needs.&#xA;&lt;p>&#xA;As for all &lt;code>JComponent&lt;/code> classes, you can use&#xA;{@link InputMap} and {@link ActionMap} to associate an&#xA;{@link Action} object with a {@link KeyStroke} and execute the&#xA;action under specified conditions.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which displays data in a two dimensional grid.&#xA;&#xA;@version 1.238 06/28/04&#xA;@author Philip Milne&#xA;@author Shannon Hickey (printing support)&#xA;" annotatedElement="_9_5_f720368_1110473546799_678280_10777"/>
            <generalization xmi:id="_10_5_622020d_1132928324142_449881_18530" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_109039_18524" name="" supplier="_9_5_f720368_1110473546753_33358_9895" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546753_33358_9895"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_731012_18525" name="" supplier="_9_5_f720368_1110473546799_139584_10841" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546799_139584_10841"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_847053_18526" name="" supplier="_9_5_f720368_1110473546753_977241_9891" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546753_977241_9891"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_712522_18527" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546753_43790_9865"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_772968_18528" name="" supplier="_9_5_f720368_1110473546753_610396_9837" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546753_610396_9837"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_908022_18529" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_678280_10777" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548456_618858_24315" name="Resizable2" visibility="private" isAbstract="true"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548456_311890_24316" name="Resizable3" visibility="private" isAbstract="true">
              <generalization xmi:id="_10_5_622020d_1132928324142_126581_18531" isSubstitutable="true" general="_9_5_f720368_1110473548456_618858_24315"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_949267_24317" name="NumberRenderer" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_942057_12529" body="Default Renderers&#xA;" annotatedElement="_9_5_f720368_1110473548456_949267_24317"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_37840_18532" isSubstitutable="true" general="_9_5_f720368_1110473548284_673354_22788"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_247335_24320" name="DoubleRenderer" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_490034_18533" isSubstitutable="true" general="_9_5_f720368_1110473548456_949267_24317"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_915635_24322" name="DateRenderer" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_712211_18534" isSubstitutable="true" general="_9_5_f720368_1110473548284_673354_22788"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_921669_24324" name="IconRenderer" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_387333_18535" isSubstitutable="true" general="_9_5_f720368_1110473548284_673354_22788"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_343810_24326" name="BooleanRenderer" visibility="package" clientDependency="_10_5_622020d_1132928324142_256950_18536 _10_5_622020d_1132928324142_421039_18537">
              <generalization xmi:id="_10_5_622020d_1132928324142_325252_18538" isSubstitutable="true" general="_9_5_f720368_1110473546784_586216_10707"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_256950_18536" name="" supplier="_9_5_f720368_1110473546768_3233_10293" client="_9_5_f720368_1110473548456_343810_24326" contract="_9_5_f720368_1110473546768_3233_10293"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_421039_18537" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548456_343810_24326" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_968131_24328" name="GenericEditor" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_649003_12530" body="Default Editors&#xA;" annotatedElement="_9_5_f720368_1110473548456_968131_24328"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_232841_18539" isSubstitutable="true" general="_9_5_f720368_1110473546784_951447_10663"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_231097_24331" name="NumberEditor" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_380309_18540" isSubstitutable="true" general="_9_5_f720368_1110473548456_968131_24328"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_911883_24333" name="BooleanEditor" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_689140_18541" isSubstitutable="true" general="_9_5_f720368_1110473546784_951447_10663"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_664615_24335" name="CellEditorRemover" visibility="package" clientDependency="_10_5_622020d_1132928324142_821471_18542">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_821471_18542" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548456_664615_24335" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_865834_24336" name="AccessibleJTable" visibility="protected" clientDependency="_10_5_622020d_1132928324142_430876_18544 _10_5_622020d_1132928324142_686527_18545 _10_5_622020d_1132928324142_598348_18546 _10_5_622020d_1132928324142_597089_18547 _10_5_622020d_1132928324142_994313_18548 _10_5_622020d_1132928324142_580560_18549 _10_5_622020d_1132928324142_548566_18550">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_967683_12536" body="This class implements accessibility support for the&#xA;&lt;code>JTable&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to table user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_865834_24336"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_211072_18551" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_430876_18544" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_686527_18545" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546753_43790_9865"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_598348_18546" name="" supplier="_9_5_f720368_1110473546753_33358_9895" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546753_33358_9895"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_597089_18547" name="" supplier="_9_5_f720368_1110473546753_977241_9891" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546753_977241_9891"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_994313_18548" name="" supplier="_9_5_f720368_1110473546753_610396_9837" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546753_610396_9837"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_580560_18549" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_548566_18550" name="" supplier="_9_5_f720368_1110473546706_639543_8965" client="_9_5_f720368_1110473548456_865834_24336" contract="_9_5_f720368_1110473546706_639543_8965"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_542266_24338" name="AccessibleJTableModelChange" visibility="protected" clientDependency="_10_5_622020d_1132928324142_984482_18552">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_984482_18552" name="" supplier="_9_5_f720368_1110473546706_594235_8991" client="_9_5_f720368_1110473548456_542266_24338" contract="_9_5_f720368_1110473546706_594235_8991"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_705028_24339" name="AccessibleTableHeader" visibility="private" clientDependency="_10_5_622020d_1132928324142_559034_18553">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_559034_18553" name="" supplier="_9_5_f720368_1110473546706_892822_8989" client="_9_5_f720368_1110473548456_705028_24339" contract="_9_5_f720368_1110473546706_892822_8989"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_223268_24340" name="AccessibleJTableCell" visibility="protected" clientDependency="_10_5_622020d_1132928324142_371844_18554 _10_5_622020d_1132928324142_454786_18555">
                <ownedComment xmi:id="_10_5_622020d_1132928318123_751855_12533" body="The class provides an implementation of the Java Accessibility&#xA;API appropriate to table cells.&#xA;" annotatedElement="_9_5_f720368_1110473548456_223268_24340"/>
                <generalization xmi:id="_10_5_622020d_1132928324142_455723_18556" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_371844_18554" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548456_223268_24340" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_454786_18555" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548456_223268_24340" contract="_9_5_f720368_1110473546706_824207_8957"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318123_995220_12534" name="AccessibleJTableHeaderCell" visibility="private" clientDependency="_10_5_622020d_1132928324142_735538_18557 _10_5_622020d_1132928324142_43056_18558">
                <ownedComment xmi:id="_10_5_622020d_1132928318123_481574_12535" body="This class implements accessibility for JTable header cells.&#xA;" annotatedElement="_10_5_622020d_1132928318123_995220_12534"/>
                <generalization xmi:id="_10_5_622020d_1132928324142_641017_18559" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_735538_18557" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_10_5_622020d_1132928318123_995220_12534" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324142_43056_18558" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_10_5_622020d_1132928318123_995220_12534" contract="_9_5_f720368_1110473546706_824207_8957"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318123_146809_12526" name="PrintMode">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_868871_12528" body="Printing modes, used in printing &lt;code>JTable&lt;/code>s.&#xA;&#xA;@see #print(JTable.PrintMode, MessageFormat, MessageFormat,&#xA;boolean, PrintRequestAttributeSet, boolean)&#xA;@see #getPrintable&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318123_146809_12526"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318123_170831_12531" name="ThreadSafePrintable" visibility="private" clientDependency="_10_5_622020d_1132928324142_492238_18543">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_297701_12532" body="A &lt;code>Printable&lt;/code> implementation that wraps another&#xA;&lt;code>Printable&lt;/code>, making it safe for printing on another thread.&#xA;&lt;p>&#xA;Also performs steps that are specific to this table printing&#xA;implementation, such as hiding the selection and focus in the table,&#xA;and updating the given &lt;code>JLabel&lt;/code> with the page number&#xA;based on the specified message format.&#xA;" annotatedElement="_10_5_622020d_1132928318123_170831_12531"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_492238_18543" name="" supplier="_9_5_f720368_1110473546581_449391_6909" client="_10_5_622020d_1132928318123_170831_12531" contract="_9_5_f720368_1110473546581_449391_6909"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_407743_10685" name="DesktopManager" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_180435_12361" body="DesktopManager objects are owned by a JDesktopPane object. They are responsible&#xA;for implementing L&amp;F specific behaviors for the JDesktopPane. JInternalFrame&#xA;implementations should delegate specific behaviors to the DesktopManager. For&#xA;instance, if a JInternalFrame was asked to iconify, it should try:&#xA;&lt;PRE>&#xA;getDesktopPane().getDesktopManager().iconifyFrame(frame);&#xA;&lt;/PRE>&#xA;This delegation allows each L&amp;F to provide custom behaviors for desktop-specific&#xA;actions. (For example, how and where the internal frame's icon would appear.)&#xA;&lt;p>This class provides a policy for the various JInternalFrame methods, it is not&#xA;meant to be called directly rather the various JInternalFrame methods will call&#xA;into the DesktopManager.&lt;/p>&#xA;&#xA;@see JDesktopPane&#xA;@see JInternalFrame&#xA;@see JInternalFrame.JDesktopIcon&#xA;&#xA;@version 1.15 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546784_407743_10685"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_977661_10637" name="ButtonGroup" clientDependency="_10_5_622020d_1132928323952_725582_18230">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_718867_12312" body="This class is used to create a multiple-exclusion scope for&#xA;a set of buttons. Creating a set of buttons with the&#xA;same &lt;code>ButtonGroup&lt;/code> object means that&#xA;turning &quot;on&quot; one of those buttons&#xA;turns off all other buttons in the group.&#xA;&lt;p>&#xA;A &lt;code>ButtonGroup&lt;/code> can be used with&#xA;any set of objects that inherit from &lt;code>AbstractButton&lt;/code>.&#xA;Typically a button group contains instances of&#xA;&lt;code>JRadioButton&lt;/code>,&#xA;&lt;code>JRadioButtonMenuItem&lt;/code>,&#xA;or &lt;code>JToggleButton&lt;/code>.&#xA;It wouldn't make sense to put an instance of&#xA;&lt;code>JButton&lt;/code> or &lt;code>JMenuItem&lt;/code>&#xA;in a button group&#xA;because &lt;code>JButton&lt;/code> and &lt;code>JMenuItem&lt;/code>&#xA;don't implement the selected state.&#xA;&lt;p>&#xA;Initially, all buttons in the group are unselected. Once any button is&#xA;selected, one button is always selected in the group. There is no way&#xA;to turn a button programmatically to &quot;off&quot;, in order to clear the button&#xA;group. To give the appearance of &quot;none selected&quot;, add an invisible radio&#xA;button to the group and then programmatically select that button to&#xA;turn off all the displayed radio buttons. For example, a normal button&#xA;with the label &quot;none&quot; could be wired to select the invisible radio button.&#xA;&lt;p>&#xA;For examples and further information on using button groups see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html#radiobutton&quot;>How to Use Radio Buttons&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.37 05/05/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_977661_10637"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_725582_18230" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_977661_10637" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_458064_10745" name="JMenuItem" clientDependency="_10_5_622020d_1132928324112_572975_18414 _10_5_622020d_1132928324112_42038_18415">
            <ownedComment xmi:id="_10_5_622020d_1132928318013_394398_12462" body="An implementation of an item in a menu. A menu item is essentially a button&#xA;sitting in a list. When the user selects the &quot;button&quot;, the action&#xA;associated with the menu item is performed. A &lt;code>JMenuItem&lt;/code>&#xA;contained in a &lt;code>JPopupMenu&lt;/code> performs exactly that function.&#xA;&lt;p>&#xA;For further documentation and for examples, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: An item which can be selected in a menu.&#xA;&#xA;@version 1.118 03/05/04&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@see JPopupMenu&#xA;@see JMenu&#xA;@see JCheckBoxMenuItem&#xA;@see JRadioButtonMenuItem&#xA;" annotatedElement="_9_5_f720368_1110473546799_458064_10745"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_877426_18416" isSubstitutable="true" general="_9_5_f720368_1110473546784_713673_10613"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_572975_18414" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_458064_10745" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_42038_18415" name="" supplier="_9_5_f720368_1110473546799_252355_10817" client="_9_5_f720368_1110473546799_458064_10745" contract="_9_5_f720368_1110473546799_252355_10817"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_852433_24223" name="MenuItemFocusListener" visibility="private" clientDependency="_10_5_622020d_1132928324112_624943_18417 _10_5_622020d_1132928324112_197016_18418">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_624943_18417" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548440_852433_24223" contract="_9_5_f720368_1110473546565_10343_6561"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_197016_18418" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_852433_24223" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_178605_24225" name="AccessibleJMenuItem" visibility="protected" clientDependency="_10_5_622020d_1132928324112_242245_18421">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_235112_12460" body="This class implements accessibility support for the&#xA;&lt;code>JMenuItem&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu item user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_178605_24225"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_874517_18422" isSubstitutable="true" general="_9_5_f720368_1110473548409_709197_24039"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_242245_18421" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548440_178605_24225" contract="_9_5_f720368_1110473546753_937925_9841"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318013_477694_12459" name="MenuItemPropertyChangeListener" visibility="private" clientDependency="_10_5_622020d_1132928324112_112405_18419">
              <generalization xmi:id="_10_5_622020d_1132928324112_460531_18420" isSubstitutable="true" general="_9_5_f720368_1110473546784_352606_10611"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_112405_18419" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928318013_477694_12459" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_464023_10665" name="DefaultComboBoxModel" clientDependency="_10_5_622020d_1132928323972_869544_18250 _10_5_622020d_1132928323972_431618_18251">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_714262_12342" body="The default model for combo boxes.&#xA;&#xA;@version 1.19 05/05/04&#xA;@author Arnaud Weber&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546784_464023_10665"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_37672_18252" isSubstitutable="true" general="_9_5_f720368_1110473546784_136098_10617"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_869544_18250" name="" supplier="_9_5_f720368_1110473546799_519831_10823" client="_9_5_f720368_1110473546784_464023_10665" contract="_9_5_f720368_1110473546799_519831_10823"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_431618_18251" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_464023_10665" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_134491_10661" name="DefaultButtonModel" clientDependency="_10_5_622020d_1132928323952_360002_18242 _10_5_622020d_1132928323952_119504_18243">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_36957_12337" body="The default implementation of a &lt;code>Button&lt;/code> component's data model.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.45 05/05/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_134491_10661"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_360002_18242" name="" supplier="_9_5_f720368_1110473546784_383073_10639" client="_9_5_f720368_1110473546784_134491_10661" contract="_9_5_f720368_1110473546784_383073_10639"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_119504_18243" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_134491_10661" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_368655_10749" name="JPanel" clientDependency="_10_5_622020d_1132928324112_544007_18427">
            <ownedComment xmi:id="_10_5_622020d_1132928318063_691731_12470" body="&lt;code>JPanel&lt;/code> is a generic lightweight container.&#xA;For examples and task-oriented documentation for JPanel, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/panel.html&quot;>How to Use Panels&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;description: A generic lightweight container.&#xA;&#xA;@version 1.46 12/19/03&#xA;@author Arnaud Weber&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546799_368655_10749"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_159587_18428" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_544007_18427" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_368655_10749" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_244225_24231" name="AccessibleJPanel" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318063_516875_12468" body="This class implements accessibility support for the&#xA;&lt;code>JPanel&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to panel user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_244225_24231"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_572770_18429" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_67976_10625" name="AncestorNotifier" visibility="package" clientDependency="_10_5_622020d_1132928323912_451044_18215 _10_5_622020d_1132928323912_294015_18216 _10_5_622020d_1132928323912_742265_18217">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_244509_12295" body="@version 1.19 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546784_67976_10625"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_451044_18215" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473546784_67976_10625" contract="_9_5_f720368_1110473546565_824053_6549"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_294015_18216" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546784_67976_10625" contract="_9_5_f720368_1110473546596_119404_7313"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_742265_18217" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_67976_10625" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_119295_10727" name="JFileChooser" clientDependency="_10_5_622020d_1132928324092_794196_18349">
            <ownedComment xmi:id="_10_5_622020d_1132928317913_69087_12425" body="&lt;code>JFileChooser&lt;/code> provides a simple mechanism for the user to&#xA;choose a file.&#xA;For information about using &lt;code>JFileChooser&lt;/code>, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html&quot;>How to Use File Choosers&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&#xA;The following code pops up a file chooser for the user's home directory that&#xA;sees only .jpg and .gif images:&#xA;&lt;pre>&#xA;JFileChooser chooser = new JFileChooser();&#xA;Note: source for ExampleFileFilter can be found in FileChooserDemo,&#xA;under the demo/jfc directory in the JDK.&#xA;ExampleFileFilter filter = new ExampleFileFilter();&#xA;filter.addExtension(&quot;jpg&quot;);&#xA;filter.addExtension(&quot;gif&quot;);&#xA;filter.setDescription(&quot;JPG &amp; GIF Images&quot;);&#xA;chooser.setFileFilter(filter);&#xA;int returnVal = chooser.showOpenDialog(parent);&#xA;if(returnVal == JFileChooser.APPROVE_OPTION) {&#xA;System.out.println(&quot;You chose to open this file: &quot; +&#xA;chooser.getSelectedFile().getName());&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which allows for the interactive selection of a file.&#xA;&#xA;@version 1.106 06/28/04&#xA;@author Jeff Dinkins&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546799_119295_10727"/>
            <generalization xmi:id="_10_5_622020d_1132928324092_964745_18350" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324092_794196_18349" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_119295_10727" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_921090_24171" name="AccessibleJFileChooser" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_363874_12423" body="This class implements accessibility support for the&#xA;&lt;code>JFileChooser&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to file chooser user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548424_921090_24171"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_108214_18352" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317913_616152_12422" name="WeakPCL" visibility="private" clientDependency="_10_5_622020d_1132928324092_133570_18351">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_133570_18351" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317913_616152_12422" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_854527_10835" name="Renderer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_904225_12621" body="Defines the requirements for an object responsible for&#xA;&quot;rendering&quot; (displaying) a value.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546799_854527_10835"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_266522_10759" name="JRadioButtonMenuItem" clientDependency="_10_5_622020d_1132928324122_552672_18450">
            <ownedComment xmi:id="_10_5_622020d_1132928318073_394479_12486" body="An implementation of a radio button menu item.&#xA;A &lt;code>JRadioButtonMenuItem&lt;/code> is&#xA;a menu item that is part of a group of menu items in which only one&#xA;item in the group can be selected. The selected item displays its&#xA;selected state. Selecting it causes any other selected item to&#xA;switch to the unselected state.&#xA;To control the selected state of a group of radio button menu items,&#xA;use a &lt;code>ButtonGroup&lt;/code> object.&#xA;&lt;p>&#xA;For further documentation and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component within a group of menu items which can be selected.&#xA;&#xA;@version 1.49 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@see ButtonGroup&#xA;" annotatedElement="_9_5_f720368_1110473546799_266522_10759"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_479732_18451" isSubstitutable="true" general="_9_5_f720368_1110473546799_458064_10745"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_552672_18450" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_266522_10759" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_749064_24251" name="AccessibleJRadioButtonMenuItem" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_330089_12484" body="This class implements accessibility support for the&#xA;&lt;code>JRadioButtonMenuItem&lt;/code> class.  It provides an&#xA;implementation of the Java Accessibility API appropriate to&#xA;&lt;code>JRadioButtonMenuItem&lt;/code> user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_749064_24251"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_193685_18452" isSubstitutable="true" general="_9_5_f720368_1110473548440_178605_24225"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_123022_10631" name="BoundedRangeModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_431777_12303" body="Defines the data model used by components like &lt;code>Slider&lt;/code>s&#xA;and &lt;code>ProgressBar&lt;/code>s.&#xA;Defines four interrelated integer properties: minimum, maximum, extent&#xA;and value.  These four integers define two nested ranges like this:&#xA;&lt;pre>&#xA;minimum &lt;= value &lt;= value+extent &lt;= maximum&#xA;&lt;/pre>&#xA;The outer range is &lt;code>minimum,maximum&lt;/code> and the inner&#xA;range is &lt;code>value,value+extent&lt;/code>.  The inner range&#xA;must lie within the outer one, i.e. &lt;code>value&lt;/code> must be&#xA;less than or equal to &lt;code>maximum&lt;/code> and &lt;code>value+extent&lt;/code>&#xA;must greater than or equal to &lt;code>minimum&lt;/code>, and &lt;code>maximum&lt;/code>&#xA;must be greater than or equal to &lt;code>minimum&lt;/code>.&#xA;There are a few features of this model that one might find a little&#xA;surprising.  These quirks exist for the convenience of the&#xA;Swing BoundedRangeModel clients, such as &lt;code>Slider&lt;/code> and&#xA;&lt;code>ScrollBar&lt;/code>.&#xA;&lt;ul>&#xA;&lt;li>&#xA;The minimum and maximum set methods &quot;correct&quot; the other&#xA;three properties to accommodate their new value argument.  For&#xA;example setting the model's minimum may change its maximum, value,&#xA;and extent properties (in that order), to maintain the constraints&#xA;specified above.&#xA;&#xA;&lt;li>&#xA;The value and extent set methods &quot;correct&quot; their argument to&#xA;fit within the limits defined by the other three properties.&#xA;For example if &lt;code>value == maximum&lt;/code>, &lt;code>setExtent(10)&lt;/code>&#xA;would change the extent (back) to zero.&#xA;&#xA;&lt;li>&#xA;The four BoundedRangeModel values are defined as Java Beans properties&#xA;however Swing ChangeEvents are used to notify clients of changes rather&#xA;than PropertyChangeEvents. This was done to keep the overhead of monitoring&#xA;a BoundedRangeModel low. Changes are often reported at MouseDragged rates.&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;&#xA;For an example of specifying custom bounded range models used by sliders,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/overview/anatomy.html&quot;>The Anatomy of a Swing-Based Program&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@version 1.28 12/19/03&#xA;@author Hans Muller&#xA;@see DefaultBoundedRangeModel&#xA;" annotatedElement="_9_5_f720368_1110473546784_123022_10631"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_614566_10831" name="ProgressMonitor" clientDependency="_10_5_622020d_1132928324172_185003_18638">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_491410_12617" body="A class to monitor the progress of some operation. If it looks&#xA;like the operation will take a while, a progress dialog will be popped up.&#xA;When the ProgressMonitor is created it is given a numeric range and a&#xA;descriptive string. As the operation progresses, call the setProgress method&#xA;to indicate how far along the [min,max] range the operation is.&#xA;Initially, there is no ProgressDialog. After the first millisToDecideToPopup&#xA;milliseconds (default 500) the progress monitor will predict how long&#xA;the operation will take.  If it is longer than millisToPopup (default 2000,&#xA;2 seconds) a ProgressDialog will be popped up.&#xA;&lt;p>&#xA;From time to time, when the Dialog box is visible, the progress bar will&#xA;be updated when setProgress is called.  setProgress won't always update&#xA;the progress bar, it will only be done if the amount of progress is&#xA;visibly significant.&#xA;&#xA;&lt;p>&#xA;&#xA;For further documentation and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html&quot;>How to Monitor Progress&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@see ProgressMonitorInputStream&#xA;@author James Gosling&#xA;@author Lynn Monsanto (accessibility)&#xA;@version 1.30 04/15/04&#xA;" annotatedElement="_9_5_f720368_1110473546799_614566_10831"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_642876_18639" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_185003_18638" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_614566_10831" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_759007_24433" name="ProgressOptionPane" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_614379_18640" isSubstitutable="true" general="_9_5_f720368_1110473546799_655737_10747"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318204_708556_12614" name="AccessibleProgressMonitor" visibility="protected" clientDependency="_10_5_622020d_1132928324172_998982_18641 _10_5_622020d_1132928324172_872081_18642 _10_5_622020d_1132928324172_601981_18643">
              <ownedComment xmi:id="_10_5_622020d_1132928318204_638944_12615" body="&lt;code>AccessibleProgressMonitor&lt;/code> implements accessibility&#xA;support for the &lt;code>ProgressMonitor&lt;/code> class.&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318204_708556_12614"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_742495_18644" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_998982_18641" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_10_5_622020d_1132928318204_708556_12614" contract="_9_5_f720368_1110473546706_466273_8993"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_872081_18642" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928318204_708556_12614" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_601981_18643" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928318204_708556_12614" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_967208_10715" name="ColorTracker" visibility="package" clientDependency="_10_5_622020d_1132928324072_863736_18303 _10_5_622020d_1132928324072_503367_18302">
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_503367_18302" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546784_967208_10715" contract="_9_5_f720368_1110473546565_106737_6535"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_863736_18303" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_967208_10715" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_312229_10651" name="DebugGraphics">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_585550_12327" body="Graphics subclass supporting graphics debugging. Overrides most methods&#xA;from Graphics.  DebugGraphics objects are rarely created by hand.  They&#xA;are most frequently created automatically when a JComponent's&#xA;debugGraphicsOptions are changed using the setDebugGraphicsOptions()&#xA;method.&#xA;&lt;p>&#xA;NOTE: You must turn off double buffering to use DebugGraphics:&#xA;RepaintManager repaintManager = RepaintManager.currentManager(component);&#xA;repaintManager.setDoubleBufferingEnabled(false);&#xA;&#xA;@see JComponent#setDebugGraphicsOptions&#xA;@see RepaintManager#currentManager&#xA;@see RepaintManager#setDoubleBufferingEnabled&#xA;&#xA;@version 1.25 12/19/03&#xA;@author Dave Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546784_312229_10651"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_539711_18237" isSubstitutable="true" general="_9_5_f720368_1110473546581_175096_7021"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_303715_10847" name="SingleSelectionModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_887795_12634" body="A model that supports at most one indexed selection.&#xA;&#xA;@version 1.19 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546799_303715_10847"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_705759_10893" name="WindowConstants" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_657904_12702" body="Constants used to control the window-closing operation.&#xA;The &lt;code>setDefaultCloseOperation&lt;/code> and&#xA;&lt;code>getDefaultCloseOperation&lt;/code> methods&#xA;provided by &lt;code>JFrame&lt;/code>,&#xA;&lt;code>JInternalFrame&lt;/code>, and&#xA;&lt;code>JDialog&lt;/code>&#xA;use these constants.&#xA;For examples of setting the default window-closing operation, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html#windowevents&quot;>Responding to Window-Closing Events&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;@see JFrame#setDefaultCloseOperation(int)&#xA;@see JDialog#setDefaultCloseOperation(int)&#xA;@see JInternalFrame#setDefaultCloseOperation(int)&#xA;&#xA;&#xA;@version 1.21 12/19/03&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546799_705759_10893"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_713673_10613" name="AbstractButton" clientDependency="_10_5_622020d_1132928323902_225935_18192 _10_5_622020d_1132928323902_496722_18191" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_330234_12283" body="Defines common behaviors for buttons and menu items.&#xA;For further information see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html&quot;>How to Use Buttons, Check Boxes, and Radio Buttons&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.174 05/18/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_713673_10613"/>
            <generalization xmi:id="_10_5_622020d_1132928323912_697114_18193" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_496722_18191" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546784_713673_10613" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_225935_18192" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546784_713673_10613" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_782435_24033" name="ButtonActionPropertyChangeListener" visibility="private" clientDependency="_10_5_622020d_1132928323912_639558_18194">
              <generalization xmi:id="_10_5_622020d_1132928323912_943618_18195" isSubstitutable="true" general="_9_5_f720368_1110473546784_352606_10611"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_639558_18194" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548409_782435_24033" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_748035_24035" name="ButtonChangeListener" visibility="protected" clientDependency="_10_5_622020d_1132928323912_996733_18196 _10_5_622020d_1132928323912_978754_18197">
              <ownedComment xmi:id="_10_5_622020d_1132928317813_240820_12279" body="Extends &lt;code>ChangeListener&lt;/code> to be serializable.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548409_748035_24035"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_996733_18196" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548409_748035_24035" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_978754_18197" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548409_748035_24035" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_709197_24039" name="AccessibleAbstractButton" visibility="protected" clientDependency="_10_5_622020d_1132928323912_566143_18204 _10_5_622020d_1132928323912_782699_18202 _10_5_622020d_1132928323912_34300_18203 _10_5_622020d_1132928323912_692188_18205" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317813_185992_12281" body="This class implements accessibility support for the&#xA;&lt;code>AbstractButton&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to button and menu item&#xA;user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548409_709197_24039"/>
              <generalization xmi:id="_10_5_622020d_1132928323912_71473_18206" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_782699_18202" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473548409_709197_24039" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_34300_18203" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548409_709197_24039" contract="_9_5_f720368_1110473546706_399481_8995"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_566143_18204" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_9_5_f720368_1110473548409_709197_24039" contract="_9_5_f720368_1110473546706_466273_8993"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_692188_18205" name="" supplier="_9_5_f720368_1110473546706_225404_8963" client="_9_5_f720368_1110473548409_709197_24039" contract="_9_5_f720368_1110473546706_225404_8963"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_324796_24041" name="ButtonKeyBinding" visibility="package" clientDependency="_10_5_622020d_1132928323912_916564_18207">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323912_916564_18207" name="" supplier="_9_5_f720368_1110473546706_184903_8973" client="_9_5_f720368_1110473548409_324796_24041" contract="_9_5_f720368_1110473546706_184903_8973"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317813_590860_12280" name="Handler" visibility="package" clientDependency="_10_5_622020d_1132928323912_999170_18198 _10_5_622020d_1132928323912_203212_18201 _10_5_622020d_1132928323912_700391_18200 _10_5_622020d_1132928323912_332837_18199">
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_999170_18198" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317813_590860_12280" contract="_9_5_f720368_1110473546565_106737_6535"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_332837_18199" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317813_590860_12280" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_700391_18200" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_10_5_622020d_1132928317813_590860_12280" contract="_9_5_f720368_1110473546565_919591_6581"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323912_203212_18201" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928317813_590860_12280" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_63829_10711" name="JColorChooser" clientDependency="_10_5_622020d_1132928324062_794268_18294">
            <ownedComment xmi:id="_10_5_622020d_1132928317883_103283_12392" body="&lt;code>JColorChooser&lt;/code> provides a pane of controls designed to allow&#xA;a user to manipulate and select a color.&#xA;For information about using color choosers, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/colorchooser.html&quot;>How to Use Color Choosers&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&#xA;This class provides three levels of API:&#xA;&lt;ol>&#xA;&lt;li>A static convenience method which shows a modal color-chooser&#xA;dialog and returns the color selected by the user.&#xA;&lt;li>A static convenience method for creating a color-chooser dialog&#xA;where &lt;code>ActionListeners&lt;/code> can be specified to be invoked when&#xA;the user presses one of the dialog buttons.&#xA;&lt;li>The ability to create instances of &lt;code>JColorChooser&lt;/code> panes&#xA;directly (within any container). &lt;code>PropertyChange&lt;/code> listeners&#xA;can be added to detect when the current &quot;color&quot; property changes.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that supports selecting a Color.&#xA;&#xA;&#xA;@version 1.47 12/19/03&#xA;@author James Gosling&#xA;@author Amy Fowler&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546784_63829_10711"/>
            <generalization xmi:id="_10_5_622020d_1132928324072_532295_18295" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324062_794268_18294" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_63829_10711" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_408554_24112" name="AccessibleJColorChooser" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317883_120059_12390" body="This class implements accessibility support for the&#xA;&lt;code>JColorChooser&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to color chooser user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548424_408554_24112"/>
              <generalization xmi:id="_10_5_622020d_1132928324072_806400_18296" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_519831_10823" name="MutableComboBoxModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_822456_12600" body="A mutable version of &lt;code>ComboBoxModel&lt;/code>.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546799_519831_10823"/>
            <generalization xmi:id="_10_5_622020d_1132928324162_706636_18623" isSubstitutable="true" general="_9_5_f720368_1110473546784_592945_10647"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_255082_10819" name="MenuSelectionManager">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_197559_12596" body="A MenuSelectionManager owns the selection in menu hierarchy.&#xA;&#xA;@version 1.38 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546799_255082_10819"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_258524_10687" name="FocusManager" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_624862_12363" body="This class has been obsoleted by the 1.4 focus APIs. While client code may&#xA;still use this class, developers are strongly encouraged to use&#xA;&lt;code>java.awt.KeyboardFocusManager&lt;/code> and&#xA;&lt;code>java.awt.DefaultKeyboardFocusManager&lt;/code> instead.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@see &lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;&#xA;@version 1.28, 05/18/04&#xA;@author Arnaud Weber&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546784_258524_10687"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_965052_18270" isSubstitutable="true" general="_9_5_f720368_1110473546581_387206_6985"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_989928_10821" name="MultiUIDefaults" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_573593_12598" body="@version 1.10 02/02/00&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_989928_10821"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_34048_18621" isSubstitutable="true" general="_9_5_f720368_1110473546799_957974_10885"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_715261_24405" name="MultiUIDefaultsEnumerator" visibility="private" clientDependency="_10_5_622020d_1132928324152_554847_18622">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_554847_18622" name="" supplier="_9_5_f720368_1110473546706_70178_8859" client="_9_5_f720368_1110473548471_715261_24405" contract="_9_5_f720368_1110473546706_70178_8859"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548409_937650_24008" name="undo">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_331287_10599" name="StateEdit">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_397658_12266" body="&lt;P>StateEdit is a general edit for objects that change state.&#xA;Objects being edited must conform to the StateEditable interface.&lt;/P>&#xA;&#xA;&lt;P>This edit class works by asking an object to store it's state in&#xA;Hashtables before and after editing occurs.  Upon undo or redo the&#xA;object is told to restore it's state from these Hashtables.&lt;/P>&#xA;&#xA;A state edit is used as follows:&#xA;&lt;PRE>&#xA;Create the edit during the &quot;before&quot; state of the object&#xA;StateEdit newEdit = new StateEdit(myObject);&#xA;Modify the object&#xA;myObject.someStateModifyingMethod();&#xA;&quot;end&quot; the edit when you are done modifying the object&#xA;newEdit.end();&#xA;&lt;/PRE>&#xA;&#xA;&lt;P>&lt;EM>Note that when a StateEdit ends, it removes redundant state from&#xA;the Hashtables - A state Hashtable is not guaranteed to contain all&#xA;keys/values placed into it when the state is stored!&lt;/EM>&lt;/P>&#xA;&#xA;@see StateEditable&#xA;&#xA;@version 1.14 05/05/04&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_331287_10599"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_436078_18183" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_370238_10605" name="UndoableEditSupport">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_374436_12272" body="A support class used for managing &lt;code>UndoableEdit&lt;/code> listeners.&#xA;&#xA;@author Ray Ryan&#xA;@version 1.20 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_370238_10605"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_198181_10607" name="UndoManager" clientDependency="_10_5_622020d_1132928323902_405878_18184">
              <ownedComment xmi:id="_10_5_622020d_1132928317813_600086_12274" body="Concrete subclass of &lt;code>CompoundEdit&lt;/code>&#xA;which can serve as a &lt;code>UndoableEditListener&lt;/code>,&#xA;consolidating the &lt;code>UndoableEditEvents&lt;/code> from a&#xA;variety of sources, and undoing or redoing them one at a time.&#xA;&#xA;Unlike &lt;code>AbstractUndoableEdit&lt;/code> and &lt;code>CompoundEdit&lt;/code>,&#xA;the public methods of this&#xA;class are synchronized, and should be safe to call from multiple&#xA;threads. This should make &lt;code>UndoManager&lt;/code>&#xA;a convenient marshall for sets of undoable JavaBeans.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author Ray Ryan&#xA;@version 1.35, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_198181_10607"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_107862_18185" isSubstitutable="true" general="_9_5_f720368_1110473546784_798898_10597"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323902_405878_18184" name="" supplier="_9_5_f720368_1110473546753_523507_9913" client="_9_5_f720368_1110473546784_198181_10607" contract="_9_5_f720368_1110473546753_523507_9913"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_433529_10603" name="UndoableEdit" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_414567_12270" body="An object representing an edit that has been done, and that can be&#xA;undone and redone.&#xA;&#xA;@version 1.19, 12/19/03&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_433529_10603"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_798898_10597" name="CompoundEdit">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_276603_12264" body="A concrete subclass of AbstractUndoableEdit, used to assemble little&#xA;UndoableEdits into great big ones.&#xA;&#xA;@version 1.25 05/05/04&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_798898_10597"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_2624_18182" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_421828_10593" name="CannotRedoException">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_998080_12260" body="Thrown when an UndoableEdit is told to &lt;code>redo()&lt;/code> and can't.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.5 07/16/97&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_421828_10593"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_513843_18180" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_200616_10591" name="AbstractUndoableEdit" clientDependency="_10_5_622020d_1132928323902_286591_18178 _10_5_622020d_1132928323902_314253_18179">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_256379_12258" body="An abstract implementation of &lt;code>UndoableEdit&lt;/code>,&#xA;implementing simple responses to all boolean methods in&#xA;that interface.&#xA;&#xA;@version 1.29 12/19/03&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_200616_10591"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323902_286591_18178" name="" supplier="_9_5_f720368_1110473546784_433529_10603" client="_9_5_f720368_1110473546784_200616_10591" contract="_9_5_f720368_1110473546784_433529_10603"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323902_314253_18179" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_200616_10591" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_5926_10595" name="CannotUndoException">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_26649_12262" body="Thrown when an UndoableEdit is told to &lt;code>undo()&lt;/code> and can't.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.5 07/16/97&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_5926_10595"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_497250_18181" isSubstitutable="true" general="_9_5_f720368_1110473546612_799782_7673"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_728006_10601" name="StateEditable" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_983747_12268" body="StateEditable defines the interface for objects that can have&#xA;their state undone/redone by a StateEdit.&#xA;&#xA;@see StateEdit&#xA;" annotatedElement="_9_5_f720368_1110473546784_728006_10601"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_655737_10747" name="JOptionPane" clientDependency="_10_5_622020d_1132928324112_605722_18423">
            <ownedComment xmi:id="_10_5_622020d_1132928318063_437680_12467" body="&lt;code>JOptionPane&lt;/code> makes it easy to pop up a standard dialog box that&#xA;prompts users for a value or informs them of something.&#xA;For information about using &lt;code>JOptionPane&lt;/code>, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html&quot;>How to Make Dialogs&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&#xA;While the &lt;code>JOptionPane&lt;/code>&#xA;class may appear complex because of the large number of methods, almost&#xA;all uses of this class are one-line calls to one of the static&#xA;&lt;code>showXxxDialog&lt;/code> methods shown below:&#xA;&lt;blockquote>&#xA;&#xA;&#xA;&lt;table border=1 summary=&quot;Common JOptionPane method names and their descriptions&quot;>&#xA;&lt;tr>&#xA;&lt;th>Method Name&lt;/th>&#xA;&lt;th>Description&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>showConfirmDialog&lt;/td>&#xA;&lt;td>Asks a confirming question, like yes/no/cancel.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>showInputDialog&lt;/td>&#xA;&lt;td>Prompt for some input.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>showMessageDialog&lt;/td>&#xA;&lt;td>Tell the user about something that has happened.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>showOptionDialog&lt;/td>&#xA;&lt;td>The Grand Unification of the above three.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;/blockquote>&#xA;Each of these methods also comes in a &lt;code>showInternalXXX&lt;/code>&#xA;flavor, which uses an internal frame to hold the dialog box (see&#xA;{@link JInternalFrame}).&#xA;Multiple convenience methods have also been defined -- overloaded&#xA;versions of the basic methods that use different parameter lists.&#xA;&lt;p>&#xA;All dialogs are modal. Each &lt;code>showXxxDialog&lt;/code> method blocks&#xA;the current thread until the user's interaction is complete.&#xA;&lt;p>&#xA;&#xA;&lt;table cellspacing=6 cellpadding=4 border=0 align=right summary=&quot;layout&quot;>&#xA;&lt;tr>&#xA;&lt;td bgcolor=#FFe0d0 rowspan=2>icon&lt;/td>&#xA;&lt;td bgcolor=#FFe0d0>message&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td bgcolor=#FFe0d0>input value&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td bgcolor=#FFe0d0 colspan=2>option buttons&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;The basic appearance of one of these dialog boxes is generally&#xA;similar to the picture at the right, although the various&#xA;look-and-feels are&#xA;ultimately responsible for the final result.  In particular, the&#xA;look-and-feels will adjust the layout to accommodate the option pane's&#xA;&lt;code>ComponentOrientation&lt;/code> property.&#xA;&lt;br clear=all>&#xA;&lt;p>&#xA;&lt;b>Parameters:&lt;/b>&lt;br>&#xA;The parameters to these methods follow consistent patterns:&#xA;&lt;blockquote>&#xA;&lt;dl compact>&#xA;&lt;dt>parentComponent&lt;dd>&#xA;Defines the &lt;code>Component&lt;/code> that is to be the parent of this&#xA;dialog box.&#xA;It is used in two ways: the &lt;code>Frame&lt;/code> that contains&#xA;it is used as the &lt;code>Frame&lt;/code>&#xA;parent for the dialog box, and its screen coordinates are used in&#xA;the placement of the dialog box. In general, the dialog box is placed&#xA;just below the component. This parameter may be &lt;code>null&lt;/code>,&#xA;in which case a default &lt;code>Frame&lt;/code> is used as the parent,&#xA;and the dialog will be&#xA;centered on the screen (depending on the L&amp;F).&#xA;&lt;dt>&lt;a name=message>message&lt;/a>&lt;dd>&#xA;A descriptive message to be placed in the dialog box.&#xA;In the most common usage, message is just a &lt;code>String&lt;/code> or&#xA;&lt;code>String&lt;/code> constant.&#xA;However, the type of this parameter is actually &lt;code>Object&lt;/code>. Its&#xA;interpretation depends on its type:&#xA;&lt;dl compact>&#xA;&lt;dt>Object[]&lt;dd>An array of objects is interpreted as a series of&#xA;messages (one per object) arranged in a vertical stack.&#xA;The interpretation is recursive -- each object in the&#xA;array is interpreted according to its type.&#xA;&lt;dt>Component&lt;dd>The &lt;code>Component&lt;/code> is displayed in the dialog.&#xA;&lt;dt>Icon&lt;dd>The &lt;code>Icon&lt;/code> is wrapped in a &lt;code>JLabel&lt;/code>&#xA;and displayed in the dialog.&#xA;&lt;dt>others&lt;dd>The object is converted to a &lt;code>String&lt;/code> by calling&#xA;its &lt;code>toString&lt;/code> method. The result is wrapped in a&#xA;&lt;code>JLabel&lt;/code> and displayed.&#xA;&lt;/dl>&#xA;&lt;dt>messageType&lt;dd>Defines the style of the message. The Look and Feel&#xA;manager may lay out the dialog differently depending on this value, and&#xA;will often provide a default icon. The possible values are:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>ERROR_MESSAGE&lt;/code>&#xA;&lt;li>&lt;code>INFORMATION_MESSAGE&lt;/code>&#xA;&lt;li>&lt;code>WARNING_MESSAGE&lt;/code>&#xA;&lt;li>&lt;code>QUESTION_MESSAGE&lt;/code>&#xA;&lt;li>&lt;code>PLAIN_MESSAGE&lt;/code>&#xA;&lt;/ul>&#xA;&lt;dt>optionType&lt;dd>Defines the set of option buttons that appear at&#xA;the bottom of the dialog box:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>DEFAULT_OPTION&lt;/code>&#xA;&lt;li>&lt;code>YES_NO_OPTION&lt;/code>&#xA;&lt;li>&lt;code>YES_NO_CANCEL_OPTION&lt;/code>&#xA;&lt;li>&lt;code>OK_CANCEL_OPTION&lt;/code>&#xA;&lt;/ul>&#xA;You aren't limited to this set of option buttons.  You can provide any&#xA;buttons you want using the options parameter.&#xA;&lt;dt>options&lt;dd>A more detailed description of the set of option buttons&#xA;that will appear at the bottom of the dialog box.&#xA;The usual value for the options parameter is an array of&#xA;&lt;code>String&lt;/code>s. But&#xA;the parameter type is an array of &lt;code>Objects&lt;/code>.&#xA;A button is created for each object depending on its type:&#xA;&lt;dl compact>&#xA;&lt;dt>Component&lt;dd>The component is added to the button row directly.&#xA;&lt;dt>Icon&lt;dd>A &lt;code>JButton&lt;/code> is created with this as its label.&#xA;&lt;dt>other&lt;dd>The &lt;code>Object&lt;/code> is converted to a string using its&#xA;&lt;code>toString&lt;/code> method and the result is used to&#xA;label a &lt;code>JButton&lt;/code>.&#xA;&lt;/dl>&#xA;&lt;dt>icon&lt;dd>A decorative icon to be placed in the dialog box. A default&#xA;value for this is determined by the &lt;code>messageType&lt;/code> parameter.&#xA;&lt;dt>title&lt;dd>The title for the dialog box.&#xA;&lt;dt>initialValue&lt;dd>The default selection (input value).&#xA;&lt;/dl>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;When the selection is changed, &lt;code>setValue&lt;/code> is invoked,&#xA;which generates a &lt;code>PropertyChangeEvent&lt;/code>.&#xA;&lt;p>&#xA;If a &lt;code>JOptionPane&lt;/code> has configured to all input&#xA;&lt;code>setWantsInput&lt;/code>&#xA;the bound property &lt;code>JOptionPane.INPUT_VALUE_PROPERTY&lt;/code>&#xA;can also be listened&#xA;to, to determine when the user has input or selected a value.&#xA;&lt;p>&#xA;When one of the &lt;code>showXxxDialog&lt;/code> methods returns an integer,&#xA;the possible values are:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>YES_OPTION&lt;/code>&#xA;&lt;li>&lt;code>NO_OPTION&lt;/code>&#xA;&lt;li>&lt;code>CANCEL_OPTION&lt;/code>&#xA;&lt;li>&lt;code>OK_OPTION&lt;/code>&#xA;&lt;li>&lt;code>CLOSED_OPTION&lt;/code>&#xA;&lt;/ul>&#xA;&lt;b>Examples:&lt;/b>&#xA;&lt;dl>&#xA;&lt;dt>Show an error dialog that displays the message, 'alert':&#xA;&lt;dd>&lt;code>&#xA;JOptionPane.showMessageDialog(null, &quot;alert&quot;, &quot;alert&quot;, JOptionPane.ERROR_MESSAGE);&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show an internal information dialog with the message, 'information':&#xA;&lt;dd>&lt;code>&#xA;JOptionPane.showInternalMessageDialog(frame, &quot;information&quot;,&lt;br>&#xA;&lt;ul>&lt;ul>&quot;information&quot;, JOptionPane.INFORMATION_MESSAGE);&lt;/ul>&lt;/ul>&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show an information panel with the options yes/no and message 'choose one':&#xA;&lt;dd>&lt;code>JOptionPane.showConfirmDialog(null,&#xA;&lt;ul>&lt;ul>&quot;choose one&quot;, &quot;choose one&quot;, JOptionPane.YES_NO_OPTION);&lt;/ul>&lt;/ul>&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show an internal information dialog with the options yes/no/cancel and&#xA;message 'please choose one' and title information:&#xA;&lt;dd>&lt;code>JOptionPane.showInternalConfirmDialog(frame,&#xA;&lt;ul>&lt;ul>&quot;please choose one&quot;, &quot;information&quot;,&lt;/ul>&lt;/ul>&#xA;&lt;ul>&lt;ul>JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);&lt;/ul>&lt;/ul>&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show a warning dialog with the options OK, CANCEL, title 'Warning', and&#xA;message 'Click OK to continue':&#xA;&lt;dd>&lt;code>&#xA;Object[] options = { &quot;OK&quot;, &quot;CANCEL&quot; };&lt;br>&#xA;JOptionPane.showOptionDialog(null, &quot;Click OK to continue&quot;, &quot;Warning&quot;,&#xA;&lt;ul>&lt;ul>JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,&lt;/ul>&lt;/ul>&#xA;&lt;ul>&lt;ul>null, options, options[0]);&lt;/ul>&lt;/ul>&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show a dialog asking the user to type in a String:&#xA;&lt;dd>&lt;code>&#xA;String inputValue = JOptionPane.showInputDialog(&quot;Please input a value&quot;);&#xA;&lt;/code>&lt;p>&#xA;&lt;dt>Show a dialog asking the user to select a String:&#xA;&lt;dd>&lt;code>&#xA;Object[] possibleValues = { &quot;First&quot;, &quot;Second&quot;, &quot;Third&quot; };&lt;br>&#xA;Object selectedValue = JOptionPane.showInputDialog(null,&#xA;&lt;ul>&lt;ul>&quot;Choose one&quot;, &quot;Input&quot;,&lt;/ul>&lt;/ul>&#xA;&lt;ul>&lt;ul>JOptionPane.INFORMATION_MESSAGE, null,&lt;/ul>&lt;/ul>&#xA;&lt;ul>&lt;ul>possibleValues, possibleValues[0]);&lt;/ul>&lt;/ul>&#xA;&lt;/code>&lt;p>&#xA;&lt;/dl>&#xA;&lt;b>Direct Use:&lt;/b>&lt;br>&#xA;To create and use an &lt;code>JOptionPane&lt;/code> directly, the&#xA;standard pattern is roughly as follows:&#xA;&lt;pre>&#xA;JOptionPane pane = new JOptionPane(&lt;i>arguments&lt;/i>);&#xA;pane.set&lt;i>.Xxxx(...); // Configure&lt;/i>&#xA;JDialog dialog = pane.createDialog(&lt;i>parentComponent, title&lt;/i>);&#xA;dialog.show();&#xA;Object selectedValue = pane.getValue();&#xA;if(selectedValue == null)&#xA;return CLOSED_OPTION;&#xA;&lt;i>//If there is &lt;b>not&lt;/b> an array of option buttons:&lt;/i>&#xA;if(options == null) {&#xA;if(selectedValue instanceof Integer)&#xA;return ((Integer)selectedValue).intValue();&#xA;return CLOSED_OPTION;&#xA;}&#xA;&lt;i>//If there is an array of option buttons:&lt;/i>&#xA;for(int counter = 0, maxCounter = options.length;&#xA;counter &lt; maxCounter; counter++) {&#xA;if(options[counter].equals(selectedValue))&#xA;return counter;&#xA;}&#xA;return CLOSED_OPTION;&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JInternalFrame&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A component which implements standard dialog box controls.&#xA;&#xA;@version 1.91 03/04/04&#xA;@author James Gosling&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546799_655737_10747"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_839155_18424" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_605722_18423" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_655737_10747" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_418316_24228" name="AccessibleJOptionPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_104518_12465" body="This class implements accessibility support for the&#xA;&lt;code>JOptionPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to option pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_418316_24228"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_384214_18426" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318013_859185_12463" name="ModalPrivilegedAction" visibility="private" clientDependency="_10_5_622020d_1132928324112_69227_18425">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_696004_12464" body="Retrieves a method from the provided class and makes it accessible.&#xA;" annotatedElement="_10_5_622020d_1132928318013_859185_12463"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_69227_18425" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_10_5_622020d_1132928318013_859185_12463" contract="_9_5_f720368_1110473546690_3186_8507"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_950352_10843" name="ScrollPaneConstants" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_705573_12629" body="Constants used with the JScrollPane component.&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_950352_10843"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_308362_10799" name="KeyStroke">
            <ownedComment xmi:id="_10_5_622020d_1132928318183_557130_12577" body="A KeyStroke represents a key action on the keyboard, or equivalent input&#xA;device. KeyStrokes can correspond to only a press or release of a particular&#xA;key, just as KEY_PRESSED and KEY_RELEASED KeyEvents do; alternately, they&#xA;can correspond to typing a specific Java character, just as KEY_TYPED&#xA;KeyEvents do. In all cases, KeyStrokes can specify modifiers (alt, shift,&#xA;control, meta, or a combination thereof) which must be present during the&#xA;action for an exact match.&#xA;&lt;p>&#xA;KeyStrokes are used to define high-level (semantic) action events. Instead&#xA;of trapping every keystroke and throwing away the ones you are not&#xA;interested in, those keystrokes you care about automatically initiate&#xA;actions on the Components with which they are registered.&#xA;&lt;p>&#xA;KeyStrokes are immutable, and are intended to be unique. Client code cannot&#xA;create a KeyStroke; a variant of &lt;code>getKeyStroke&lt;/code> must be used&#xA;instead. These factory methods allow the KeyStroke implementation to cache&#xA;and share instances efficiently.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.text.Keymap&#xA;@see #getKeyStroke&#xA;&#xA;@version 1.49, 05/18/04&#xA;@author Arnaud Weber&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546799_308362_10799"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_732768_18613" isSubstitutable="true" general="_9_5_f720368_1110473546581_370402_6937"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_775716_10709" name="JCheckBoxMenuItem" clientDependency="_10_5_622020d_1132928324062_85836_18291 _10_5_622020d_1132928324062_470954_18290">
            <ownedComment xmi:id="_10_5_622020d_1132928317883_50639_12389" body="A menu item that can be selected or deselected. If selected, the menu&#xA;item typically appears with a checkmark next to it. If unselected or&#xA;deselected, the menu item appears without a checkmark. Like a regular&#xA;menu item, a check box menu item can have either text or a graphic&#xA;icon associated with it, or both.&#xA;&lt;p>&#xA;Either &lt;code>isSelected&lt;/code>/&lt;code>setSelected&lt;/code> or&#xA;&lt;code>getState&lt;/code>/&lt;code>setState&lt;/code> can be used&#xA;to determine/specify the menu item's selection state. The&#xA;preferred methods are &lt;code>isSelected&lt;/code> and&#xA;&lt;code>setSelected&lt;/code>, which work for all menus and buttons.&#xA;The &lt;code>getState&lt;/code> and &lt;code>setState&lt;/code> methods exist for&#xA;compatibility with other component sets.&#xA;&lt;p>&#xA;For further information and examples of using check box menu items,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A menu item which can be selected or deselected.&#xA;&#xA;@version 1.55 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546784_775716_10709"/>
            <generalization xmi:id="_10_5_622020d_1132928324062_653542_18292" isSubstitutable="true" general="_9_5_f720368_1110473546799_458064_10745"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324062_470954_18290" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546784_775716_10709" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324062_85836_18291" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_775716_10709" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_390255_24109" name="AccessibleJCheckBoxMenuItem" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317883_490954_12387" body="This class implements accessibility support for the&#xA;&lt;code>JCheckBoxMenuItem&lt;/code> class.  It provides an implementation&#xA;of the Java Accessibility API appropriate to checkbox menu item&#xA;user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_390255_24109"/>
              <generalization xmi:id="_10_5_622020d_1132928324062_14869_18293" isSubstitutable="true" general="_9_5_f720368_1110473548440_178605_24225"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_886144_10643" name="CellRendererPane" clientDependency="_10_5_622020d_1132928323952_112794_18232">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_802515_12319" body="This class is inserted in between cell renderers and the components that&#xA;use them.  It just exists to thwart the repaint() and invalidate() methods&#xA;which would otherwise propagate up the tree when the renderer was configured.&#xA;It's used by the implementations of JTable, JTree, and JList.  For example,&#xA;here's how CellRendererPane is used in the code the paints each row&#xA;in a JList:&#xA;&lt;pre>&#xA;cellRendererPane = new CellRendererPane();&#xA;...&#xA;Component rendererComponent = renderer.getListCellRendererComponent();&#xA;renderer.configureListCellRenderer(dataModel.getElementAt(row), row);&#xA;cellRendererPane.paintComponent(g, rendererComponent, this, x, y, w, h);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;A renderer component must override isShowing() and unconditionally return&#xA;true to work correctly because the Swing paint does nothing for components&#xA;with isShowing false.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.39 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546784_886144_10643"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_143495_18233" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_112794_18232" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_886144_10643" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_521055_24064" name="AccessibleCellRendererPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317833_783580_12317" body="This class implements accessibility support for the&#xA;&lt;code>CellRendererPane&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473548409_521055_24064"/>
              <generalization xmi:id="_10_5_622020d_1132928323952_885960_18234" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_185658_10719" name="JComponent" clientDependency="_10_5_622020d_1132928324072_265412_18318" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317893_696767_12407" body="The base class for all Swing components except top-level containers.&#xA;To use a component that inherits from &lt;code>JComponent&lt;/code>,&#xA;you must place the component in a containment hierarchy&#xA;whose root is a top-level Swing container.&#xA;Top-level Swing containers --&#xA;such as &lt;code>JFrame&lt;/code>, &lt;code>JDialog&lt;/code>,&#xA;and &lt;code>JApplet&lt;/code> --&#xA;are specialized components&#xA;that provide a place for other Swing components to paint themselves.&#xA;For an explanation of containment hierarchies, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/overview/hierarchy.html&quot;>Swing Components and the Containment Hierarchy&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;The &lt;code>JComponent&lt;/code> class provides:&#xA;&lt;ul>&#xA;&lt;li>The base class for both standard and custom components&#xA;that use the Swing architecture.&#xA;&lt;li>A &quot;pluggable look and feel&quot; (L&amp;F) that can be specified by the&#xA;programmer or (optionally) selected by the user at runtime.&#xA;The look and feel for each component is provided by a&#xA;&lt;em>UI delegate&lt;/em> -- an object that descends from&#xA;{@link javax.swing.plaf.ComponentUI}.&#xA;See &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html&quot;>How&#xA;to Set the Look and Feel&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for more information.&#xA;&lt;li>Comprehensive keystroke handling.&#xA;See the document &lt;a&#xA;href=&quot;http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.html&quot;>Keyboard&#xA;Bindings in Swing&lt;/a>,&#xA;an article in &lt;em>The Swing Connection&lt;/em>,&#xA;for more information.&#xA;&lt;li>Support for tool tips --&#xA;short descriptions that pop up when the cursor lingers&#xA;over a component.&#xA;See &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tooltip.html&quot;>How&#xA;to Use Tool Tips&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for more information.&#xA;&lt;li>Support for accessibility.&#xA;&lt;code>JComponent&lt;/code> contains all of the methods in the&#xA;&lt;code>Accessible&lt;/code> interface,&#xA;but it doesn't actually implement the interface.  That is the&#xA;responsibility of the individual classes&#xA;that extend &lt;code>JComponent&lt;/code>.&#xA;&lt;li>Support for component-specific properties.&#xA;With the {@link #putClientProperty}&#xA;and {@link #getClientProperty} methods,&#xA;you can associate name-object pairs&#xA;with any object that descends from &lt;code>JComponent&lt;/code>.&#xA;&lt;li>An infrastructure for painting&#xA;that includes double buffering and support for borders.&#xA;For more information see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/overview/draw.html&quot;>Painting&lt;/a> and&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/border.html&quot;>How&#xA;to Use Borders&lt;/a>,&#xA;both of which are sections in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;/ul>&#xA;For more information on these subjects, see the&#xA;&lt;a href=&quot;package-summary.html#package_description&quot;>Swing package description&lt;/a>&#xA;and &lt;em>The Java Tutorial&lt;/em> section&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/jcomponent.html&quot;>The JComponent Class&lt;/a>.&#xA;&lt;p>&#xA;&lt;code>JComponent&lt;/code> and its subclasses document default values&#xA;for certain properties.  For example, &lt;code>JTable&lt;/code> documents the&#xA;default row height as 16.  Each &lt;code>JComponent&lt;/code> subclass&#xA;that has a &lt;code>ComponentUI&lt;/code> will create the&#xA;&lt;code>ComponentUI&lt;/code> as part of its constructor.  In order&#xA;to provide a particular look and feel each&#xA;&lt;code>ComponentUI&lt;/code> may set properties back on the&#xA;&lt;code>JComponent&lt;/code> that created it.  For example, a custom&#xA;look and feel may require &lt;code>JTable&lt;/code>s to have a row&#xA;height of 24. The documented defaults are the value of a property&#xA;BEFORE the &lt;code>ComponentUI&lt;/code> has been installed.  If you&#xA;need a specific value for a particular property you should&#xA;explicitly set it.&#xA;&lt;p>&#xA;In release 1.4, the focus subsystem was rearchitected.&#xA;For more information, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see KeyStroke&#xA;@see Action&#xA;@see #setBorder&#xA;@see #registerKeyboardAction&#xA;@see JOptionPane&#xA;@see #setDebugGraphicsOptions&#xA;@see #setToolTipText&#xA;@see #setAutoscrolls&#xA;&#xA;@version 2.130 07/09/99&#xA;@author Hans Muller&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546784_185658_10719"/>
            <generalization xmi:id="_10_5_622020d_1132928324072_626649_18319" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_265412_18318" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_185658_10719" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_437924_24127" name="ActionStandin" visibility="package" clientDependency="_10_5_622020d_1132928324072_908958_18320" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_163394_12401" body="&lt;code>ActionStandin&lt;/code> is used as a standin for&#xA;&lt;code>ActionListeners&lt;/code> that are&#xA;added via &lt;code>registerKeyboardAction&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548424_437924_24127"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_908958_18320" name="" supplier="_9_5_f720368_1110473546784_436758_10621" client="_9_5_f720368_1110473548424_437924_24127" contract="_9_5_f720368_1110473546784_436758_10621"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_160466_24129" name="IntVector" visibility="package" isLeaf="true"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_79807_24131" name="KeyboardState" visibility="package" clientDependency="_10_5_622020d_1132928324072_471119_18321">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_471119_18321" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_79807_24131" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_820453_22824" name="AccessibleJComponent" clientDependency="_10_5_622020d_1132928324072_382933_18322" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_149531_12404" body="Inner class of JComponent used to provide default support for&#xA;accessibility.  This class is not meant to be used directly by&#xA;application developers, but is instead meant only to be&#xA;subclassed by component developers.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548284_820453_22824"/>
              <generalization xmi:id="_10_5_622020d_1132928324072_399725_18323" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_382933_18322" name="" supplier="_9_5_f720368_1110473546706_225404_8963" client="_9_5_f720368_1110473548284_820453_22824" contract="_9_5_f720368_1110473546706_225404_8963"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_61149_24134" name="AccessibleContainerHandler" visibility="protected" clientDependency="_10_5_622020d_1132928324072_574472_18324">
                <ownedComment xmi:id="_10_5_622020d_1132928317893_157484_12402" body="Fire PropertyChange listener, if one is registered,&#xA;when children added/removed.&#xA;" annotatedElement="_9_5_f720368_1110473548424_61149_24134"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324072_574472_18324" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473548424_61149_24134" contract="_9_5_f720368_1110473546565_136951_6555"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_427765_24136" name="AccessibleFocusHandler" visibility="protected" clientDependency="_10_5_622020d_1132928324072_285241_18325">
                <ownedComment xmi:id="_10_5_622020d_1132928317893_120160_12403" body="Fire PropertyChange listener, if one is registered,&#xA;when focus events happen&#xA;" annotatedElement="_9_5_f720368_1110473548424_427765_24136"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324072_285241_18325" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548424_427765_24136" contract="_9_5_f720368_1110473546565_10343_6561"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_745921_24140" name="ReadObjectCallback" visibility="private" clientDependency="_10_5_622020d_1132928324072_889246_18326">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_624583_12405" body="This object is the &lt;code>ObjectInputStream&lt;/code> callback&#xA;that's called after a complete graph of objects (including at least&#xA;one &lt;code>JComponent&lt;/code>) has been read.&#xA;It sets the UI property of each Swing component&#xA;that was read to the current default with &lt;code>updateUI&lt;/code>.&#xA;&lt;p>&#xA;As each  component is read in we keep track of the current set of&#xA;root components here, in the roots vector.  Note that there's only one&#xA;&lt;code>ReadObjectCallback&lt;/code> per &lt;code>ObjectInputStream&lt;/code>,&#xA;they're stored in the static &lt;code>readObjectCallbacks&lt;/code>&#xA;hashtable.&#xA;&#xA;@see java.io.ObjectInputStream#registerValidation&#xA;@see SwingUtilities#updateComponentTreeUI&#xA;" annotatedElement="_9_5_f720368_1110473548424_745921_24140"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_889246_18326" name="" supplier="_9_5_f720368_1110473546596_189397_7439" client="_9_5_f720368_1110473548424_745921_24140" contract="_9_5_f720368_1110473546596_189397_7439"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_760351_10875" name="SystemEventQueueUtilities" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928318274_783011_12671" body="Swing internal utilities for dealing with the AWT system event&#xA;queue.  Four methods are exported, see the individual method javadoc&#xA;for more information: addRunnableCanvas(), removeRunnableCanvas(),&#xA;postRunnable(), queueComponentWorkRequest().&#xA;&#xA;Note: most of the code in this class is no longer needed since&#xA;we're no longer supporting Swing in 1.1.x VM's and in 1.2 we're&#xA;guaranteed access to the AWT event queue.  However all of the entry&#xA;points, save postRunnable(), are still used.&#xA;&#xA;@see RepaintManager&#xA;@see JRootPane&#xA;" annotatedElement="_9_5_f720368_1110473546799_760351_10875"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_770416_24479" name="SystemEventQueue" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_193447_12663" body="SystemEventQueue class.  This private class just exists to&#xA;encapsulate the details of getting at the System Event queue&#xA;in the Java 2 platform.  The rest of the SystemEventQueueUtilities&#xA;class just uses SystemEventQueue.get() to access the event queue.&#xA;" annotatedElement="_9_5_f720368_1110473548487_770416_24479"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_900137_24482" name="ComponentWorkRequest" visibility="private" clientDependency="_10_5_622020d_1132928324172_283394_18674">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_305685_12664" body="A Runnable with a component.  If we need to post this&#xA;runnable to the AWT system event queue, we'll find it's&#xA;JRootPane ancestor and use that as the key to the table&#xA;of RunnableCanvas's.&#xA;&#xA;@see RunnableCanvas&#xA;" annotatedElement="_9_5_f720368_1110473548487_900137_24482"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_283394_18674" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548487_900137_24482" contract="_9_5_f720368_1110473546612_953158_7669"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_338130_24485" name="TimerQueueRestart" visibility="private" clientDependency="_10_5_622020d_1132928324172_46260_18675">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_377348_12665" body="Runnable that will message the shared instance of the Timer Queue&#xA;to restart.&#xA;&#xA;@see #restartTimerQueueThread&#xA;" annotatedElement="_9_5_f720368_1110473548487_338130_24485"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_46260_18675" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548487_338130_24485" contract="_9_5_f720368_1110473546612_953158_7669"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_287325_24488" name="RunnableEvent" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_378210_12666" body="Event type used for dispatching runnable objects for&#xA;SwingUtilities.invokeLater() and SwingUtilities.invokeAndWait().&#xA;&#xA;@see #postRunnable&#xA;" annotatedElement="_9_5_f720368_1110473548487_287325_24488"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_734929_18676" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_37585_24491" name="RunnableTarget" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_490610_12667" body="A dummy Component subclass that (only) handles RunnableEvents.  If the&#xA;AWT System event queue is accessible (i.e. we're running as&#xA;an application or as trusted code), RunnableEvents are dispatched&#xA;to this component.&#xA;&#xA;@see #processRunnableEvent&#xA;" annotatedElement="_9_5_f720368_1110473548487_37585_24491"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_342962_18677" isSubstitutable="true" general="_9_5_f720368_1110473546581_653823_6965"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_455081_24494" name="RunnableCanvas" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_799386_12668" body="Applets don't have direct access to the AWT SystemEvent queue.  To&#xA;work around this we call RunnableCanvas.repaint() on a per applet&#xA;instance of this class.  The AWT deals with this by queuing a&#xA;java.awt.PaintEvent for the event dispatching thread which&#xA;is dispatched (Component.dispatchEvent()) the usual way.&#xA;Component.dispatchEvent() handles PaintEvents by calling our update()&#xA;method (on the event dispatching thread) which processes&#xA;the RunnableEvents stashed in the runnableEvents vector.&#xA;" annotatedElement="_9_5_f720368_1110473548487_455081_24494"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_359707_18678" isSubstitutable="true" general="_9_5_f720368_1110473546581_369940_6949"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_146987_24497" name="RunnableCanvasGraphics" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318264_834508_12669" body="A no-op Graphics object for the RunnableCanvas component.&#xA;Most AWT Component implementations handle update events&#xA;like this:&#xA;&lt;pre>&#xA;Graphics g = getGraphics();&#xA;Rectangle r = ((PaintEvent)e).getUpdateRect();&#xA;g.clipRect(r.x, r.y, r.width, r.height);&#xA;update(g)&#xA;g.dispose();&#xA;&lt;/pre>&#xA;Since the RunnableCanvas component isn't really going to do&#xA;any painting we don't bother with creating/disposing real&#xA;graphics objects, or setting any of the properties.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548487_146987_24497"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_216564_18679" isSubstitutable="true" general="_9_5_f720368_1110473546581_175096_7021"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_684315_10735" name="JLabel" clientDependency="_10_5_622020d_1132928324102_340217_18376 _10_5_622020d_1132928324102_359970_18377">
            <ownedComment xmi:id="_10_5_622020d_1132928317963_416909_12444" body="A display area for a short text string or an image,&#xA;or both.&#xA;A label does not react to input events.&#xA;As a result, it cannot get the keyboard focus.&#xA;A label can, however, display a keyboard alternative&#xA;as a convenience for a nearby component&#xA;that has a keyboard alternative but can't display it.&#xA;&lt;p>&#xA;A &lt;code>JLabel&lt;/code> object can display&#xA;either text, an image, or both.&#xA;You can specify where in the label's display area&#xA;the label's contents are aligned&#xA;by setting the vertical and horizontal alignment.&#xA;By default, labels are vertically centered&#xA;in their display area.&#xA;Text-only labels are leading edge aligned, by default;&#xA;image-only labels are horizontally centered, by default.&#xA;&lt;p>&#xA;You can also specify the position of the text&#xA;relative to the image.&#xA;By default, text is on the trailing edge of the image,&#xA;with the text and image vertically aligned.&#xA;&lt;p>&#xA;A label's leading and trailing edge are determined from the value of its&#xA;{@link java.awt.ComponentOrientation} property.  At present, the default&#xA;ComponentOrientation setting maps the leading edge to left and the trailing&#xA;edge to right.&#xA;&#xA;&lt;p>&#xA;Finally, you can use the &lt;code>setIconTextGap&lt;/code> method&#xA;to specify how many pixels&#xA;should appear between the text and the image.&#xA;The default is 4 pixels.&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/label.html&quot;>How to Use Labels&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for further documentation.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that displays a short string and an icon.&#xA;&#xA;@version 1.116 04/02/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_684315_10735"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_453049_18378" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_340217_18376" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_684315_10735" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_359970_18377" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_684315_10735" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_24863_24200" name="AccessibleJLabel" visibility="protected" clientDependency="_10_5_622020d_1132928324102_681723_18380 _10_5_622020d_1132928324102_693282_18379">
              <ownedComment xmi:id="_10_5_622020d_1132928317963_254821_12442" body="The class used to obtain the accessible role for this object.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_24863_24200"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_404956_18381" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_693282_18379" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_9_5_f720368_1110473548440_24863_24200" contract="_9_5_f720368_1110473546706_466273_8993"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_681723_18380" name="" supplier="_9_5_f720368_1110473546706_225404_8963" client="_9_5_f720368_1110473548440_24863_24200" contract="_9_5_f720368_1110473546706_225404_8963"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_30872_24202" name="LabelKeyBinding" visibility="package" clientDependency="_10_5_622020d_1132928324102_841391_18382">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324102_841391_18382" name="" supplier="_9_5_f720368_1110473546706_184903_8973" client="_9_5_f720368_1110473548440_30872_24202" contract="_9_5_f720368_1110473546706_184903_8973"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_515358_10641" name="CellEditor" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_455706_12316" body="This interface defines the methods any general editor should be able&#xA;to implement. &lt;p>&#xA;&#xA;Having this interface enables complex components (the client of the&#xA;editor) such as &lt;code>JList&lt;/code>, &lt;code>JTree&lt;/code>, and&#xA;&lt;code>JTable&lt;/code> to allow any generic editor to&#xA;edit values in a table cell, or tree cell, etc.  Without this generic&#xA;editor interface, &lt;code>JTable&lt;/code> would have to know about specific editors,&#xA;such as &lt;code>JTextField&lt;/code>, &lt;code>JCheckBox&lt;/code>, &lt;code>JComboBox&lt;/code>,&#xA;etc.  In addition, without this interface, clients of editors such as&#xA;&lt;code>JTable&lt;/code> would not be able&#xA;to work with any editors developed in the future by the user&#xA;or a 3rd party ISV. &lt;p>&#xA;&#xA;To use this interface, a developer creating a new editor can have the&#xA;new component implement the interface.  Or the developer can&#xA;choose a wrapper based approach and provide a companion object which&#xA;implements the &lt;code>CellEditor&lt;/code> interface (See&#xA;&lt;code>JCellEditor&lt;/code> for example).  The wrapper approach&#xA;is particularly useful if the user want to use a 3rd party ISV&#xA;editor with &lt;code>JTable&lt;/code>, but the ISV didn't implement the&#xA;&lt;code>CellEditor&lt;/code> interface.  The user can simply create an object&#xA;that contains an instance of the 3rd party editor object and &quot;translate&quot;&#xA;the &lt;code>CellEditor&lt;/code> API into the 3rd party editor's API.&#xA;&#xA;@see javax.swing.event.CellEditorListener&#xA;&#xA;@version 1.24 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546784_515358_10641"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_992059_10797" name="KeyboardManager" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928318183_700993_12575" body="The KeyboardManager class is used to help dispatch keyboard actions for the&#xA;WHEN_IN_FOCUSED_WINDOW style actions.  Actions with other conditions are handled&#xA;directly in JComponent.&#xA;&#xA;Here's a description of the symantics of how keyboard dispatching should work&#xA;atleast as I understand it.&#xA;&#xA;KeyEvents are dispatched to the focused component.  The focus manager gets first&#xA;crack at processing this event.  If the focus manager doesn't want it, then&#xA;the JComponent calls super.processKeyEvent() this allows listeners a chance&#xA;to process the event.&#xA;&#xA;If none of the listeners &quot;consumes&quot; the event then the keybindings get a shot.&#xA;This is where things start to get interesting.  First, KeyStokes defined with the&#xA;WHEN_FOCUSED condition get a chance.  If none of these want the event, then the component&#xA;walks though it's parents looked for actions of type WHEN_ANCESTOR_OF_FOCUSED_COMPONENT.&#xA;&#xA;If no one has taken it yet, then it winds up here.  We then look for components registered&#xA;for WHEN_IN_FOCUSED_WINDOW events and fire to them.  Note that if none of those are found&#xA;then we pass the event to the menubars and let them have a crack at it.  They're handled differently.&#xA;&#xA;Lastly, we check if we're looking at an internal frame.  If we are and no one wanted the event&#xA;then we move up to the InternalFrame's creator and see if anyone wants the event (and so on and so on).&#xA;&#xA;&#xA;@see InputMap&#xA;" annotatedElement="_9_5_f720368_1110473546799_992059_10797"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_826329_24392" name="ComponentKeyStrokePair" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318183_351708_12573" body="This class is used to create keys for a hashtable&#xA;which looks up topContainers based on component, keystroke pairs&#xA;This is used to make unregistering KeyStrokes fast&#xA;" annotatedElement="_9_5_f720368_1110473548471_826329_24392"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_286745_10815" name="LookAndFeel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_307692_12592" body="Completely characterizes a look and feel from the point of view&#xA;of the pluggable look and feel components.&#xA;&#xA;@version 1.36 05/05/04&#xA;@author Tom Ball&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_286745_10815"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_410848_10839" name="RootPaneContainer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_797777_12625" body="This interface is implemented by components that have a single&#xA;JRootPane child: JDialog, JFrame, JWindow, JApplet, JInternalFrame.&#xA;The methods in  this interface are just &lt;i>covers&lt;/i> for the JRootPane&#xA;properties, e.g. &lt;code>getContentPane()&lt;/code> is generally implemented&#xA;like this:&lt;pre>&#xA;public Container getContentPane() {&#xA;return getRootPane().getContentPane();&#xA;}&#xA;&lt;/pre>&#xA;This interface serves as a &lt;i>marker&lt;/i> for Swing GUI builders&#xA;that need to treat components like JFrame, that contain a&#xA;single JRootPane, specially.  For example in a GUI builder,&#xA;dropping a component on a RootPaneContainer would be interpreted&#xA;as &lt;code>frame.getContentPane().add(child)&lt;/code>.&#xA;&lt;p>&#xA;For conveniance&#xA;&lt;code>JFrame&lt;/code>, &lt;code>JDialog&lt;/code>, &lt;code>JWindow&lt;/code>,&#xA;&lt;code>JApplet&lt;/code> and &lt;code>JInternalFrame&lt;/code>, by default,&#xA;forward, by default, all calls to the &lt;code>add&lt;/code>,&#xA;&lt;code>remove&lt;/code> and &lt;code>setLayout&lt;/code> methods, to the&#xA;&lt;code>contentPane&lt;/code>. This means you can call:&#xA;&lt;pre>&#xA;rootPaneContainer.add(component);&#xA;&lt;/pre>&#xA;instead of:&#xA;&lt;pre>&#xA;rootPaneContainer.getContentPane().add(component);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;The behavior of the &lt;code>add&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> methods for&#xA;&lt;code>JFrame&lt;/code>, &lt;code>JDialog&lt;/code>, &lt;code>JWindow&lt;/code>,&#xA;&lt;code>JApplet&lt;/code> and &lt;code>JInternalFrame&lt;/code> is controlled by&#xA;the &lt;code>rootPaneCheckingEnabled&lt;/code> property. If this property is&#xA;true (the default), then calls to these methods are&#xA;forwarded to the &lt;code>contentPane&lt;/code>; if false, these&#xA;methods operate directly on the &lt;code>RootPaneContainer&lt;/code>. This&#xA;property is only intended for subclasses, and is therefore protected.&#xA;&#xA;@see JRootPane&#xA;@see JFrame&#xA;@see JDialog&#xA;@see JWindow&#xA;@see JApplet&#xA;@see JInternalFrame&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_410848_10839"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548128_853394_21115" name="filechooser">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_204526_9915" name="FileFilter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_761354_10918" body="&lt;code>FileFilter&lt;/code> is an abstract class that has no default&#xA;implementation.  A &lt;code>FileFilter&lt;/code>, once implemented,&#xA;can be set on a &lt;code>JFileChooser&lt;/code> to&#xA;keep unwanted files from appearing in the directory listing.&#xA;For an example implementation of a simple file filter, see&#xA;&lt;code>&lt;i>yourJDK&lt;/i>/demo/jfc/FileChooserDemo/ExampleFileFilter.java&lt;/code>.&#xA;For more information and examples see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html&quot;>How to Use File Choosers&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;@see javax.swing.JFileChooser#setFileFilter&#xA;@see javax.swing.JFileChooser#addChoosableFileFilter&#xA;&#xA;@version 1.19 06/28/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_204526_9915"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_982129_9919" name="UnixFileSystemView" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_608487_10922" body="FileSystemView that handles some specific unix-isms.&#xA;" annotatedElement="_9_5_f720368_1110473546753_982129_9919"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_819297_16748" isSubstitutable="true" general="_9_5_f720368_1110473546753_744392_9917"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_384848_9921" name="WindowsFileSystemView" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_468835_10924" body="FileSystemView that handles some specific windows concepts.&#xA;" annotatedElement="_9_5_f720368_1110473546753_384848_9921"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_412425_16749" isSubstitutable="true" general="_9_5_f720368_1110473546753_744392_9917"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_744392_9917" name="FileSystemView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_683050_10920" body="FileSystemView is JFileChooser's gateway to the&#xA;file system. Since the JDK1.1 File API doesn't allow&#xA;access to such information as root partitions, file type&#xA;information, or hidden file bits, this class is designed&#xA;to intuit as much OS-specific file system information as&#xA;possible.&#xA;&#xA;&lt;p>&#xA;&#xA;Java Licensees may want to provide a different implementation of&#xA;FileSystemView to better handle a given operating system.&#xA;&#xA;@version 1.46 04/27/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_744392_9917"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_781108_21118" name="FileSystemRoot" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323421_259768_16747" isSubstitutable="true" general="_9_5_f720368_1110473546596_739862_7383"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_215330_9923" name="GenericFileSystemView" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_385721_10926" body="Fallthrough FileSystemView in case we can't determine the OS.&#xA;" annotatedElement="_9_5_f720368_1110473546753_215330_9923"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_528001_16750" isSubstitutable="true" general="_9_5_f720368_1110473546753_744392_9917"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_439743_9925" name="FileView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317042_666448_10928" body="&lt;code>FileView&lt;/code> defines an abstract class that can be implemented&#xA;to provide the filechooser with UI information for a &lt;code>File&lt;/code>.&#xA;Each L&amp;F &lt;code>JFileChooserUI&lt;/code> object implements this&#xA;class to pass back the correct icons and type descriptions specific to&#xA;that L&amp;F. For example, the Microsoft Windows L&amp;F returns the&#xA;generic Windows icons for directories and generic files.&#xA;Additionally, you may want to provide your own &lt;code>FileView&lt;/code> to&#xA;&lt;code>JFileChooser&lt;/code> to return different icons or additional&#xA;information using {@link javax.swing.JFileChooser#setFileView}.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;code>JFileChooser&lt;/code> first looks to see if there is a user defined&#xA;&lt;code>FileView&lt;/code>, if there is, it gets type information from&#xA;there first. If &lt;code>FileView&lt;/code> returns &lt;code>null&lt;/code> for&#xA;any method, &lt;code>JFileChooser&lt;/code> then uses the L&amp;F specific&#xA;view to get the information.&#xA;So, for example, if you provide a &lt;code>FileView&lt;/code> class that&#xA;returns an &lt;code>Icon&lt;/code> for JPG files, and returns &lt;code>null&lt;/code>&#xA;icons for all other files, the UI's &lt;code>FileView&lt;/code> will provide&#xA;default icons for all other files.&#xA;&#xA;&lt;p>&#xA;&#xA;For an example implementation of a simple file view, see&#xA;&lt;code>&lt;i>yourJDK&lt;/i>/demo/jfc/FileChooserDemo/ExampleFileView.java&lt;/code>.&#xA;For more information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html&quot;>How to Use File Choosers&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;@see javax.swing.JFileChooser&#xA;&#xA;@version 1.19 06/28/04&#xA;@author Jeff Dinkins&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546753_439743_9925"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_993159_10753" name="JPopupMenu" clientDependency="_10_5_622020d_1132928324112_843690_18432 _10_5_622020d_1132928324112_373055_18433">
            <ownedComment xmi:id="_10_5_622020d_1132928318073_313957_12477" body="An implementation of a popup menu -- a small window that pops up&#xA;and displays a series of choices. A &lt;code>JPopupMenu&lt;/code> is used for the&#xA;menu that appears when the user selects an item on the menu bar.&#xA;It is also used for &quot;pull-right&quot; menu that appears when the&#xA;selects a menu item that activates it. Finally, a &lt;code>JPopupMenu&lt;/code>&#xA;can also be used anywhere else you want a menu to appear.  For&#xA;example, when the user right-clicks in a specified area.&#xA;&lt;p>&#xA;For information and examples of using popup menus, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A small window that pops up and displays a series of choices.&#xA;&#xA;@version 1.191 @(#)JPopupMenu.java&#x9;1.191&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546799_993159_10753"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_413083_18434" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_843690_18432" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_993159_10753" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_373055_18433" name="" supplier="_9_5_f720368_1110473546799_252355_10817" client="_9_5_f720368_1110473546799_993159_10753" contract="_9_5_f720368_1110473546799_252355_10817"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_158428_24237" name="ActionChangedListener" visibility="private" clientDependency="_10_5_622020d_1132928324112_2863_18435 _10_5_622020d_1132928324112_117112_18436">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_2863_18435" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548440_158428_24237" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_117112_18436" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_158428_24237" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_984384_24238" name="AccessibleJPopupMenu" visibility="protected" clientDependency="_10_5_622020d_1132928324112_99794_18437">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_412056_12474" body="This class implements accessibility support for the&#xA;&lt;code>JPopupMenu&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to popup menu user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548440_984384_24238"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_912122_18438" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_99794_18437" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548440_984384_24238" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_311351_24240" name="Separator">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_620932_12475" body="A popup menu-specific separator.&#xA;" annotatedElement="_9_5_f720368_1110473548440_311351_24240"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_473717_18439" isSubstitutable="true" general="_9_5_f720368_1110473546799_896247_10767"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_243295_10773" name="JSplitPane" clientDependency="_10_5_622020d_1132928324132_391739_18507">
            <ownedComment xmi:id="_10_5_622020d_1132928318113_968161_12521" body="&lt;code>JSplitPane&lt;/code> is used to divide two (and only two)&#xA;&lt;code>Component&lt;/code>s. The two &lt;code>Component&lt;/code>s&#xA;are graphically divided based on the look and feel&#xA;implementation, and the two &lt;code>Component&lt;/code>s can then be&#xA;interactively resized by the user.&#xA;Information on using &lt;code>JSplitPane&lt;/code> is in&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/splitpane.html&quot;>How to Use Split Panes&lt;/a> in&#xA;&lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;The two &lt;code>Component&lt;/code>s in a split pane can be aligned&#xA;left to right using&#xA;&lt;code>JSplitPane.HORIZONTAL_SPLIT&lt;/code>, or top to bottom using&#xA;&lt;code>JSplitPane.VERTICAL_SPLIT&lt;/code>.&#xA;The preferred way to change the size of the &lt;code>Component&lt;/code>s&#xA;is to invoke&#xA;&lt;code>setDividerLocation&lt;/code> where &lt;code>location&lt;/code> is either&#xA;the new x or y position, depending on the orientation of the&#xA;&lt;code>JSplitPane&lt;/code>.&#xA;&lt;p>&#xA;To resize the &lt;code>Component&lt;/code>s to their preferred sizes invoke&#xA;&lt;code>resetToPreferredSizes&lt;/code>.&#xA;&lt;p>&#xA;When the user is resizing the &lt;code>Component&lt;/code>s the minimum&#xA;size of the &lt;code>Components&lt;/code> is used to determine the&#xA;maximum/minimum position the &lt;code>Component&lt;/code>s&#xA;can be set to. If the minimum size of the two&#xA;components is greater than the size of the split pane the divider&#xA;will not allow you to resize it. To alter the minimum size of a&#xA;&lt;code>JComponent&lt;/code>, see {@link JComponent#setMinimumSize}.&#xA;&lt;p>&#xA;When the user resizes the split pane the new space is distributed between&#xA;the two components based on the &lt;code>resizeWeight&lt;/code> property.&#xA;A value of 0,&#xA;the default, indicates the right/bottom component gets all the space,&#xA;where as a value of 1 indicates the left/top component gets all the space.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see #setDividerLocation&#xA;@see #resetToPreferredSizes&#xA;&#xA;@version 1.76 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546799_243295_10773"/>
            <generalization xmi:id="_10_5_622020d_1132928324132_354245_18508" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_391739_18507" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_243295_10773" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_409778_24306" name="AccessibleJSplitPane" visibility="protected" clientDependency="_10_5_622020d_1132928324132_338919_18509">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_232974_12519" body="This class implements accessibility support for the&#xA;&lt;code>JSplitPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to split pane user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_409778_24306"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_260619_18510" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_338919_18509" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548456_409778_24306" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_592945_10647" name="ComboBoxModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_121043_12323" body="A data model for a combo box. This interface extends &lt;code>ListDataModel&lt;/code>&#xA;and adds the concept of a &lt;i>selected item&lt;/i>. The selected item is generally&#xA;the item which is visible in the combo box display area.&#xA;&lt;p>&#xA;The selected item may not necessarily be managed by the underlying&#xA;&lt;code>ListModel&lt;/code>. This disjoint behavior allows for the temporary&#xA;storage and retrieval of a selected item in the model.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546784_592945_10647"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_80525_18235" isSubstitutable="true" general="_9_5_f720368_1110473546799_933232_10811"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_336138_10761" name="JRootPane" clientDependency="_10_5_622020d_1132928324122_828309_18453">
            <ownedComment xmi:id="_10_5_622020d_1132928318083_455277_12490" body="A lightweight container used behind the scenes by&#xA;&lt;code>JFrame&lt;/code>, &lt;code>JDialog&lt;/code>, &lt;code>JWindow&lt;/code>,&#xA;&lt;code>JApplet&lt;/code>, and &lt;code>JInternalFrame&lt;/code>.&#xA;For task-oriented information on functionality provided by root panes&#xA;see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/rootpane.html&quot;>How to Use Root Panes&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;The following image shows the relationships between&#xA;the classes that use root panes.&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/JRootPane-1.gif&quot;&#xA;alt=&quot;The following text describes this graphic.&quot;&#xA;HEIGHT=484 WIDTH=629>&lt;/p>&#xA;The &quot;heavyweight&quot; components (those that delegate to a peer, or native&#xA;component on the host system) are shown with a darker, heavier box. The four&#xA;heavyweight JFC/Swing containers (&lt;code>JFrame&lt;/code>, &lt;code>JDialog&lt;/code>,&#xA;&lt;code>JWindow&lt;/code>, and &lt;code>JApplet&lt;/code>) are&#xA;shown in relation to the AWT classes they extend.&#xA;These four components are the&#xA;only heavyweight containers in the Swing library. The lightweight container&#xA;&lt;code>JInternalPane&lt;/code> is also shown.&#xA;All five of these JFC/Swing containers implement the&#xA;&lt;code>RootPaneContainer&lt;/code> interface,&#xA;and they all delegate their operations to a&#xA;&lt;code>JRootPane&lt;/code> (shown with a little &quot;handle&quot; on top).&#xA;&lt;blockquote>&#xA;&lt;b>Note:&lt;/b> The &lt;code>JComponent&lt;/code> method &lt;code>getRootPane&lt;/code>&#xA;can be used to obtain the &lt;code>JRootPane&lt;/code> that contains&#xA;a given component.&#xA;&lt;/blockquote>&#xA;&lt;table align=&quot;right&quot; border=&quot;0&quot; summary=&quot;layout&quot;>&#xA;&lt;tr>&#xA;&lt;td align=&quot;center&quot;>&#xA;&lt;img src=&quot;doc-files/JRootPane-2.gif&quot;&#xA;alt=&quot;The following text describes this graphic.&quot; HEIGHT=386 WIDTH=349>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;The diagram at right shows the structure of a &lt;code>JRootPane&lt;/code>.&#xA;A &lt;code>JRootpane&lt;/code> is made up of a &lt;code>glassPane&lt;/code>,&#xA;an optional &lt;code>menuBar&lt;/code>, and a &lt;code>contentPane&lt;/code>.&#xA;(The &lt;code>JLayeredPane&lt;/code> manages the &lt;code>menuBar&lt;/code>&#xA;and the &lt;code>contentPane&lt;/code>.)&#xA;The &lt;code>glassPane&lt;/code> sits over the top of everything,&#xA;where it is in a position to intercept mouse movements.&#xA;Since the &lt;code>glassPane&lt;/code> (like the &lt;code>contentPane&lt;/code>)&#xA;can be an arbitrary component, it is also possible to set up the&#xA;&lt;code>glassPane&lt;/code> for drawing. Lines and images on the&#xA;&lt;code>glassPane&lt;/code> can then range&#xA;over the frames underneath without being limited by their boundaries.&#xA;&lt;p>&#xA;Although the &lt;code>menuBar&lt;/code> component is optional,&#xA;the &lt;code>layeredPane&lt;/code>, &lt;code>contentPane&lt;/code>,&#xA;and &lt;code>glassPane&lt;/code> always exist.&#xA;Attempting to set them to &lt;code>null&lt;/code> generates an exception.&#xA;&lt;p>&#xA;To add components to the &lt;code>JRootPane&lt;/code> (other than the&#xA;optional menu bar), you add the object to the &lt;code>contentPane&lt;/code>&#xA;of the &lt;code>JRootPane&lt;/code>, like this:&#xA;&lt;pre>&#xA;rootPane.getContentPane().add(child);&#xA;&lt;/pre>&#xA;The same principle holds true for setting layout managers, removing&#xA;components, listing children, etc. All these methods are invoked on&#xA;the &lt;code>contentPane&lt;/code> instead of on the &lt;code>JRootPane&lt;/code>.&#xA;&lt;blockquote>&#xA;&lt;b>Note:&lt;/b> The default layout manager for the &lt;code>contentPane&lt;/code> is&#xA;a &lt;code>BorderLayout&lt;/code> manager. However, the &lt;code>JRootPane&lt;/code>&#xA;uses a custom &lt;code>LayoutManager&lt;/code>.&#xA;So, when you want to change the layout manager for the components you added&#xA;to a &lt;code>JRootPane&lt;/code>, be sure to use code like this:&#xA;&lt;pre>&#xA;rootPane.getContentPane().setLayout(new BoxLayout());&#xA;&lt;/pre>&lt;/blockquote>&#xA;If a &lt;code>JMenuBar&lt;/code> component is set on the &lt;code>JRootPane&lt;/code>,&#xA;it is positioned along the upper edge of the frame.&#xA;The &lt;code>contentPane&lt;/code> is adjusted in location and size to&#xA;fill the remaining area.&#xA;(The &lt;code>JMenuBar&lt;/code> and the &lt;code>contentPane&lt;/code> are added to the&#xA;&lt;code>layeredPane&lt;/code> component at the&#xA;&lt;code>JLayeredPane.FRAME_CONTENT_LAYER&lt;/code> layer.)&#xA;&lt;p>&#xA;The &lt;code>layeredPane&lt;/code> is the parent of all children in the&#xA;&lt;code>JRootPane&lt;/code> -- both as the direct parent of the menu and&#xA;the grandparent of all components added to the &lt;code>contentPane&lt;/code>.&#xA;It is an instance of &lt;code>JLayeredPane&lt;/code>,&#xA;which provides the ability to add components at several layers.&#xA;This capability is very useful when working with menu popups,&#xA;dialog boxes, and dragging -- situations in which you need to place&#xA;a component on top of all other components in the pane.&#xA;&lt;p>&#xA;The &lt;code>glassPane&lt;/code> sits on top of all other components in the&#xA;&lt;code>JRootPane&lt;/code>.&#xA;That provides a convenient place to draw above all other components,&#xA;and makes it possible to intercept mouse events,&#xA;which is useful both for dragging and for drawing.&#xA;Developers can use &lt;code>setVisible&lt;/code> on the &lt;code>glassPane&lt;/code>&#xA;to control when the &lt;code>glassPane&lt;/code> displays over the other children.&#xA;By default the &lt;code>glassPane&lt;/code> is not visible.&#xA;&lt;p>&#xA;The custom &lt;code>LayoutManager&lt;/code> used by &lt;code>JRootPane&lt;/code>&#xA;ensures that:&#xA;&lt;OL>&#xA;&lt;LI>The &lt;code>glassPane&lt;/code> fills the entire viewable&#xA;area of the &lt;code>JRootPane&lt;/code> (bounds - insets).&#xA;&lt;LI>The &lt;code>layeredPane&lt;/code> fills the entire viewable area of the&#xA;&lt;code>JRootPane&lt;/code>. (bounds - insets)&#xA;&lt;LI>The &lt;code>menuBar&lt;/code> is positioned at the upper edge of the&#xA;&lt;code>layeredPane&lt;/code>.&#xA;&lt;LI>The &lt;code>contentPane&lt;/code> fills the entire viewable area,&#xA;minus the &lt;code>menuBar&lt;/code>, if present.&#xA;&lt;/OL>&#xA;Any other views in the &lt;code>JRootPane&lt;/code> view hierarchy are ignored.&#xA;&lt;p>&#xA;If you replace the &lt;code>LayoutManager&lt;/code> of the &lt;code>JRootPane&lt;/code>,&#xA;you are responsible for managing all of these views.&#xA;So ordinarily you will want to be sure that you&#xA;change the layout manager for the &lt;code>contentPane&lt;/code> rather than&#xA;for the &lt;code>JRootPane&lt;/code> itself!&#xA;&lt;p>&#xA;The painting architecture of Swing requires an opaque&#xA;&lt;code>JComponent&lt;/code>&#xA;to exist in the containment hieararchy above all other components. This is&#xA;typically provided by way of the content pane. If you replace the content&#xA;pane, it is recommended that you make the content pane opaque&#xA;by way of &lt;code>setOpaque(true)&lt;/code>. Additionally, if the content pane&#xA;overrides &lt;code>paintComponent&lt;/code>, it&#xA;will need to completely fill in the background in an opaque color in&#xA;&lt;code>paintComponent&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JLayeredPane&#xA;@see JMenuBar&#xA;@see JWindow&#xA;@see JFrame&#xA;@see JDialog&#xA;@see JApplet&#xA;@see JInternalFrame&#xA;@see JComponent&#xA;@see BoxLayout&#xA;&#xA;@see &lt;a href=&quot;http://java.sun.com/products/jfc/swingdoc-archive/mixing.html&quot;>&#xA;Mixing Heavy and Light Components&lt;/a>&#xA;&#xA;@version 1.86 05/18/04&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_336138_10761"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_709216_18454" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_828309_18453" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_336138_10761" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_411231_24254" name="DefaultAction" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324122_873931_18455" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_29664_24256" name="RootLayout" visibility="protected" clientDependency="_10_5_622020d_1132928324122_194625_18457 _10_5_622020d_1132928324122_23174_18456">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_627790_12487" body="A custom layout manager that is responsible for the layout of&#xA;layeredPane, glassPane, and menuBar.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_29664_24256"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_23174_18456" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473548440_29664_24256" contract="_9_5_f720368_1110473546581_384048_7067"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_194625_18457" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_29664_24256" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_355618_24258" name="AccessibleJRootPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_68494_12488" body="This class implements accessibility support for the&#xA;&lt;code>JRootPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to root pane user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_355618_24258"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_1391_18458" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_927070_10881" name="ToolTipManager" clientDependency="_10_5_622020d_1132928324172_463367_18685">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_598980_12682" body="Manages all the &lt;code>ToolTips&lt;/code> in the system.&#xA;&lt;p>&#xA;ToolTipManager contains numerous properties for configuring how long it&#xA;will take for the tooltips to become visible, and how long till they&#xA;hide. Consider a component that has a different tooltip based on where&#xA;the mouse is, such as JTree. When the mouse moves into the JTree and&#xA;over a region that has a valid tooltip, the tooltip will become&#xA;visibile after &lt;code>initialDelay&lt;/code> milliseconds. After&#xA;&lt;code>dismissDelay&lt;/code> milliseconds the tooltip will be hidden. If&#xA;the mouse is over a region that has a valid tooltip, and the tooltip&#xA;is currently visible, when the mouse moves to a region that doesn't have&#xA;a valid tooltip the tooltip will be hidden. If the mouse then moves back&#xA;into a region that has a valid tooltip within &lt;code>reshowDelay&lt;/code>&#xA;milliseconds, the tooltip will immediately be shown, otherwise the&#xA;tooltip will be shown again after &lt;code>initialDelay&lt;/code> milliseconds.&#xA;&#xA;@see JComponent#createToolTip&#xA;@version 1.70 01/16/04&#xA;@author Dave Moore&#xA;@author Rich Schiavi&#xA;" annotatedElement="_9_5_f720368_1110473546799_927070_10881"/>
            <generalization xmi:id="_10_5_622020d_1132928324182_255097_18686" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_463367_18685" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546799_927070_10881" contract="_9_5_f720368_1110473546565_341038_6597"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_210695_24505" name="insideTimerAction" visibility="protected" clientDependency="_10_5_622020d_1132928324182_622115_18687">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_622115_18687" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548487_210695_24505" contract="_9_5_f720368_1110473546565_106737_6535"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_491759_24506" name="outsideTimerAction" visibility="protected" clientDependency="_10_5_622020d_1132928324182_899277_18688">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_899277_18688" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548487_491759_24506" contract="_9_5_f720368_1110473546565_106737_6535"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_84113_24507" name="stillInsideTimerAction" visibility="protected" clientDependency="_10_5_622020d_1132928324182_872431_18689">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_872431_18689" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548487_84113_24507" contract="_9_5_f720368_1110473546565_106737_6535"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_646230_24508" name="MoveBeforeEnterListener" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324182_228011_18690" isSubstitutable="true" general="_9_5_f720368_1110473546565_766151_6595"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318284_171400_12680" name="Actions" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_740457_10763" name="JScrollBar" clientDependency="_10_5_622020d_1132928324122_876060_18459 _10_5_622020d_1132928324122_310582_18460">
            <ownedComment xmi:id="_10_5_622020d_1132928318083_553915_12494" body="An implementation of a scrollbar. The user positions the knob in the&#xA;scrollbar to determine the contents of the viewing area. The&#xA;program typically adjusts the display so that the end of the&#xA;scrollbar represents the end of the displayable contents, or 100%&#xA;of the contents. The start of the scrollbar is the beginning of the&#xA;displayable contents, or 0%. The position of the knob within&#xA;those bounds then translates to the corresponding percentage of&#xA;the displayable contents.&#xA;&lt;p>&#xA;Typically, as the position of the knob in the scrollbar changes&#xA;a corresponding change is made to the position of the JViewport on&#xA;the underlying view, changing the contents of the JViewport.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JScrollPane&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that helps determine the visible content range of an area.&#xA;&#xA;@version 1.78 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_740457_10763"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_957485_18461" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_876060_18459" name="" supplier="_9_5_f720368_1110473546581_905901_6923" client="_9_5_f720368_1110473546799_740457_10763" contract="_9_5_f720368_1110473546581_905901_6923"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_310582_18460" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_740457_10763" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_835233_24261" name="ModelListener" visibility="private" clientDependency="_10_5_622020d_1132928324122_626276_18462 _10_5_622020d_1132928324122_203146_18463">
              <ownedComment xmi:id="_10_5_622020d_1132928318083_158245_12491" body="This class listens to ChangeEvents on the model and forwards&#xA;AdjustmentEvents for the sake of backwards compatibility.&#xA;Unfortunately there's no way to determine the proper&#xA;type of the AdjustmentEvent as all updates to the model's&#xA;value are considered equivalent.&#xA;" annotatedElement="_9_5_f720368_1110473548440_835233_24261"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_626276_18462" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548440_835233_24261" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_203146_18463" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_835233_24261" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_146754_24263" name="AccessibleJScrollBar" visibility="protected" clientDependency="_10_5_622020d_1132928324122_334876_18464">
              <ownedComment xmi:id="_10_5_622020d_1132928318083_483844_12492" body="This class implements accessibility support for the&#xA;&lt;code>JScrollBar&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to scroll bar user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_146754_24263"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_588594_18465" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_334876_18464" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548440_146754_24263" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548112_284568_20952" name="border">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_893771_9795" name="SoftBevelBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_229879_10797" body="A class which implements a raised or lowered bevel with&#xA;softened corners.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Amy Fowler&#xA;@author Chester Rose&#xA;" annotatedElement="_9_5_f720368_1110473546753_893771_9795"/>
              <generalization xmi:id="_10_5_622020d_1132928323391_451896_16675" isSubstitutable="true" general="_9_5_f720368_1110473546753_977975_9781"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_622019_9785" name="CompoundBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_727648_10787" body="A composite Border class used to compose two Border objects&#xA;into a single border by nesting an inside Border object within&#xA;the insets of an outside Border object.&#xA;&#xA;For example, this class may be used to add blank margin space&#xA;to a component with an existing decorative border:&#xA;&lt;p>&#xA;&lt;code>&lt;pre>&#xA;Border border = comp.getBorder();&#xA;Border margin = new EmptyBorder(10,10,10,10);&#xA;comp.setBorder(new CompoundBorder(border, margin));&#xA;&lt;/pre>&lt;/code>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_622019_9785"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_622464_16669" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_977975_9781" name="BevelBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_961110_10783" body="A class which implements a simple two-line bevel border.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_977975_9781"/>
              <generalization xmi:id="_10_5_622020d_1132928323381_470040_16668" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_608365_9789" name="EtchedBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_894896_10791" body="A class which implements a simple etched border which can&#xA;either be etched-in or etched-out.  If no highlight/shadow&#xA;colors are initialized when the border is created, then&#xA;these colors will be dynamically derived from the background&#xA;color of the component argument passed into the paintBorder()&#xA;method.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author David Kloba&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546753_608365_9789"/>
              <generalization xmi:id="_10_5_622020d_1132928323391_256972_16672" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_665119_9797" name="TitledBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_576058_10799" body="A class which implements an arbitrary border&#xA;with the addition of a String title in a&#xA;specified position and justification.&#xA;&lt;p>&#xA;If the border, font, or color property values are not&#xA;specified in the constuctor or by invoking the appropriate&#xA;set methods, the property values will be defined by the current&#xA;look and feel, using the following property names in the&#xA;Defaults Table:&#xA;&lt;ul>&#xA;&lt;li>&quot;TitledBorder.border&quot;&#xA;&lt;li>&quot;TitledBorder.font&quot;&#xA;&lt;li>&quot;TitledBorder.titleColor&quot;&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.40 12/19/03&#xA;@author David Kloba&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546753_665119_9797"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_470049_16676" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_808477_9791" name="LineBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_775754_10793" body="A class which implements a line border of arbitrary thickness&#xA;and of a single color.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.23 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_808477_9791"/>
              <generalization xmi:id="_10_5_622020d_1132928323391_545760_16673" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_732527_9793" name="MatteBorder">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_813091_10795" body="A class which provides a matte-like border of either a solid color&#xA;or a tiled icon.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.22 12/19/03&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546753_732527_9793"/>
              <generalization xmi:id="_10_5_622020d_1132928323391_53371_16674" isSubstitutable="true" general="_9_5_f720368_1110473546753_470937_9787"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_503884_9783" name="Border" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_442065_10785" body="Interface describing an object capable of rendering a border&#xA;around the edges of a swing component.&#xA;For examples of using borders see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/border.html&quot;>How to Use Borders&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;In the Swing component set, borders supercede Insets as the&#xA;mechanism for creating a (decorated or plain) area around the&#xA;edge of a component.&#xA;&lt;p>&#xA;Usage Notes:&#xA;&lt;ul>&#xA;&lt;li>Use EmptyBorder to create a plain border (this mechanism&#xA;replaces its predecessor, &lt;code>setInsets&lt;/code>).&#xA;&lt;li>Use CompoundBorder to nest multiple border objects, creating&#xA;a single, combined border.&#xA;&lt;li>Border instances are designed to be shared. Rather than creating&#xA;a new border object using one of border classes, use the&#xA;BorderFactory methods, which produces a shared instance of the&#xA;common border types.&#xA;&lt;li>Additional border styles include BevelBorder, SoftBevelBorder,&#xA;EtchedBorder, LineBorder, TitledBorder, and MatteBorder.&#xA;&lt;li>To create a new border class, subclass AbstractBorder.&#xA;&lt;/ul>&#xA;&#xA;@version 1.19 12/19/03&#xA;@author David Kloba&#xA;@author Amy Fowler&#xA;@see javax.swing.BorderFactory&#xA;@see EmptyBorder&#xA;@see CompoundBorder&#xA;" annotatedElement="_9_5_f720368_1110473546753_503884_9783"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_470937_9787" name="EmptyBorder" clientDependency="_10_5_622020d_1132928323381_765838_16670">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_838170_10789" body="A class which provides an empty, transparent border which&#xA;takes up space but does no drawing.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.26 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_470937_9787"/>
              <generalization xmi:id="_10_5_622020d_1132928323391_903039_16671" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323381_765838_16670" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_470937_9787" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_366126_9779" name="AbstractBorder" clientDependency="_10_5_622020d_1132928323381_776657_16666 _10_5_622020d_1132928323381_937405_16667" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316982_953963_10781" body="A class that implements an empty border with no size.&#xA;This provides a convenient base class from which other border&#xA;classes can be easily derived.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.33 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_366126_9779"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323381_776657_16666" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473546753_366126_9779" contract="_9_5_f720368_1110473546753_503884_9783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323381_937405_16667" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_366126_9779" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_845053_10681" name="DefaultSingleSelectionModel" clientDependency="_10_5_622020d_1132928323972_664509_18267 _10_5_622020d_1132928323972_538147_18268">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_360813_12357" body="A generic implementation of SingleSelectionModel.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.35 05/05/04&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546784_845053_10681"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_664509_18267" name="" supplier="_9_5_f720368_1110473546799_303715_10847" client="_9_5_f720368_1110473546784_845053_10681" contract="_9_5_f720368_1110473546799_303715_10847"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_538147_18268" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_845053_10681" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_437574_10891" name="ViewportLayout" clientDependency="_10_5_622020d_1132928324182_271624_18708 _10_5_622020d_1132928324182_343579_18709">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_360944_12700" body="The default layout manager for &lt;code>JViewport&lt;/code>.&#xA;&lt;code>ViewportLayout&lt;/code> defines&#xA;a policy for layout that should be useful for most applications.&#xA;The viewport makes its view the same size as the viewport,&#xA;however it will not make the view smaller than its minimum size.&#xA;As the viewport grows the view is kept bottom justified until&#xA;the entire view is visible, subsequently the view is kept top&#xA;justified.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.38 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_437574_10891"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324182_271624_18708" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546799_437574_10891" contract="_9_5_f720368_1110473546581_587570_7065"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324182_343579_18709" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_437574_10891" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_11441_10737" name="JLayeredPane" clientDependency="_10_5_622020d_1132928324102_783100_18383">
            <ownedComment xmi:id="_10_5_622020d_1132928317973_9738_12447" body="&lt;code>JLayeredPane&lt;/code> adds depth to a JFC/Swing container,&#xA;allowing components to overlap each other when needed.&#xA;An &lt;code>Integer&lt;/code> object specifies each component's depth in the&#xA;container, where higher-numbered components sit &quot;on top&quot; of other&#xA;components.&#xA;For task-oriented documentation and examples of using layered panes see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/layeredpane.html&quot;>How to Use a Layered Pane&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;P>&#xA;&lt;TABLE ALIGN=&quot;RIGHT&quot; BORDER=&quot;0&quot; SUMMARY=&quot;layout&quot;>&#xA;&lt;TR>&#xA;&lt;TD ALIGN=&quot;CENTER&quot;>&#xA;&lt;P ALIGN=&quot;CENTER&quot;>&lt;IMG SRC=&quot;doc-files/JLayeredPane-1.gif&quot;&#xA;alt=&quot;The following text describes this image.&quot;&#xA;WIDTH=&quot;269&quot; HEIGHT=&quot;264&quot; ALIGN=&quot;BOTTOM&quot; BORDER=&quot;0&quot;>&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;For convenience, &lt;code>JLayeredPane&lt;/code> divides the depth-range&#xA;into several different layers. Putting a component into one of those&#xA;layers makes it easy to ensure that components overlap properly,&#xA;without having to worry about specifying numbers for specific depths:&#xA;&lt;DL>&#xA;&lt;DT>&lt;FONT SIZE=&quot;2&quot;>DEFAULT_LAYER&lt;/FONT>&lt;/DT>&#xA;&lt;DD>The standard layer, where most components go. This the bottommost&#xA;layer.&#xA;&lt;DT>&lt;FONT SIZE=&quot;2&quot;>PALETTE_LAYER&lt;/FONT>&lt;/DT>&#xA;&lt;DD>The palette layer sits over the default layer. Useful for floating&#xA;toolbars and palettes, so they can be positioned above other components.&#xA;&lt;DT>&lt;FONT SIZE=&quot;2&quot;>MODAL_LAYER&lt;/FONT>&lt;/DT>&#xA;&lt;DD>The layer used for modal dialogs. They will appear on top of any&#xA;toolbars, palettes, or standard components in the container.&#xA;&lt;DT>&lt;FONT SIZE=&quot;2&quot;>POPUP_LAYER&lt;/FONT>&lt;/DT>&#xA;&lt;DD>The popup layer displays above dialogs. That way, the popup windows&#xA;associated with combo boxes, tooltips, and other help text will appear&#xA;above the component, palette, or dialog that generated them.&#xA;&lt;DT>&lt;FONT SIZE=&quot;2&quot;>DRAG_LAYER&lt;/FONT>&lt;/DT>&#xA;&lt;DD>When dragging a component, reassigning it to the drag layer ensures&#xA;that it is positioned over every other component in the container. When&#xA;finished dragging, it can be reassigned to its normal layer.&#xA;&lt;/DL>&#xA;The &lt;code>JLayeredPane&lt;/code> methods &lt;code>moveToFront(Component)&lt;/code>,&#xA;&lt;code>moveToBack(Component)&lt;/code> and &lt;code>setPosition&lt;/code> can be used&#xA;to reposition a component within its layer. The &lt;code>setLayer&lt;/code> method&#xA;can also be used to change the component's current layer.&#xA;&#xA;&lt;h2>Details&lt;/h2>&#xA;&lt;code>JLayeredPane&lt;/code> manages its list of children like&#xA;&lt;code>Container&lt;/code>, but allows for the definition of a several&#xA;layers within itself. Children in the same layer are managed exactly&#xA;like the normal &lt;code>Container&lt;/code> object,&#xA;with the added feature that when children components overlap, children&#xA;in higher layers display above the children in lower layers.&#xA;&lt;p>&#xA;Each layer is a distinct integer number. The layer attribute can be set&#xA;on a &lt;code>Component&lt;/code> by passing an &lt;code>Integer&lt;/code>&#xA;object during the add call.&lt;br> For example:&#xA;&lt;PRE>&#xA;layeredPane.add(child, JLayeredPane.DEFAULT_LAYER);&#xA;or&#xA;layeredPane.add(child, new Integer(10));&#xA;&lt;/PRE>&#xA;The layer attribute can also be set on a Component by calling&lt;PRE>&#xA;layeredPaneParent.setLayer(child, 10)&lt;/PRE>&#xA;on the &lt;code>JLayeredPane&lt;/code> that is the parent of component. The layer&#xA;should be set &lt;i>before&lt;/i> adding the child to the parent.&#xA;&lt;p>&#xA;Higher number layers display above lower number layers. So, using&#xA;numbers for the layers and letters for individual components, a&#xA;representative list order would look like this:&lt;PRE>&#xA;5a, 5b, 5c, 2a, 2b, 2c, 1a &lt;/PRE>&#xA;where the leftmost components are closest to the top of the display.&#xA;&lt;p>&#xA;A component can be moved to the top or bottom position within its&#xA;layer by calling &lt;code>moveToFront&lt;/code> or &lt;code>moveToBack&lt;/code>.&#xA;&lt;p>&#xA;The position of a component within a layer can also be specified directly.&#xA;Valid positions range from 0 up to one less than the number of&#xA;components in that layer. A value of -1 indicates the bottommost&#xA;position. A value of 0 indicates the topmost position. Unlike layer&#xA;numbers, higher position values are &lt;i>lower&lt;/i> in the display.&#xA;&lt;blockquote>&#xA;&lt;b>Note:&lt;/b> This sequence (defined by java.awt.Container) is the reverse&#xA;of the layer numbering sequence. Usually though, you will use &lt;code>moveToFront&lt;/code>,&#xA;&lt;code>moveToBack&lt;/code>, and &lt;code>setLayer&lt;/code>.&#xA;&lt;/blockquote>&#xA;Here are some examples using the method add(Component, layer, position):&#xA;Calling add(5x, 5, -1) results in:&lt;PRE>&#xA;5a, 5b, 5c, 5x, 2a, 2b, 2c, 1a &lt;/PRE>&#xA;&#xA;Calling add(5z, 5, 2) results in:&lt;PRE>&#xA;5a, 5b, 5z, 5c, 5x, 2a, 2b, 2c, 1a &lt;/PRE>&#xA;&#xA;Calling add(3a, 3, 7) results in:&lt;PRE>&#xA;5a, 5b, 5z, 5c, 5x, 3a, 2a, 2b, 2c, 1a &lt;/PRE>&#xA;&#xA;Using normal paint/event mechanics results in 1a appearing at the bottom&#xA;and 5a being above all other components.&#xA;&lt;p>&#xA;&lt;b>Note:&lt;/b> that these layers are simply a logical construct and LayoutManagers&#xA;will affect all child components of this container without regard for&#xA;layer settings.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.36 02/02/00&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_11441_10737"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_310295_18384" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_783100_18383" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_11441_10737" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_776492_24204" name="AccessibleJLayeredPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317963_854421_12445" body="This class implements accessibility support for the&#xA;&lt;code>JLayeredPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to layered pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_776492_24204"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_989727_18385" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_98944_10655" name="DebugGraphicsInfo" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_347929_12331" body="Class used by DebugGraphics for maintaining information about how&#xA;to render graphics calls.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Dave Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546784_98944_10655"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_352606_10611" name="AbstractActionPropertyChangeListener" visibility="package" clientDependency="_10_5_622020d_1132928323902_590864_18189" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_354975_12278" body="A package-private PropertyChangeListener which listens for&#xA;property changes on an Action and updates the properties&#xA;of an ActionEvent source.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Georges Saab&#xA;@see AbstractButton&#xA;" annotatedElement="_9_5_f720368_1110473546784_352606_10611"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_590864_18189" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546784_352606_10611" contract="_9_5_f720368_1110473546596_119404_7313"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_776315_24030" name="OwnedWeakReference" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928323902_302496_18190" isSubstitutable="true" general="_9_5_f720368_1110473546612_633971_7521"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_849061_10733" name="JInternalFrame" clientDependency="_10_5_622020d_1132928324102_930021_18367 _10_5_622020d_1132928324102_300517_18368 _10_5_622020d_1132928324102_122823_18366">
            <ownedComment xmi:id="_10_5_622020d_1132928317963_369331_12441" body="A lightweight object that provides many of the features of&#xA;a native frame, including dragging, closing, becoming an icon,&#xA;resizing, title display, and support for a menu bar.&#xA;For task-oriented documentation and examples of using internal frames,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html&quot; target=&quot;_top&quot;>How to Use Internal Frames&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;&#xA;Generally,&#xA;you add &lt;code>JInternalFrame&lt;/code>s to a &lt;code>JDesktopPane&lt;/code>. The UI&#xA;delegates the look-and-feel-specific actions to the&#xA;&lt;code>DesktopManager&lt;/code>&#xA;object maintained by the &lt;code>JDesktopPane&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>JInternalFrame&lt;/code> content pane&#xA;is where you add child components.&#xA;As a conveniance &lt;code>add&lt;/code> and its variants, &lt;code>remove&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> have been overridden to forward to the&#xA;&lt;code>contentPane&lt;/code> as necessary. This means you can write:&#xA;&lt;pre>&#xA;internalFrame.add(child);&#xA;&lt;/pre>&#xA;And the child will be added to the contentPane.&#xA;The content pane is actually managed by an instance of&#xA;&lt;code>JRootPane&lt;/code>,&#xA;which also manages a layout pane, glass pane, and&#xA;optional menu bar for the internal frame. Please see the&#xA;&lt;code>JRootPane&lt;/code>&#xA;documentation for a complete description of these components.&#xA;Refer to {@link javax.swing.RootPaneContainer}&#xA;for details on adding, removing and setting the &lt;code>LayoutManager&lt;/code>&#xA;of a &lt;code>JInternalFrame&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see InternalFrameEvent&#xA;@see JDesktopPane&#xA;@see DesktopManager&#xA;@see JInternalFrame.JDesktopIcon&#xA;@see JRootPane&#xA;@see javax.swing.RootPaneContainer&#xA;&#xA;@version 1.147 05/18/04&#xA;@author David Kloba&#xA;@author Rich Schiavi&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getContentPane&#xA;description: A frame container which is contained within&#xA;another window.&#xA;" annotatedElement="_9_5_f720368_1110473546799_849061_10733"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_335516_18369" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_122823_18366" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_849061_10733" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_930021_18367" name="" supplier="_9_5_f720368_1110473546799_705759_10893" client="_9_5_f720368_1110473546799_849061_10733" contract="_9_5_f720368_1110473546799_705759_10893"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_300517_18368" name="" supplier="_9_5_f720368_1110473546799_410848_10839" client="_9_5_f720368_1110473546799_849061_10733" contract="_9_5_f720368_1110473546799_410848_10839"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_849597_24192" name="AccessibleJInternalFrame" visibility="protected" clientDependency="_10_5_622020d_1132928324102_508615_18370">
              <ownedComment xmi:id="_10_5_622020d_1132928317953_179256_12437" body="This class implements accessibility support for the&#xA;&lt;code>JInternalFrame&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to internal frame user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_849597_24192"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_717087_18371" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_508615_18370" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548440_849597_24192" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_735429_24194" name="JDesktopIcon" clientDependency="_10_5_622020d_1132928324102_810483_18372">
              <ownedComment xmi:id="_10_5_622020d_1132928317963_167458_12439" body="This component represents an iconified version of a&#xA;&lt;code>JInternalFrame&lt;/code>.&#xA;This API should NOT BE USED by Swing applications, as it will go&#xA;away in future versions of Swing as its functionality is moved into&#xA;&lt;code>JInternalFrame&lt;/code>.  This class is public only so that&#xA;UI objects can display a desktop icon.  If an application&#xA;wants to display a desktop icon, it should create a&#xA;&lt;code>JInternalFrame&lt;/code> instance and iconify it.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473548440_735429_24194"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_351978_18373" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_810483_18372" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548440_735429_24194" contract="_9_5_f720368_1110473546706_827345_8951"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_22798_24197" name="AccessibleJDesktopIcon" visibility="protected" clientDependency="_10_5_622020d_1132928324102_64557_18374">
                <ownedComment xmi:id="_10_5_622020d_1132928317963_64674_12438" body="This class implements accessibility support for the&#xA;&lt;code>JInternalFrame.JDesktopIcon&lt;/code> class.  It provides an&#xA;implementation of the Java Accessibility API appropriate to&#xA;desktop icon user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_22798_24197"/>
                <generalization xmi:id="_10_5_622020d_1132928324102_354088_18375" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324102_64557_18374" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548440_22798_24197" contract="_9_5_f720368_1110473546706_399481_8995"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_198990_10675" name="DefaultListCellRenderer" clientDependency="_10_5_622020d_1132928323972_572026_18259 _10_5_622020d_1132928323972_321028_18258">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_114349_12351" body="Renders an item in a list.&#xA;&lt;p>&#xA;&lt;strong>&lt;a name=&quot;override&quot;>Implementation Note:&lt;/a>&lt;/strong>&#xA;This class overrides&#xA;&lt;code>invalidate&lt;/code>,&#xA;&lt;code>validate&lt;/code>,&#xA;&lt;code>revalidate&lt;/code>,&#xA;&lt;code>repaint&lt;/code>,&#xA;&lt;code>isOpaque&lt;/code>,&#xA;and&#xA;&lt;code>firePropertyChange&lt;/code>&#xA;solely to improve performance.&#xA;If not overridden, these frequently called methods would execute code paths&#xA;that are unnecessary for the default list cell renderer.&#xA;If you write your own renderer,&#xA;take care to weigh the benefits and&#xA;drawbacks of overriding these methods.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.25 12/19/03&#xA;@author Philip Milne&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546784_198990_10675"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_935887_18260" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_321028_18258" name="" supplier="_9_5_f720368_1110473546799_692124_10809" client="_9_5_f720368_1110473546784_198990_10675" contract="_9_5_f720368_1110473546799_692124_10809"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_572026_18259" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_198990_10675" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_22231_24082" name="UIResource" clientDependency="_10_5_622020d_1132928323972_424770_18261">
              <ownedComment xmi:id="_10_5_622020d_1132928317843_69666_12349" body="A subclass of DefaultListCellRenderer that implements UIResource.&#xA;DefaultListCellRenderer doesn't implement UIResource&#xA;directly so that applications can safely override the&#xA;cellRenderer property with DefaultListCellRenderer subclasses.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548409_22231_24082"/>
              <generalization xmi:id="_10_5_622020d_1132928323972_875698_18262" isSubstitutable="true" general="_9_5_f720368_1110473546784_198990_10675"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323972_424770_18261" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548409_22231_24082" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_529825_10731" name="JFrame" clientDependency="_10_5_622020d_1132928324102_889545_18363 _10_5_622020d_1132928324102_530522_18361 _10_5_622020d_1132928324102_270028_18362">
            <ownedComment xmi:id="_10_5_622020d_1132928317953_893797_12436" body="An extended version of &lt;code>java.awt.Frame&lt;/code> that adds support for&#xA;the JFC/Swing component architecture.&#xA;You can find task-oriented documentation about using &lt;code>JFrame&lt;/code>&#xA;in &lt;em>The Java Tutorial&lt;/em>, in the section&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html&quot;>How to Make Frames&lt;/a>.&#xA;&#xA;&lt;p>&#xA;The &lt;code>JFrame&lt;/code> class is slightly incompatible with &lt;code>Frame&lt;/code>.&#xA;Like all other JFC/Swing top-level containers,&#xA;a &lt;code>JFrame&lt;/code> contains a &lt;code>JRootPane&lt;/code> as its only child.&#xA;The &lt;b>content pane&lt;/b> provided by the root pane should,&#xA;as a rule, contain&#xA;all the non-menu components displayed by the &lt;code>JFrame&lt;/code>.&#xA;This is different from the AWT &lt;code>Frame&lt;/code> case.&#xA;As a conveniance &lt;code>add&lt;/code> and its variants, &lt;code>remove&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> have been overridden to forward to the&#xA;&lt;code>contentPane&lt;/code> as necessary. This means you can write:&#xA;&lt;pre>&#xA;frame.add(child);&#xA;&lt;/pre>&#xA;And the child will be added to the contentPane.&#xA;The content pane will&#xA;always be non-null. Attempting to set it to null will cause the JFrame&#xA;to throw an exception. The default content pane will have a BorderLayout&#xA;manager set on it.&#xA;Refer to {@link javax.swing.RootPaneContainer}&#xA;for details on adding, removing and setting the &lt;code>LayoutManager&lt;/code>&#xA;of a &lt;code>JFrame&lt;/code>.&#xA;&lt;p>&#xA;Unlike a &lt;code>Frame&lt;/code>, a &lt;code>JFrame&lt;/code> has some notion of how to&#xA;respond when the user attempts to close the window. The default behavior&#xA;is to simply hide the JFrame when the user closes the window. To change the&#xA;default behavior, you invoke the method&#xA;{@link #setDefaultCloseOperation}.&#xA;To make the &lt;code>JFrame&lt;/code> behave the same as a &lt;code>Frame&lt;/code>&#xA;instance, use&#xA;&lt;code>setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)&lt;/code>.&#xA;&lt;p>&#xA;For more information on content panes&#xA;and other features that root panes provide,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/toplevel.html&quot;>Using Top-Level Containers&lt;/a> in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>JFrame&lt;/code>&#xA;on a different screen device.  See {@link java.awt.Frame} for more&#xA;information.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JRootPane&#xA;@see #setDefaultCloseOperation&#xA;@see java.awt.event.WindowListener#windowClosing&#xA;@see javax.swing.RootPaneContainer&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getContentPane&#xA;description: A toplevel window which can be minimized to an icon.&#xA;&#xA;@version 1.104 12/19/03&#xA;@author Jeff Dinkins&#xA;@author Georges Saab&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_529825_10731"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_67017_18364" isSubstitutable="true" general="_9_5_f720368_1110473546581_371788_7015"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_530522_18361" name="" supplier="_9_5_f720368_1110473546799_705759_10893" client="_9_5_f720368_1110473546799_529825_10731" contract="_9_5_f720368_1110473546799_705759_10893"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_270028_18362" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_529825_10731" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_889545_18363" name="" supplier="_9_5_f720368_1110473546799_410848_10839" client="_9_5_f720368_1110473546799_529825_10731" contract="_9_5_f720368_1110473546799_410848_10839"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_950666_24189" name="AccessibleJFrame" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317953_963620_12434" body="This class implements accessibility support for the&#xA;&lt;code>JFrame&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to frame user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548424_950666_24189"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_364827_18365" isSubstitutable="true" general="_9_5_f720368_1110473547393_523464_16996"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_954327_10789" name="JToolTip" clientDependency="_10_5_622020d_1132928324152_709553_18583">
            <ownedComment xmi:id="_10_5_622020d_1132928318143_925012_12557" body="Used to display a &quot;Tip&quot; for a Component. Typically components provide api&#xA;to automate the process of using &lt;code>ToolTip&lt;/code>s.&#xA;For example, any Swing component can use the &lt;code>JComponent&lt;/code>&#xA;&lt;code>setToolTipText&lt;/code> method to specify the text&#xA;for a standard tooltip. A component that wants to create a custom&#xA;&lt;code>ToolTip&lt;/code>&#xA;display can override &lt;code>JComponent&lt;/code>'s &lt;code>createToolTip&lt;/code>&#xA;method and use a subclass of this class.&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tooltip.html&quot;>How to Use Tool Tips&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for further documentation.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JComponent#setToolTipText&#xA;@see JComponent#createToolTip&#xA;@version 1.47 12/19/03&#xA;@author Dave Moore&#xA;@author Rich Shiavi&#xA;" annotatedElement="_9_5_f720368_1110473546799_954327_10789"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_164401_18584" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_709553_18583" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_954327_10789" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_507717_24366" name="AccessibleJToolTip" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_313870_12555" body="This class implements accessibility support for the&#xA;&lt;code>JToolTip&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to tool tip user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_507717_24366"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_295158_18585" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_98267_10615" name="AbstractCellEditor" clientDependency="_10_5_622020d_1132928323912_320874_18208 _10_5_622020d_1132928323912_239722_18209" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_202747_12285" body="@version 1.11 12/19/03&#xA;&#xA;A base class for &lt;code>CellEditors&lt;/code>, providing default&#xA;implementations for the methods in the &lt;code>CellEditor&lt;/code>&#xA;interface except &lt;code>getCellEditorValue()&lt;/code>.&#xA;Like the other abstract implementations in Swing, also manages a list&#xA;of listeners.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546784_98267_10615"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_320874_18208" name="" supplier="_9_5_f720368_1110473546784_515358_10641" client="_9_5_f720368_1110473546784_98267_10615" contract="_9_5_f720368_1110473546784_515358_10641"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_239722_18209" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_98267_10615" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_623295_10825" name="OverlayLayout" clientDependency="_10_5_622020d_1132928324162_658083_18624 _10_5_622020d_1132928324162_336364_18625">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_765468_12602" body="A layout manager to arrange components over the top&#xA;of each other.  The requested size of the container&#xA;will be the largest requested size of the children,&#xA;taking alignment needs into consideration.&#xA;&#xA;The alignment is based upon what is needed to properly&#xA;fit the children in the allocation area.  The children&#xA;will be placed such that their alignment points are all&#xA;on top of each other.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.27 12/19/03&#xA;@author   Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546799_623295_10825"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324162_658083_18624" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546799_623295_10825" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324162_336364_18625" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_623295_10825" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_933232_10811" name="ListModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_557_12588" body="This interface defines the methods components like JList use&#xA;to get the value of each cell in a list and the length of the list.&#xA;Logically the model is a vector, indices vary from 0 to&#xA;ListDataModel.getSize() - 1.  Any change to the contents or&#xA;length of the data model must be reported to all of the&#xA;ListDataListeners.&#xA;&#xA;@version 0.0 03/01/97&#xA;@author Hans Muller&#xA;@see JList&#xA;" annotatedElement="_9_5_f720368_1110473546799_933232_10811"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_346709_10699" name="InputVerifier" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317863_125341_12375" body="The purpose of this class is to help clients support smooth focus&#xA;navigation through GUIs with text fields. Such GUIs often need&#xA;to ensure that the text entered by the user is valid (for example,&#xA;that it's in&#xA;the proper format) before allowing the user to navigate out of&#xA;the text field. To do this, clients create a subclass of&#xA;&lt;code>InputVerifier&lt;/code> and, using &lt;code>JComponent&lt;/code>'s&#xA;&lt;code>setInputVerifier&lt;/code> method,&#xA;attach an instance of their subclass to the &lt;code>JComponent&lt;/code> whose input they&#xA;want to validate. Before focus is transfered to another Swing component&#xA;that requests it, the input verifier's &lt;code>shouldYieldFocus&lt;/code> method is&#xA;called.  Focus is transfered only if that method returns &lt;code>true&lt;/code>.&#xA;&lt;p>&#xA;The following example has two text fields, with the first one expecting&#xA;the string &quot;pass&quot; to be entered by the user. If that string is entered in&#xA;the first text field, then the user can advance to the second text field&#xA;either by clicking in it or by pressing TAB. However, if another string&#xA;is entered in the first text field, then the user will be unable to&#xA;transfer focus to the second text field.&#xA;&lt;p>&#xA;&lt;pre>&#xA;import java.awt.*;&#xA;import java.util.*;&#xA;import java.awt.event.*;&#xA;import javax.swing.*;&#xA;&#xA;This program demonstrates the use of the Swing InputVerifier class.&#xA;It creates two text fields; the first of the text fields expects the&#xA;string &quot;pass&quot; as input, and will allow focus to advance out of it&#xA;only after that string is typed in by the user.&#xA;&#xA;public class VerifierTest extends JFrame {&#xA;public VerifierTest() {&#xA;JTextField tf1 = new JTextField (&quot;Type \&quot;pass\&quot; here&quot;);&#xA;getContentPane().add (tf1, BorderLayout.NORTH);&#xA;tf1.setInputVerifier(new PassVerifier());&#xA;&#xA;JTextField tf2 = new JTextField (&quot;TextField2&quot;);&#xA;getContentPane().add (tf2, BorderLayout.SOUTH);&#xA;&#xA;WindowListener l = new WindowAdapter() {&#xA;public void windowClosing(WindowEvent e) {&#xA;System.exit(0);&#xA;}&#xA;};&#xA;addWindowListener(l);&#xA;}&#xA;&#xA;class PassVerifier extends InputVerifier {&#xA;public boolean verify(JComponent input) {&#xA;JTextField tf = (JTextField) input;&#xA;return &quot;pass&quot;.equals(tf.getText());&#xA;}&#xA;}&#xA;&#xA;public static void main(String[] args) {&#xA;Frame f = new VerifierTest();&#xA;f.pack();&#xA;f.setVisible(true);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546784_346709_10699"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_353580_10739" name="JList" clientDependency="_10_5_622020d_1132928324102_5455_18387 _10_5_622020d_1132928324102_642845_18386">
            <ownedComment xmi:id="_10_5_622020d_1132928318013_530254_12451" body="A component that allows the user to select one or more objects from a&#xA;list.  A separate model, &lt;code>ListModel&lt;/code>, represents the contents&#xA;of the list.  It's easy to display an array or vector of objects, using&#xA;a &lt;code>JList&lt;/code> constructor that builds a &lt;code>ListModel&lt;/code>&#xA;instance for you:&#xA;&lt;pre>&#xA;Create a JList that displays the strings in data[]&#xA;&#xA;String[] data = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;, &quot;four&quot;};&#xA;JList dataList = new JList(data);&#xA;&#xA;The value of the JList model property is an object that provides&#xA;a read-only view of the data.  It was constructed automatically.&#xA;&#xA;for(int i = 0; i &lt; dataList.getModel().getSize(); i++) {&#xA;System.out.println(dataList.getModel().getElementAt(i));&#xA;}&#xA;&#xA;Create a JList that displays the superclass of JList.class.&#xA;We store the superclasses in a java.util.Vector.&#xA;&#xA;Vector superClasses = new Vector();&#xA;Class rootClass = javax.swing.JList.class;&#xA;for(Class cls = rootClass; cls != null; cls = cls.getSuperclass()) {&#xA;superClasses.addElement(cls);&#xA;}&#xA;JList classList = new JList(superClasses);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;code>JList&lt;/code> doesn't support scrolling directly.&#xA;To create a scrolling&#xA;list you make the &lt;code>JList&lt;/code> the viewport view of a&#xA;&lt;code>JScrollPane&lt;/code>.  For example:&#xA;&lt;pre>&#xA;JScrollPane scrollPane = new JScrollPane(dataList);&#xA;Or in two steps:&#xA;JScrollPane scrollPane = new JScrollPane();&#xA;scrollPane.getViewport().setView(dataList);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;By default the &lt;code>JList&lt;/code> selection model allows any&#xA;combination of items to be selected at a time, using the constant&#xA;&lt;code>MULTIPLE_INTERVAL_SELECTION&lt;/code>.&#xA;The selection state is actually managed&#xA;by a separate delegate object, an instance of&#xA;&lt;code>ListSelectionModel&lt;/code>.&#xA;However &lt;code>JList&lt;/code> provides convenient properties for&#xA;managing the selection.&#xA;&lt;pre>&#xA;String[] data = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;, &quot;four&quot;};&#xA;JList dataList = new JList(data);&#xA;&#xA;dataList.setSelectedIndex(1);  // select &quot;two&quot;&#xA;dataList.getSelectedValue();   // returns &quot;two&quot;&#xA;&lt;/pre>&#xA;&lt;p>&#xA;The contents of a &lt;code>JList&lt;/code> can be dynamic,&#xA;in other words, the list elements can&#xA;change value and the size of the list can change after the&#xA;&lt;code>JList&lt;/code> has&#xA;been created.  The &lt;code>JList&lt;/code> observes changes in its model with a&#xA;&lt;code>swing.event.ListDataListener&lt;/code> implementation.  A correct&#xA;implementation of &lt;code>ListModel&lt;/code> notifies&#xA;it's listeners each time a change occurs.  The changes are&#xA;characterized by a &lt;code>swing.event.ListDataEvent&lt;/code>, which identifies&#xA;the range of list indices that have been modified, added, or removed.&#xA;Simple dynamic-content &lt;code>JList&lt;/code> applications can use the&#xA;&lt;code>DefaultListModel&lt;/code> class to store list elements.  This class&#xA;implements the &lt;code>ListModel&lt;/code> interface and provides the&#xA;&lt;code>java.util.Vector&lt;/code> API as well.  Applications that need to&#xA;provide custom &lt;code>ListModel&lt;/code> implementations can subclass&#xA;&lt;code>AbstractListModel&lt;/code>, which provides basic&#xA;&lt;code>ListDataListener&lt;/code> support.  For example:&#xA;&lt;pre>&#xA;This list model has about 2^16 elements.  Enjoy scrolling.&#xA;&#xA;&lt;a name=&quot;prototype_example&quot;>&#xA;ListModel bigData = new AbstractListModel() {&#xA;public int getSize() { return Short.MAX_VALUE; }&#xA;public Object getElementAt(int index) { return &quot;Index &quot; + index; }&#xA;};&#xA;&#xA;JList bigDataList = new JList(bigData);&#xA;&#xA;We don't want the JList implementation to compute the width&#xA;or height of all of the list cells, so we give it a string&#xA;that's as big as we'll need for any cell.  It uses this to&#xA;compute values for the fixedCellWidth and fixedCellHeight&#xA;properties.&#xA;&#xA;bigDataList.setPrototypeCellValue(&quot;Index 1234567890&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;code>JList&lt;/code> uses a &lt;code>java.awt.Component&lt;/code>, provided by&#xA;a delegate called the&#xA;&lt;code>cellRendererer&lt;/code>, to paint the visible cells in the list.&#xA;The cell renderer component is used like a &quot;rubber stamp&quot; to paint&#xA;each visible row.  Each time the &lt;code>JList&lt;/code> needs to paint a cell&#xA;it asks the cell renderer for the component, moves it into place&#xA;using &lt;code>setBounds()&lt;/code> and then draws it by calling its paint method.&#xA;The default cell renderer uses a &lt;code>JLabel&lt;/code> component to render&#xA;the string value of each component.   You can substitute your&#xA;own cell renderer, using code like this:&#xA;&lt;pre>&#xA;Display an icon and a string for each object in the list.&#xA;&#xA;&lt;a name=&quot;cellrenderer_example&quot;>&#xA;class MyCellRenderer extends JLabel implements ListCellRenderer {&#xA;final static ImageIcon longIcon = new ImageIcon(&quot;long.gif&quot;);&#xA;final static ImageIcon shortIcon = new ImageIcon(&quot;short.gif&quot;);&#xA;&#xA;This is the only method defined by ListCellRenderer.&#xA;We just reconfigure the JLabel each time we're called.&#xA;&#xA;public Component getListCellRendererComponent(&#xA;JList list,&#xA;Object value,            // value to display&#xA;int index,               // cell index&#xA;boolean isSelected,      // is the cell selected&#xA;boolean cellHasFocus)    // the list and the cell have the focus&#xA;{&#xA;String s = value.toString();&#xA;setText(s);&#xA;setIcon((s.length() > 10) ? longIcon : shortIcon);&#xA;if (isSelected) {&#xA;setBackground(list.getSelectionBackground());&#xA;setForeground(list.getSelectionForeground());&#xA;}&#xA;else {&#xA;setBackground(list.getBackground());&#xA;setForeground(list.getForeground());&#xA;}&#xA;setEnabled(list.isEnabled());&#xA;setFont(list.getFont());&#xA;setOpaque(true);&#xA;return this;&#xA;}&#xA;}&#xA;&#xA;String[] data = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;, &quot;four&quot;};&#xA;JList dataList = new JList(data);&#xA;dataList.setCellRenderer(new MyCellRenderer());&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;code>JList&lt;/code> doesn't provide any special support for handling double or&#xA;triple (or N) mouse clicks however it's easy to handle them using&#xA;a &lt;code>MouseListener&lt;/code>.  Use the &lt;code>JList&lt;/code> method&#xA;&lt;code>locationToIndex()&lt;/code> to&#xA;determine what cell was clicked.  For example:&#xA;&lt;pre>&#xA;final JList list = new JList(dataModel);&#xA;MouseListener mouseListener = new MouseAdapter() {&#xA;public void mouseClicked(MouseEvent e) {&#xA;if (e.getClickCount() == 2) {&#xA;int index = list.locationToIndex(e.getPoint());&#xA;System.out.println(&quot;Double clicked on Item &quot; + index);&#xA;}&#xA;}&#xA;};&#xA;list.addMouseListener(mouseListener);&#xA;&lt;/pre>&#xA;Note that in this example the &lt;code>dataList&lt;/code> is &lt;code>final&lt;/code>&#xA;because it's referred to by the anonymous &lt;code>MouseListener&lt;/code> class.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/list.html&quot;>How to Use Lists&lt;/a>&#xA;in &lt;a href=&quot;http://java.sun.com/Series/Tutorial/index.html&quot;>&lt;em>The Java Tutorial&lt;/em>&lt;/a>&#xA;for further documentation.&#xA;Also see the article &lt;a href=&quot;http://java.sun.com/products/jfc/tsc/tech_topics/jlist_1/jlist.html&quot;>Advanced JList Programming&lt;/a>&#xA;in &lt;a href=&quot;http://java.sun.com/products/jfc/tsc&quot;>&lt;em>The Swing Connection&lt;/em>&lt;/a>.&#xA;&lt;p>&#xA;@see ListModel&#xA;@see AbstractListModel&#xA;@see DefaultListModel&#xA;@see ListSelectionModel&#xA;@see DefaultListSelectionModel&#xA;@see ListCellRenderer&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which allows for the selection of one or more objects from a list.&#xA;&#xA;@version 1.112 05/05/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_353580_10739"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_145_18388" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_642845_18386" name="" supplier="_9_5_f720368_1110473546799_139584_10841" client="_9_5_f720368_1110473546799_353580_10739" contract="_9_5_f720368_1110473546799_139584_10841"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_5455_18387" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_353580_10739" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_722725_24207" name="ListSelectionHandler" visibility="private" clientDependency="_10_5_622020d_1132928324102_624632_18390 _10_5_622020d_1132928324102_908700_18389">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_908700_18389" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548440_722725_24207" contract="_9_5_f720368_1110473546753_43790_9865"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_624632_18390" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_722725_24207" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_336523_24208" name="AccessibleJList" visibility="protected" clientDependency="_10_5_622020d_1132928324102_956746_18392 _10_5_622020d_1132928324102_132920_18393 _10_5_622020d_1132928324102_58650_18391 _10_5_622020d_1132928324102_106506_18394">
              <ownedComment xmi:id="_10_5_622020d_1132928317973_248490_12449" body="This class implements accessibility support for the&#xA;&lt;code>JList&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to list user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_336523_24208"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_348653_18395" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_58650_18391" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548440_336523_24208" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_956746_18392" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548440_336523_24208" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_132920_18393" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548440_336523_24208" contract="_9_5_f720368_1110473546753_43790_9865"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_106506_18394" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_9_5_f720368_1110473548440_336523_24208" contract="_9_5_f720368_1110473546753_268063_9861"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_276774_24210" name="AccessibleJListChild" visibility="protected" clientDependency="_10_5_622020d_1132928324102_260357_18396 _10_5_622020d_1132928324102_992593_18397">
                <ownedComment xmi:id="_10_5_622020d_1132928317973_150494_12448" body="This class implements accessibility support appropriate&#xA;for list children.&#xA;" annotatedElement="_9_5_f720368_1110473548440_276774_24210"/>
                <generalization xmi:id="_10_5_622020d_1132928324102_122990_18398" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324102_260357_18396" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548440_276774_24210" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324102_992593_18397" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548440_276774_24210" contract="_9_5_f720368_1110473546706_824207_8957"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548112_696104_20974" name="colorchooser">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_932920_9807" name="DefaultColorSelectionModel" clientDependency="_10_5_622020d_1132928323401_772660_16683 _10_5_622020d_1132928323401_589754_16682">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_984967_10809" body="A generic implementation of &lt;code>ColorSelectionModel&lt;/code>.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Steve Wilson&#xA;&#xA;@see java.awt.Color&#xA;" annotatedElement="_9_5_f720368_1110473546753_932920_9807"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_589754_16682" name="" supplier="_9_5_f720368_1110473546753_546506_9805" client="_9_5_f720368_1110473546753_932920_9807" contract="_9_5_f720368_1110473546753_546506_9805"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_772660_16683" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_932920_9807" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_526788_9817" name="SwatchPanel" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928323401_990645_16697" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_644047_9819" name="RecentSwatchPanel" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928323401_274575_16698" isSubstitutable="true" general="_9_5_f720368_1110473546753_526788_9817"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_492968_9827" name="SyntheticImageGenerator" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928323401_947765_16703" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_530730_9823" name="SmartGridLayout" visibility="package" clientDependency="_10_5_622020d_1132928323401_767837_16700 _10_5_622020d_1132928323401_759223_16701">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_687367_10824" body="A better GridLayout class&#xA;&#xA;@version 1.8 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_530730_9823"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_767837_16700" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546753_530730_9823" contract="_9_5_f720368_1110473546581_587570_7065"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_759223_16701" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_530730_9823" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_679590_9803" name="ColorChooserComponentFactory">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_825367_10805" body="A class designed to produce preconfigured &quot;accessory&quot; objects to&#xA;insert into color choosers.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_679590_9803"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_240247_9813" name="DefaultRGBChooserPanel" visibility="package" clientDependency="_10_5_622020d_1132928323401_415109_16690">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_883955_10817" body="The standard RGB chooser.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.31 01/23/03&#xA;@author Steve Wilson&#xA;@author Mark Davidson&#xA;@see JColorChooser&#xA;@see AbstractColorChooserPanel&#xA;" annotatedElement="_9_5_f720368_1110473546753_240247_9813"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_495124_16691" isSubstitutable="true" general="_9_5_f720368_1110473546753_894801_9799"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_415109_16690" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473546753_240247_9813" contract="_9_5_f720368_1110473546753_937925_9841"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_64956_9801" name="CenterLayout" visibility="package" clientDependency="_10_5_622020d_1132928323401_234786_16680 _10_5_622020d_1132928323401_156939_16681">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_265014_10803" body="Center-positioning layout manager.&#xA;@version 1.10 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_64956_9801"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_234786_16680" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546753_64956_9801" contract="_9_5_f720368_1110473546581_587570_7065"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_156939_16681" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_64956_9801" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_546506_9805" name="ColorSelectionModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_646796_10807" body="A model that supports selecting a &lt;code>Color&lt;/code>.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Steve Wilson&#xA;&#xA;@see java.awt.Color&#xA;" annotatedElement="_9_5_f720368_1110473546753_546506_9805"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_374771_9811" name="DefaultPreviewPanel" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_336387_10815" body="The standard preview panel for the color chooser.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Steve Wilson&#xA;@see JColorChooser&#xA;" annotatedElement="_9_5_f720368_1110473546753_374771_9811"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_650729_16689" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_894801_9799" name="AbstractColorChooserPanel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_182832_10801" body="This is the abstract superclass for color choosers.  If you want to add&#xA;a new color chooser panel into a &lt;code>JColorChooser&lt;/code>, subclass&#xA;this class.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_894801_9799"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_77319_16677" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548112_456864_20976" name="ModelListener" visibility="package" clientDependency="_10_5_622020d_1132928323401_397655_16678 _10_5_622020d_1132928323401_947587_16679">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323401_397655_16678" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548112_456864_20976" contract="_9_5_f720368_1110473546753_937925_9841"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323401_947587_16679" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548112_456864_20976" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_461587_9821" name="MainSwatchPanel" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928323401_273965_16699" isSubstitutable="true" general="_9_5_f720368_1110473546753_526788_9817"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_852570_9809" name="DefaultHSBChooserPanel" visibility="package" clientDependency="_10_5_622020d_1132928323401_829359_16684 _10_5_622020d_1132928323401_369360_16685">
              <ownedComment xmi:id="_10_5_622020d_1132928316992_840740_10813" body="Implements the default HSB Color chooser&#xA;&#xA;@version 1.25 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;@author Mark Davidson&#xA;@author Shannon Hickey&#xA;" annotatedElement="_9_5_f720368_1110473546753_852570_9809"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_488127_16686" isSubstitutable="true" general="_9_5_f720368_1110473546753_894801_9799"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_829359_16684" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473546753_852570_9809" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_369360_16685" name="" supplier="_9_5_f720368_1110473546565_895193_6569" client="_9_5_f720368_1110473546753_852570_9809" contract="_9_5_f720368_1110473546565_895193_6569"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548112_392651_20982" name="RadioButtonHandler" visibility="private" clientDependency="_10_5_622020d_1132928323401_54991_16687">
                <ownedComment xmi:id="_10_5_622020d_1132928316992_451054_10810" body="Handler for the radio button classes.&#xA;" annotatedElement="_9_5_f720368_1110473548112_392651_20982"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323401_54991_16687" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548112_392651_20982" contract="_9_5_f720368_1110473546565_106737_6535"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548112_206637_20984" name="HSBImage" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928316992_823138_10811" body="Class for the slider and palette images.&#xA;" annotatedElement="_9_5_f720368_1110473548112_206637_20984"/>
                <generalization xmi:id="_10_5_622020d_1132928323401_218385_16688" isSubstitutable="true" general="_9_5_f720368_1110473546753_91611_9825"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_91611_9825" name="SyntheticImage" visibility="package" clientDependency="_10_5_622020d_1132928323401_491348_16702" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_83998_10826" body="A helper class to make computing synthetic images a little easier.&#xA;All you need to do is define a subclass that overrides computeRow&#xA;to compute a row of the image.  It is passed the y coordinate of the&#xA;row and an array into which to put the pixels in&#xA;&lt;a href=&quot;http://java.sun.com/products/jdk/1.1/docs/api/java.awt.image.ColorModel.html#getRGBdefault()&quot;>&#xA;standard ARGB format&lt;/a>.&#xA;&lt;p>Normal usage looks something like this:&#xA;&lt;pre>&amp;nbsp;Image i = createImage(new SyntheticImage(200, 100) {&#xA;&amp;nbsp;    protected void computeRow(int y, int[] row) {&#xA;&amp;nbsp;&#x9;for(int i = width; --i>=0; ) {&#xA;&amp;nbsp;&#x9;    int grey = i*255/(width-1);&#xA;&amp;nbsp;&#x9;    row[i] = (255&lt;&lt;24)|(grey&lt;&lt;16)|(grey&lt;&lt;8)|grey;&#xA;&amp;nbsp;&#x9;}&#xA;&amp;nbsp;    }&#xA;&amp;nbsp;}&#xA;&lt;/pre>This creates a image 200 pixels wide and 100 pixels high&#xA;that is a horizontal grey ramp, going from black on the left to&#xA;white on the right.&#xA;&lt;p>&#xA;If the image is to be a movie, override isStatic to return false,&#xA;&lt;i>y&lt;/i> cycling back to 0 is computeRow's signal that the next&#xA;frame has started.  It is acceptable (expected?) for computeRow(0,r)&#xA;to pause until the appropriate time to start the next frame.&#xA;&#xA;@version 1.24 12/19/03&#xA;@author James Gosling&#xA;" annotatedElement="_9_5_f720368_1110473546753_91611_9825"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323401_491348_16702" name="" supplier="_9_5_f720368_1110473546565_60145_6797" client="_9_5_f720368_1110473546753_91611_9825" contract="_9_5_f720368_1110473546565_60145_6797"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_897647_9815" name="DefaultSwatchChooserPanel" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_277105_10819" body="The standard color swatch chooser.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.26 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_897647_9815"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_586051_16692" isSubstitutable="true" general="_9_5_f720368_1110473546753_894801_9799"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548112_309733_20989" name="RecentSwatchListener" visibility="package" clientDependency="_10_5_622020d_1132928323401_269345_16693">
                <generalization xmi:id="_10_5_622020d_1132928323401_544104_16694" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323401_269345_16693" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548112_309733_20989" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548112_996540_20990" name="MainSwatchListener" visibility="package" clientDependency="_10_5_622020d_1132928323401_411022_16695">
                <generalization xmi:id="_10_5_622020d_1132928323401_302708_16696" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323401_411022_16695" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548112_996540_20990" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_912955_10751" name="JPasswordField">
            <ownedComment xmi:id="_10_5_622020d_1132928318073_851183_12473" body="&lt;code>JPasswordField&lt;/code> is a lightweight component that allows&#xA;the editing of a single line of text where the view indicates&#xA;something was typed, but does not show the original characters.&#xA;You can find further information and examples in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/textfield.html&quot;>How to Use Text Fields&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;code>JPasswordField&lt;/code> is intended&#xA;to be source-compatible with &lt;code>java.awt.TextField&lt;/code>&#xA;used with &lt;code>echoChar&lt;/code> set.  It is provided separately&#xA;to make it easier to safely change the UI for the&#xA;&lt;code>JTextField&lt;/code> without affecting password entries.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: Allows the editing of a line of text but doesn't show the characters.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.54 06/02/04&#xA;" annotatedElement="_9_5_f720368_1110473546799_912955_10751"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_35283_18430" isSubstitutable="true" general="_9_5_f720368_1110473546799_269096_10781"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_599231_24234" name="AccessibleJPasswordField" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318063_867083_12471" body="This class implements accessibility support for the&#xA;&lt;code>JPasswordField&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to password field user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_599231_24234"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_458901_18431" isSubstitutable="true" general="_9_5_f720368_1110473548456_930568_24349"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_172492_10873" name="SwingUtilities" clientDependency="_10_5_622020d_1132928324172_384051_18671">
            <ownedComment xmi:id="_10_5_622020d_1132928318264_103642_12662" body="A collection of utility methods for Swing.&#xA;&#xA;@version 1.134 06/15/04&#xA;@author unknown&#xA;" annotatedElement="_9_5_f720368_1110473546799_172492_10873"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_384051_18671" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_172492_10873" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318264_323430_12660" name="SharedOwnerFrame" visibility="package" clientDependency="_10_5_622020d_1132928324172_46601_18672">
              <generalization xmi:id="_10_5_622020d_1132928324172_733862_18673" isSubstitutable="true" general="_9_5_f720368_1110473546581_371788_7015"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_46601_18672" name="" supplier="_9_5_f720368_1110473546565_348855_6617" client="_10_5_622020d_1132928318264_323430_12660" contract="_9_5_f720368_1110473546565_348855_6617"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_269543_10713" name="ColorChooserDialog" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928324072_978717_18297" isSubstitutable="true" general="_9_5_f720368_1110473546784_658534_10723"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_415556_24114" name="Closer" visibility="package" clientDependency="_10_5_622020d_1132928324072_153234_18298">
              <generalization xmi:id="_10_5_622020d_1132928324072_343911_18299" isSubstitutable="true" general="_9_5_f720368_1110473546565_558736_6611"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_153234_18298" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_415556_24114" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_952523_24116" name="DisposeOnClose" visibility="package" clientDependency="_10_5_622020d_1132928324072_55962_18300">
              <generalization xmi:id="_10_5_622020d_1132928324072_37828_18301" isSubstitutable="true" general="_9_5_f720368_1110473546565_259160_6545"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_55962_18300" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_952523_24116" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_772428_10703" name="JApplet" clientDependency="_10_5_622020d_1132928323972_89060_18280 _10_5_622020d_1132928323972_506040_18281">
            <ownedComment xmi:id="_10_5_622020d_1132928317863_570515_12380" body="An extended version of &lt;code>java.applet.Applet&lt;/code> that adds support for&#xA;the JFC/Swing component architecture.&#xA;You can find task-oriented documentation about using &lt;code>JApplet&lt;/code>&#xA;in &lt;em>The Java Tutorial&lt;/em>,&#xA;in the section&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/applet.html&quot;>How to Make Applets&lt;/a>.&#xA;&lt;p>&#xA;The &lt;code>JApplet&lt;/code> class is slightly incompatible with&#xA;&lt;code>java.applet.Applet&lt;/code>.  &lt;code>JApplet&lt;/code> contains a&#xA;&lt;code>JRootPane&lt;/code> as its only child.  The &lt;code>contentPane&lt;/code>&#xA;should be the parent of any children of the &lt;code>JApplet&lt;/code>.&#xA;As a convenience &lt;code>add&lt;/code> and its variants, &lt;code>remove&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> have been overridden to forward to the&#xA;&lt;code>contentPane&lt;/code> as necessary. This means you can write:&#xA;&lt;pre>&#xA;applet.add(child);&#xA;&lt;/pre>&#xA;&#xA;And the child will be added to the &lt;code>contentPane&lt;/code>.&#xA;The &lt;code>contentPane&lt;/code> will always be non-&lt;code>null&lt;/code>.&#xA;Attempting to set it to &lt;code>null&lt;/code> will cause the&#xA;&lt;code>JApplet&lt;/code> to throw an exception. The default&#xA;&lt;code>contentPane&lt;/code> will have a &lt;code>BorderLayout&lt;/code>&#xA;manager set on it.&#xA;Refer to {@link javax.swing.RootPaneContainer}&#xA;for details on adding, removing and setting the &lt;code>LayoutManager&lt;/code>&#xA;of a &lt;code>JApplet&lt;/code>.&#xA;&lt;p>&#xA;Please see the &lt;code>JRootPane&lt;/code> documentation for a&#xA;complete description of the &lt;code>contentPane&lt;/code>, &lt;code>glassPane&lt;/code>,&#xA;and &lt;code>layeredPane&lt;/code> properties.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.RootPaneContainer&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getContentPane&#xA;description: Swing's Applet subclass.&#xA;&#xA;@version 1.65 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546784_772428_10703"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_992097_18282" isSubstitutable="true" general="_9_5_f720368_1110473546549_293040_6433"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_89060_18280" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_772428_10703" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_506040_18281" name="" supplier="_9_5_f720368_1110473546799_410848_10839" client="_9_5_f720368_1110473546784_772428_10703" contract="_9_5_f720368_1110473546799_410848_10839"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_747561_24100" name="AccessibleJApplet" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317863_770632_12378" body="This class implements accessibility support for the&#xA;&lt;code>JApplet&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473548424_747561_24100"/>
              <generalization xmi:id="_10_5_622020d_1132928323972_77000_18283" isSubstitutable="true" general="_9_5_f720368_1110473547268_423198_16323"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_766765_10705" name="JButton" clientDependency="_10_5_622020d_1132928324062_608399_18284">
            <ownedComment xmi:id="_10_5_622020d_1132928317863_599635_12383" body="An implementation of a &quot;push&quot; button.&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html&quot;>How to Use Buttons, Check Boxes, and Radio Buttons&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for information and examples of using buttons.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: An implementation of a \&quot;push\&quot; button.&#xA;&#xA;@version 1.97 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_766765_10705"/>
            <generalization xmi:id="_10_5_622020d_1132928324062_517346_18285" isSubstitutable="true" general="_9_5_f720368_1110473546784_713673_10613"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324062_608399_18284" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_766765_10705" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_274698_24103" name="AccessibleJButton" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317863_90050_12381" body="This class implements accessibility support for the&#xA;&lt;code>JButton&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to button user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_274698_24103"/>
              <generalization xmi:id="_10_5_622020d_1132928324062_334781_18286" isSubstitutable="true" general="_9_5_f720368_1110473548409_709197_24039"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_839545_10783" name="JTextPane">
            <ownedComment xmi:id="_10_5_622020d_1132928318133_163270_12546" body="A text component that can be marked up with attributes that are&#xA;represented graphically.&#xA;You can find how-to information and examples of using text panes in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/text.html&quot;>Using Text Components&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;This component models paragraphs&#xA;that are composed of runs of character level attributes.  Each&#xA;paragraph may have a logical style attached to it which contains&#xA;the default attributes to use if not overridden by attributes set&#xA;on the paragraph or character run.  Components and images may&#xA;be embedded in the flow of text.&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Newlines&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;For a discussion on how newlines are handled, see&#xA;&lt;a href=&quot;text/DefaultEditorKit.html&quot;>DefaultEditorKit&lt;/a>.&#xA;&lt;/dl>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A text component that can be marked up with attributes that are graphically represented.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.90 12/19/03&#xA;@see javax.swing.text.StyledEditorKit&#xA;" annotatedElement="_9_5_f720368_1110473546799_839545_10783"/>
            <generalization xmi:id="_10_5_622020d_1132928324142_145220_18568" isSubstitutable="true" general="_9_5_f720368_1110473546799_766828_10725"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_29762_10769" name="JSlider" clientDependency="_10_5_622020d_1132928324122_849903_18478 _10_5_622020d_1132928324132_199813_18479">
            <ownedComment xmi:id="_10_5_622020d_1132928318113_100470_12505" body="A component that lets the user graphically select a value by sliding&#xA;a knob within a bounded interval. The slider can show both&#xA;major tick marks and minor tick marks between them. The number of&#xA;values between the tick marks is controlled with&#xA;&lt;code>setMajorTickSpacing&lt;/code> and &lt;code>setMinorTickSpacing&lt;/code>.&#xA;&lt;p>&#xA;For further information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/slider.html&quot;>How to Use Sliders&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that supports selecting a integer value from a range.&#xA;&#xA;@version 1.105 05/12/04&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_29762_10769"/>
            <generalization xmi:id="_10_5_622020d_1132928324132_587172_18480" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_849903_18478" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_29762_10769" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_199813_18479" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_29762_10769" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_453044_24274" name="ModelListener" visibility="private" clientDependency="_10_5_622020d_1132928324132_529160_18481 _10_5_622020d_1132928324132_792419_18482">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_853640_12502" body="We pass Change events along to the listeners with the&#xA;the slider (instead of the model itself) as the event source.&#xA;" annotatedElement="_9_5_f720368_1110473548456_453044_24274"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_529160_18481" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_453044_24274" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_792419_18482" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_453044_24274" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_880865_24276" name="AccessibleJSlider" visibility="protected" clientDependency="_10_5_622020d_1132928324132_846423_18483">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_376443_12503" body="This class implements accessibility support for the&#xA;&lt;code>JSlider&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to slider user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_880865_24276"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_939540_18484" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_846423_18483" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548456_880865_24276" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_749520_10657" name="DebugGraphicsObserver" visibility="package" clientDependency="_10_5_622020d_1132928323952_176079_18239">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_56255_12333" body="ImageObserver for DebugGraphics, used for images only.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Dave Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546784_749520_10657"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_176079_18239" name="" supplier="_9_5_f720368_1110473546565_278383_6795" client="_9_5_f720368_1110473546784_749520_10657" contract="_9_5_f720368_1110473546565_278383_6795"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_718388_10627" name="Autoscroller" visibility="package" clientDependency="_10_5_622020d_1132928323912_482158_18219">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_248333_12299" body="Autoscroller is responsible for generating synthetic mouse dragged&#xA;events. It is the responsibility of the Component (or its MouseListeners)&#xA;that receive the events to do the actual scrolling in response to the&#xA;mouse dragged events.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Dave Moore&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_718388_10627"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_482158_18219" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546784_718388_10627" contract="_9_5_f720368_1110473546565_106737_6535"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_552374_10791" name="JTree" clientDependency="_10_5_622020d_1132928324152_669083_18586 _10_5_622020d_1132928324152_899741_18587">
            <ownedComment xmi:id="_10_5_622020d_1132928318183_26585_12565" body="&lt;a name=&quot;jtree_description&quot;>&#xA;A control that displays a set of hierarchical data as an outline.&#xA;You can find task-oriented documentation and examples of using trees in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;A specific node in a tree can be identified either by a&#xA;&lt;code>TreePath&lt;/code> (an object&#xA;that encapsulates a node and all of its ancestors), or by its&#xA;display row, where each row in the display area displays one node.&#xA;An &lt;i>expanded&lt;/i> node is a non-leaf node (as identified by&#xA;&lt;code>TreeModel.isLeaf(node)&lt;/code> returning false) that will displays&#xA;its children when all its ancestors are &lt;i>expanded&lt;/i>.&#xA;A &lt;i>collapsed&lt;/i>&#xA;node is one which hides them. A &lt;i>hidden&lt;/i> node is one which is&#xA;under a collapsed ancestor. All of a &lt;i>viewable&lt;/i> nodes parents&#xA;are expanded, but may or may not be displayed. A &lt;i>displayed&lt;/i> node&#xA;is both viewable and in the display area, where it can be seen.&#xA;&lt;p>&#xA;The following &lt;code>JTree&lt;/code> methods use &quot;visible&quot; to mean &quot;displayed&quot;:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>isRootVisible()&lt;/code>&#xA;&lt;li>&lt;code>setRootVisible()&lt;/code>&#xA;&lt;li>&lt;code>scrollPathToVisible()&lt;/code>&#xA;&lt;li>&lt;code>scrollRowToVisible()&lt;/code>&#xA;&lt;li>&lt;code>getVisibleRowCount()&lt;/code>&#xA;&lt;li>&lt;code>setVisibleRowCount()&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The next group of &lt;code>JTree&lt;/code> methods use &quot;visible&quot; to mean&#xA;&quot;viewable&quot; (under an expanded parent):&#xA;&lt;ul>&#xA;&lt;li>&lt;code>isVisible()&lt;/code>&#xA;&lt;li>&lt;code>makeVisible()&lt;/code>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;If you are interested in knowing when the selection changes implement&#xA;the &lt;code>TreeSelectionListener&lt;/code> interface and add the instance&#xA;using the method &lt;code>addTreeSelectionListener&lt;/code>.&#xA;&lt;code>valueChanged&lt;/code> will be invoked when the&#xA;selection changes, that is if the user clicks twice on the same&#xA;node &lt;code>valueChanged&lt;/code> will only be invoked once.&#xA;&lt;p>&#xA;If you are interested in detecting either double-click events or when&#xA;a user clicks on a node, regardless of whether or not it was selected,&#xA;we recommend you do the following:&#xA;&lt;pre>&#xA;final JTree tree = ...;&#xA;&#xA;MouseListener ml = new MouseAdapter() {&#xA;public void &lt;b>mousePressed&lt;/b>(MouseEvent e) {&#xA;int selRow = tree.getRowForLocation(e.getX(), e.getY());&#xA;TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());&#xA;if(selRow != -1) {&#xA;if(e.getClickCount() == 1) {&#xA;mySingleClick(selRow, selPath);&#xA;}&#xA;else if(e.getClickCount() == 2) {&#xA;myDoubleClick(selRow, selPath);&#xA;}&#xA;}&#xA;}&#xA;};&#xA;tree.addMouseListener(ml);&#xA;&lt;/pre>&#xA;NOTE: This example obtains both the path and row, but you only need to&#xA;get the one you're interested in.&#xA;&lt;p>&#xA;To use &lt;code>JTree&lt;/code> to display compound nodes&#xA;(for example, nodes containing both&#xA;a graphic icon and text), subclass {@link TreeCellRenderer} and use&#xA;{@link #setCellRenderer} to tell the tree to use it. To edit such nodes,&#xA;subclass {@link TreeCellEditor} and use {@link #setCellEditor}.&#xA;&lt;p>&#xA;Like all &lt;code>JComponent&lt;/code> classes, you can use {@link InputMap} and&#xA;{@link ActionMap}&#xA;to associate an {@link Action} object with a {@link KeyStroke}&#xA;and execute the action under specified conditions.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that displays a set of hierarchical data as an outline.&#xA;&#xA;@version 1.176, 07/13/04&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546799_552374_10791"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_735821_18588" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_669083_18586" name="" supplier="_9_5_f720368_1110473546799_139584_10841" client="_9_5_f720368_1110473546799_552374_10791" contract="_9_5_f720368_1110473546799_139584_10841"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_899741_18587" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_552374_10791" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_935627_24369" name="EmptySelectionModel" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_127881_12558" body="&lt;code>EmptySelectionModel&lt;/code> is a &lt;code>TreeSelectionModel&lt;/code>&#xA;that does not allow anything to be selected.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_935627_24369"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_512360_18589" isSubstitutable="true" general="_9_5_f720368_1110473546784_846761_10565"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_793680_24372" name="TreeSelectionRedirector" visibility="protected" clientDependency="_10_5_622020d_1132928324152_739164_18591 _10_5_622020d_1132928324152_364653_18590">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_360286_12559" body="Handles creating a new &lt;code>TreeSelectionEvent&lt;/code> with the&#xA;&lt;code>JTree&lt;/code> as the&#xA;source and passing it off to all the listeners.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_793680_24372"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_364653_18590" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_793680_24372" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_739164_18591" name="" supplier="_9_5_f720368_1110473546753_512408_9907" client="_9_5_f720368_1110473548456_793680_24372" contract="_9_5_f720368_1110473546753_512408_9907"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_602700_24374" name="TreeModelHandler" visibility="protected" clientDependency="_10_5_622020d_1132928324152_77606_18592">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_681196_12560" body="Listens to the model and updates the &lt;code>expandedState&lt;/code>&#xA;accordingly when nodes are removed, or changed.&#xA;" annotatedElement="_9_5_f720368_1110473548456_602700_24374"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_77606_18592" name="" supplier="_9_5_f720368_1110473546753_680224_9903" client="_9_5_f720368_1110473548456_602700_24374" contract="_9_5_f720368_1110473546753_680224_9903"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_352067_24376" name="DynamicUtilTreeNode">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_303887_12561" body="&lt;code>DynamicUtilTreeNode&lt;/code> can wrap&#xA;vectors/hashtables/arrays/strings and&#xA;create the appropriate children tree nodes as necessary. It is&#xA;dynamic in that it will only create the children as necessary.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_352067_24376"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_387324_18593" isSubstitutable="true" general="_9_5_f720368_1110473546784_953911_10557"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_562460_24379" name="AccessibleJTree" visibility="protected" clientDependency="_10_5_622020d_1132928324152_563260_18594 _10_5_622020d_1132928324152_900970_18596 _10_5_622020d_1132928324152_444744_18597 _10_5_622020d_1132928324152_75406_18595">
              <ownedComment xmi:id="_10_5_622020d_1132928318173_269833_12563" body="This class implements accessibility support for the&#xA;&lt;code>JTree&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to tree user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_562460_24379"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_22451_18598" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_563260_18594" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548456_562460_24379" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_75406_18595" name="" supplier="_9_5_f720368_1110473546753_512408_9907" client="_9_5_f720368_1110473548456_562460_24379" contract="_9_5_f720368_1110473546753_512408_9907"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_900970_18596" name="" supplier="_9_5_f720368_1110473546753_680224_9903" client="_9_5_f720368_1110473548456_562460_24379" contract="_9_5_f720368_1110473546753_680224_9903"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_444744_18597" name="" supplier="_9_5_f720368_1110473546753_790074_9899" client="_9_5_f720368_1110473548456_562460_24379" contract="_9_5_f720368_1110473546753_790074_9899"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_365240_24381" name="AccessibleJTreeNode" visibility="protected" clientDependency="_10_5_622020d_1132928324152_735132_18600 _10_5_622020d_1132928324152_801453_18601 _10_5_622020d_1132928324152_143600_18602 _10_5_622020d_1132928324152_318078_18599">
                <ownedComment xmi:id="_10_5_622020d_1132928318143_886323_12562" body="This class implements accessibility support for the&#xA;&lt;code>JTree&lt;/code> child.  It provides an implementation of the&#xA;Java Accessibility API appropriate to tree nodes.&#xA;" annotatedElement="_9_5_f720368_1110473548471_365240_24381"/>
                <generalization xmi:id="_10_5_622020d_1132928324152_635329_18603" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324152_318078_18599" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548471_365240_24381" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324152_735132_18600" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548471_365240_24381" contract="_9_5_f720368_1110473546706_824207_8957"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324152_801453_18601" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548471_365240_24381" contract="_9_5_f720368_1110473546706_797948_8983"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324152_143600_18602" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473548471_365240_24381" contract="_9_5_f720368_1110473546706_522529_8953"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_557031_10853" name="SortingFocusTraversalPolicy">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_622399_12640" body="A FocusTraversalPolicy that determines traversal order by sorting the&#xA;Components of a focus traversal cycle based on a given Comparator. Portions&#xA;of the Component hierarchy that are not visible and displayable will not be&#xA;included.&#xA;&lt;p>&#xA;By default, SortingFocusTraversalPolicy implicitly transfers focus down-&#xA;cycle. That is, during normal focus traversal, the Component&#xA;traversed after a focus cycle root will be the focus-cycle-root's default&#xA;Component to focus. This behavior can be disabled using the&#xA;&lt;code>setImplicitDownCycleTraversal&lt;/code> method.&#xA;&lt;p>&#xA;By default, methods of this class with return a Component only if it is&#xA;visible, displayable, enabled, and focusable. Subclasses can modify this&#xA;behavior by overriding the &lt;code>accept&lt;/code> method.&#xA;&lt;p>&#xA;This policy takes into account &lt;a&#xA;href=&quot;doc-files/FocusSpec.html#FocusTraversalPolicyProviders&quot;>focus traversal&#xA;policy providers&lt;/a>.  When searching for first/last/next/previous Component,&#xA;if a focus traversal policy provider is encountered, its focus traversal&#xA;policy is used to perform the search operation.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.7, 05/05/04&#xA;&#xA;@see java.util.Comparator&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_557031_10853"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_199305_18652" isSubstitutable="true" general="_9_5_f720368_1110473546784_361378_10701"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_463898_10717" name="JComboBox" clientDependency="_10_5_622020d_1132928324072_52926_18304 _10_5_622020d_1132928324072_400220_18306 _10_5_622020d_1132928324072_620120_18307 _10_5_622020d_1132928324072_965912_18305">
            <ownedComment xmi:id="_10_5_622020d_1132928317893_776046_12400" body="A component that combines a button or editable field and a drop-down list.&#xA;The user can select a value from the drop-down list, which appears at the&#xA;user's request. If you make the combo box editable, then the combo box&#xA;includes an editable field into which the user can type a value.&#xA;&#xA;&lt;p>&#xA;For the keyboard keys used by this component in the standard Look and&#xA;Feel (L&amp;F) renditions, see the&#xA;&lt;a href=&quot;doc-files/Key-Index.html#JComboBox&quot;>&lt;code>JComboBox&lt;/code> key assignments&lt;/a>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html&quot;>How to Use Combo Boxes&lt;/a>&#xA;in &lt;a href=&quot;http://java.sun.com/Series/Tutorial/index.html&quot;>&lt;em>The Java Tutorial&lt;/em>&lt;/a>&#xA;for further information.&#xA;&lt;p>&#xA;@see ComboBoxModel&#xA;@see DefaultComboBoxModel&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A combination of a text field and a drop-down list.&#xA;&#xA;@version 1.126 05/05/04&#xA;@author Arnaud Weber&#xA;@author Mark Davidson&#xA;" annotatedElement="_9_5_f720368_1110473546784_463898_10717"/>
            <generalization xmi:id="_10_5_622020d_1132928324072_77807_18308" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_52926_18304" name="" supplier="_9_5_f720368_1110473546581_556143_7053" client="_9_5_f720368_1110473546784_463898_10717" contract="_9_5_f720368_1110473546581_556143_7053"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_965912_18305" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_9_5_f720368_1110473546784_463898_10717" contract="_9_5_f720368_1110473546753_268063_9861"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_400220_18306" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546784_463898_10717" contract="_9_5_f720368_1110473546565_106737_6535"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_620120_18307" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_463898_10717" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548424_8714_24119" name="KeySelectionManager" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_409412_12395" body="The interface that defines a &lt;code>KeySelectionManager&lt;/code>.&#xA;To qualify as a &lt;code>KeySelectionManager&lt;/code>,&#xA;the class needs to implement the method&#xA;that identifies the list index given a character and the&#xA;combo box data model.&#xA;" annotatedElement="_9_5_f720368_1110473548424_8714_24119"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_693891_24121" name="DefaultKeySelectionManager" visibility="package" clientDependency="_10_5_622020d_1132928324072_638027_18310 _10_5_622020d_1132928324072_925737_18309">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_925737_18309" name="" supplier="_9_5_f720368_1110473548424_8714_24119" client="_9_5_f720368_1110473548424_693891_24121" contract="_9_5_f720368_1110473548424_8714_24119"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_638027_18310" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_693891_24121" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_449544_24122" name="AccessibleJComboBox" visibility="protected" clientDependency="_10_5_622020d_1132928324072_494772_18311 _10_5_622020d_1132928324072_628918_18312">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_948400_12398" body="This class implements accessibility support for the&#xA;&lt;code>JComboBox&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to Combo Box user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_449544_24122"/>
              <generalization xmi:id="_10_5_622020d_1132928324072_631745_18313" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_494772_18311" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473548424_449544_24122" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324072_628918_18312" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548424_449544_24122" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_978316_24124" name="AccessibleEditor" visibility="private" clientDependency="_10_5_622020d_1132928324072_977179_18316">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324072_977179_18316" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548424_978316_24124" contract="_9_5_f720368_1110473546706_827345_8951"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_631491_24125" name="EditorAccessibleContext" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928324072_89891_18317" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317893_753908_12396" name="AccessibleJComboBoxPopupMenuListener" visibility="private" clientDependency="_10_5_622020d_1132928324072_331832_18314">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324072_331832_18314" name="" supplier="_9_5_f720368_1110473546753_519706_9885" client="_10_5_622020d_1132928317893_753908_12396" contract="_9_5_f720368_1110473546753_519706_9885"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317893_246322_12397" name="AccessibleJComboBoxListSelectionListener" visibility="private" clientDependency="_10_5_622020d_1132928324072_791761_18315">
                <interfaceRealization xmi:id="_10_5_622020d_1132928324072_791761_18315" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_10_5_622020d_1132928317893_246322_12397" contract="_9_5_f720368_1110473546753_43790_9865"/>
              </nestedClassifier>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_416422_10683" name="DelegatingDefaultFocusManager" visibility="package" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_110582_12359" body="Provides a javax.swing.DefaultFocusManager view onto an arbitrary&#xA;java.awt.KeyboardFocusManager. We subclass DefaultFocusManager instead of&#xA;FocusManager because it seems more backward-compatible. It is likely that&#xA;some pre-1.4 code assumes that the object returned by&#xA;FocusManager.getCurrentManager is an instance of DefaultFocusManager unless&#xA;set explicitly.&#xA;" annotatedElement="_9_5_f720368_1110473546784_416422_10683"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_384661_18269" isSubstitutable="true" general="_9_5_f720368_1110473546784_562971_10669"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_869308_10869" name="SwingConstants" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318264_391430_12659" body="A collection of constants generally used for positioning and orienting&#xA;components on the screen.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Jeff Dinkins&#xA;@author Ralph Kar (orientation support)&#xA;" annotatedElement="_9_5_f720368_1110473546799_869308_10869"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_533208_10765" name="JScrollPane" clientDependency="_10_5_622020d_1132928324122_406077_18467 _10_5_622020d_1132928324122_23444_18466">
            <ownedComment xmi:id="_10_5_622020d_1132928318103_741636_12498" body="Provides a scrollable view of a lightweight component.&#xA;A &lt;code>JScrollPane&lt;/code> manages a viewport, optional&#xA;vertical and horizontal scroll bars, and optional row and&#xA;column heading viewports.&#xA;You can find task-oriented documentation of &lt;code>JScrollPane&lt;/code> in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/scrollpane.html&quot;>How to Use Scroll Panes&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.  Note that&#xA;&lt;code>JScrollPane&lt;/code> does not support heavyweight components.&#xA;&lt;p>&#xA;&lt;TABLE ALIGN=&quot;RIGHT&quot; BORDER=&quot;0&quot; SUMMARY=&quot;layout&quot;>&#xA;&lt;TR>&#xA;&lt;TD ALIGN=&quot;CENTER&quot;>&#xA;&lt;P ALIGN=&quot;CENTER&quot;>&lt;IMG SRC=&quot;doc-files/JScrollPane-1.gif&quot;&#xA;alt=&quot;The following text describes this image.&quot;&#xA;WIDTH=&quot;256&quot; HEIGHT=&quot;248&quot; ALIGN=&quot;BOTTOM&quot; BORDER=&quot;0&quot;>&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;The &lt;code>JViewport&lt;/code> provides a window,&#xA;or &quot;viewport&quot; onto a data&#xA;source -- for example, a text file. That data source is the&#xA;&quot;scrollable client&quot; (aka data model) displayed by the&#xA;&lt;code>JViewport&lt;/code> view.&#xA;A &lt;code>JScrollPane&lt;/code> basically consists of &lt;code>JScrollBar&lt;/code>s,&#xA;a &lt;code>JViewport&lt;/code>, and the wiring between them,&#xA;as shown in the diagram at right.&#xA;&lt;p>&#xA;In addition to the scroll bars and viewport,&#xA;a &lt;code>JScrollPane&lt;/code> can have a&#xA;column header and a row header. Each of these is a&#xA;&lt;code>JViewport&lt;/code> object that&#xA;you specify with &lt;code>setRowHeaderView&lt;/code>,&#xA;and &lt;code>setColumnHeaderView&lt;/code>.&#xA;The column header viewport automatically scrolls left and right, tracking&#xA;the left-right scrolling of the main viewport.&#xA;(It never scrolls vertically, however.)&#xA;The row header acts in a similar fashion.&#xA;&lt;p>&#xA;By default, the corners are empty.&#xA;You can put a component into a corner using&#xA;&lt;code>setCorner&lt;/code>,&#xA;in case you there is some function or decoration you&#xA;would like to add to the scroll pane. The size of corner components is&#xA;entirely determined by the size of the headers and scroll bars that&#xA;surround them.&#xA;&lt;p>&#xA;To add a border around the main viewport,&#xA;you can use &lt;code>setViewportBorder&lt;/code>.&#xA;(Of course, you can also add a border around the whole scroll pane using&#xA;&lt;code>setBorder&lt;/code>.)&#xA;&lt;p>&#xA;A common operation to want to do is to set the background color that will&#xA;be used if the main viewport view is smaller than the viewport, or is&#xA;not opaque. This can be accomplished by setting the background color&#xA;of the viewport, via &lt;code>scrollPane.getViewport().setBackground()&lt;/code>.&#xA;The reason for setting the color of the viewport and not the scrollpane&#xA;is that by default &lt;code>JViewport&lt;/code> is opaque&#xA;which, among other things, means it will completely fill&#xA;in its background using its background color.  Therefore when&#xA;&lt;code>JScrollPane&lt;/code> draws its background the viewport will&#xA;usually draw over it.&#xA;&lt;p>&#xA;By default &lt;code>JScrollPane&lt;/code> uses &lt;code>ScrollPaneLayout&lt;/code>&#xA;to handle the layout of its child Components. &lt;code>ScrollPaneLayout&lt;/code>&#xA;determines the size to make the viewport view in one of two ways:&#xA;&lt;ol>&#xA;&lt;li>If the view implements &lt;code>Scrollable&lt;/code>&#xA;a combination of &lt;code>getPreferredScrollableViewportSize&lt;/code>,&#xA;&lt;code>getScrollableTracksViewportWidth&lt;/code> and&#xA;&lt;code>getScrollableTracksViewportHeight&lt;/code>is used, otherwise&#xA;&lt;li>&lt;code>getPreferredSize&lt;/code> is used.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JScrollBar&#xA;@see JViewport&#xA;@see ScrollPaneLayout&#xA;@see Scrollable&#xA;@see Component#getPreferredSize&#xA;@see #setViewportView&#xA;@see #setRowHeaderView&#xA;@see #setColumnHeaderView&#xA;@see #setCorner&#xA;@see #setViewportBorder&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getViewport&#xA;description: A specialized container that manages a viewport, optional scrollbars and headers&#xA;&#xA;@version 1.100 @(#)JScrollPane.java&#x9;1.100&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_533208_10765"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_924356_18468" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_23444_18466" name="" supplier="_9_5_f720368_1110473546799_950352_10843" client="_9_5_f720368_1110473546799_533208_10765" contract="_9_5_f720368_1110473546799_950352_10843"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_406077_18467" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_533208_10765" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_38825_24266" name="ScrollBar" visibility="protected" clientDependency="_10_5_622020d_1132928324122_955902_18469">
              <ownedComment xmi:id="_10_5_622020d_1132928318083_760938_12495" body="By default &lt;code>JScrollPane&lt;/code> creates scrollbars&#xA;that are instances&#xA;of this class.  &lt;code>Scrollbar&lt;/code> overrides the&#xA;&lt;code>getUnitIncrement&lt;/code> and &lt;code>getBlockIncrement&lt;/code>&#xA;methods so that, if the viewport's view is a &lt;code>Scrollable&lt;/code>,&#xA;the view is asked to compute these values. Unless&#xA;the unit/block increment have been explicitly set.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see Scrollable&#xA;@see JScrollPane#createVerticalScrollBar&#xA;@see JScrollPane#createHorizontalScrollBar&#xA;" annotatedElement="_9_5_f720368_1110473548456_38825_24266"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_542635_18470" isSubstitutable="true" general="_9_5_f720368_1110473546799_740457_10763"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_955902_18469" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548456_38825_24266" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_102561_24268" name="AccessibleJScrollPane" visibility="protected" clientDependency="_10_5_622020d_1132928324122_402204_18471 _10_5_622020d_1132928324122_544002_18472">
              <ownedComment xmi:id="_10_5_622020d_1132928318083_62350_12496" body="This class implements accessibility support for the&#xA;&lt;code>JScrollPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to scroll pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_102561_24268"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_298651_18473" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_402204_18471" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_102561_24268" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_544002_18472" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548456_102561_24268" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_301877_10633" name="Box" clientDependency="_10_5_622020d_1132928323912_660012_18220">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_265917_12308" body="A lightweight container&#xA;that uses a BoxLayout object as its layout manager.&#xA;Box provides several class methods&#xA;that are useful for containers using BoxLayout --&#xA;even non-Box containers.&#xA;&#xA;&lt;p>&#xA;The &lt;code>Box&lt;/code> class can create several kinds&#xA;of invisible components&#xA;that affect layout:&#xA;glue, struts, and rigid areas.&#xA;If all the components your &lt;code>Box&lt;/code> contains&#xA;have a fixed size,&#xA;you might want to use a glue component&#xA;(returned by &lt;code>createGlue&lt;/code>)&#xA;to control the components' positions.&#xA;If you need a fixed amount of space between two components,&#xA;try using a strut&#xA;(&lt;code>createHorizontalStrut&lt;/code> or &lt;code>createVerticalStrut&lt;/code>).&#xA;If you need an invisible component&#xA;that always takes up the same amount of space,&#xA;get it by invoking &lt;code>createRigidArea&lt;/code>.&#xA;&lt;p>&#xA;If you are implementing a &lt;code>BoxLayout&lt;/code> you&#xA;can find further information and examples in&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/layout/box.html&quot;>How to Use BoxLayout&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see BoxLayout&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.43 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_301877_10633"/>
            <generalization xmi:id="_10_5_622020d_1132928323912_202767_18221" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_660012_18220" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_301877_10633" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_998035_24053" name="Filler" clientDependency="_10_5_622020d_1132928323922_296912_18222">
              <ownedComment xmi:id="_10_5_622020d_1132928317823_359485_12305" body="An implementation of a lightweight component that participates in&#xA;layout but has no view.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548409_998035_24053"/>
              <generalization xmi:id="_10_5_622020d_1132928323922_916054_18223" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323922_296912_18222" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548409_998035_24053" contract="_9_5_f720368_1110473546706_827345_8951"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_168830_24056" name="AccessibleBoxFiller" visibility="protected">
                <ownedComment xmi:id="_10_5_622020d_1132928317823_773108_12304" body="This class implements accessibility support for the&#xA;&lt;code>Box.Filler&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473548409_168830_24056"/>
                <generalization xmi:id="_10_5_622020d_1132928537058_850496_19006" isSubstitutable="true" general="_9_5_f720368_1110473547378_128539_16940"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473273815_160818_4524" name="AccessibleBox" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317823_307464_12306" body="This class implements accessibility support for the&#xA;&lt;code>Box&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473273815_160818_4524"/>
              <generalization xmi:id="_10_5_622020d_1132928537068_465530_19007" isSubstitutable="true" general="_9_5_f720368_1110473547378_351073_16957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_826653_10803" name="LayoutFocusTraversalPolicy" clientDependency="_10_5_622020d_1132928324152_929260_18616">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_287456_12581" body="A SortingFocusTraversalPolicy which sorts Components based on their size,&#xA;position, and orientation. Based on their size and position, Components are&#xA;roughly categorized into rows and columns. For a Container with horizontal&#xA;orientation, columns run left-to-right or right-to-left, and rows run top-&#xA;to-bottom. For a Container with vertical orientation, columns run top-to-&#xA;bottom and rows run left-to-right or right-to-left. See&#xA;&lt;code>ComponentOrientation&lt;/code> for more information. All columns in a&#xA;row are fully traversed before proceeding to the next row.&#xA;&#xA;@version 1.10, 12/19/03&#xA;@author David Mendenhall&#xA;&#xA;@see java.awt.ComponentOrientation&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_826653_10803"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_764944_18617" isSubstitutable="true" general="_9_5_f720368_1110473546799_557031_10853"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_929260_18616" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_826653_10803" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_233196_10863" name="SpinnerNumberModel" clientDependency="_10_5_622020d_1132928324172_280411_18658">
            <ownedComment xmi:id="_10_5_622020d_1132928318224_104946_12649" body="A &lt;code>SpinnerModel&lt;/code> for sequences of numbers.&#xA;The upper and lower bounds of the sequence are defined&#xA;by properties called &lt;code>minimum&lt;/code> and&#xA;&lt;code>maximum&lt;/code>. The size of the increase or decrease&#xA;computed by the &lt;code>nextValue&lt;/code> and&#xA;&lt;code>previousValue&lt;/code> methods is defined by a property called&#xA;&lt;code>stepSize&lt;/code>.  The &lt;code>minimum&lt;/code> and&#xA;&lt;code>maximum&lt;/code> properties can be &lt;code>null&lt;/code>&#xA;to indicate that the sequence has no lower or upper limit.&#xA;All of the properties in this class are defined in terms of two&#xA;generic types: &lt;code>Number&lt;/code> and&#xA;&lt;code>Comparable&lt;/code>, so that all Java numeric types&#xA;may be accommodated.  Internally, there's only support for&#xA;values whose type is one of the primitive &lt;code>Number&lt;/code> types:&#xA;&lt;code>Double&lt;/code>, &lt;code>Float&lt;/code>, &lt;code>Long&lt;/code>,&#xA;&lt;code>Integer&lt;/code>, &lt;code>Short&lt;/code>, or &lt;code>Byte&lt;/code>.&#xA;&lt;p>&#xA;To create a &lt;code>SpinnerNumberModel&lt;/code> for the integer&#xA;range zero to one hundred, with&#xA;fifty as the initial value, one could write:&#xA;&lt;pre>&#xA;Integer value = new Integer(50);&#xA;Integer min = new Integer(0);&#xA;Integer max = new Integer(100);&#xA;Integer step = new Integer(1);&#xA;SpinnerNumberModel model = new SpinnerNumberModel(value, min, max, step);&#xA;int fifty = model.getNumber().intValue();&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Spinners for integers and doubles are common, so special constructors&#xA;for these cases are provided.  For example to create the model in&#xA;the previous example, one could also write:&#xA;&lt;pre>&#xA;SpinnerNumberModel model = new SpinnerNumberModel(50, 0, 100, 1);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;This model inherits a &lt;code>ChangeListener&lt;/code>.&#xA;The &lt;code>ChangeListeners&lt;/code> are notified&#xA;whenever the model's &lt;code>value&lt;/code>, &lt;code>stepSize&lt;/code>,&#xA;&lt;code>minimum&lt;/code>, or &lt;code>maximum&lt;/code> properties changes.&#xA;&#xA;@see JSpinner&#xA;@see SpinnerModel&#xA;@see AbstractSpinnerModel&#xA;@see SpinnerListModel&#xA;@see SpinnerDateModel&#xA;&#xA;@version 1.12 05/12/04&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_233196_10863"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_354986_18659" isSubstitutable="true" general="_9_5_f720368_1110473546784_128706_10619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_280411_18658" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_233196_10863" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_658534_10723" name="JDialog" clientDependency="_10_5_622020d_1132928324092_239870_18331 _10_5_622020d_1132928324092_275304_18332 _10_5_622020d_1132928324092_731939_18333">
            <ownedComment xmi:id="_10_5_622020d_1132928317903_754487_12413" body="The main class for creating a dialog window. You can use this class&#xA;to create a custom dialog, or invoke the many class methods&#xA;in {@link JOptionPane} to create a variety of standard dialogs.&#xA;For information about creating dialogs, see&#xA;&lt;em>The Java Tutorial&lt;/em> section&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html&quot;>How&#xA;to Make Dialogs&lt;/a>.&#xA;&#xA;&lt;p>&#xA;&#xA;The &lt;code>JDialog&lt;/code> component contains a &lt;code>JRootPane&lt;/code>&#xA;as its only child.&#xA;The &lt;code>contentPane&lt;/code> should be the parent of any children of the&#xA;&lt;code>JDialog&lt;/code>.&#xA;As a conveniance &lt;code>add&lt;/code> and its variants, &lt;code>remove&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> have been overridden to forward to the&#xA;&lt;code>contentPane&lt;/code> as necessary. This means you can write:&#xA;&lt;pre>&#xA;dialog.add(child);&#xA;&lt;/pre>&#xA;And the child will be added to the contentPane.&#xA;The &lt;code>contentPane&lt;/code> is always non-&lt;code>null&lt;/code>.&#xA;Attempting to set it to &lt;code>null&lt;/code> generates an exception.&#xA;The default &lt;code>contentPane&lt;/code> has a &lt;code>BorderLayout&lt;/code>&#xA;manager set on it.&#xA;Refer to {@link javax.swing.RootPaneContainer}&#xA;for details on adding, removing and setting the &lt;code>LayoutManager&lt;/code>&#xA;of a &lt;code>JDialog&lt;/code>.&#xA;&lt;p>&#xA;Please see the &lt;code>JRootPane&lt;/code> documentation for a complete&#xA;description of the &lt;code>contentPane&lt;/code>, &lt;code>glassPane&lt;/code>,&#xA;and &lt;code>layeredPane&lt;/code> components.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>JDialog&lt;/code>&#xA;on a different screen device than its owner.  See {@link java.awt.Frame} for&#xA;more information.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JOptionPane&#xA;@see JRootPane&#xA;@see javax.swing.RootPaneContainer&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getContentPane&#xA;description: A toplevel window for creating dialog boxes.&#xA;&#xA;@version 1.80 12/19/03&#xA;@author David Kloba&#xA;@author James Gosling&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_658534_10723"/>
            <generalization xmi:id="_10_5_622020d_1132928324092_366811_18334" isSubstitutable="true" general="_9_5_f720368_1110473546581_788523_6987"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324092_239870_18331" name="" supplier="_9_5_f720368_1110473546799_705759_10893" client="_9_5_f720368_1110473546784_658534_10723" contract="_9_5_f720368_1110473546799_705759_10893"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324092_275304_18332" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_658534_10723" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324092_731939_18333" name="" supplier="_9_5_f720368_1110473546799_410848_10839" client="_9_5_f720368_1110473546784_658534_10723" contract="_9_5_f720368_1110473546799_410848_10839"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_398312_24145" name="AccessibleJDialog" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317903_404995_12411" body="This class implements accessibility support for the&#xA;&lt;code>JDialog&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to dialog user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548424_398312_24145"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_897816_18335" isSubstitutable="true" general="_9_5_f720368_1110473547378_132383_16976"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_957974_10885" name="UIDefaults">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_931579_12692" body="A table of defaults for Swing components.  Applications can set/get&#xA;default values via the &lt;code>UIManager&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see UIManager&#xA;@version 1.58 05/05/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_957974_10885"/>
            <generalization xmi:id="_10_5_622020d_1132928324182_161702_18703" isSubstitutable="true" general="_10_5_622020d_1132928322620_276390_15076"/>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547143_528360_15205" name="LazyValue" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_829097_12687" body="This class enables one to store an entry in the defaults&#xA;table that isn't constructed until the first time it's&#xA;looked up with one of the &lt;code>getXXX(key)&lt;/code> methods.&#xA;Lazy values are useful for defaults that are expensive&#xA;to construct or are seldom retrieved.  The first time&#xA;a &lt;code>LazyValue&lt;/code> is retrieved its &quot;real value&quot; is computed&#xA;by calling &lt;code>LazyValue.createValue()&lt;/code> and the real&#xA;value is used to replace the &lt;code>LazyValue&lt;/code> in the&#xA;&lt;code>UIDefaults&lt;/code>&#xA;table.  Subsequent lookups for the same key return&#xA;the real value.  Here's an example of a &lt;code>LazyValue&lt;/code>&#xA;that constructs a &lt;code>Border&lt;/code>:&#xA;&lt;pre>&#xA;Object borderLazyValue = new UIDefaults.LazyValue() {&#xA;public Object createValue(UIDefaults table) {&#xA;return new BorderFactory.createLoweredBevelBorder();&#xA;}&#xA;};&#xA;&#xA;uiDefaultsTable.put(&quot;MyBorder&quot;, borderLazyValue);&#xA;&lt;/pre>&#xA;&#xA;@see UIDefaults#get&#xA;" annotatedElement="_9_5_f720368_1110473547143_528360_15205"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473547221_287093_16067" name="ActiveValue" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_278448_12688" body="This class enables one to store an entry in the defaults&#xA;table that's constructed each time it's looked up with one of&#xA;the &lt;code>getXXX(key)&lt;/code> methods. Here's an example of&#xA;an &lt;code>ActiveValue&lt;/code> that constructs a&#xA;&lt;code>DefaultListCellRenderer&lt;/code>:&#xA;&lt;pre>&#xA;Object cellRendererActiveValue = new UIDefaults.ActiveValue() {&#xA;public Object createValue(UIDefaults table) {&#xA;return new DefaultListCellRenderer();&#xA;}&#xA;};&#xA;&#xA;uiDefaultsTable.put(&quot;MyRenderer&quot;, cellRendererActiveValue);&#xA;&lt;/pre>&#xA;&#xA;@see UIDefaults#get&#xA;" annotatedElement="_9_5_f720368_1110473547221_287093_16067"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_158086_24527" name="ProxyLazyValue" clientDependency="_10_5_622020d_1132928324182_73234_18704">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_26275_12689" body="This class provides an implementation of &lt;code>LazyValue&lt;/code>&#xA;which can be&#xA;used to delay loading of the Class for the instance to be created.&#xA;It also avoids creation of an anonymous inner class for the&#xA;&lt;code>LazyValue&lt;/code>&#xA;subclass.  Both of these improve performance at the time that a&#xA;a Look and Feel is loaded, at the cost of a slight performance&#xA;reduction the first time &lt;code>createValue&lt;/code> is called&#xA;(since Reflection APIs are used).&#xA;" annotatedElement="_9_5_f720368_1110473548487_158086_24527"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_73234_18704" name="" supplier="_9_5_f720368_1110473547143_528360_15205" client="_9_5_f720368_1110473548487_158086_24527" contract="_9_5_f720368_1110473547143_528360_15205"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_45872_24530" name="LazyInputMap" clientDependency="_10_5_622020d_1132928324182_953558_18705">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_191045_12690" body="&lt;code>LazyInputMap&lt;/code> will create a &lt;code>InputMap&lt;/code>&#xA;in its &lt;code>createValue&lt;/code>&#xA;method. The bindings are passed in in the constructor.&#xA;The bindings are an array with&#xA;the even number entries being string &lt;code>KeyStrokes&lt;/code>&#xA;(eg &quot;alt SPACE&quot;) and&#xA;the odd number entries being the value to use in the&#xA;&lt;code>InputMap&lt;/code> (and the key in the &lt;code>ActionMap&lt;/code>).&#xA;" annotatedElement="_9_5_f720368_1110473548487_45872_24530"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_953558_18705" name="" supplier="_9_5_f720368_1110473547143_528360_15205" client="_9_5_f720368_1110473548487_45872_24530" contract="_9_5_f720368_1110473547143_528360_15205"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_447744_10795" name="JWindow" clientDependency="_10_5_622020d_1132928324152_380600_18609 _10_5_622020d_1132928324152_39276_18610">
            <ownedComment xmi:id="_10_5_622020d_1132928318183_911055_12572" body="A &lt;code>JWindow&lt;/code> is a container that can be displayed anywhere on the&#xA;user's desktop. It does not have the title bar, window-management buttons,&#xA;or other trimmings associated with a &lt;code>JFrame&lt;/code>, but it is still a&#xA;&quot;first-class citizen&quot; of the user's desktop, and can exist anywhere&#xA;on it.&#xA;&lt;p>&#xA;The &lt;code>JWindow&lt;/code> component contains a &lt;code>JRootPane&lt;/code>&#xA;as its only child.  The &lt;code>contentPane&lt;/code> should be the parent&#xA;of any children of the &lt;code>JWindow&lt;/code>.&#xA;As a conveniance &lt;code>add&lt;/code> and its variants, &lt;code>remove&lt;/code> and&#xA;&lt;code>setLayout&lt;/code> have been overridden to forward to the&#xA;&lt;code>contentPane&lt;/code> as necessary. This means you can write:&#xA;&lt;pre>&#xA;window.add(child);&#xA;&lt;/pre>&#xA;And the child will be added to the contentPane.&#xA;The &lt;code>contentPane&lt;/code> will always be non-&lt;code>null&lt;/code>.&#xA;Attempting to set it to &lt;code>null&lt;/code> will cause the &lt;code>JWindow&lt;/code>&#xA;to throw an exception. The default &lt;code>contentPane&lt;/code> will have a&#xA;&lt;code>BorderLayout&lt;/code> manager set on it.&#xA;Refer to {@link javax.swing.RootPaneContainer}&#xA;for details on adding, removing and setting the &lt;code>LayoutManager&lt;/code>&#xA;of a &lt;code>JWindow&lt;/code>.&#xA;&lt;p>&#xA;Please see the {@link JRootPane} documentation for a complete description of&#xA;the &lt;code>contentPane&lt;/code>, &lt;code>glassPane&lt;/code>, and&#xA;&lt;code>layeredPane&lt;/code> components.&#xA;&lt;p>&#xA;In a multi-screen environment, you can create a &lt;code>JWindow&lt;/code>&#xA;on a different screen device.  See {@link java.awt.Window} for more&#xA;information.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JRootPane&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;attribute: containerDelegate getContentPane&#xA;description: A toplevel window which has no system border or controls.&#xA;&#xA;@version 1.60 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546799_447744_10795"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_339837_18611" isSubstitutable="true" general="_9_5_f720368_1110473546596_890326_7145"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_380600_18609" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_447744_10795" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_39276_18610" name="" supplier="_9_5_f720368_1110473546799_410848_10839" client="_9_5_f720368_1110473546799_447744_10795" contract="_9_5_f720368_1110473546799_410848_10839"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_773950_24389" name="AccessibleJWindow" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318183_274059_12570" body="This class implements accessibility support for the&#xA;&lt;code>JWindow&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to window user-interface&#xA;elements.&#xA;" annotatedElement="_9_5_f720368_1110473548471_773950_24389"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_912669_18612" isSubstitutable="true" general="_9_5_f720368_1110473547424_716093_17151"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_478307_10859" name="SpinnerListModel" clientDependency="_10_5_622020d_1132928324172_799619_18656">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_523618_12645" body="A simple implementation of &lt;code>SpinnerModel&lt;/code> whose&#xA;values are defined by an array or a &lt;code>List&lt;/code>.&#xA;For example to create a model defined by&#xA;an array of the names of the days of the week:&#xA;&lt;pre>&#xA;String[] days = new DateFormatSymbols().getWeekdays();&#xA;SpinnerModel model = new SpinnerListModel(Arrays.asList(days).subList(1, 8));&#xA;&lt;/pre>&#xA;This class only stores a reference to the array or &lt;code>List&lt;/code>&#xA;so if an element of the underlying sequence changes, it's up&#xA;to the application to notify the &lt;code>ChangeListeners&lt;/code> by calling&#xA;&lt;code>fireStateChanged&lt;/code>.&#xA;&lt;p>&#xA;This model inherits a &lt;code>ChangeListener&lt;/code>.&#xA;The &lt;code>ChangeListener&lt;/code>s are notified whenever the&#xA;model's &lt;code>value&lt;/code> or &lt;code>list&lt;/code> properties changes.&#xA;&#xA;@see JSpinner&#xA;@see SpinnerModel&#xA;@see AbstractSpinnerModel&#xA;@see SpinnerNumberModel&#xA;@see SpinnerDateModel&#xA;&#xA;@version 1.11 05/05/04&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_478307_10859"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_741007_18657" isSubstitutable="true" general="_9_5_f720368_1110473546784_128706_10619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_799619_18656" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_478307_10859" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_700777_10787" name="JToolBar" clientDependency="_10_5_622020d_1132928324142_413564_18574 _10_5_622020d_1132928324152_907632_18575">
            <ownedComment xmi:id="_10_5_622020d_1132928318143_173027_12554" body="&lt;code>JToolBar&lt;/code> provides a component that is useful for&#xA;displaying commonly used &lt;code>Action&lt;/code>s or controls.&#xA;For examples and information on using tool bars see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/toolbar.html&quot;>How to Use Tool Bars&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;&lt;p>&#xA;With most look and feels,&#xA;the user can drag out a tool bar into a separate window&#xA;(unless the &lt;code>floatable&lt;/code> property is set to &lt;code>false&lt;/code>).&#xA;For drag-out to work correctly, it is recommended that you add&#xA;&lt;code>JToolBar&lt;/code> instances to one of the four &quot;sides&quot; of a&#xA;container whose layout manager is a &lt;code>BorderLayout&lt;/code>,&#xA;and do not add children to any of the other four &quot;sides&quot;.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A component which displays commonly used controls or Actions.&#xA;&#xA;@version 1.108 02/26/04&#xA;@author Georges Saab&#xA;@author Jeff Shapiro&#xA;@see Action&#xA;" annotatedElement="_9_5_f720368_1110473546799_700777_10787"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_566462_18576" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324142_413564_18574" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_700777_10787" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_907632_18575" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_700777_10787" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_75828_24359" name="Separator">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_411052_12551" body="A toolbar-specific separator. An object with dimension but&#xA;no contents used to divide buttons on a tool bar into groups.&#xA;" annotatedElement="_9_5_f720368_1110473548456_75828_24359"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_323575_18577" isSubstitutable="true" general="_9_5_f720368_1110473546799_896247_10767"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_969238_24362" name="DefaultToolBarLayout" visibility="private" clientDependency="_10_5_622020d_1132928324152_460635_18580 _10_5_622020d_1132928324152_642403_18579 _10_5_622020d_1132928324152_299280_18581 _10_5_622020d_1132928324152_488910_18578">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_488910_18578" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473548456_969238_24362" contract="_9_5_f720368_1110473546581_384048_7067"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_642403_18579" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_969238_24362" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_460635_18580" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548456_969238_24362" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_299280_18581" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548456_969238_24362" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_863093_24363" name="AccessibleJToolBar" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318143_485379_12552" body="This class implements accessibility support for the&#xA;&lt;code>JToolBar&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to toolbar user-interface elements.&#xA;" annotatedElement="_9_5_f720368_1110473548456_863093_24363"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_835622_18582" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_602619_10785" name="JToggleButton" clientDependency="_10_5_622020d_1132928324142_261388_18569">
            <ownedComment xmi:id="_10_5_622020d_1132928318143_962719_12550" body="An implementation of a two-state button.&#xA;The &lt;code>JRadioButton&lt;/code> and &lt;code>JCheckBox&lt;/code> classes&#xA;are subclasses of this class.&#xA;For information on using them see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html&quot;>How to Use Buttons, Check Boxes, and Radio Buttons&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: An implementation of a two-state button.&#xA;&#xA;@see JRadioButton&#xA;@see JCheckBox&#xA;@version 1.59 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546799_602619_10785"/>
            <generalization xmi:id="_10_5_622020d_1132928324142_506519_18570" isSubstitutable="true" general="_9_5_f720368_1110473546784_713673_10613"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324142_261388_18569" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_602619_10785" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_758052_24353" name="ToggleButtonModel">
              <ownedComment xmi:id="_10_5_622020d_1132928318133_882961_12547" body="The ToggleButton model&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_758052_24353"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_250251_18571" isSubstitutable="true" general="_9_5_f720368_1110473546784_134491_10661"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_973285_24356" name="AccessibleJToggleButton" visibility="protected" clientDependency="_10_5_622020d_1132928324142_920063_18572">
              <ownedComment xmi:id="_10_5_622020d_1132928318133_499932_12548" body="This class implements accessibility support for the&#xA;&lt;code>JToggleButton&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to toggle button user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_973285_24356"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_700335_18573" isSubstitutable="true" general="_9_5_f720368_1110473548409_709197_24039"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_920063_18572" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473548456_973285_24356" contract="_9_5_f720368_1110473546565_919591_6581"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_373547_10671" name="LegacyLayoutFocusTraversalPolicy" visibility="package" isLeaf="true">
            <generalization xmi:id="_10_5_622020d_1132928323972_641469_18256" isSubstitutable="true" general="_9_5_f720368_1110473546799_826653_10803"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_139584_10841" name="Scrollable" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_392266_12627" body="An interface that provides information to a scrolling container&#xA;like JScrollPane.  A complex component that's likely to be used&#xA;as a viewing a JScrollPane viewport (or other scrolling container)&#xA;should implement this interface.&#xA;&#xA;@see JViewport&#xA;@see JScrollPane&#xA;@see JScrollBar&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_139584_10841"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_749916_10755" name="JProgressBar" clientDependency="_10_5_622020d_1132928324112_107131_18441 _10_5_622020d_1132928324112_605356_18440">
            <ownedComment xmi:id="_10_5_622020d_1132928318073_159652_12480" body="A component that, by default, displays an integer value within a bounded&#xA;interval. A progress bar typically communicates the progress of some&#xA;work by displaying its percentage of completion and possibly a textual&#xA;display of this percentage.&#xA;&#xA;&lt;p>&#xA;&#xA;To indicate that a task of unknown length is executing,&#xA;you can put a progress bar into indeterminate mode.&#xA;While the bar is in indeterminate mode,&#xA;it animates constantly to show that work is occurring.&#xA;As soon as you can determine the task's length and amount of progress,&#xA;you should update the progress bar's value&#xA;and switch it back to determinate mode.&#xA;&#xA;&lt;p>&#xA;&#xA;Here is an example of creating a progress bar,&#xA;where &lt;code>task&lt;/code> is an object&#xA;that returns information about the progress of some work:&#xA;&#xA;&lt;pre>&#xA;progressBar = new JProgressBar(0, task.getLengthOfTask());&#xA;progressBar.setValue(0);&#xA;progressBar.setStringPainted(true);&#xA;&lt;/pre>&#xA;&#xA;Here is an example of updating the value of the progress bar:&#xA;&#xA;&lt;pre>&#xA;progressBar.setValue(task.getCurrent());&#xA;&lt;/pre>&#xA;&#xA;Here is an example of putting a progress bar into&#xA;indeterminate mode,&#xA;and then switching back to determinate mode&#xA;once the length of the task is known:&#xA;&#xA;&lt;pre>&#xA;progressBar = new JProgressBar();&#xA;&lt;em>...//when the task of (initially) unknown length begins:&lt;/em>&#xA;progressBar.setIndeterminate(true);&#xA;&lt;em>...//do some work; get length of task...&lt;/em>&#xA;progressBar.setMaximum(newLength);&#xA;progressBar.setValue(newValue);&#xA;progressBar.setIndeterminate(false);&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;&#xA;For complete examples and further documentation see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html&quot; target=&quot;_top&quot;>How to Monitor Progress&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.plaf.basic.BasicProgressBarUI&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component that displays an integer value.&#xA;&#xA;@version 1.93 12/19/03&#xA;@author Michael C. Albers&#xA;@author Kathy Walrath&#xA;" annotatedElement="_9_5_f720368_1110473546799_749916_10755"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_635354_18442" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_605356_18440" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_749916_10755" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_107131_18441" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_749916_10755" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_668465_24244" name="ModelListener" visibility="private" clientDependency="_10_5_622020d_1132928324122_639533_18443 _10_5_622020d_1132928324122_335141_18444">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_639533_18443" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548440_668465_24244" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_335141_18444" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_668465_24244" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_221086_24245" name="AccessibleJProgressBar" visibility="protected" clientDependency="_10_5_622020d_1132928324122_305792_18445">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_321517_12478" body="This class implements accessibility support for the&#xA;&lt;code>JProgressBar&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to progress bar user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_221086_24245"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_763366_18446" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324122_305792_18445" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_9_5_f720368_1110473548440_221086_24245" contract="_9_5_f720368_1110473546706_399481_8995"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_580697_10867" name="SpringLayout" clientDependency="_10_5_622020d_1132928324172_410084_18669">
            <ownedComment xmi:id="_10_5_622020d_1132928318264_810842_12657" body="A &lt;code>SpringLayout&lt;/code> lays out the children of its associated container&#xA;according to a set of constraints.&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/layout/spring.html&quot;>How to Use SpringLayout&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em> for examples of using&#xA;&lt;code>SpringLayout&lt;/code>.&#xA;&#xA;&lt;p>&#xA;Each constraint,&#xA;represented by a &lt;code>Spring&lt;/code> object,&#xA;controls the vertical or horizontal distance&#xA;between two component edges.&#xA;The edges can belong to&#xA;any child of the container,&#xA;or to the container itself.&#xA;For example,&#xA;the allowable width of a component&#xA;can be expressed using a constraint&#xA;that controls the distance between the west (left) and east (right)&#xA;edges of the component.&#xA;The allowable &lt;em>y&lt;/em> coordinates for a component&#xA;can be expressed by constraining the distance between&#xA;the north (top) edge of the component&#xA;and the north edge of its container.&#xA;&#xA;&lt;P>&#xA;Every child of a &lt;code>SpringLayout&lt;/code>-controlled container,&#xA;as well as the container itself,&#xA;has exactly one set of constraints&#xA;associated with it.&#xA;These constraints are represented by&#xA;a &lt;code>SpringLayout.Constraints&lt;/code> object.&#xA;By default,&#xA;&lt;code>SpringLayout&lt;/code> creates constraints&#xA;that make their associated component&#xA;have the minimum, preferred, and maximum sizes&#xA;returned by the component's&#xA;{@link java.awt.Component#getMinimumSize},&#xA;{@link java.awt.Component#getPreferredSize}, and&#xA;{@link java.awt.Component#getMaximumSize}&#xA;methods. The &lt;em>x&lt;/em> and &lt;em>y&lt;/em> positions are initially not&#xA;constrained, so that until you constrain them the &lt;code>Component&lt;/code>&#xA;will be positioned at 0,0 relative to the &lt;code>Insets&lt;/code> of the&#xA;parent &lt;code>Container&lt;/code>.&#xA;&#xA;&lt;p>&#xA;You can change&#xA;a component's constraints in several ways.&#xA;You can&#xA;use one of the&#xA;{@link #putConstraint putConstraint}&#xA;methods&#xA;to establish a spring&#xA;linking the edges of two components within the same container.&#xA;Or you can get the appropriate &lt;code>SpringLayout.Constraints&lt;/code>&#xA;object using&#xA;{@link #getConstraints getConstraints}&#xA;and then modify one or more of its springs.&#xA;Or you can get the spring for a particular edge of a component&#xA;using {@link #getConstraint getConstraint},&#xA;and modify it.&#xA;You can also associate&#xA;your own &lt;code>SpringLayout.Constraints&lt;/code> object&#xA;with a component by specifying the constraints object&#xA;when you add the component to its container&#xA;(using&#xA;{@link Container#add(Component, Object)}).&#xA;&#xA;&lt;p>&#xA;The &lt;code>Spring&lt;/code> object representing each constraint&#xA;has a minimum, preferred, maximum, and current value.&#xA;The current value of the spring&#xA;is somewhere between the minimum and maximum values,&#xA;according to the formula given in the&#xA;{@link Spring#sum} method description.&#xA;When the minimum, preferred, and maximum values are the same,&#xA;the current value is always equal to them;&#xA;this inflexible spring is called a &lt;em>strut&lt;/em>.&#xA;You can create struts using the factory method&#xA;{@link Spring#constant(int)}.&#xA;The &lt;code>Spring&lt;/code> class also provides factory methods&#xA;for creating other kinds of springs,&#xA;including springs that depend on other springs.&#xA;&#xA;&lt;p>&#xA;In a &lt;code>SpringLayout&lt;/code>, the position of each edge is dependent on&#xA;the position of just one other edge. If a constraint is subsequently added&#xA;to create a new binding for an edge, the previous binding is discarded&#xA;and the edge remains dependent on a single edge.&#xA;Springs should only be attached&#xA;between edges of the container and its immediate children; the behavior&#xA;of the &lt;code>SpringLayout&lt;/code> when presented with constraints linking&#xA;the edges of components from different containers (either internal or&#xA;external) is undefined.&#xA;&#xA;&lt;h3>&#xA;SpringLayout vs. Other Layout Managers&#xA;&lt;/h3>&#xA;&#xA;&lt;blockquote>&#xA;&lt;hr>&#xA;&lt;strong>Note:&lt;/strong>&#xA;Unlike many layout managers,&#xA;&lt;code>SpringLayout&lt;/code> doesn't automatically set the location of&#xA;the components it manages.&#xA;If you hand-code a GUI that uses &lt;code>SpringLayout&lt;/code>,&#xA;remember to initialize component locations by constraining the west/east&#xA;and north/south locations.&#xA;&lt;p>&#xA;Depending on the constraints you use,&#xA;you may also need to set the size of the container explicitly.&#xA;&lt;hr>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;Despite the simplicity of &lt;code>SpringLayout&lt;/code>,&#xA;it can emulate the behavior of most other layout managers.&#xA;For some features,&#xA;such as the line breaking provided by &lt;code>FlowLayout&lt;/code>,&#xA;you'll need to&#xA;create a special-purpose subclass of the &lt;code>Spring&lt;/code> class.&#xA;&#xA;&lt;p>&#xA;&lt;code>SpringLayout&lt;/code> also provides a way to solve&#xA;many of the difficult layout&#xA;problems that cannot be solved by nesting combinations&#xA;of &lt;code>Box&lt;/code>es. That said, &lt;code>SpringLayout&lt;/code> honors the&#xA;&lt;code>LayoutManager2&lt;/code> contract correctly and so can be nested with&#xA;other layout managers -- a technique that can be preferable to&#xA;creating the constraints implied by the other layout managers.&#xA;&lt;p>&#xA;The asymptotic complexity of the layout operation of a &lt;code>SpringLayout&lt;/code>&#xA;is linear in the number of constraints (and/or components).&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see Spring&#xA;@see SpringLayout.Constraints&#xA;&#xA;@version  1.19 12/19/03&#xA;@author &#x9;Philip Milne&#xA;@author &#x9;Joe Winchester&#xA;@since       1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_580697_10867"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_410084_18669" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546799_580697_10867" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_533353_24471" name="Constraints">
              <ownedComment xmi:id="_10_5_622020d_1132928318254_883499_12655" body="A &lt;code>Constraints&lt;/code> object holds the&#xA;constraints that govern the way a component's size and position&#xA;change in a container controlled by a &lt;code>SpringLayout&lt;/code>.&#xA;A &lt;code>Constraints&lt;/code> object is&#xA;like a &lt;code>Rectangle&lt;/code>, in that it&#xA;has &lt;code>x&lt;/code>, &lt;code>y&lt;/code>,&#xA;&lt;code>width&lt;/code>, and &lt;code>height&lt;/code> properties.&#xA;In the &lt;code>Constraints&lt;/code> object, however,&#xA;these properties have&#xA;&lt;code>Spring&lt;/code> values instead of integers.&#xA;In addition,&#xA;a &lt;code>Constraints&lt;/code> object&#xA;can be manipulated as four edges&#xA;-- north, south, east, and west --&#xA;using the &lt;code>constraint&lt;/code> property.&#xA;&#xA;&lt;p>&#xA;The following formulas are always true&#xA;for a &lt;code>Constraints&lt;/code> object:&#xA;&#xA;&lt;pre>&#xA;west = x&#xA;north = y&#xA;east = x + width&#xA;south = y + height&lt;/pre>&#xA;&#xA;&lt;b>Note&lt;/b>: In this document,&#xA;operators represent methods&#xA;in the &lt;code>Spring&lt;/code> class.&#xA;For example, &quot;a + b&quot; is equal to&#xA;&lt;code>Spring.sum(a, b)&lt;/code>,&#xA;and &quot;a - b&quot; is equal to&#xA;&lt;code>Spring.sum(a, Spring.minus(b))&lt;/code>.&#xA;See the&#xA;{@link Spring Spring&lt;/code> API documentation&lt;code>}&#xA;for further details&#xA;of spring arithmetic.&#xA;&#xA;&lt;p>&#xA;&#xA;Because a &lt;code>Constraints&lt;/code> object's properties --&#xA;representing its edges, size, and location -- can all be set&#xA;independently and yet are interrelated,&#xA;the object can become &lt;em>over-constrained&lt;/em>.&#xA;For example,&#xA;if both the &lt;code>x&lt;/code> and &lt;code>width&lt;/code>&#xA;properties are set&#xA;and then the east edge is set,&#xA;the object is over-constrained horizontally.&#xA;When this happens, one of the values&#xA;(in this case, the &lt;code>x&lt;/code> property)&#xA;automatically changes so&#xA;that the formulas still hold.&#xA;&#xA;&lt;p>&#xA;The following table shows which value changes&#xA;when a &lt;code>Constraints&lt;/code> object&#xA;is over-constrained horizontally.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;table border=1 summary=&quot;Shows which value changes when a Constraints object is over-constrained horizontally&quot;>&#xA;&lt;tr>&#xA;&lt;th valign=top>Value Being Set&lt;br>(method used)&lt;/th>&#xA;&lt;th valign=top>Result When Over-Constrained Horizontally&lt;br>&#xA;(&lt;code>x&lt;/code>, &lt;code>width&lt;/code>, and the east edge are all non-&lt;code>null&lt;/code>)&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>x&lt;/code> or the west edge &lt;br>(&lt;code>setX&lt;/code> or &lt;code>setConstraint&lt;/code>)&lt;/td>&#xA;&lt;td>&lt;code>width&lt;/code> value is automatically set to &lt;code>east - x&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>width&lt;/code>&lt;br>(&lt;code>setWidth&lt;/code>)&lt;/td>&#xA;&lt;td>east edge's value is automatically set to &lt;code>x + width&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>east edge&lt;br>(&lt;code>setConstraint&lt;/code>)&lt;/td>&#xA;&lt;td>&lt;code>x&lt;/code> value is automatically set to &lt;code>east - width&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>&#xA;The rules for the vertical properties are similar:&#xA;&lt;p>&#xA;&#xA;&lt;table border=1 summary=&quot;Shows which value changes when a Constraints object is over-constrained vertically&quot;>&#xA;&lt;tr>&#xA;&lt;th valign=top>Value Being Set&lt;br>(method used)&lt;/th>&#xA;&lt;th valign=top>Result When Over-Constrained Vertically&lt;br>(&lt;code>y&lt;/code>, &lt;code>height&lt;/code>, and the south edge are all non-&lt;code>null&lt;/code>)&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>y&lt;/code> or the north edge&lt;br>(&lt;code>setY&lt;/code> or &lt;code>setConstraint&lt;/code>)&lt;/td>&#xA;&lt;td>&lt;code>height&lt;/code> value is automatically set to &lt;code>south - y&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>height&lt;/code>&lt;br>(&lt;code>setHeight&lt;/code>)&lt;/td>&#xA;&lt;td>south edge's value is automatically set to &lt;code>y + height&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>south edge&lt;br>(&lt;code>setConstraint&lt;/code>)&lt;/td>&#xA;&lt;td>&lt;code>y&lt;/code> value is automatically set to &lt;code>south - height&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548471_533353_24471"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_888137_24474" name="SpringProxy" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_817345_18670" isSubstitutable="true" general="_9_5_f720368_1110473546799_775237_10865"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_164938_10829" name="PopupFactory">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_206317_12613" body="&lt;code>PopupFactory&lt;/code>, as the name implies, is used to obtain&#xA;instances of &lt;code>Popup&lt;/code>s. &lt;code>Popup&lt;/code>s are used to&#xA;display a &lt;code>Component&lt;/code> above all other &lt;code>Component&lt;/code>s&#xA;in a particular containment hierarchy. The general contract is that&#xA;once you have obtained a &lt;code>Popup&lt;/code> from a&#xA;&lt;code>PopupFactory&lt;/code>, you must invoke &lt;code>hide&lt;/code> on the&#xA;&lt;code>Popup&lt;/code>. The typical usage is:&#xA;&lt;pre>&#xA;PopupFactory factory = PopupFactory.getSharedInstance();&#xA;Popup popup = factory.getPopup(owner, contents, x, y);&#xA;popup.show();&#xA;...&#xA;popup.hide();&#xA;&lt;/pre>&#xA;&#xA;@see Popup&#xA;&#xA;@version 1.24 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_164938_10829"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_720096_24417" name="HeavyWeightPopup" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318194_402160_12607" body="Popup implementation that uses a Window as the popup.&#xA;" annotatedElement="_9_5_f720368_1110473548471_720096_24417"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_487286_18633" isSubstitutable="true" general="_9_5_f720368_1110473546799_690835_10827"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_3586_24420" name="ContainerPopup" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318194_135407_12608" body="ContainerPopup consolidates the common code used in the light/medium&#xA;weight implementations of &lt;code>Popup&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548471_3586_24420"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_808109_18634" isSubstitutable="true" general="_9_5_f720368_1110473546799_690835_10827"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_52892_24423" name="HeadlessPopup" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318194_292737_12609" body="Popup implementation that is used in headless environment.&#xA;" annotatedElement="_9_5_f720368_1110473548471_52892_24423"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_335790_18635" isSubstitutable="true" general="_9_5_f720368_1110473548471_3586_24420"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_597481_24426" name="LightWeightPopup" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318204_365184_12610" body="Popup implementation that uses a JPanel as the popup.&#xA;" annotatedElement="_9_5_f720368_1110473548471_597481_24426"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_509097_18636" isSubstitutable="true" general="_9_5_f720368_1110473548471_3586_24420"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_350839_24429" name="MediumWeightPopup" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318204_808581_12611" body="Popup implementation that uses a Panel as the popup.&#xA;" annotatedElement="_9_5_f720368_1110473548471_350839_24429"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_16761_18637" isSubstitutable="true" general="_9_5_f720368_1110473548471_3586_24420"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_529436_10771" name="JSpinner" clientDependency="_10_5_622020d_1132928324132_679622_18485">
            <ownedComment xmi:id="_10_5_622020d_1132928318113_854185_12518" body="A single line input field that lets the user select a&#xA;number or an object value from an ordered sequence. Spinners typically&#xA;provide a pair of tiny arrow buttons for stepping through the elements&#xA;of the sequence. The keyboard up/down arrow keys also cycle through the&#xA;elements. The user may also be allowed to type a (legal) value directly&#xA;into the spinner. Although combo boxes provide similar functionality,&#xA;spinners are sometimes preferred because they don't require a drop down list&#xA;that can obscure important data.&#xA;&lt;p>&#xA;A &lt;code>JSpinner&lt;/code>'s sequence value is defined by its&#xA;&lt;code>SpinnerModel&lt;/code>.&#xA;The &lt;code>model&lt;/code> can be specified as a constructor argument and&#xA;changed with the &lt;code>model&lt;/code> property.  &lt;code>SpinnerModel&lt;/code>&#xA;classes for some common types are provided: &lt;code>SpinnerListModel&lt;/code>,&#xA;&lt;code>SpinnerNumberModel&lt;/code>, and &lt;code>SpinnerDateModel&lt;/code>.&#xA;&lt;p>&#xA;A &lt;code>JSpinner&lt;/code> has a single child component that's&#xA;responsible for displaying&#xA;and potentially changing the current element or &lt;i>value&lt;/i> of&#xA;the model, which is called the &lt;code>editor&lt;/code>.  The editor is created&#xA;by the &lt;code>JSpinner&lt;/code>'s constructor and can be changed with the&#xA;&lt;code>editor&lt;/code> property.  The &lt;code>JSpinner&lt;/code>'s editor stays&#xA;in sync with the model by listening for &lt;code>ChangeEvent&lt;/code>s. If the&#xA;user has changed the value displayed by the &lt;code>editor&lt;/code> it is&#xA;possible for the &lt;code>model&lt;/code>'s value to differ from that of&#xA;the &lt;code>editor&lt;/code>. To make sure the &lt;code>model&lt;/code> has the same&#xA;value as the editor use the &lt;code>commitEdit&lt;/code> method, eg:&#xA;&lt;pre>&#xA;try {&#xA;spinner.commitEdit();&#xA;}&#xA;catch (ParseException pe) {{&#xA;Edited value is invalid, spinner.getValue() will return&#xA;the last valid value, you could revert the spinner to show that:&#xA;JComponent editor = spinner.getEditor()&#xA;if (editor instanceof DefaultEditor) {&#xA;((DefaultEditor)editor).getTextField().setValue(spinner.getValue();&#xA;}&#xA;reset the value to some known value:&#xA;spinner.setValue(fallbackValue);&#xA;or treat the last valid value as the current, in which&#xA;case you don't need to do anything.&#xA;}&#xA;return spinner.getValue();&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A single line input field that lets the user select a&#xA;number or an object value from an ordered set.&#xA;&#xA;@see SpinnerModel&#xA;@see AbstractSpinnerModel&#xA;@see SpinnerListModel&#xA;@see SpinnerNumberModel&#xA;@see SpinnerDateModel&#xA;@see JFormattedTextField&#xA;&#xA;@version 1.38 05/12/04&#xA;@author Hans Muller&#xA;@author Lynn Monsanto (accessibility)&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_529436_10771"/>
            <generalization xmi:id="_10_5_622020d_1132928324132_898611_18486" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_679622_18485" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_529436_10771" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_553491_24279" name="ModelListener" visibility="private" clientDependency="_10_5_622020d_1132928324132_191230_18487 _10_5_622020d_1132928324132_845381_18488">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_539408_12506" body="We pass &lt;code>Change&lt;/code> events along to the listeners with the&#xA;the slider (instead of the model itself) as the event source.&#xA;" annotatedElement="_9_5_f720368_1110473548456_553491_24279"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_191230_18487" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_553491_24279" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_845381_18488" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_553491_24279" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_375399_24281" name="DefaultEditor" clientDependency="_10_5_622020d_1132928324132_71437_18491 _10_5_622020d_1132928324132_672533_18490 _10_5_622020d_1132928324132_582986_18489">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_20280_12507" body="A simple base class for more specialized editors&#xA;that displays a read-only view of the model's current&#xA;value with a &lt;code>JFormattedTextField&lt;code>.  Subclasses&#xA;can configure the &lt;code>JFormattedTextField&lt;code> to create&#xA;an editor that's appropriate for the type of model they&#xA;support and they may want to override&#xA;the &lt;code>stateChanged&lt;/code> and &lt;code>propertyChanged&lt;/code>&#xA;methods, which keep the model and the text field in sync.&#xA;&lt;p>&#xA;This class defines a &lt;code>dismiss&lt;/code> method that removes the&#xA;editors &lt;code>ChangeListener&lt;/code> from the &lt;code>JSpinner&lt;/code>&#xA;that it's part of.   The &lt;code>setEditor&lt;/code> method knows about&#xA;&lt;code>DefaultEditor.dismiss&lt;/code>, so if the developer&#xA;replaces an editor that's derived from &lt;code>JSpinner.DefaultEditor&lt;/code>&#xA;its &lt;code>ChangeListener&lt;/code> connection back to the&#xA;&lt;code>JSpinner&lt;/code> will be removed.  However after that,&#xA;it's up to the developer to manage their editor listeners.&#xA;Similarly, if a subclass overrides &lt;code>createEditor&lt;/code>,&#xA;it's up to the subclasser to deal with their editor&#xA;subsequently being replaced (with &lt;code>setEditor&lt;/code>).&#xA;We expect that in most cases, and in editor installed&#xA;with &lt;code>setEditor&lt;/code> or created by a &lt;code>createEditor&lt;/code>&#xA;override, will not be replaced anyway.&#xA;&lt;p>&#xA;This class is the &lt;code>LayoutManager&lt;code> for it's single&#xA;&lt;code>JFormattedTextField&lt;/code> child.   By default the&#xA;child is just centered with the parents insets.&#xA;" annotatedElement="_9_5_f720368_1110473548456_375399_24281"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_517432_18492" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_582986_18489" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_375399_24281" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_672533_18490" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548456_375399_24281" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_71437_18491" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548456_375399_24281" contract="_9_5_f720368_1110473546581_587570_7065"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_146062_24284" name="DateEditorFormatter" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_33486_12508" body="This subclass of javax.swing.DateFormatter maps the minimum/maximum&#xA;properties to te start/end properties of a SpinnerDateModel.&#xA;" annotatedElement="_9_5_f720368_1110473548456_146062_24284"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_136628_18493" isSubstitutable="true" general="_9_5_f720368_1110473546784_453540_10437"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_687234_24287" name="DateEditor">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_690842_12509" body="An editor for a &lt;code>JSpinner&lt;/code> whose model is a&#xA;&lt;code>SpinnerDateModel&lt;/code>.  The value of the editor is&#xA;displayed with a &lt;code>JFormattedTextField&lt;/code> whose format&#xA;is defined by a &lt;code>DateFormatter&lt;/code> instance whose&#xA;&lt;code>minimum&lt;/code> and &lt;code>maximum&lt;/code> properties&#xA;are mapped to the &lt;code>SpinnerDateModel&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548456_687234_24287"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_793377_18494" isSubstitutable="true" general="_9_5_f720368_1110473548456_375399_24281"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_279811_24290" name="NumberEditorFormatter" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_578365_12510" body="This subclass of javax.swing.NumberFormatter maps the minimum/maximum&#xA;properties to a SpinnerNumberModel and initializes the valueClass&#xA;of the NumberFormatter to match the type of the initial models value.&#xA;" annotatedElement="_9_5_f720368_1110473548456_279811_24290"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_958234_18495" isSubstitutable="true" general="_9_5_f720368_1110473546784_624787_10499"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_890381_24293" name="NumberEditor">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_425965_12511" body="An editor for a &lt;code>JSpinner&lt;/code> whose model is a&#xA;&lt;code>SpinnerNumberModel&lt;/code>.  The value of the editor is&#xA;displayed with a &lt;code>JFormattedTextField&lt;/code> whose format&#xA;is defined by a &lt;code>NumberFormatter&lt;/code> instance whose&#xA;&lt;code>minimum&lt;/code> and &lt;code>maximum&lt;/code> properties&#xA;are mapped to the &lt;code>SpinnerNumberModel&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548456_890381_24293"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_872527_18496" isSubstitutable="true" general="_9_5_f720368_1110473548456_375399_24281"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_600800_24296" name="ListEditor">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_565208_12513" body="An editor for a &lt;code>JSpinner&lt;/code> whose model is a&#xA;&lt;code>SpinnerListModel&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548456_600800_24296"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_398840_18497" isSubstitutable="true" general="_9_5_f720368_1110473548456_375399_24281"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_705813_24299" name="ListFormatter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928318113_58008_12512" body="ListFormatter provides completion while text is being input&#xA;into the JFormattedTextField. Completion is only done if the&#xA;user is inserting text at the end of the document. Completion&#xA;is done by way of the SpinnerListModel method findNextMatch.&#xA;" annotatedElement="_9_5_f720368_1110473548456_705813_24299"/>
                <generalization xmi:id="_10_5_622020d_1132928324132_499297_18498" isSubstitutable="true" general="_9_5_f720368_1110473548378_844822_23779"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_895928_24301" name="Filter" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928324132_42620_18499" isSubstitutable="true" general="_9_5_f720368_1110473546784_538863_10455"/>
                </nestedClassifier>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_298252_24302" name="DisabledAction" visibility="private" clientDependency="_10_5_622020d_1132928324132_934453_18500">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_794606_12514" body="An Action implementation that is always disabled.&#xA;" annotatedElement="_9_5_f720368_1110473548456_298252_24302"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_934453_18500" name="" supplier="_9_5_f720368_1110473546784_436758_10621" client="_9_5_f720368_1110473548456_298252_24302" contract="_9_5_f720368_1110473546784_436758_10621"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318113_987041_12515" name="AccessibleJSpinner" visibility="protected" clientDependency="_10_5_622020d_1132928324132_384766_18501 _10_5_622020d_1132928324132_454247_18502 _10_5_622020d_1132928324132_543651_18503 _10_5_622020d_1132928324132_8284_18504 _10_5_622020d_1132928324132_850411_18505">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_589719_12516" body="&lt;code>AccessibleJSpinner&lt;/code> implements accessibility&#xA;support for the &lt;code>JSpinner&lt;/code> class.&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318113_987041_12515"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_817586_18506" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_384766_18501" name="" supplier="_9_5_f720368_1110473546706_399481_8995" client="_10_5_622020d_1132928318113_987041_12515" contract="_9_5_f720368_1110473546706_399481_8995"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_454247_18502" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_10_5_622020d_1132928318113_987041_12515" contract="_9_5_f720368_1110473546706_522529_8953"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_543651_18503" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_10_5_622020d_1132928318113_987041_12515" contract="_9_5_f720368_1110473546706_466273_8993"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_8284_18504" name="" supplier="_9_5_f720368_1110473546706_90789_8961" client="_10_5_622020d_1132928318113_987041_12515" contract="_9_5_f720368_1110473546706_90789_8961"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_850411_18505" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928318113_987041_12515" contract="_9_5_f720368_1110473546753_937925_9841"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_287515_10659" name="DefaultBoundedRangeModel" clientDependency="_10_5_622020d_1132928323952_575446_18240 _10_5_622020d_1132928323952_134420_18241">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_402740_12335" body="A generic implementation of BoundedRangeModel.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.46 05/05/04&#xA;@author David Kloba&#xA;@author Hans Muller&#xA;@see BoundedRangeModel&#xA;" annotatedElement="_9_5_f720368_1110473546784_287515_10659"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_575446_18240" name="" supplier="_9_5_f720368_1110473546784_123022_10631" client="_9_5_f720368_1110473546784_287515_10659" contract="_9_5_f720368_1110473546784_123022_10631"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_134420_18241" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_287515_10659" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_136098_10617" name="AbstractListModel" clientDependency="_10_5_622020d_1132928323912_950787_18210 _10_5_622020d_1132928323912_6794_18211" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_693382_12287" body="The abstract definition for the data model that provides&#xA;a &lt;code>List&lt;/code> with its contents.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.34 05/05/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546784_136098_10617"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_950787_18210" name="" supplier="_9_5_f720368_1110473546799_933232_10811" client="_9_5_f720368_1110473546784_136098_10617" contract="_9_5_f720368_1110473546799_933232_10811"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_6794_18211" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_136098_10617" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_252355_10817" name="MenuElement" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_475608_12594" body="Any component that can be placed into a menu should implement this interface.&#xA;This interface is used by &lt;code>MenuSelectionManager&lt;/code>&#xA;to handle selection and navigation in menu hierarchies.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546799_252355_10817"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_423131_10679" name="DefaultListSelectionModel" clientDependency="_10_5_622020d_1132928323972_148938_18266 _10_5_622020d_1132928323972_521195_18264 _10_5_622020d_1132928323972_255187_18265">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_591264_12355" body="Default data model for list selections.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.75 05/05/04&#xA;@author Philip Milne&#xA;@author Hans Muller&#xA;@see ListSelectionModel&#xA;" annotatedElement="_9_5_f720368_1110473546784_423131_10679"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_521195_18264" name="" supplier="_9_5_f720368_1110473546799_497124_10813" client="_9_5_f720368_1110473546784_423131_10679" contract="_9_5_f720368_1110473546799_497124_10813"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_255187_18265" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_423131_10679" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_148938_18266" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_423131_10679" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_537453_10775" name="JTabbedPane" clientDependency="_10_5_622020d_1132928324132_503090_18511 _10_5_622020d_1132928324132_254216_18512 _10_5_622020d_1132928324132_592422_18513">
            <ownedComment xmi:id="_10_5_622020d_1132928318123_799360_12525" body="A component that lets the user switch between a group of components by&#xA;clicking on a tab with a given title and/or icon.&#xA;For examples and information on using tabbed panes see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tabbedpane.html&quot;>How to Use Tabbed Panes&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;Tabs/components are added to a &lt;code>TabbedPane&lt;/code> object by using the&#xA;&lt;code>addTab&lt;/code> and &lt;code>insertTab&lt;/code> methods.&#xA;A tab is represented by an index corresponding&#xA;to the position it was added in, where the first tab has an index equal to 0&#xA;and the last tab has an index equal to the tab count minus 1.&#xA;&lt;p>&#xA;The &lt;code>TabbedPane&lt;/code> uses a &lt;code>SingleSelectionModel&lt;/code>&#xA;to represent the set&#xA;of tab indices and the currently selected index.  If the tab count&#xA;is greater than 0, then there will always be a selected index, which&#xA;by default will be initialized to the first tab.  If the tab count is&#xA;0, then the selected index will be -1.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A component which provides a tab folder metaphor for&#xA;displaying one component from a set of components.&#xA;&#xA;@version 1.140 04/02/04&#xA;@author Dave Moore&#xA;@author Philip Milne&#xA;@author Amy Fowler&#xA;&#xA;@see SingleSelectionModel&#xA;" annotatedElement="_9_5_f720368_1110473546799_537453_10775"/>
            <generalization xmi:id="_10_5_622020d_1132928324132_229915_18514" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_503090_18511" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_537453_10775" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_254216_18512" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_537453_10775" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324132_592422_18513" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_537453_10775" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_587406_24309" name="ModelListener" visibility="protected" clientDependency="_10_5_622020d_1132928324132_560253_18516 _10_5_622020d_1132928324132_706106_18515">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_979405_12522" body="We pass &lt;code>ModelChanged&lt;/code> events along to the listeners with&#xA;the tabbedpane (instead of the model itself) as the event source.&#xA;" annotatedElement="_9_5_f720368_1110473548456_587406_24309"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_706106_18515" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_587406_24309" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_560253_18516" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_587406_24309" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_671132_24311" name="AccessibleJTabbedPane" visibility="protected" clientDependency="_10_5_622020d_1132928324132_844148_18518 _10_5_622020d_1132928324132_543110_18517">
              <ownedComment xmi:id="_10_5_622020d_1132928318113_110754_12523" body="This class implements accessibility support for the&#xA;&lt;code>JTabbedPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to tabbed pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_671132_24311"/>
              <generalization xmi:id="_10_5_622020d_1132928324132_6546_18519" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_543110_18517" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548456_671132_24311" contract="_9_5_f720368_1110473546706_797948_8983"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_844148_18518" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_671132_24311" contract="_9_5_f720368_1110473546753_937925_9841"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_216929_24313" name="Page" visibility="private" clientDependency="_10_5_622020d_1132928324132_488788_18521 _10_5_622020d_1132928324132_429370_18522 _10_5_622020d_1132928324132_42045_18520">
              <generalization xmi:id="_10_5_622020d_1132928324132_285481_18523" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_42045_18520" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_216929_24313" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_488788_18521" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548456_216929_24313" contract="_9_5_f720368_1110473546706_827345_8951"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324132_429370_18522" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548456_216929_24313" contract="_9_5_f720368_1110473546706_824207_8957"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_590098_10629" name="BorderFactory">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_548960_12301" body="Factory class for vending standard &lt;code>Border&lt;/code> objects.  Wherever&#xA;possible, this factory will hand out references to shared&#xA;&lt;code>Border&lt;/code> instances.&#xA;For further information and examples see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/border.html&quot;>How&#xA;to Use Borders&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&#xA;@version 1.30 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546784_590098_10629"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_361378_10701" name="InternalFrameFocusTraversalPolicy" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317863_448009_12377" body="A FocusTraversalPolicy which can optionally provide an algorithm for&#xA;determining a JInternalFrame's initial Component. The initial Component is&#xA;the first to receive focus when the JInternalFrame is first selected. By&#xA;default, this is the same as the JInternalFrame's default Component to&#xA;focus.&#xA;&#xA;@author David Mendenhall&#xA;@version 1.4, 12/19/03&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_361378_10701"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_434811_18279" isSubstitutable="true" general="_9_5_f720368_1110473546581_371419_7007"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_390035_10635" name="BoxLayout" clientDependency="_10_5_622020d_1132928323952_731186_18228 _10_5_622020d_1132928323952_713232_18229">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_274597_12310" body="A layout manager that allows multiple components to be laid out either&#xA;vertically or horizontally. The components will not wrap so, for&#xA;example, a vertical arrangement of components will stay vertically&#xA;arranged when the frame is resized.&#xA;&lt;TABLE ALIGN=&quot;RIGHT&quot; BORDER=&quot;0&quot; SUMMARY=&quot;layout&quot;>&#xA;&lt;TR>&#xA;&lt;TD ALIGN=&quot;CENTER&quot;>&#xA;&lt;P ALIGN=&quot;CENTER&quot;>&lt;IMG SRC=&quot;doc-files/BoxLayout-1.gif&quot;&#xA;alt=&quot;The following text describes this graphic.&quot;&#xA;WIDTH=&quot;191&quot; HEIGHT=&quot;201&quot; ALIGN=&quot;BOTTOM&quot; BORDER=&quot;0&quot;>&#xA;&lt;/TD>&#xA;&lt;/TR>&#xA;&lt;/TABLE>&#xA;&lt;p>&#xA;Nesting multiple panels with different combinations of horizontal and&#xA;vertical gives an effect similar to GridBagLayout, without the&#xA;complexity. The diagram shows two panels arranged horizontally, each&#xA;of which contains 3 components arranged vertically.&#xA;&#xA;&lt;p> The BoxLayout manager is constructed with an axis parameter that&#xA;specifies the type of layout that will be done. There are four choices:&#xA;&#xA;&lt;blockquote>&lt;b>&lt;tt>X_AXIS&lt;/tt>&lt;/b> - Components are laid out horizontally&#xA;from left to right.&lt;/blockquote>&#xA;&#xA;&lt;blockquote>&lt;b>&lt;tt>Y_AXIS&lt;/tt>&lt;/b> - Components are laid out vertically&#xA;from top to bottom.&lt;/blockquote>&#xA;&#xA;&lt;blockquote>&lt;b>&lt;tt>LINE_AXIS&lt;/tt>&lt;/b> - Components are laid out the way&#xA;words are laid out in a line, based on the container's&#xA;&lt;tt>ComponentOrientation&lt;/tt> property. If the container's&#xA;&lt;tt>ComponentOrientation&lt;/tt> is horizontal then components are laid out&#xA;horizontally, otherwise they are laid out vertically.  For horizontal&#xA;orientations, if the container's &lt;tt>ComponentOrientation&lt;/tt> is left to&#xA;right then components are laid out left to right, otherwise they are laid&#xA;out right to left. For vertical orientations components are always laid out&#xA;from top to bottom.&lt;/blockquote>&#xA;&#xA;&lt;blockquote>&lt;b>&lt;tt>PAGE_AXIS&lt;/tt>&lt;/b> - Components are laid out the way&#xA;text lines are laid out on a page, based on the container's&#xA;&lt;tt>ComponentOrientation&lt;/tt> property. If the container's&#xA;&lt;tt>ComponentOrientation&lt;/tt> is horizontal then components are laid out&#xA;vertically, otherwise they are laid out horizontally.  For horizontal&#xA;orientations, if the container's &lt;tt>ComponentOrientation&lt;/tt> is left to&#xA;right then components are laid out left to right, otherwise they are laid&#xA;out right to left.&amp;nbsp; For vertical orientations components are always&#xA;laid out from top to bottom.&lt;/blockquote>&#xA;&lt;p>&#xA;For all directions, components are arranged in the same order as they were&#xA;added to the container.&#xA;&lt;p>&#xA;BoxLayout attempts to arrange components&#xA;at their preferred widths (for horizontal layout)&#xA;or heights (for vertical layout).&#xA;For a horizontal layout,&#xA;if not all the components are the same height,&#xA;BoxLayout attempts to make all the components&#xA;as high as the highest component.&#xA;If that's not possible for a particular component,&#xA;then BoxLayout aligns that component vertically,&#xA;according to the component's Y alignment.&#xA;By default, a component has a Y alignment of 0.5,&#xA;which means that the vertical center of the component&#xA;should have the same Y coordinate as&#xA;the vertical centers of other components with 0.5 Y alignment.&#xA;&lt;p>&#xA;Similarly, for a vertical layout,&#xA;BoxLayout attempts to make all components in the column&#xA;as wide as the widest component.&#xA;If that fails, it aligns them horizontally&#xA;according to their X alignments.  For &lt;code>PAGE_AXIS&lt;/code> layout,&#xA;horizontal alignment is done based on the leading edge of the component.&#xA;In other words, an X alignment value of 0.0 means the left edge of a&#xA;component if the container's &lt;code>ComponentOrientation&lt;/code> is left to&#xA;right and it means the right edge of the component otherwise.&#xA;&lt;p>&#xA;Instead of using BoxLayout directly, many programs use the Box class.&#xA;The Box class is a lightweight container that uses a BoxLayout.&#xA;It also provides handy methods to help you use BoxLayout well.&#xA;Adding components to multiple nested boxes is a powerful way to get&#xA;the arrangement you want.&#xA;&lt;p>&#xA;For further information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/layout/box.html&quot;>How to Use BoxLayout&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see Box&#xA;@see java.awt.ComponentOrientation&#xA;@see JComponent#getAlignmentX&#xA;@see JComponent#getAlignmentY&#xA;&#xA;@author   Timothy Prinzing&#xA;@version 1.34 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_390035_10635"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_731186_18228" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473546784_390035_10635" contract="_9_5_f720368_1110473546581_384048_7067"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323952_713232_18229" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_390035_10635" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548393_894111_23934" name="tree">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_787154_10575" name="RowMapper" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_827502_12240" body="Defines the requirements for an object that translates paths in&#xA;the tree into display rows.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_787154_10575"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_728270_10559" name="DefaultTreeCellEditor" clientDependency="_10_5_622020d_1132928323892_442569_18151 _10_5_622020d_1132928323892_597778_18152 _10_5_622020d_1132928323892_465506_18153">
              <ownedComment xmi:id="_10_5_622020d_1132928317753_188355_12221" body="A &lt;code>TreeCellEditor&lt;/code>. You need to supply an&#xA;instance of &lt;code>DefaultTreeCellRenderer&lt;/code>&#xA;so that the icons can be obtained. You can optionally supply&#xA;a &lt;code>TreeCellEditor&lt;/code> that will be layed out according&#xA;to the icon in the &lt;code>DefaultTreeCellRenderer&lt;/code>.&#xA;If you do not supply a &lt;code>TreeCellEditor&lt;/code>,&#xA;a &lt;code>TextField&lt;/code> will be used. Editing is started&#xA;on a triple mouse click, or after a click, pause, click and&#xA;a delay of 1200 miliseconds.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.JTree&#xA;&#xA;@version 1.30 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_728270_10559"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_442569_18151" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546784_728270_10559" contract="_9_5_f720368_1110473546565_106737_6535"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_597778_18152" name="" supplier="_9_5_f720368_1110473546784_342764_10577" client="_9_5_f720368_1110473546784_728270_10559" contract="_9_5_f720368_1110473546784_342764_10577"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_465506_18153" name="" supplier="_9_5_f720368_1110473546753_512408_9907" client="_9_5_f720368_1110473546784_728270_10559" contract="_9_5_f720368_1110473546753_512408_9907"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_614335_23946" name="DefaultTextField">
                <ownedComment xmi:id="_10_5_622020d_1132928317753_609892_12218" body="&lt;code>TextField&lt;/code> used when no editor is supplied.&#xA;This textfield locks into the border it is constructed with.&#xA;It also prefers its parents font over its font. And if the&#xA;renderer is not &lt;code>null&lt;/code> and no font&#xA;has been specified the preferred height is that of the renderer.&#xA;" annotatedElement="_9_5_f720368_1110473548393_614335_23946"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_361775_18154" isSubstitutable="true" general="_9_5_f720368_1110473546799_269096_10781"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_585710_23948" name="EditorContainer">
                <ownedComment xmi:id="_10_5_622020d_1132928317753_141979_12219" body="Container responsible for placing the &lt;code>editingComponent&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548393_585710_23948"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_854442_18155" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_833532_10585" name="TreePath" clientDependency="_10_5_622020d_1132928323902_460080_18173">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_814077_12250" body="Represents a path to a node. A TreePath is an array of Objects that are&#xA;vended from a TreeModel. The elements of the array are ordered such&#xA;that the root is always the first element (index 0) of the array.&#xA;TreePath is Serializable, but if any&#xA;components of the path are not serializable, it will not be written&#xA;out.&#xA;&lt;p>&#xA;For further information and examples of using tree paths,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.29 12/19/03&#xA;@author Scott Violet&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546784_833532_10585"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_212062_18174" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323902_460080_18173" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_833532_10585" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_333121_10563" name="DefaultTreeModel" clientDependency="_10_5_622020d_1132928323892_737976_18158 _10_5_622020d_1132928323892_385452_18159">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_714000_12225" body="A simple tree data model that uses TreeNodes.&#xA;For further information and examples that use DefaultTreeModel,&#xA;see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.55 05/05/04&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_333121_10563"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_737976_18158" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_333121_10563" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_385452_18159" name="" supplier="_9_5_f720368_1110473546784_289652_10581" client="_9_5_f720368_1110473546784_333121_10563" contract="_9_5_f720368_1110473546784_289652_10581"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928323892_842300_18167" name="Enumeration&lt;TreePath>">
              <templateBinding xmi:id="_10_5_622020d_1132928323892_155411_18168" signature="_10_5_622020d_1132928310953_589904_7187">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928323892_691121_18169" formal="_10_5_622020d_1132928310953_916423_7188" actual="_9_5_f720368_1110473546784_833532_10585"/>
              </templateBinding>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_846761_10565" name="DefaultTreeSelectionModel" clientDependency="_10_5_622020d_1132928323892_17775_18160 _10_5_622020d_1132928323892_480969_18161 _10_5_622020d_1132928323892_711131_18162">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_67461_12227" body="Default implementation of TreeSelectionModel.  Listeners are notified&#xA;whenever&#xA;the paths in the selection change, not the rows. In order&#xA;to be able to track row changes you may wish to become a listener&#xA;for expansion events on the tree and test for changes from there.&#xA;&lt;p>resetRowSelection is called from any of the methods that update&#xA;the selected paths. If you subclass any of these methods to&#xA;filter what is allowed to be selected, be sure and message&#xA;&lt;code>resetRowSelection&lt;/code> if you do not message super.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.JTree&#xA;&#xA;@version 1.50 05/05/04&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_846761_10565"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_949487_18163" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_17775_18160" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_846761_10565" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_480969_18161" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_846761_10565" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_711131_18162" name="" supplier="_9_5_f720368_1110473546784_980743_10587" client="_9_5_f720368_1110473546784_846761_10565" contract="_9_5_f720368_1110473546784_980743_10587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_852075_10579" name="TreeCellRenderer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_117796_12244" body="Defines the requirements for an object that displays a tree node.&#xA;See &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for an example of implementing a tree cell renderer&#xA;that displays custom icons.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_852075_10579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_980743_10587" name="TreeSelectionModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_704844_12252" body="This interface represents the current state of the selection for&#xA;the tree component.&#xA;For information and examples of using tree selection models,&#xA;see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;The state of the tree selection is characterized by&#xA;a set of TreePaths, and optionally a set of integers. The mapping&#xA;from TreePath to integer is done by way of an instance of RowMapper.&#xA;It is not necessary for a TreeSelectionModel to have a RowMapper to&#xA;correctly operate, but without a RowMapper &lt;code>getSelectionRows&lt;/code>&#xA;will return null.&#xA;&#xA;&lt;p>&#xA;&#xA;A TreeSelectionModel can be configured to allow only one&#xA;path (&lt;code>SINGLE_TREE_SELECTION&lt;/code>) a number of&#xA;continguous paths (&lt;code>CONTIGUOUS_TREE_SELECTION&lt;/code>) or a number of&#xA;discontiguous paths (&lt;code>DISCONTIGUOUS_TREE_SELECTION&lt;/code>).&#xA;A &lt;code>RowMapper&lt;/code> is used to determine if TreePaths are&#xA;contiguous.&#xA;In the absence of a RowMapper &lt;code>CONTIGUOUS_TREE_SELECTION&lt;/code> and&#xA;&lt;code>DISCONTIGUOUS_TREE_SELECTION&lt;/code> behave the same, that is they&#xA;allow any number of paths to be contained in the TreeSelectionModel.&#xA;&#xA;&lt;p>&#xA;&#xA;For a selection model of &lt;code>CONTIGUOUS_TREE_SELECTION&lt;/code> any&#xA;time the paths are changed (&lt;code>setSelectionPath&lt;/code>,&#xA;&lt;code>addSelectionPath&lt;/code> ...) the TreePaths are again checked to&#xA;make they are contiguous. A check of the TreePaths can also be forced&#xA;by invoking &lt;code>resetRowSelection&lt;/code>. How a set of discontiguous&#xA;TreePaths is mapped to a contiguous set is left to implementors of&#xA;this interface to enforce a particular policy.&#xA;&#xA;&lt;p>&#xA;&#xA;Implementations should combine duplicate TreePaths that are&#xA;added to the selection. For example, the following code&#xA;&lt;pre>&#xA;TreePath[] paths = new TreePath[] { treePath, treePath };&#xA;treeSelectionModel.setSelectionPaths(paths);&#xA;&lt;/pre>&#xA;should result in only one path being selected:&#xA;&lt;code>treePath&lt;/code>, and&#xA;not two copies of &lt;code>treePath&lt;/code>.&#xA;&#xA;&lt;p>&#xA;&#xA;The lead TreePath is the last path that was added (or set). The lead&#xA;row is then the row that corresponds to the TreePath as determined&#xA;from the RowMapper.&#xA;&#xA;@version 1.24 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_980743_10587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_916501_10589" name="VariableHeightLayoutCache">
              <ownedComment xmi:id="_10_5_622020d_1132928317803_959968_12256" body="NOTE: This will become more open in a future release.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.21 05/05/04&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_916501_10589"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_925720_18175" isSubstitutable="true" general="_9_5_f720368_1110473546784_349626_10555"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_17875_23971" name="TreeStateNode" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317803_427856_12253" body="TreeStateNode is used to keep track of each of&#xA;the nodes that have been expanded. This will also cache the preferred&#xA;size of the value it represents.&#xA;" annotatedElement="_9_5_f720368_1110473548393_17875_23971"/>
                <generalization xmi:id="_10_5_622020d_1132928323902_475967_18176" isSubstitutable="true" general="_9_5_f720368_1110473546784_953911_10557"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_963044_23973" name="VisibleTreeStateNodeEnumeration" visibility="private" clientDependency="_10_5_622020d_1132928323902_120456_18177">
                <ownedComment xmi:id="_10_5_622020d_1132928317803_33635_12254" body="An enumerator to iterate through visible nodes.&#xA;" annotatedElement="_9_5_f720368_1110473548393_963044_23973"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323902_120456_18177" name="" supplier="_10_5_622020d_1132928323892_842300_18167" client="_9_5_f720368_1110473548393_963044_23973" contract="_10_5_622020d_1132928323892_842300_18167"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_666714_10569" name="ExpandVetoException">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_496314_12231" body="Exception used to stop and expand/collapse from happening.&#xA;See &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treewillexpandlistener.html&quot;>How to Write a Tree-Will-Expand Listener&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for further information and examples.&#xA;&#xA;@version 1.10 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_666714_10569"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_133342_18164" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_342764_10577" name="TreeCellEditor" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_642890_12242" body="Adds to CellEditor the extensions necessary to configure an editor&#xA;in a tree.&#xA;&#xA;@see javax.swing.JTree&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_342764_10577"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_12891_18172" isSubstitutable="true" general="_9_5_f720368_1110473546784_515358_10641"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_852435_10567" name="PathPlaceHolder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_907609_12229" body="Holds a path and whether or not it is new.&#xA;" annotatedElement="_9_5_f720368_1110473546784_852435_10567"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_994433_10583" name="TreeNode" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_886764_12248" body="Defines the requirements for an object that can be used as a&#xA;tree node in a JTree.&#xA;&#xA;&lt;p>&#xA;&#xA;For further information and examples of using tree nodes,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Tree Nodes&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@version 1.23 07/13/04&#xA;@author Rob Davis&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_994433_10583"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_465117_10561" name="DefaultTreeCellRenderer" clientDependency="_10_5_622020d_1132928323892_975616_18156">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_620198_12223" body="Displays an entry in a tree.&#xA;&lt;code>DefaultTreeCellRenderer&lt;/code> is not opaque and&#xA;unless you subclass paint you should not change this.&#xA;See &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for examples of customizing node display using this class.&#xA;&lt;p>&#xA;&#xA;&lt;strong>&lt;a name=&quot;override&quot;>Implementation Note:&lt;/a>&lt;/strong>&#xA;This class overrides&#xA;&lt;code>invalidate&lt;/code>,&#xA;&lt;code>validate&lt;/code>,&#xA;&lt;code>revalidate&lt;/code>,&#xA;&lt;code>repaint&lt;/code>,&#xA;and&#xA;&lt;code>firePropertyChange&lt;/code>&#xA;solely to improve performance.&#xA;If not overridden, these frequently called methods would execute code paths&#xA;that are unnecessary for the default tree cell renderer.&#xA;If you write your own renderer,&#xA;take care to weigh the benefits and&#xA;drawbacks of overriding these methods.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.51 01/23/04&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_465117_10561"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_384655_18157" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_975616_18156" name="" supplier="_9_5_f720368_1110473546784_852075_10579" client="_9_5_f720368_1110473546784_465117_10561" contract="_9_5_f720368_1110473546784_852075_10579"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_953911_10557" name="DefaultMutableTreeNode" clientDependency="_10_5_622020d_1132928323892_146984_18141 _10_5_622020d_1132928323892_679834_18140 _10_5_622020d_1132928323892_355033_18142">
              <ownedComment xmi:id="_10_5_622020d_1132928317753_752557_12217" body="A &lt;code>DefaultMutableTreeNode&lt;/code> is a general-purpose node in a tree data&#xA;structure.&#xA;For examples of using default mutable tree nodes, see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;&#xA;A tree node may have at most one parent and 0 or more children.&#xA;&lt;code>DefaultMutableTreeNode&lt;/code> provides operations for examining and modifying a&#xA;node's parent and children and also operations for examining the tree that&#xA;the node is a part of.  A node's tree is the set of all nodes that can be&#xA;reached by starting at the node and following all the possible links to&#xA;parents and children.  A node with no parent is the root of its tree; a&#xA;node with no children is a leaf.  A tree may consist of many subtrees,&#xA;each node acting as the root for its own subtree.&#xA;&lt;p>&#xA;This class provides enumerations for efficiently traversing a tree or&#xA;subtree in various orders or for following the path between two nodes.&#xA;A &lt;code>DefaultMutableTreeNode&lt;/code> may also hold a reference to a user object, the&#xA;use of which is left to the user.  Asking a &lt;code>DefaultMutableTreeNode&lt;/code> for its&#xA;string representation with &lt;code>toString()&lt;/code> returns the string&#xA;representation of its user object.&#xA;&lt;p>&#xA;&lt;b>This is not a thread safe class.&lt;/b>If you intend to use&#xA;a DefaultMutableTreeNode (or a tree of TreeNodes) in more than one thread, you&#xA;need to do your own synchronizing. A good convention to adopt is&#xA;synchronizing on the root node of a tree.&#xA;&lt;p>&#xA;While DefaultMutableTreeNode implements the MutableTreeNode interface and&#xA;will allow you to add in any implementation of MutableTreeNode not all&#xA;of the methods in DefaultMutableTreeNode will be applicable to all&#xA;MutableTreeNodes implementations. Especially with some of the enumerations&#xA;that are provided, using some of these methods assumes the&#xA;DefaultMutableTreeNode contains only DefaultMutableNode instances. All&#xA;of the TreeNode/MutableTreeNode methods will behave as defined no&#xA;matter what implementations are added.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see MutableTreeNode&#xA;&#xA;@version 1.23 07/13/04&#xA;@author Rob Davis&#xA;" annotatedElement="_9_5_f720368_1110473546784_953911_10557"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_624527_18143" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_679834_18140" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_953911_10557" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_146984_18141" name="" supplier="_9_5_f720368_1110473546784_206425_10573" client="_9_5_f720368_1110473546784_953911_10557" contract="_9_5_f720368_1110473546784_206425_10573"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_355033_18142" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_953911_10557" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_804889_23939" name="PreorderEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928323892_202095_18147" isLeaf="true">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_202095_18147" name="" supplier="_10_5_622020d_1132928323892_605080_18144" client="_9_5_f720368_1110473548393_804889_23939" contract="_10_5_622020d_1132928323892_605080_18144"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_691282_23940" name="PostorderEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928323892_333724_18148" isLeaf="true">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_333724_18148" name="" supplier="_10_5_622020d_1132928323892_605080_18144" client="_9_5_f720368_1110473548393_691282_23940" contract="_10_5_622020d_1132928323892_605080_18144"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_413438_23941" name="BreadthFirstEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928323892_403477_18149" isLeaf="true">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_403477_18149" name="" supplier="_10_5_622020d_1132928323892_605080_18144" client="_9_5_f720368_1110473548393_413438_23941" contract="_10_5_622020d_1132928323892_605080_18144"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_812856_23942" name="Queue" visibility="package" isLeaf="true">
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_259040_23943" name="QNode" visibility="package" isLeaf="true"/>
                </nestedClassifier>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_389416_23944" name="PathBetweenNodesEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928323892_10356_18150" isLeaf="true">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_10356_18150" name="" supplier="_10_5_622020d_1132928323892_605080_18144" client="_9_5_f720368_1110473548393_389416_23944" contract="_10_5_622020d_1132928323892_605080_18144"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_349626_10555" name="AbstractLayoutCache" clientDependency="_10_5_622020d_1132928323892_776664_18139" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317753_81271_12215" body="&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.17 05/05/04&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_349626_10555"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_776664_18139" name="" supplier="_9_5_f720368_1110473546784_787154_10575" client="_9_5_f720368_1110473546784_349626_10555" contract="_9_5_f720368_1110473546784_787154_10575"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547190_992916_15611" name="NodeDimensions" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317753_829912_12213" body="Used by &lt;code>AbstractLayoutCache&lt;/code> to determine the size&#xA;and x origin of a particular node.&#xA;" annotatedElement="_9_5_f720368_1110473547190_992916_15611"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_289652_10581" name="TreeModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_264019_12246" body="The interface that defines a suitable data model for a &lt;code>JTree&lt;/code>.&#xA;For further information on tree models,&#xA;including an example of a custom implementation,&#xA;see &lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html&quot;>How to Use Trees&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;code>JTree&lt;/code> and its related classes make extensive use of&#xA;&lt;code>TreePath&lt;/code>s for indentifying nodes in the &lt;code>TreeModel&lt;/code>.&#xA;If a &lt;code>TreeModel&lt;/code> returns the same object, as compared by&#xA;&lt;code>equals&lt;/code>, at two different indices under the same parent&#xA;than the resulting &lt;code>TreePath&lt;/code> objects will be considered equal&#xA;as well. Some implementations may assume that if two&#xA;&lt;code>TreePath&lt;/code>s are equal, they identify the same node. If this&#xA;condition is not met, painting problems and other oddities may result.&#xA;In other words, if &lt;code>getChild&lt;/code> for a given parent returns&#xA;the same Object (as determined by &lt;code>equals&lt;/code>) problems may&#xA;result, and it is recommended you avoid doing this.&#xA;&#xA;@see TreePath&#xA;&#xA;@version 1.23 12/19/03&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546784_289652_10581"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_89812_10571" name="FixedHeightLayoutCache">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_199050_12236" body="NOTE: This will become more open in a future release.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.24 05/05/04&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_89812_10571"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_289383_18165" isSubstitutable="true" general="_9_5_f720368_1110473546784_349626_10555"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_377007_23956" name="FHTreeStateNode" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317793_480995_12232" body="FHTreeStateNode is used to track what has been expanded.&#xA;FHTreeStateNode differs from VariableHeightTreeState.TreeStateNode&#xA;in that it is highly model intensive. That is almost all queries to a&#xA;FHTreeStateNode result in the TreeModel being queried. And it&#xA;obviously does not support variable sized row heights.&#xA;" annotatedElement="_9_5_f720368_1110473548393_377007_23956"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_195194_18166" isSubstitutable="true" general="_9_5_f720368_1110473546784_953911_10557"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_596012_23958" name="SearchInfo" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317793_878365_12233" body="Used as a placeholder when getting the path in FHTreeStateNodes.&#xA;" annotatedElement="_9_5_f720368_1110473548393_596012_23958"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548393_489703_23960" name="VisibleFHTreeStateNodeEnumeration" visibility="private" clientDependency="_10_5_622020d_1132928323892_317955_18170">
                <ownedComment xmi:id="_10_5_622020d_1132928317793_225606_12234" body="An enumerator to iterate through visible nodes.&#xA;" annotatedElement="_9_5_f720368_1110473548393_489703_23960"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_317955_18170" name="" supplier="_10_5_622020d_1132928323892_842300_18167" client="_9_5_f720368_1110473548393_489703_23960" contract="_10_5_622020d_1132928323892_842300_18167"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_206425_10573" name="MutableTreeNode" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317793_894426_12238" body="Defines the requirements for a tree node object that can change --&#xA;by adding or removing child nodes, or by changing the contents&#xA;of a user object stored in the node.&#xA;&#xA;@see DefaultMutableTreeNode&#xA;@see javax.swing.JTree&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Rob Davis&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_206425_10573"/>
              <generalization xmi:id="_10_5_622020d_1132928323902_929119_18171" isSubstitutable="true" general="_9_5_f720368_1110473546784_994433_10583"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928323892_605080_18144" name="Enumeration&lt;TreeNode>">
              <templateBinding xmi:id="_10_5_622020d_1132928323892_684820_18145" signature="_10_5_622020d_1132928310953_589904_7187">
                <parameterSubstitution xmi:id="_10_5_622020d_1132928323892_869386_18146" formal="_10_5_622020d_1132928310953_916423_7188" actual="_9_5_f720368_1110473546784_994433_10583"/>
              </templateBinding>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_72884_10653" name="DebugGraphicsFilter" visibility="package">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_545287_12329" body="Color filter for DebugGraphics, used for images only.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Dave Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546784_72884_10653"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_686358_18238" isSubstitutable="true" general="_9_5_f720368_1110473546581_815313_6831"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_735162_10623" name="ActionMap" clientDependency="_10_5_622020d_1132928323912_904567_18214">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_826578_12293" body="&lt;code>ActionMap&lt;/code> provides mappings from&#xA;&lt;code>Object&lt;/code>s&#xA;(called &lt;em>keys&lt;/em> or &lt;em>&lt;code>Action&lt;/code> names&lt;/em>)&#xA;to &lt;code>Action&lt;/code>s.&#xA;An &lt;code>ActionMap&lt;/code> is usually used with an &lt;code>InputMap&lt;/code>&#xA;to locate a particular action&#xA;when a key is pressed. As with &lt;code>InputMap&lt;/code>,&#xA;an &lt;code>ActionMap&lt;/code> can have a parent&#xA;that is searched for keys not defined in the &lt;code>ActionMap&lt;/code>.&#xA;&lt;p>As with &lt;code>InputMap&lt;/code> if you create a cycle, eg:&#xA;&lt;pre>&#xA;ActionMap am = new ActionMap();&#xA;ActionMap bm = new ActionMap():&#xA;am.setParent(bm);&#xA;bm.setParent(am);&#xA;&lt;/pre>&#xA;some of the methods will cause a StackOverflowError to be thrown.&#xA;&#xA;@see InputMap&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_735162_10623"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_904567_18214" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_735162_10623" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_409896_10697" name="InputMap" clientDependency="_10_5_622020d_1132928323972_850054_18278">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_409770_12373" body="&lt;code>InputMap&lt;/code> provides a binding between an input event&#xA;(currently only &lt;code>KeyStroke&lt;/code>s are used)&#xA;and an &lt;code>Object&lt;/code>. &lt;code>InputMap&lt;/code>s&#xA;are usually used with an &lt;code>ActionMap&lt;/code>,&#xA;to determine an &lt;code>Action&lt;/code> to perform&#xA;when a key is pressed.&#xA;An &lt;code>InputMap&lt;/code> can have a parent&#xA;that is searched for bindings not defined in the &lt;code>InputMap&lt;/code>.&#xA;&lt;p>As with &lt;code>ActionMap&lt;/code> if you create a cycle, eg:&#xA;&lt;pre>&#xA;InputMap am = new InputMap();&#xA;InputMap bm = new InputMap():&#xA;am.setParent(bm);&#xA;bm.setParent(am);&#xA;&lt;/pre>&#xA;some of the methods will cause a StackOverflowError to be thrown.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Scott Violet&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546784_409896_10697"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_850054_18278" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_409896_10697" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_292637_10889" name="UnsupportedLookAndFeelException">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_870249_12698" body="An exception that indicates the requested look &amp; feel&#xA;management classes are not present on the user's system.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author unattributed&#xA;@version 1.17 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546799_292637_10889"/>
            <generalization xmi:id="_10_5_622020d_1132928324182_534977_18707" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_226228_10857" name="SpinnerDateModel" clientDependency="_10_5_622020d_1132928324172_398608_18654">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_796645_12643" body="A &lt;code>SpinnerModel&lt;/code> for sequences of &lt;code>Date&lt;/code>s.&#xA;The upper and lower bounds of the sequence are defined by properties called&#xA;&lt;code>start&lt;/code> and &lt;code>end&lt;/code> and the size&#xA;of the increase or decrease computed by the &lt;code>nextValue&lt;/code>&#xA;and &lt;code>previousValue&lt;/code> methods is defined by a property&#xA;called &lt;code>calendarField&lt;/code>.  The &lt;code>start&lt;/code>&#xA;and &lt;code>end&lt;/code> properties can be &lt;code>null&lt;/code> to&#xA;indicate that the sequence has no lower or upper limit.&#xA;&lt;p>&#xA;The value of the &lt;code>calendarField&lt;/code> property must be one of the&#xA;&lt;code>java.util.Calendar&lt;/code> constants that specify a field&#xA;within a &lt;code>Calendar&lt;/code>.  The &lt;code>getNextValue&lt;/code>&#xA;and &lt;code>getPreviousValue&lt;/code>&#xA;methods change the date forward or backwards by this amount.&#xA;For example, if &lt;code>calendarField&lt;/code> is &lt;code>Calendar.DAY_OF_WEEK&lt;/code>,&#xA;then &lt;code>nextValue&lt;/code> produces a &lt;code>Date&lt;/code> that's 24&#xA;hours after the current &lt;code>value&lt;/code>, and &lt;code>previousValue&lt;/code>&#xA;produces a &lt;code>Date&lt;/code> that's 24 hours earlier.&#xA;&lt;p>&#xA;The legal values for &lt;code>calendarField&lt;/code> are:&#xA;&lt;ul>&#xA;&lt;li>&lt;code>Calendar.ERA&lt;/code>&#xA;&lt;li>&lt;code>Calendar.YEAR&lt;/code>&#xA;&lt;li>&lt;code>Calendar.MONTH&lt;/code>&#xA;&lt;li>&lt;code>Calendar.WEEK_OF_YEAR&lt;/code>&#xA;&lt;li>&lt;code>Calendar.WEEK_OF_MONTH&lt;/code>&#xA;&lt;li>&lt;code>Calendar.DAY_OF_MONTH&lt;/code>&#xA;&lt;li>&lt;code>Calendar.DAY_OF_YEAR&lt;/code>&#xA;&lt;li>&lt;code>Calendar.DAY_OF_WEEK&lt;/code>&#xA;&lt;li>&lt;code>Calendar.DAY_OF_WEEK_IN_MONTH&lt;/code>&#xA;&lt;li>&lt;code>Calendar.AM_PM&lt;/code>&#xA;&lt;li>&lt;code>Calendar.HOUR&lt;/code>&#xA;&lt;li>&lt;code>Calendar.HOUR_OF_DAY&lt;/code>&#xA;&lt;li>&lt;code>Calendar.MINUTE&lt;/code>&#xA;&lt;li>&lt;code>Calendar.SECOND&lt;/code>&#xA;&lt;li>&lt;code>Calendar.MILLISECOND&lt;/code>&#xA;&lt;/ul>&#xA;However some UIs may set the calendarField before commiting the edit&#xA;to spin the field under the cursor. If you only want one field to&#xA;spin you can subclass and ignore the setCalendarField calls.&#xA;&lt;p>&#xA;This model inherits a &lt;code>ChangeListener&lt;/code>.  The&#xA;&lt;code>ChangeListeners&lt;/code> are notified whenever the models&#xA;&lt;code>value&lt;/code>, &lt;code>calendarField&lt;/code>,&#xA;&lt;code>start&lt;/code>, or &lt;code>end&lt;/code> properties changes.&#xA;&#xA;@see JSpinner&#xA;@see SpinnerModel&#xA;@see AbstractSpinnerModel&#xA;@see SpinnerListModel&#xA;@see SpinnerNumberModel&#xA;@see Calendar#add&#xA;&#xA;@version 1.11 05/12/04&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_226228_10857"/>
            <generalization xmi:id="_10_5_622020d_1132928324172_81121_18655" isSubstitutable="true" general="_9_5_f720368_1110473546784_128706_10619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_398608_18654" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_226228_10857" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_690835_10827" name="Popup">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_662817_12606" body="Popups are used to display a &lt;code>Component&lt;/code> to the user, typically&#xA;on top of all the other &lt;code>Component&lt;/code>s in a particular containment&#xA;hierarchy. &lt;code>Popup&lt;/code>s have a very small life cycle. Once you&#xA;have obtained a &lt;code>Popup&lt;/code>, and hidden it (invoked the&#xA;&lt;code>hide&lt;/code> method), you should no longer&#xA;invoke any methods on it. This allows the &lt;code>PopupFactory&lt;/code> to cache&#xA;&lt;code>Popup&lt;/code>s for later use.&#xA;&lt;p>&#xA;The general contract is that if you need to change the size of the&#xA;&lt;code>Component&lt;/code>, or location of the &lt;code>Popup&lt;/code>, you should&#xA;obtain a new &lt;code>Popup&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>Popup&lt;/code> does not descend from &lt;code>Component&lt;/code>, rather&#xA;implementations of &lt;code>Popup&lt;/code> are responsible for creating&#xA;and maintaining their own &lt;code>Component&lt;/code>s to render the&#xA;requested &lt;code>Component&lt;/code> to the user.&#xA;&lt;p>&#xA;You typically do not explicitly create an instance of &lt;code>Popup&lt;/code>,&#xA;instead obtain one from a &lt;code>PopupFactory&lt;/code>.&#xA;&#xA;@see PopupFactory&#xA;&#xA;@version 1.17 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_690835_10827"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_425961_24410" name="HeavyWeightWindow" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318194_126282_12603" body="Component used to house window.&#xA;" annotatedElement="_9_5_f720368_1110473548471_425961_24410"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_902142_18631" isSubstitutable="true" general="_9_5_f720368_1110473546799_447744_10795"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_544081_24413" name="DefaultFrame" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318194_213875_12604" body="Used if no valid Window ancestor of the supplied owner is found.&#xA;&lt;p>&#xA;PopupFactory uses this as a way to know when the Popup shouldn't&#xA;be cached based on the Window.&#xA;" annotatedElement="_9_5_f720368_1110473548471_544081_24413"/>
              <generalization xmi:id="_10_5_622020d_1132928324162_155900_18632" isSubstitutable="true" general="_9_5_f720368_1110473546581_371788_7015"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_383073_10639" name="ButtonModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_935284_12314" body="State Model for buttons.&#xA;This model is used for check boxes and radio buttons, which are&#xA;special kinds of buttons, as well as for normal buttons.&#xA;For check boxes and radio buttons, pressing the mouse selects&#xA;the button. For normal buttons, pressing the mouse &quot;arms&quot; the&#xA;button. Releasing the mouse over the button then initiates a&#xA;&lt;i>button&lt;/i> press, firing its action event. Releasing the&#xA;mouse elsewhere disarms the button.&#xA;&lt;p>&#xA;In use, a UI will invoke {@link #setSelected} when a mouse&#xA;click occurs over a check box or radio button. It will invoke&#xA;{@link #setArmed} when the mouse is pressed over a regular&#xA;button and invoke {@link #setPressed} when the mouse is released.&#xA;If the mouse travels outside the button in the meantime,&#xA;&lt;code>setArmed(false)&lt;/code> will tell the button not to fire&#xA;when it sees &lt;code>setPressed&lt;/code>. (If the mouse travels&#xA;back in, the button will be rearmed.)&#xA;&lt;blockquote>&#xA;&lt;b>Note: &lt;/b>&lt;br>&#xA;A button is triggered when it is both &quot;armed&quot; and &quot;pressed&quot;.&#xA;&lt;/blockquote>&#xA;&#xA;@version 1.26 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_383073_10639"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_147879_18231" isSubstitutable="true" general="_9_5_f720368_1110473546581_556143_7053"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548284_980497_22831" name="text">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_362837_10541" name="TextAction" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317733_960855_12197" body="An Action implementation useful for key bindings that are&#xA;shared across a number of different text components.  Because&#xA;the action is shared, it must have a way of getting it's&#xA;target to act upon.  This class provides support to try and&#xA;find a text component to operate on.  The preferred way of&#xA;getting the component to act upon is through the ActionEvent&#xA;that is received.  If the Object returned by getSource can&#xA;be narrowed to a text component, it will be used.  If the&#xA;action event is null or can't be narrowed, the last focused&#xA;text component is tried.  This is determined by being&#xA;used in conjunction with a JTextController which&#xA;arranges to share that information with a TextAction.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.29 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_362837_10541"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_765720_18129" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_472000_10535" name="TableView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_584816_12191" body="&lt;p>&#xA;Implements View interface for a table, that is composed of an&#xA;element structure where the child elements of the element&#xA;this view is responsible for represent rows and the child&#xA;elements of the row elements are cells.  The cell elements can&#xA;have an arbitrary element structure under them, which will&#xA;be built with the ViewFactory returned by the getViewFactory&#xA;method.&#xA;&lt;pre>&#xA;&#xA;&amp;nbsp;  TABLE&#xA;&amp;nbsp;    ROW&#xA;&amp;nbsp;      CELL&#xA;&amp;nbsp;      CELL&#xA;&amp;nbsp;    ROW&#xA;&amp;nbsp;      CELL&#xA;&amp;nbsp;      CELL&#xA;&#xA;&lt;/pre>&#xA;&lt;p>&#xA;This is implemented as a hierarchy of boxes, the table itself&#xA;is a vertical box, the rows are horizontal boxes, and the cells&#xA;are vertical boxes.  The cells are allowed to span multiple&#xA;columns and rows.  By default, the table can be thought of as&#xA;being formed over a grid (i.e. somewhat like one would find in&#xA;gridbag layout), where table cells can request to span more&#xA;than one grid cell.  The default horizontal span of table cells&#xA;will be based upon this grid, but can be changed by reimplementing&#xA;the requested span of the cell (i.e. table cells can have independant&#xA;spans if desired).&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.33 05/18/04&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_472000_10535"/>
              <generalization xmi:id="_10_5_622020d_1132928323882_923923_18123" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_815880_23684" name="TableRow">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_86182_12184" body="View of a row in a row-centric table.&#xA;" annotatedElement="_9_5_f720368_1110473548378_815880_23684"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_695775_18124" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_395629_23686" name="TableCell" clientDependency="_10_5_622020d_1132928323882_529984_18125">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_840000_12188" body="@deprecated  A table cell can now be any View implementation.&#xA;" annotatedElement="_9_5_f720368_1110473548378_395629_23686"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_431425_18126" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_529984_18125" name="" supplier="_9_5_f720368_1110473548378_146588_23688" client="_9_5_f720368_1110473548378_395629_23686" contract="_9_5_f720368_1110473548378_146588_23688"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548378_146588_23688" name="GridCell" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_591470_12189" body="&lt;em>&#xA;THIS IS NO LONGER USED, AND WILL BE REMOVED IN THE&#xA;NEXT RELEASE.  THE JCK SIGNATURE TEST THINKS THIS INTERFACE&#xA;SHOULD EXIST&#xA;&lt;/em>&#xA;" annotatedElement="_9_5_f720368_1110473548378_146588_23688"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548284_485817_22832" name="html">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_647706_10365" name="InlineView">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_712680_11884" body="Displays the &lt;dfn>inline element&lt;/dfn> styles&#xA;based upon css attributes.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.25 03/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_647706_10365"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_436209_17843" isSubstitutable="true" general="_9_5_f720368_1110473546784_679959_10487"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_216415_10337" name="CSS" clientDependency="_10_5_622020d_1132928323792_837217_17760">
                <ownedComment xmi:id="_10_5_622020d_1132928317432_722973_11819" body="Defines a set of&#xA;&lt;a href=&quot;http://www.w3.org/TR/REC-CSS1&quot;>CSS attributes&lt;/a>&#xA;as a typesafe enumeration.  The HTML View implementations use&#xA;CSS attributes to determine how they will render. This also defines&#xA;methods to map between CSS/HTML/StyleConstants. Any shorthand&#xA;properties, such as font, are mapped to the intrinsic properties.&#xA;&lt;p>The following describes the CSS properties that are suppored by the&#xA;rendering engine:&#xA;&lt;ul>&lt;li>font-family&#xA;&lt;li>font-style&#xA;&lt;li>font-size (supports relative units)&#xA;&lt;li>font-weight&#xA;&lt;li>font&#xA;&lt;li>color&#xA;&lt;li>background-color (with the exception of transparent)&#xA;&lt;li>background-image&#xA;&lt;li>background-repeat&#xA;&lt;li>background-position&#xA;&lt;li>background&#xA;&lt;li>background-repeat&#xA;&lt;li>text-decoration (with the exception of blink and overline)&#xA;&lt;li>vertical-align (only sup and super)&#xA;&lt;li>text-align (justify is treated as center)&#xA;&lt;li>margin-top&#xA;&lt;li>margin-right&#xA;&lt;li>margin-bottom&#xA;&lt;li>margin-left&#xA;&lt;li>margin&#xA;&lt;li>padding-top&#xA;&lt;li>padding-right&#xA;&lt;li>padding-bottom&#xA;&lt;li>padding-left&#xA;&lt;li>border-style (only supports inset, outset and none)&#xA;&lt;li>list-style-type&#xA;&lt;li>list-style-position&#xA;&lt;/ul>&#xA;The following are modeled, but currently not rendered.&#xA;&lt;ul>&lt;li>font-variant&#xA;&lt;li>background-attachment (background always treated as scroll)&#xA;&lt;li>word-spacing&#xA;&lt;li>letter-spacing&#xA;&lt;li>text-indent&#xA;&lt;li>text-transform&#xA;&lt;li>line-height&#xA;&lt;li>border-top-width (this is used to indicate if a border should be used)&#xA;&lt;li>border-right-width&#xA;&lt;li>border-bottom-width&#xA;&lt;li>border-left-width&#xA;&lt;li>border-width&#xA;&lt;li>border-top&#xA;&lt;li>border-right&#xA;&lt;li>border-bottom&#xA;&lt;li>border-left&#xA;&lt;li>border&#xA;&lt;li>width&#xA;&lt;li>height&#xA;&lt;li>float&#xA;&lt;li>clear&#xA;&lt;li>display&#xA;&lt;li>white-space&#xA;&lt;li>list-style&#xA;&lt;/ul>&#xA;&lt;p>&lt;b>Note: for the time being we do not fully support relative units,&#xA;unless noted, so that&#xA;p { margin-top: 10% } will be treated as if no margin-top was specified.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Scott Violet&#xA;@version 1.54 07/24/04&#xA;@see StyleSheet&#xA;" annotatedElement="_9_5_f720368_1110473546768_216415_10337"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323792_837217_17760" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_216415_10337" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_770352_22888" name="Attribute" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_989088_11805" body="Definitions to be used as a key on AttributeSet's&#xA;that might hold CSS attributes.  Since this is a&#xA;closed set (i.e. defined exactly by the specification),&#xA;it is final and cannot be extended.&#xA;" annotatedElement="_9_5_f720368_1110473548299_770352_22888"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_782025_22891" name="Value" visibility="package" isLeaf="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_194488_22893" name="CssValue" visibility="package" clientDependency="_10_5_622020d_1132928323792_973696_17761">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_636948_11806" body="Base class to CSS values in the attribute sets.  This&#xA;is intended to act as a convertor to/from other attribute&#xA;formats.&#xA;&lt;p>&#xA;The CSS parser uses the parseCssValue method to convert&#xA;a string to whatever format is appropriate a given key&#xA;(i.e. these convertors are stored in a map using the&#xA;CSS.Attribute as a key and the CssValue as the value).&#xA;&lt;p>&#xA;The HTML to CSS conversion process first converts the&#xA;HTML.Attribute to a CSS.Attribute, and then calls&#xA;the parseHtmlValue method on the value of the HTML&#xA;attribute to produce the corresponding CSS value.&#xA;&lt;p>&#xA;The StyleConstants to CSS conversion process first&#xA;converts the StyleConstants attribute to a&#xA;CSS.Attribute, and then calls the fromStyleConstants&#xA;method to convert the StyleConstants value to a&#xA;CSS value.&#xA;&lt;p>&#xA;The CSS to StyleConstants conversion process first&#xA;converts the StyleConstants attribute to a&#xA;CSS.Attribute, and then calls the toStyleConstants&#xA;method to convert the CSS value to a StyleConstants&#xA;value.&#xA;" annotatedElement="_9_5_f720368_1110473548299_194488_22893"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_973696_17761" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_194488_22893" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_897993_22896" name="StringValue" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_211874_11807" body="By default CSS attributes are represented as simple&#xA;strings.  They also have no conversion to/from&#xA;StyleConstants by default. This class represents the&#xA;value as a string (via the superclass), but&#xA;provides StyleConstants conversion support for the&#xA;CSS attributes that are held as strings.&#xA;" annotatedElement="_9_5_f720368_1110473548299_897993_22896"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_531628_17762" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_422058_22899" name="FontSize" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_372986_11808" body="Represents a value for the CSS.FONT_SIZE attribute.&#xA;The binary format of the value can be one of several&#xA;types.  If the type is Float,&#xA;the value is specified in terms of point or&#xA;percentage, depending upon the ending of the&#xA;associated string.&#xA;If the type is Integer, the value is specified&#xA;in terms of a size index.&#xA;" annotatedElement="_9_5_f720368_1110473548299_422058_22899"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_208853_17763" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_96168_22901" name="FontFamily" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323792_290899_17764" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_480906_22903" name="FontWeight" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323792_791721_17765" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_708287_22905" name="ColorValue" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323792_392481_17766" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_13760_22907" name="BorderStyle" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323792_26759_17767" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_54989_22909" name="LengthValue" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323792_682439_17768" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_791327_22911" name="BorderWidthValue" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_795560_11809" body="BorderWidthValue is used to model BORDER_XXX_WIDTH and adds support&#xA;for the thin/medium/thick values.&#xA;" annotatedElement="_9_5_f720368_1110473548299_791327_22911"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_644725_17769" isSubstitutable="true" general="_9_5_f720368_1110473548299_54989_22909"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_16219_22914" name="CssValueMapper" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_226287_11810" body="Handles uniquing of CSS values, like lists, and background image&#xA;repeating.&#xA;" annotatedElement="_9_5_f720368_1110473548299_16219_22914"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_437290_17770" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_325438_22917" name="BackgroundPosition" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_653852_11811" body="Used for background images, to represent the position.&#xA;" annotatedElement="_9_5_f720368_1110473548299_325438_22917"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_801048_17771" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_463927_22920" name="BackgroundImage" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_718119_11812" body="Used for BackgroundImages.&#xA;" annotatedElement="_9_5_f720368_1110473548299_463927_22920"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_979590_17772" isSubstitutable="true" general="_9_5_f720368_1110473548299_194488_22893"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_353409_22923" name="LengthUnit" visibility="package" clientDependency="_10_5_622020d_1132928323792_681994_17773">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_243848_11813" body="Parses a length value, this is used internally, and never added&#xA;to an AttributeSet or returned to the developer.&#xA;" annotatedElement="_9_5_f720368_1110473548299_353409_22923"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_681994_17773" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_353409_22923" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_393437_22926" name="ShorthandFontParser" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_567741_11814" body="Class used to parse font property. The font property is shorthand&#xA;for the other font properties. This expands the properties, placing&#xA;them in the attributeset.&#xA;" annotatedElement="_9_5_f720368_1110473548299_393437_22926"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_196769_22929" name="ShorthandBackgroundParser" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_803795_11815" body="Parses the background property into its intrinsic values.&#xA;" annotatedElement="_9_5_f720368_1110473548299_196769_22929"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_928283_22932" name="ShorthandMarginParser" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_1288_11816" body="Used to parser margin and padding.&#xA;" annotatedElement="_9_5_f720368_1110473548299_928283_22932"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548299_577461_22935" name="LayoutIterator" visibility="package" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_710229_11817" body="An iterator to express the requirements to use when computing&#xA;layout.&#xA;" annotatedElement="_9_5_f720368_1110473548299_577461_22935"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_882550_10363" name="ImageView">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_32329_11882" body="View of an Image, intended to support the HTML &lt;IMG> tag.&#xA;Supports scaling via the HEIGHT and WIDTH attributes of the tag.&#xA;If the image is unable to be loaded any text specified via the&#xA;&lt;code>ALT&lt;/code> attribute will be rendered.&#xA;&lt;p>&#xA;While this class has been part of swing for a while now, it is public&#xA;as of 1.4.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.56 12/19/03&#xA;@see IconView&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546768_882550_10363"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_471577_17840" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_35798_23043" name="ImageHandler" visibility="private" clientDependency="_10_5_622020d_1132928323832_892896_17841">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_488925_11879" body="ImageHandler implements the ImageObserver to correctly update the&#xA;display as new parts of the image become available.&#xA;" annotatedElement="_9_5_f720368_1110473548315_35798_23043"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_892896_17841" name="" supplier="_9_5_f720368_1110473546565_278383_6795" client="_9_5_f720368_1110473548315_35798_23043" contract="_9_5_f720368_1110473546565_278383_6795"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_247195_23045" name="ImageLabelView" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_37371_11880" body="ImageLabelView is used if the image can't be loaded, and&#xA;the attribute specified an alt attribute. It overriden a handle of&#xA;methods as the text is hardcoded and does not come from the document.&#xA;" annotatedElement="_9_5_f720368_1110473548315_247195_23045"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_193060_17842" isSubstitutable="true" general="_9_5_f720368_1110473546768_647706_10365"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_98559_10369" name="LineView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_876442_11888" body="A view implementation to display an unwrapped&#xA;preformatted line.&lt;p>&#xA;This subclasses ParagraphView, but this really only contains one&#xA;Row of text.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.18 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_98559_10369"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_55079_17846" isSubstitutable="true" general="_9_5_f720368_1110473546784_61091_10389"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_562430_10341" name="EditableView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_391671_11823" body="EditableView sets the view it contains to be visible only when the&#xA;JTextComponent the view is contained in is editable. The min/pref/max&#xA;size is 0 when not visible.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.11, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_562430_10341"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_629231_17774" isSubstitutable="true" general="_9_5_f720368_1110473546784_352959_10433"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_859584_10367" name="IsindexView" visibility="package" clientDependency="_10_5_622020d_1132928323832_338655_17844">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_683705_11886" body="A view that supports the &lt;ISINDEX&lt; tag.  This is implemented&#xA;as a JPanel that contains&#xA;&#xA;@author Sunita Mani&#xA;@version 1.11, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_859584_10367"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_133446_17845" isSubstitutable="true" general="_9_5_f720368_1110473546784_352959_10433"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_338655_17844" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546768_859584_10367" contract="_9_5_f720368_1110473546565_106737_6535"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_115332_10347" name="FrameView" visibility="package" clientDependency="_10_5_622020d_1132928323792_618721_17782">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_987448_11840" body="Implements a FrameView, intended to support the HTML&#xA;&lt;FRAME> tag.  Supports the frameborder, scrolling,&#xA;marginwidth and marginheight attributes.&#xA;&#xA;@author    Sunita Mani&#xA;@version   1.28, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_115332_10347"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_383882_17783" isSubstitutable="true" general="_9_5_f720368_1110473546784_352959_10433"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323792_618721_17782" name="" supplier="_9_5_f720368_1110473546753_827683_9851" client="_9_5_f720368_1110473546768_115332_10347" contract="_9_5_f720368_1110473546753_827683_9851"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317442_581581_11837" name="FrameEditorPane" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_860715_11838" body="Editor pane rendering frame of HTML document&#xA;It uses the same editor kits classes as outermost JEditorPane&#xA;" annotatedElement="_10_5_622020d_1132928317442_581581_11837"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_254322_17784" isSubstitutable="true" general="_9_5_f720368_1110473546799_766828_10725"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_503665_10357" name="HTMLEditorKit" clientDependency="_10_5_622020d_1132928323832_834582_17823">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_528780_11874" body="The Swing JEditorPane text component supports different kinds&#xA;of content via a plug-in mechanism called an EditorKit.  Because&#xA;HTML is a very popular format of content, some support is provided&#xA;by default.  The default support is provided by this class, which&#xA;supports HTML version 3.2 (with some extensions), and is migrating&#xA;toward version 4.0.&#xA;The &lt;applet> tag is not supported, but some support is provided&#xA;for the &lt;object> tag.&#xA;&lt;p>&#xA;There are several goals of the HTML EditorKit provided, that have&#xA;an effect upon the way that HTML is modeled.  These&#xA;have influenced its design in a substantial way.&#xA;&lt;dl>&#xA;&lt;p>&#xA;&lt;dt>&#xA;Support editing&#xA;&lt;dd>&#xA;It might seem fairly obvious that a plug-in for JEditorPane&#xA;should provide editing support, but that fact has several&#xA;design considerations.  There are a substantial number of HTML&#xA;documents that don't properly conform to an HTML specification.&#xA;These must be normalized somewhat into a correct form if one&#xA;is to edit them.  Additionally, users don't like to be presented&#xA;with an excessive amount of structure editing, so using traditional&#xA;text editing gestures is preferred over using the HTML structure&#xA;exactly as defined in the HTML document.&#xA;&lt;p>&#xA;The modeling of HTML is provided by the class &lt;code>HTMLDocument&lt;/code>.&#xA;Its documention describes the details of how the HTML is modeled.&#xA;The editing support leverages heavily off of the text package.&#xA;&lt;p>&#xA;&lt;dt>&#xA;Extendable/Scalable&#xA;&lt;dd>&#xA;To maximize the usefulness of this kit, a great deal of effort&#xA;has gone into making it extendable.  These are some of the&#xA;features.&#xA;&lt;ol>&#xA;&lt;li>&#xA;The parser is replacable.  The default parser is the Hot Java&#xA;parser which is DTD based.  A different DTD can be used, or an&#xA;entirely different parser can be used.  To change the parser,&#xA;reimplement the getParser method.  The default parser is&#xA;dynamically loaded when first asked for, so the class files&#xA;will never be loaded if an alternative parser is used.  The&#xA;default parser is in a separate package called parser below&#xA;this package.&#xA;&lt;li>&#xA;The parser drives the ParserCallback, which is provided by&#xA;HTMLDocument.  To change the callback, subclass HTMLDocument&#xA;and reimplement the createDefaultDocument method to return&#xA;document that produces a different reader.  The reader controls&#xA;how the document is structured.  Although the Document provides&#xA;HTML support by default, there is nothing preventing support of&#xA;non-HTML tags that result in alternative element structures.&#xA;&lt;li>&#xA;The default view of the models are provided as a hierarchy of&#xA;View implementations, so one can easily customize how a particular&#xA;element is displayed or add capabilities for new kinds of elements&#xA;by providing new View implementations.  The default set of views&#xA;are provided by the &lt;code>HTMLFactory&lt;/code> class.  This can&#xA;be easily changed by subclassing or replacing the HTMLFactory&#xA;and reimplementing the getViewFactory method to return the alternative&#xA;factory.&#xA;&lt;li>&#xA;The View implementations work primarily off of CSS attributes,&#xA;which are kept in the views.  This makes it possible to have&#xA;multiple views mapped over the same model that appear substantially&#xA;different.  This can be especially useful for printing.  For&#xA;most HTML attributes, the HTML attributes are converted to CSS&#xA;attributes for display.  This helps make the View implementations&#xA;more general purpose&#xA;&lt;/ol>&#xA;&lt;p>&#xA;&lt;dt>&#xA;Asynchronous Loading&#xA;&lt;dd>&#xA;Larger documents involve a lot of parsing and take some time&#xA;to load.  By default, this kit produces documents that will be&#xA;loaded asynchronously if loaded using &lt;code>JEditorPane.setPage&lt;/code>.&#xA;This is controlled by a property on the document.  The method&#xA;&lt;a href=&quot;#createDefaultDocument&quot;>createDefaultDocument&lt;/a> can&#xA;be overriden to change this.  The batching of work is done&#xA;by the &lt;code>HTMLDocument.HTMLReader&lt;/code> class.  The actual&#xA;work is done by the &lt;code>DefaultStyledDocument&lt;/code> and&#xA;&lt;code>AbstractDocument&lt;/code> classes in the text package.&#xA;&lt;p>&#xA;&lt;dt>&#xA;Customization from current LAF&#xA;&lt;dd>&#xA;HTML provides a well known set of features without exactly&#xA;specifying the display characteristics.  Swing has a theme&#xA;mechanism for its look-and-feel implementations.  It is desirable&#xA;for the look-and-feel to feed display characteristics into the&#xA;HTML views.  An user with poor vision for example would want&#xA;high contrast and larger than typical fonts.&#xA;&lt;p>&#xA;The support for this is provided by the &lt;code>StyleSheet&lt;/code>&#xA;class.  The presentation of the HTML can be heavily influenced&#xA;by the setting of the StyleSheet property on the EditorKit.&#xA;&lt;p>&#xA;&lt;dt>&#xA;Not lossy&#xA;&lt;dd>&#xA;An EditorKit has the ability to be read and save documents.&#xA;It is generally the most pleasing to users if there is no loss&#xA;of data between the two operation.  The policy of the HTMLEditorKit&#xA;will be to store things not recognized or not necessarily visible&#xA;so they can be subsequently written out.  The model of the HTML document&#xA;should therefore contain all information discovered while reading the&#xA;document.  This is constrained in some ways by the need to support&#xA;editing (i.e. incorrect documents sometimes must be normalized).&#xA;The guiding principle is that information shouldn't be lost, but&#xA;some might be synthesized to produce a more correct model or it might&#xA;be rearranged.&#xA;&lt;/dl>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.131 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_503665_10357"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_19180_17824" isSubstitutable="true" general="_9_5_f720368_1110473546784_562213_10529"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_834582_17823" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546768_503665_10357" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_753135_23013" name="LinkController" clientDependency="_10_5_622020d_1132928323832_211782_17825 _10_5_622020d_1132928323832_788598_17826">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_957100_11865" body="Class to watch the associated component and fire&#xA;hyperlink events on it when appropriate.&#xA;" annotatedElement="_9_5_f720368_1110473548299_753135_23013"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_981410_17827" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_211782_17825" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473548299_753135_23013" contract="_9_5_f720368_1110473546565_341038_6597"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_788598_17826" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_753135_23013" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_89061_22858" name="Parser" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_189763_11866" body="Interface to be supported by the parser.  This enables&#xA;providing a different parser while reusing some of the&#xA;implementation provided by this editor kit.&#xA;" annotatedElement="_9_5_f720368_1110473548284_89061_22858"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_839887_23018" name="ParserCallback">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_603174_11867" body="The result of parsing drives these callback methods.&#xA;The open and close actions should be balanced.  The&#xA;&lt;code>flush&lt;/code> method will be the last method&#xA;called, to give the receiver a chance to flush any&#xA;pending data into the document.&#xA;&lt;p>Refer to DocumentParser, the default parser used, for further&#xA;information on the contents of the AttributeSets, the positions, and&#xA;other info.&#xA;&#xA;@see javax.swing.text.html.parser.DocumentParser&#xA;" annotatedElement="_9_5_f720368_1110473548299_839887_23018"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548190_988284_21861" name="HTMLFactory" clientDependency="_10_5_622020d_1132928323832_603525_17828">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_920681_11868" body="A factory to build views for HTML.  The following&#xA;table describes what this factory will build by&#xA;default.&#xA;&#xA;&lt;table summary=&quot;Describes the tag and view created by this factory by default&quot;>&#xA;&lt;tr>&#xA;&lt;th align=left>Tag&lt;th align=left>View created&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.CONTENT&lt;td>InlineView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.IMPLIED&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.P&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H1&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H2&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H3&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H4&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H5&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.H6&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.DT&lt;td>javax.swing.text.html.ParagraphView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.MENU&lt;td>ListView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.DIR&lt;td>ListView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.UL&lt;td>ListView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.OL&lt;td>ListView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.LI&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.DL&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.DD&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.BODY&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.HTML&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.CENTER&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.DIV&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.BLOCKQUOTE&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.PRE&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.BLOCKQUOTE&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.PRE&lt;td>BlockView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.IMG&lt;td>ImageView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.HR&lt;td>HRuleView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.BR&lt;td>BRView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.TABLE&lt;td>javax.swing.text.html.TableView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.INPUT&lt;td>FormView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.SELECT&lt;td>FormView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.TEXTAREA&lt;td>FormView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.OBJECT&lt;td>ObjectView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.FRAMESET&lt;td>FrameSetView&#xA;&lt;/tr>&lt;tr>&#xA;&lt;td>HTML.Tag.FRAME&lt;td>FrameView&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;" annotatedElement="_9_5_f720368_1110473548190_988284_21861"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_603525_17828" name="" supplier="_9_5_f720368_1110473546784_659253_10549" client="_9_5_f720368_1110473548190_988284_21861" contract="_9_5_f720368_1110473546784_659253_10549"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_306743_23023" name="BodyBlockView" visibility="package" clientDependency="_10_5_622020d_1132928323832_774943_17829">
                    <generalization xmi:id="_10_5_622020d_1132928323832_607277_17830" isSubstitutable="true" general="_9_5_f720368_1110473546768_995857_10331"/>
                    <interfaceRealization xmi:id="_10_5_622020d_1132928323832_774943_17829" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473548315_306743_23023" contract="_9_5_f720368_1110473546565_824053_6549"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_572815_23025" name="HTMLTextAction" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_464864_11869" body="An abstract Action providing some convenience methods that may&#xA;be useful in inserting HTML into an existing document.&#xA;&lt;p>NOTE: None of the convenience methods obtain a lock on the&#xA;document. If you have another thread modifying the text these&#xA;methods may have inconsistent behavior, or return the wrong thing.&#xA;" annotatedElement="_9_5_f720368_1110473548315_572815_23025"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_191150_17831" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_417563_23028" name="InsertHTMLTextAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_178922_11870" body="InsertHTMLTextAction can be used to insert an arbitrary string of HTML&#xA;into an existing HTML document. At least two HTML.Tags need to be&#xA;supplied. The first Tag, parentTag, identifies the parent in&#xA;the document to add the elements to. The second tag, addTag,&#xA;identifies the first tag that should be added to the document as&#xA;seen in the HTML string. One important thing to remember, is that&#xA;the parser is going to generate all the appropriate tags, even if&#xA;they aren't in the HTML string passed in.&lt;p>&#xA;For example, lets say you wanted to create an action to insert&#xA;a table into the body. The parentTag would be HTML.Tag.BODY,&#xA;addTag would be HTML.Tag.TABLE, and the string could be something&#xA;like &lt;table>&lt;tr>&lt;td>&lt;/td>&lt;/tr>&lt;/table>.&#xA;&lt;p>There is also an option to supply an alternate parentTag and&#xA;addTag. These will be checked for if there is no parentTag at&#xA;offset.&#xA;" annotatedElement="_9_5_f720368_1110473548315_417563_23028"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_963785_17832" isSubstitutable="true" general="_9_5_f720368_1110473548315_572815_23025"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_799977_23031" name="InsertHRAction" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317503_426739_11871" body="InsertHRAction is special, at actionPerformed time it will determine&#xA;the parent HTML.Tag based on the paragraph element at the selection&#xA;start.&#xA;" annotatedElement="_9_5_f720368_1110473548315_799977_23031"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_17970_17833" isSubstitutable="true" general="_9_5_f720368_1110473548315_417563_23028"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_724567_23034" name="NavigateLinkAction" visibility="package" clientDependency="_10_5_622020d_1132928323832_10107_17834">
                  <generalization xmi:id="_10_5_622020d_1132928323832_894179_17835" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_10107_17834" name="" supplier="_9_5_f720368_1110473546753_881060_9835" client="_9_5_f720368_1110473548315_724567_23034" contract="_9_5_f720368_1110473546753_881060_9835"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_970138_23036" name="FocusHighlightPainter" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317503_690379_11872" body="A highlight painter that draws a one-pixel border around&#xA;the highlighted area.&#xA;" annotatedElement="_9_5_f720368_1110473548315_970138_23036"/>
                    <generalization xmi:id="_10_5_622020d_1132928323832_536123_17836" isSubstitutable="true" general="_9_5_f720368_1110473547237_759384_16196"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_550026_23038" name="ActivateLinkAction" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323832_745041_17837" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_716541_10393" name="StyleSheet">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_109966_11928" body="Support for defining the visual characteristics of&#xA;HTML views being rendered.  The StyleSheet is used to&#xA;translate the HTML model into visual characteristics.&#xA;This enables views to be customized by a look-and-feel,&#xA;multiple views over the same model can be rendered&#xA;differently, etc.  This can be thought of as a CSS&#xA;rule repository.  The key for CSS attributes is an&#xA;object of type CSS.Attribute.  The type of the value&#xA;is up to the StyleSheet implementation, but the&#xA;&lt;code>toString&lt;/code> method is required&#xA;to return a string representation of CSS value.&#xA;&lt;p>&#xA;The primary entry point for HTML View implementations&#xA;to get their attributes is the&#xA;&lt;a href=&quot;#getViewAttributes&quot;>getViewAttributes&lt;/a>&#xA;method.  This should be implemented to establish the&#xA;desired policy used to associate attributes with the view.&#xA;Each HTMLEditorKit (i.e. and therefore each associated&#xA;JEditorPane) can have its own StyleSheet, but by default one&#xA;sheet will be shared by all of the HTMLEditorKit instances.&#xA;HTMLDocument instance can also have a StyleSheet, which&#xA;holds the document-specific CSS specifications.&#xA;&lt;p>&#xA;In order for Views to store less state and therefore be&#xA;more lightweight, the StyleSheet can act as a factory for&#xA;painters that handle some of the rendering tasks.  This allows&#xA;implementations to determine what they want to cache&#xA;and have the sharing potentially at the level that a&#xA;selector is common to multiple views.  Since the StyleSheet&#xA;may be used by views over multiple documents and typically&#xA;the HTML attributes don't effect the selector being used,&#xA;the potential for sharing is significant.&#xA;&lt;p>&#xA;The rules are stored as named styles, and other information&#xA;is stored to translate the context of an element to a&#xA;rule quickly.  The following code fragment will display&#xA;the named styles, and therefore the CSS rules contained.&#xA;&lt;code>&lt;pre>&#xA;&amp;nbsp;&#xA;&amp;nbsp; import java.util.*;&#xA;&amp;nbsp; import javax.swing.text.*;&#xA;&amp;nbsp; import javax.swing.text.html.*;&#xA;&amp;nbsp;&#xA;&amp;nbsp; public class ShowStyles {&#xA;&amp;nbsp;&#xA;&amp;nbsp;     public static void main(String[] args) {&#xA;&amp;nbsp; &#x9;HTMLEditorKit kit = new HTMLEditorKit();&#xA;&amp;nbsp; &#x9;HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();&#xA;&amp;nbsp; &#x9;StyleSheet styles = doc.getStyleSheet();&#xA;&amp;nbsp;&#xA;&amp;nbsp; &#x9;Enumeration rules = styles.getStyleNames();&#xA;&amp;nbsp; &#x9;while (rules.hasMoreElements()) {&#xA;&amp;nbsp; &#x9;    String name = (String) rules.nextElement();&#xA;&amp;nbsp; &#x9;    Style rule = styles.getStyle(name);&#xA;&amp;nbsp; &#x9;    System.out.println(rule.toString());&#xA;&amp;nbsp; &#x9;}&#xA;&amp;nbsp; &#x9;System.exit(0);&#xA;&amp;nbsp;     }&#xA;&amp;nbsp; }&#xA;&amp;nbsp;&#xA;&lt;/pre>&lt;/code>&#xA;&lt;p>&#xA;The semantics for when a CSS style should overide visual attributes&#xA;defined by an element are not well defined. For example, the html&#xA;&lt;code>&lt;body bgcolor=red>&lt;/code> makes the body have a red&#xA;background. But if the html file also contains the CSS rule&#xA;&lt;code>body { background: blue }&lt;/code> it becomes less clear as to&#xA;what color the background of the body should be. The current&#xA;implemention gives visual attributes defined in the element the&#xA;highest precedence, that is they are always checked before any styles.&#xA;Therefore, in the previous example the background would have a&#xA;red color as the body element defines the background color to be red.&#xA;&lt;p>&#xA;As already mentioned this supports CSS. We don't support the full CSS&#xA;spec. Refer to the javadoc of the CSS class to see what properties&#xA;we support. The two major CSS parsing related&#xA;concepts we do not currently&#xA;support are pseudo selectors, such as &lt;code>A:link { color: red }&lt;/code>,&#xA;and the &lt;code>important&lt;/code> modifier.&#xA;&lt;p>&#xA;&lt;font color=&quot;red&quot;>Note: This implementation is currently&#xA;incomplete.  It can be replaced with alternative implementations&#xA;that are complete.  Future versions of this class will provide&#xA;better CSS support.&lt;/font>&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Sunita Mani&#xA;@author  Sara Swanson&#xA;@author  Jill Nakata&#xA;@version 1.84 07/23/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_716541_10393"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_159357_17866" isSubstitutable="true" general="_9_5_f720368_1110473546784_850412_10525"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_780773_23078" name="LargeConversionSet" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_76136_11917" body="Large set of attributes that does conversion of requests&#xA;for attributes of type StyleConstants.&#xA;" annotatedElement="_9_5_f720368_1110473548315_780773_23078"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_69026_17867" isSubstitutable="true" general="_9_5_f720368_1110473546784_687204_10515"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_348005_23080" name="SmallConversionSet" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_710421_11918" body="Small set of attributes that does conversion of requests&#xA;for attributes of type StyleConstants.&#xA;" annotatedElement="_9_5_f720368_1110473548315_348005_23080"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_650855_17868" isSubstitutable="true" general="_9_5_f720368_1110473548331_855721_23243"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_70986_23082" name="SearchBuffer" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_500500_11919" body="A temporary class used to hold a Vector, a StringBuffer and a&#xA;Hashtable. This is used to avoid allocing a lot of garbage when&#xA;searching for rules. Use the static method obtainSearchBuffer and&#xA;releaseSearchBuffer to get a SearchBuffer, and release it when&#xA;done.&#xA;" annotatedElement="_9_5_f720368_1110473548315_70986_23082"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_538219_23085" name="BoxPainter" clientDependency="_10_5_622020d_1132928323842_830497_17869">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_279563_11920" body="Class to carry out some of the duties of&#xA;CSS formatting.  Implementations of this&#xA;class enable views to present the CSS formatting&#xA;while not knowing anything about how the CSS values&#xA;are being cached.&#xA;&lt;p>&#xA;As a delegate of Views, this object is responsible for&#xA;the insets of a View and making sure the background&#xA;is maintained according to the CSS attributes.&#xA;" annotatedElement="_9_5_f720368_1110473548315_538219_23085"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_830497_17869" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548315_538219_23085" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_483937_23088" name="ListPainter" clientDependency="_10_5_622020d_1132928323842_962790_17870">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_741426_11921" body="Class to carry out some of the duties of CSS list&#xA;formatting.  Implementations of this&#xA;class enable views to present the CSS formatting&#xA;while not knowing anything about how the CSS values&#xA;are being cached.&#xA;" annotatedElement="_9_5_f720368_1110473548315_483937_23088"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_962790_17870" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548315_483937_23088" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_619581_23091" name="BackgroundImagePainter" visibility="package" clientDependency="_10_5_622020d_1132928323842_179347_17871">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_891966_11922" body="Paints the background image.&#xA;" annotatedElement="_9_5_f720368_1110473548315_619581_23091"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_179347_17871" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548315_619581_23091" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_625334_23094" name="ViewAttributeSet" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_776440_11923" body="A subclass of MuxingAttributeSet that translates between&#xA;CSS and HTML and StyleConstants. The AttributeSets used are&#xA;the CSS rules that match the Views Elements.&#xA;" annotatedElement="_9_5_f720368_1110473548315_625334_23094"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_255959_17872" isSubstitutable="true" general="_9_5_f720368_1110473546768_198343_10377"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_679471_23096" name="ResolvedStyle" visibility="package" clientDependency="_10_5_622020d_1132928323842_195058_17873 _10_5_622020d_1132928323842_789897_17874">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_181083_11924" body="A subclass of MuxingAttributeSet that implements Style. Currently&#xA;the MutableAttributeSet methods are unimplemented, that is they&#xA;do nothing.&#xA;" annotatedElement="_9_5_f720368_1110473548315_679471_23096"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_922194_17875" isSubstitutable="true" general="_9_5_f720368_1110473546768_198343_10377"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_195058_17873" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548315_679471_23096" contract="_9_5_f720368_1110473546612_364919_7481"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_789897_17874" name="" supplier="_9_5_f720368_1110473546784_555985_10521" client="_9_5_f720368_1110473548315_679471_23096" contract="_9_5_f720368_1110473546784_555985_10521"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_658508_23099" name="SelectorMapping" visibility="package" clientDependency="_10_5_622020d_1132928323842_305975_17876">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_328002_11925" body="SelectorMapping contains a specifitiy, as an integer, and an associated&#xA;Style. It can also reference children &lt;code>SelectorMapping&lt;/code>s,&#xA;so that it behaves like a tree.&#xA;&lt;p>&#xA;This is not thread safe, it is assumed the caller will take the&#xA;necessary precations if this is to be used in a threaded environment.&#xA;" annotatedElement="_9_5_f720368_1110473548315_658508_23099"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_305975_17876" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548315_658508_23099" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_926137_23102" name="CssParser" visibility="package" clientDependency="_10_5_622020d_1132928323842_253636_17877">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_426587_11926" body="Default parser for CSS specifications that get loaded into&#xA;the StyleSheet.&lt;p>&#xA;This class is NOT thread safe, do not ask it to parse while it is&#xA;in the middle of parsing.&#xA;" annotatedElement="_9_5_f720368_1110473548315_926137_23102"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_253636_17877" name="" supplier="_9_5_f720368_1110473548299_932301_22938" client="_9_5_f720368_1110473548315_926137_23102" contract="_9_5_f720368_1110473548299_932301_22938"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_805054_10375" name="MinimalHTMLWriter">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_629365_11899" body="MinimalHTMLWriter is a fallback writer used by the&#xA;HTMLEditorKit to write out HTML for a document that&#xA;is a not produced by the EditorKit.&#xA;&#xA;The format for the document is:&#xA;&lt;pre>&#xA;&lt;html>&#xA;&lt;head>&#xA;&lt;style>&#xA;&lt;!-- list of named styles&#xA;p.normal {&#xA;font-family: SansSerif;&#xA;margin-height: 0;&#xA;font-size: 14&#xA;}&#xA;-->&#xA;&lt;/style>&#xA;&lt;/head>&#xA;&lt;body>&#xA;&lt;p style=normal>&#xA;&lt;b>Bold, italic, and underline attributes&#xA;of the run are emitted as HTML tags.&#xA;The remaining attributes are emitted as&#xA;part of the style attribute of a &lt;span> tag.&#xA;The syntax is similar to inline styles.&lt;/b>&#xA;&lt;/p>&#xA;&lt;/body>&#xA;&lt;/html>&#xA;&lt;/pre>&#xA;&#xA;@author Sunita Mani&#xA;@version 1.14, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_805054_10375"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_454166_17853" isSubstitutable="true" general="_9_5_f720368_1110473546784_436800_10419"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_926091_10385" name="OptionComboBoxModel" visibility="package" clientDependency="_10_5_622020d_1132928323832_149054_17859">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_613665_11910" body="OptionComboBoxModel extends the capabilities of the DefaultComboBoxModel,&#xA;to store the Option that is initially marked as selected.&#xA;This is stored, in order to enable an accurate reset of the&#xA;ComboBox that represents the SELECT form element when the&#xA;user requests a clear/reset.  Given that a combobox only allow&#xA;for one item to be selected, the last OPTION that has the&#xA;attribute set wins.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.8 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_926091_10385"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_685513_17860" isSubstitutable="true" general="_9_5_f720368_1110473546784_464023_10665"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_149054_17859" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_926091_10385" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_198343_10377" name="MuxingAttributeSet" visibility="package" clientDependency="_10_5_622020d_1132928323832_110678_17854 _10_5_622020d_1132928323832_834123_17855">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_488310_11902" body="An implementation of &lt;code>AttributeSet&lt;/code> that can multiplex&#xA;across a set of &lt;code>AttributeSet&lt;/code>s.&#xA;&#xA;@version 1.4 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_198343_10377"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_110678_17854" name="" supplier="_9_5_f720368_1110473546784_759614_10423" client="_9_5_f720368_1110473546768_198343_10377" contract="_9_5_f720368_1110473546784_759614_10423"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_834123_17855" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_198343_10377" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_693536_23068" name="MuxingAttributeNameEnumeration" visibility="private" clientDependency="_10_5_622020d_1132928323832_322612_17856">
                  <ownedComment xmi:id="_10_5_622020d_1132928317523_791909_11900" body="An Enumeration of the Attribute names in a MuxingAttributeSet.&#xA;This may return the same name more than once.&#xA;" annotatedElement="_9_5_f720368_1110473548315_693536_23068"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_322612_17856" name="" supplier="_9_5_f720368_1110473546706_70178_8859" client="_9_5_f720368_1110473548315_693536_23068" contract="_9_5_f720368_1110473546706_70178_8859"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_728555_10383" name="Option">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_446256_11908" body="Value for the ListModel used to represent&#xA;&lt;option> elements.  This is the object&#xA;installed as items of the DefaultComboBoxModel&#xA;used to represent the &lt;select> element.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.10 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_728555_10383"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_291457_10329" name="AccessibleHTML" visibility="package" clientDependency="_10_5_622020d_1132928323782_421153_17733">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323782_421153_17733" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546768_291457_10329" contract="_9_5_f720368_1110473546706_827345_8951"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_272585_22862" name="RootHTMLAccessibleContext" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323782_774092_17734" isSubstitutable="true" general="_9_5_f720368_1110473548284_979862_22863"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_979862_22863" name="HTMLAccessibleContext" visibility="protected" clientDependency="_10_5_622020d_1132928323782_978449_17735 _10_5_622020d_1132928323782_152172_17736" isAbstract="true">
                  <generalization xmi:id="_10_5_622020d_1132928323782_952657_17737" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_978449_17735" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548284_979862_22863" contract="_9_5_f720368_1110473546706_827345_8951"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_152172_17736" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548284_979862_22863" contract="_9_5_f720368_1110473546706_824207_8957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_816007_22864" name="TextElementInfo" visibility="package" clientDependency="_10_5_622020d_1132928323782_988691_17738">
                  <generalization xmi:id="_10_5_622020d_1132928323782_986059_17739" isSubstitutable="true" general="_9_5_f720368_1110473548299_454007_22877"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_988691_17738" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548284_816007_22864" contract="_9_5_f720368_1110473546706_827345_8951"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_246944_22865" name="TextAccessibleContext" clientDependency="_10_5_622020d_1132928323782_132889_17740">
                    <generalization xmi:id="_10_5_622020d_1132928323782_459396_17741" isSubstitutable="true" general="_9_5_f720368_1110473548284_979862_22863"/>
                    <interfaceRealization xmi:id="_10_5_622020d_1132928323782_132889_17740" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_9_5_f720368_1110473548284_246944_22865" contract="_9_5_f720368_1110473546706_466273_8993"/>
                    <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_123940_22866" name="IndexedSegment" visibility="private">
                      <ownedComment xmi:id="_10_5_622020d_1132928317432_21529_11793" body="IndexedSegment extends Segment adding the offset into the&#xA;the model the &lt;code>Segment&lt;/code> was asked for.&#xA;" annotatedElement="_9_5_f720368_1110473548284_123940_22866"/>
                      <generalization xmi:id="_10_5_622020d_1132928323782_913339_17742" isSubstitutable="true" general="_9_5_f720368_1110473546784_181396_10511"/>
                    </nestedClassifier>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_550066_22868" name="IconElementInfo" visibility="private" clientDependency="_10_5_622020d_1132928323782_805259_17743">
                  <generalization xmi:id="_10_5_622020d_1132928323782_451852_17744" isSubstitutable="true" general="_9_5_f720368_1110473548299_454007_22877"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_805259_17743" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548299_550066_22868" contract="_9_5_f720368_1110473546706_827345_8951"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_522442_22869" name="IconAccessibleContext" visibility="protected" clientDependency="_10_5_622020d_1132928323782_807236_17745">
                    <generalization xmi:id="_10_5_622020d_1132928323782_618962_17746" isSubstitutable="true" general="_9_5_f720368_1110473548284_979862_22863"/>
                    <interfaceRealization xmi:id="_10_5_622020d_1132928323782_807236_17745" name="" supplier="_9_5_f720368_1110473546706_812616_8971" client="_9_5_f720368_1110473548299_522442_22869" contract="_9_5_f720368_1110473546706_812616_8971"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_495503_22870" name="TableElementInfo" visibility="private" clientDependency="_10_5_622020d_1132928323782_47160_17747">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_53657_11795" body="TableElementInfo encapsulates information about a HTML.Tag.TABLE.&#xA;To make access fast it crates a grid containing the children to&#xA;allow for access by row, column. TableElementInfo will contain&#xA;TableRowElementInfos, which will contain TableCellElementInfos.&#xA;Any time one of the rows or columns becomes invalid the table is&#xA;invalidated.  This is because any time one of the child attributes&#xA;changes the size of the grid may have changed.&#xA;" annotatedElement="_9_5_f720368_1110473548299_495503_22870"/>
                  <generalization xmi:id="_10_5_622020d_1132928323782_763073_17748" isSubstitutable="true" general="_9_5_f720368_1110473548299_454007_22877"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_47160_17747" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548299_495503_22870" contract="_9_5_f720368_1110473546706_827345_8951"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_434526_22872" name="TableAccessibleContext" clientDependency="_10_5_622020d_1132928323782_19913_17749">
                    <generalization xmi:id="_10_5_622020d_1132928323782_71542_17750" isSubstitutable="true" general="_9_5_f720368_1110473548284_979862_22863"/>
                    <interfaceRealization xmi:id="_10_5_622020d_1132928323782_19913_17749" name="" supplier="_9_5_f720368_1110473546706_892822_8989" client="_9_5_f720368_1110473548299_434526_22872" contract="_9_5_f720368_1110473546706_892822_8989"/>
                    <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_765005_22873" name="AccessibleHeadersTable" visibility="protected" clientDependency="_10_5_622020d_1132928323782_677187_17751">
                      <interfaceRealization xmi:id="_10_5_622020d_1132928323782_677187_17751" name="" supplier="_9_5_f720368_1110473546706_892822_8989" client="_9_5_f720368_1110473548299_765005_22873" contract="_9_5_f720368_1110473546706_892822_8989"/>
                    </nestedClassifier>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_595373_22874" name="TableRowElementInfo" visibility="private">
                    <generalization xmi:id="_10_5_622020d_1132928323782_211160_17752" isSubstitutable="true" general="_9_5_f720368_1110473548299_454007_22877"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_790312_22875" name="TableCellElementInfo" visibility="private">
                    <ownedComment xmi:id="_10_5_622020d_1132928317432_291815_11794" body="TableCellElementInfo is used to represents the cells of&#xA;the table.&#xA;" annotatedElement="_9_5_f720368_1110473548299_790312_22875"/>
                    <generalization xmi:id="_10_5_622020d_1132928323782_429996_17753" isSubstitutable="true" general="_9_5_f720368_1110473548299_454007_22877"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_454007_22877" name="ElementInfo" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_520363_11796" body="ElementInfo provides a slim down view of an Element.  Each ElementInfo&#xA;can have any number of child ElementInfos that are not necessarily&#xA;direct children of the Element. As the Document changes various&#xA;ElementInfos become invalidated. Before accessing a particular portion&#xA;of an ElementInfo you should make sure it is valid by invoking&#xA;&lt;code>validateIfNecessary&lt;/code>, this will return true if&#xA;successful, on the other hand a false return value indicates the&#xA;ElementInfo is not valid and can never become valid again (usually&#xA;the result of the Element the ElementInfo encapsulates being removed).&#xA;" annotatedElement="_9_5_f720368_1110473548299_454007_22877"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_122715_22879" name="DocumentHandler" visibility="private" clientDependency="_10_5_622020d_1132928323782_115948_17754">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_281940_11797" body="DocumentListener installed on the current Document.  Will invoke&#xA;&lt;code>update&lt;/code> on the &lt;code>RootInfo&lt;/code> in response to&#xA;any event.&#xA;" annotatedElement="_9_5_f720368_1110473548299_122715_22879"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_115948_17754" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473548299_122715_22879" contract="_9_5_f720368_1110473546753_81876_9845"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_588950_22881" name="PropertyChangeHandler" visibility="private" clientDependency="_10_5_622020d_1132928323782_91743_17755">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_91743_17755" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548299_588950_22881" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_363456_10395" name="TableView" visibility="package" clientDependency="_10_5_622020d_1132928323842_243608_17878">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_72045_11932" body="HTML table view.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.38 12/19/03&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_363456_10395"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_406478_17879" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_243608_17878" name="" supplier="_9_5_f720368_1110473546784_659253_10549" client="_9_5_f720368_1110473546784_363456_10395" contract="_9_5_f720368_1110473546784_659253_10549"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_306241_23105" name="ColumnIterator" visibility="package" clientDependency="_10_5_622020d_1132928323842_527154_17880">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_527154_17880" name="" supplier="_9_5_f720368_1110473548299_577461_22935" client="_9_5_f720368_1110473548315_306241_23105" contract="_9_5_f720368_1110473548299_577461_22935"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_394536_23106" name="RowIterator" visibility="package" clientDependency="_10_5_622020d_1132928323842_104617_17881">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_104617_17881" name="" supplier="_9_5_f720368_1110473548299_577461_22935" client="_9_5_f720368_1110473548315_394536_23106" contract="_9_5_f720368_1110473548299_577461_22935"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_487784_23107" name="RowView">
                  <ownedComment xmi:id="_10_5_622020d_1132928317533_794888_11929" body="View of a row in a row-centric table.&#xA;" annotatedElement="_9_5_f720368_1110473548315_487784_23107"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_260385_17882" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_752051_23109" name="CellView" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317533_948257_11930" body="Default view of an html table cell.  This needs to be moved&#xA;somewhere else.&#xA;" annotatedElement="_9_5_f720368_1110473548315_752051_23109"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_819224_17883" isSubstitutable="true" general="_9_5_f720368_1110473546768_995857_10331"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_900362_10397" name="TextAreaDocument" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_741284_11934" body="TextAreaDocument extends the capabilities of the PlainDocument&#xA;to store the data that is initially set in the Document.&#xA;This is stored in order to enable an accurate reset of the&#xA;state when a reset is requested.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.8 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_900362_10397"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_767298_17884" isSubstitutable="true" general="_9_5_f720368_1110473546784_75117_10505"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_61091_10389" name="ParagraphView">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_388456_11914" body="Displays the a paragraph, and uses css attributes for its&#xA;configuration.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.28 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_61091_10389"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_244312_17864" isSubstitutable="true" general="_9_5_f720368_1110473546784_837851_10501"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_40186_10361" name="HTMLWriter">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_158099_11878" body="This is a writer for HTMLDocuments.&#xA;&#xA;@author  Sunita Mani&#xA;@version 1.26, 02/02/00&#xA;" annotatedElement="_9_5_f720368_1110473546768_40186_10361"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_154772_17839" isSubstitutable="true" general="_9_5_f720368_1110473546784_436800_10419"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_723132_10391" name="ResourceLoader" visibility="package" clientDependency="_10_5_622020d_1132928323832_867005_17865">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_591225_11916" body="Simple class to load resources using the 1.2&#xA;security model.  Since the html support is loaded&#xA;lazily, it's resources are potentially fetched with&#xA;applet code in the call stack.  By providing this&#xA;functionality in a class that is only built on 1.2,&#xA;reflection can be used from the code that is also&#xA;built on 1.1 to call this functionality (and avoid&#xA;the evils of preprocessing).  This functionality&#xA;is called from HTMLEditorKit.getResourceAsStream.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.7 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_723132_10391"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_867005_17865" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_9_5_f720368_1110473546784_723132_10391" contract="_9_5_f720368_1110473546690_3186_8507"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_372565_10333" name="BRView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317432_49537_11802" body="Processes the &lt;BR> tag.  In other words, forces a line break.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.11 03/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_372565_10333"/>
                <generalization xmi:id="_10_5_622020d_1132928323782_302187_17757" isSubstitutable="true" general="_9_5_f720368_1110473546768_647706_10365"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_347361_10381" name="ObjectView">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_611145_11906" body="Component decorator that implements the view interface&#xA;for &lt;object> elements.&#xA;&lt;p>&#xA;This view will try to load the class specified by the&#xA;&lt;code>classid&lt;/code> attribute.  If possible, the Classloader&#xA;used to load the associated Document is used.&#xA;This would typically be the same as the ClassLoader&#xA;used to load the EditorKit.  If the document's&#xA;ClassLoader is null, &lt;code>Class.forName&lt;/code> is used.&#xA;&lt;p>&#xA;If the class can successfully be loaded, an attempt will&#xA;be made to create an instance of it by calling&#xA;&lt;code>Class.newInstance&lt;/code>.  An attempt will be made&#xA;to narrow the instance to type &lt;code>java.awt.Component&lt;/code>&#xA;to display the object.&#xA;&lt;p>&#xA;This view can also manage a set of parameters with limitations.&#xA;The parameters to the &lt;object> element are expected to&#xA;be present on the associated elements attribute set as simple&#xA;strings.  Each bean property will be queried as a key on&#xA;the AttributeSet, with the expectation that a non-null value&#xA;(of type String) will be present if there was a parameter&#xA;specification for the property.  Reflection is used to&#xA;set the parameter.  Currently, this is limited to a very&#xA;simple single parameter of type String.&#xA;&lt;p>&#xA;A simple example HTML invocation is:&#xA;&lt;pre>&#xA;&lt;object classid=&quot;javax.swing.JLabel&quot;>&#xA;&lt;param name=&quot;text&quot; value=&quot;sample text&quot;>&#xA;&lt;/object>&#xA;&lt;/pre>&#xA;&#xA;@author Timothy Prinzing&#xA;@version 1.13 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_347361_10381"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_793011_17858" isSubstitutable="true" general="_9_5_f720368_1110473546784_352959_10433"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_319287_10345" name="FrameSetView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_593461_11836" body="Implements a FrameSetView, intended to support the HTML&#xA;&lt;FRAMESET> tag.  Supports the ROWS and COLS attributes.&#xA;&#xA;@author  Sunita Mani&#xA;&#xA;Credit also to the hotjava browser engineers that&#xA;worked on making the allocation of space algorithms&#xA;conform to the HTML 4.0 standard and also be netscape&#xA;compatible.&#xA;&#xA;@version 1.20 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_319287_10345"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_595311_17781" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_416533_10335" name="CommentView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317432_721658_11804" body="CommentView subclasses HiddenTagView to contain a JTextArea showing&#xA;a comment. When the textarea is edited the comment is&#xA;reset. As this inherits from EditableView if the JTextComponent is&#xA;not editable, the textarea will not be visible.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.13, 03/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_416533_10335"/>
                <generalization xmi:id="_10_5_622020d_1132928323782_277907_17758" isSubstitutable="true" general="_9_5_f720368_1110473546768_299100_10349"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_379823_22885" name="CommentBorder" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323782_576190_17759" isSubstitutable="true" general="_9_5_f720368_1110473546753_808477_9791"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_388524_10359" name="HTMLFrameHyperlinkEvent">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_97930_11876" body="HTMLFrameHyperlinkEvent is used to notify interested&#xA;parties that link was activated in a frame.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.9, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_388524_10359"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_339876_17838" isSubstitutable="true" general="_9_5_f720368_1110473546753_439555_9849"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_701248_10373" name="Map" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_369927_11897" body="Map is used to represent a map element that is part of an HTML document.&#xA;Once a Map has been created, and any number of areas have been added,&#xA;you can test if a point falls inside the map via the contains method.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.8 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_701248_10373"/>
                <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548315_222970_23052" name="RegionContainment" visibility="package" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_268462_11891" body="Defines the interface used for to check if a point is inside a&#xA;region.&#xA;" annotatedElement="_9_5_f720368_1110473548315_222970_23052"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_600468_23054" name="RectangleRegionContainment" visibility="package" clientDependency="_10_5_622020d_1132928323832_549433_17848">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_151130_11892" body="Used to test for containment in a rectangular region.&#xA;" annotatedElement="_9_5_f720368_1110473548315_600468_23054"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_549433_17848" name="" supplier="_9_5_f720368_1110473548315_222970_23052" client="_9_5_f720368_1110473548315_600468_23054" contract="_9_5_f720368_1110473548315_222970_23052"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_601580_23057" name="PolygonRegionContainment" visibility="package" clientDependency="_10_5_622020d_1132928323832_614715_17849">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_420954_11893" body="Used to test for containment in a polygon region.&#xA;" annotatedElement="_9_5_f720368_1110473548315_601580_23057"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_604037_17850" isSubstitutable="true" general="_9_5_f720368_1110473546581_170990_7099"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_614715_17849" name="" supplier="_9_5_f720368_1110473548315_222970_23052" client="_9_5_f720368_1110473548315_601580_23057" contract="_9_5_f720368_1110473548315_222970_23052"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_923713_23060" name="CircleRegionContainment" visibility="package" clientDependency="_10_5_622020d_1132928323832_396677_17851">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_443655_11894" body="Used to test for containment in a circular region.&#xA;" annotatedElement="_9_5_f720368_1110473548315_923713_23060"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_396677_17851" name="" supplier="_9_5_f720368_1110473548315_222970_23052" client="_9_5_f720368_1110473548315_923713_23060" contract="_9_5_f720368_1110473548315_222970_23052"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_131291_23063" name="DefaultRegionContainment" visibility="package" clientDependency="_10_5_622020d_1132928323832_983310_17852">
                  <ownedComment xmi:id="_10_5_622020d_1132928317513_464656_11895" body="An implementation that will return true if the x, y location is&#xA;inside a rectangle defined by origin 0, 0, and width equal to&#xA;width passed in, and height equal to height passed in.&#xA;" annotatedElement="_9_5_f720368_1110473548315_131291_23063"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323832_983310_17852" name="" supplier="_9_5_f720368_1110473548315_222970_23052" client="_9_5_f720368_1110473548315_131291_23063" contract="_9_5_f720368_1110473548315_222970_23052"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_299100_10349" name="HiddenTagView" visibility="package" clientDependency="_10_5_622020d_1132928323792_462256_17785">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_921456_11842" body="HiddenTagView subclasses EditableView to contain a JTextField showing&#xA;the element name. When the textfield is edited the element name is&#xA;reset. As this inherits from EditableView if the JTextComponent is&#xA;not editable, the textfield will not be visible.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.15, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_299100_10349"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_5564_17786" isSubstitutable="true" general="_9_5_f720368_1110473546768_562430_10341"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323792_462256_17785" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473546768_299100_10349" contract="_9_5_f720368_1110473546753_81876_9845"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_702521_22951" name="StartTagBorder" visibility="package" clientDependency="_10_5_622020d_1132928323792_657438_17787 _10_5_622020d_1132928323792_465489_17788">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_657438_17787" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473548299_702521_22951" contract="_9_5_f720368_1110473546753_503884_9783"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_465489_17788" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_702521_22951" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_751422_22953" name="EndTagBorder" visibility="package" clientDependency="_10_5_622020d_1132928323792_762700_17789 _10_5_622020d_1132928323792_826819_17790">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_762700_17789" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473548299_751422_22953" contract="_9_5_f720368_1110473546753_503884_9783"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_826819_17790" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_751422_22953" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_995857_10331" name="BlockView">
                <ownedComment xmi:id="_10_5_622020d_1132928317432_839843_11800" body="A view implementation to display a block (as a box)&#xA;with CSS specifications.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.36 03/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_995857_10331"/>
                <generalization xmi:id="_10_5_622020d_1132928323782_450622_17756" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_145830_10343" name="FormView" clientDependency="_10_5_622020d_1132928323792_803709_17776">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_621096_11834" body="Component decorator that implements the view interface&#xA;for form elements, &lt;input>, &lt;textarea>,&#xA;and &lt;select>.  The model for the component is stored&#xA;as an attribute of the the element (using StyleConstants.ModelAttribute),&#xA;and is used to build the component of the view.  The type&#xA;of the model is assumed to of the type that would be set by&#xA;&lt;code>HTMLDocument.HTMLReader.FormAction&lt;/code>.  If there are&#xA;multiple views mapped over the document, they will share the&#xA;embedded component models.&#xA;&lt;p>&#xA;The following table shows what components get built&#xA;by this view.&#xA;&lt;table summary=&quot;shows what components get built by this view&quot;>&#xA;&lt;tr>&#xA;&lt;th>Element Type&lt;/th>&#xA;&lt;th>Component built&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type button&lt;/td>&#xA;&lt;td>JButton&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type checkbox&lt;/td>&#xA;&lt;td>JCheckBox&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type image&lt;/td>&#xA;&lt;td>JButton&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type password&lt;/td>&#xA;&lt;td>JPasswordField&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type radio&lt;/td>&#xA;&lt;td>JRadioButton&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type reset&lt;/td>&#xA;&lt;td>JButton&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type submit&lt;/td>&#xA;&lt;td>JButton&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type text&lt;/td>&#xA;&lt;td>JTextField&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>select, size > 1 or multiple attribute defined&lt;/td>&#xA;&lt;td>JList in a JScrollPane&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>select, size unspecified or 1&lt;/td>&#xA;&lt;td>JComboBox&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>textarea&lt;/td>&#xA;&lt;td>JTextArea in a JScrollPane&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>input, type file&lt;/td>&#xA;&lt;td>JTextField&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@author Timothy Prinzing&#xA;@author Sunita Mani&#xA;@version 1.26 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_145830_10343"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_895112_17777" isSubstitutable="true" general="_9_5_f720368_1110473546784_352959_10433"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323792_803709_17776" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546768_145830_10343" contract="_9_5_f720368_1110473546565_106737_6535"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_44908_22942" name="SubmitThread" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_350786_11830" body="The SubmitThread is responsible for submitting the form.&#xA;It performs a POST or GET based on the value of method&#xA;attribute associated with  HTML.Tag.FORM.  In addition to&#xA;submitting, it is also responsible for display the&#xA;results of the form submission.&#xA;" annotatedElement="_9_5_f720368_1110473548299_44908_22942"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_629989_17778" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_95012_22944" name="MouseEventListener" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_525801_11831" body="MouseEventListener class to handle form submissions when&#xA;an input with type equal to image is clicked on.&#xA;A MouseListener is necessary since along with the image&#xA;data the coordinates associated with the mouse click&#xA;need to be submitted.&#xA;" annotatedElement="_9_5_f720368_1110473548299_95012_22944"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_279962_17779" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_896289_22946" name="BrowseFileAction" visibility="private" clientDependency="_10_5_622020d_1132928323792_494028_17780">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_484992_11832" body="BrowseFileAction is used for input type == file. When the user&#xA;clicks the button a JFileChooser is brought up allowing the user&#xA;to select a file in the file system. The resulting path to the selected&#xA;file is set in the text field (actually an instance of Document).&#xA;" annotatedElement="_9_5_f720368_1110473548299_896289_22946"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_494028_17780" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548299_896289_22946" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_880305_10351" name="HRuleView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_983834_11844" body="A view implementation to display an html horizontal&#xA;rule.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Sara Swanson&#xA;@version 1.32 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_880305_10351"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_989936_17791" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_991996_10387" name="OptionListModel" visibility="package" clientDependency="_10_5_622020d_1132928323832_945932_17862 _10_5_622020d_1132928323832_281802_17861">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_863757_11912" body="This class extends DefaultListModel, and also implements&#xA;the ListSelectionModel interface, allowing for it to store state&#xA;relevant to a SELECT form element which is implemented as a List.&#xA;If SELECT has a size attribute whose value is greater than 1,&#xA;or if allows multiple selection then a JList is used to&#xA;represent it and the OptionListModel is used as its model.&#xA;It also stores the initial state of the JList, to ensure an&#xA;accurate reset, if the user requests a reset of the form.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.11 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_991996_10387"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_583343_17863" isSubstitutable="true" general="_9_5_f720368_1110473546784_127899_10677"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_281802_17861" name="" supplier="_9_5_f720368_1110473546799_497124_10813" client="_9_5_f720368_1110473546784_991996_10387" contract="_9_5_f720368_1110473546799_497124_10813"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323832_945932_17862" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_991996_10387" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_221524_10353" name="HTML">
                <ownedComment xmi:id="_10_5_622020d_1132928317452_986092_11848" body="Constants used in the &lt;code>HTMLDocument&lt;/code>.  These&#xA;are basically tag and attribute definitions.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Sunita Mani&#xA;&#xA;@version 1.41 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_221524_10353"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_944343_22957" name="Tag">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_214205_11845" body="Typesafe enumeration for an HTML tag.  Although the&#xA;set of HTML tags is a closed set, we have left the&#xA;set open so that people can add their own tag types&#xA;to their custom parser and still communicate to the&#xA;reader.&#xA;" annotatedElement="_9_5_f720368_1110473548299_944343_22957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_380494_22960" name="UnknownTag" clientDependency="_10_5_622020d_1132928323792_787616_17792">
                  <generalization xmi:id="_10_5_622020d_1132928323792_541521_17793" isSubstitutable="true" general="_9_5_f720368_1110473548299_944343_22957"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323792_787616_17792" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548299_380494_22960" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_436275_22962" name="Attribute" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_809675_11846" body="Typesafe enumeration representing an HTML&#xA;attribute.&#xA;" annotatedElement="_9_5_f720368_1110473548299_436275_22962"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_420899_10355" name="HTMLDocument">
                <ownedComment xmi:id="_10_5_622020d_1132928317503_812568_11864" body="A document that models HTML.  The purpose of this model&#xA;is to support both browsing and editing.  As a result,&#xA;the structure described by an HTML document is not&#xA;exactly replicated by default.  The element structure that&#xA;is modeled by default, is built by the class&#xA;&lt;code>HTMLDocument.HTMLReader&lt;/code>, which implements&#xA;the &lt;code>HTMLEditorKit.ParserCallback&lt;/code> protocol&#xA;that the parser expects.  To change the structure one&#xA;can subclass &lt;code>HTMLReader&lt;/code>, and reimplement the method&#xA;{@link #getReader(int)} to return the new reader&#xA;implementation.  The documentation for &lt;code>HTMLReader&lt;/code>&#xA;should be consulted for the details of&#xA;the default structure created.  The intent is that&#xA;the document be non-lossy (although reproducing the&#xA;HTML format may result in a different format).&#xA;&lt;p>&#xA;The document models only HTML, and makes no attempt to&#xA;store view attributes in it.  The elements are identified&#xA;by the &lt;code>StyleContext.NameAttribute&lt;/code> attribute,&#xA;which should always have a value of type &lt;code>HTML.Tag&lt;/code>&#xA;that identifies the kind of element.  Some of the elements&#xA;(such as comments) are synthesized.  The &lt;code>HTMLFactory&lt;/code>&#xA;uses this attribute to determine what kind of view to build.&#xA;&lt;p>&#xA;This document supports incremental loading.  The&#xA;&lt;code>TokenThreshold&lt;/code> property controls how&#xA;much of the parse is buffered before trying to update&#xA;the element structure of the document.  This property&#xA;is set by the &lt;code>EditorKit&lt;/code> so that subclasses can disable&#xA;it.&#xA;&lt;p>&#xA;The &lt;code>Base&lt;/code> property determines the URL&#xA;against which relative URLs are resolved.&#xA;By default, this will be the&#xA;&lt;code>Document.StreamDescriptionProperty&lt;/code> if&#xA;the value of the property is a URL.  If a &lt;BASE>&#xA;tag is encountered, the base will become the URL specified&#xA;by that tag.  Because the base URL is a property, it&#xA;can of course be set directly.&#xA;&lt;p>&#xA;The default content storage mechanism for this document&#xA;is a gap buffer (&lt;code>GapContent&lt;/code>).&#xA;Alternatives can be supplied by using the constructor&#xA;that takes a &lt;code>Content&lt;/code> implementation.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Scott Violet&#xA;@author  Sunita Mani&#xA;@version 1.167 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_420899_10355"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_539624_17794" isSubstitutable="true" general="_9_5_f720368_1110473546784_102825_10449"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_106846_22966" name="Iterator" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317452_940070_11849" body="An iterator to iterate over a particular type of&#xA;tag.  The iterator is not thread safe.  If reliable&#xA;access to the document is not already ensured by&#xA;the context under which the iterator is being used,&#xA;its use should be performed under the protection of&#xA;Document.render.&#xA;" annotatedElement="_9_5_f720368_1110473548299_106846_22966"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_309149_22969" name="LeafIterator" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317452_82777_11850" body="An iterator to iterate over a particular type of tag.&#xA;" annotatedElement="_9_5_f720368_1110473548299_309149_22969"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_879890_17795" isSubstitutable="true" general="_9_5_f720368_1110473548299_106846_22966"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_866677_22972" name="HTMLReader">
                  <ownedComment xmi:id="_10_5_622020d_1132928317462_977246_11858" body="An HTML reader to load an HTML document with an HTML&#xA;element structure.  This is a set of callbacks from&#xA;the parser, implemented to create a set of elements&#xA;tagged with attributes.  The parse builds up tokens&#xA;(ElementSpec) that describe the element subtree desired,&#xA;and burst it into the document under the protection of&#xA;a write lock using the insert method on the document&#xA;outer class.&#xA;&lt;p>&#xA;The reader can be configured by registering actions&#xA;(of type &lt;code>HTMLDocument.HTMLReader.TagAction&lt;/code>)&#xA;that describe how to handle the action.  The idea behind&#xA;the actions provided is that the most natural text editing&#xA;operations can be provided if the element structure boils&#xA;down to paragraphs with runs of some kind of style&#xA;in them.  Some things are more naturally specified&#xA;structurally, so arbitrary structure should be allowed&#xA;above the paragraphs, but will need to be edited with structural&#xA;actions.  The implication of this is that some of the&#xA;HTML elements specified in the stream being parsed will&#xA;be collapsed into attributes, and in some cases paragraphs&#xA;will be synthesized.  When HTML elements have been&#xA;converted to attributes, the attribute key will be of&#xA;type HTML.Tag, and the value will be of type AttributeSet&#xA;so that no information is lost.  This enables many of the&#xA;existing actions to work so that the user can type input,&#xA;hit the return key, backspace, delete, etc and have a&#xA;reasonable result.  Selections can be created, and attributes&#xA;applied or removed, etc.  With this in mind, the work done&#xA;by the reader can be categorized into the following kinds&#xA;of tasks:&#xA;&lt;dl>&#xA;&lt;dt>Block&#xA;&lt;dd>Build the structure like it's specified in the stream.&#xA;This produces elements that contain other elements.&#xA;&lt;dt>Paragraph&#xA;&lt;dd>Like block except that it's expected that the element&#xA;will be used with a paragraph view so a paragraph element&#xA;won't need to be synthesized.&#xA;&lt;dt>Character&#xA;&lt;dd>Contribute the element as an attribute that will start&#xA;and stop at arbitrary text locations.  This will ultimately&#xA;be mixed into a run of text, with all of the currently&#xA;flattened HTML character elements.&#xA;&lt;dt>Special&#xA;&lt;dd>Produce an embedded graphical element.&#xA;&lt;dt>Form&#xA;&lt;dd>Produce an element that is like the embedded graphical&#xA;element, except that it also has a component model associated&#xA;with it.&#xA;&lt;dt>Hidden&#xA;&lt;dd>Create an element that is hidden from view when the&#xA;document is being viewed read-only, and visible when the&#xA;document is being edited.  This is useful to keep the&#xA;model from losing information, and used to store things&#xA;like comments and unrecognized tags.&#xA;&#xA;&lt;/dl>&#xA;&lt;p>&#xA;Currently, &lt;APPLET>, &lt;PARAM>, &lt;MAP>, &lt;AREA>, &lt;LINK>,&#xA;&lt;SCRIPT> and &lt;STYLE> are unsupported.&#xA;&#xA;&lt;p>&#xA;The assignment of the actions described is shown in the&#xA;following table for the tags defined in &lt;code>HTML.Tag&lt;/code>.&lt;P>&#xA;&lt;table border=1 summary=&quot;HTML tags and assigned actions&quot;>&#xA;&lt;tr>&lt;th>Tag&lt;/th>&lt;th>Action&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.A&lt;/code>         &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.ADDRESS&lt;/code>   &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.APPLET&lt;/code>    &lt;td>HiddenAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.AREA&lt;/code>      &lt;td>AreaAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.B&lt;/code>         &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BASE&lt;/code>      &lt;td>BaseAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BASEFONT&lt;/code>  &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BIG&lt;/code>       &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BLOCKQUOTE&lt;/code>&lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BODY&lt;/code>      &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.BR&lt;/code>        &lt;td>SpecialAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.CAPTION&lt;/code>   &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.CENTER&lt;/code>    &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.CITE&lt;/code>      &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.CODE&lt;/code>      &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DD&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DFN&lt;/code>       &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DIR&lt;/code>       &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DIV&lt;/code>       &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DL&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.DT&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.EM&lt;/code>        &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.FONT&lt;/code>      &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.FORM&lt;/code>      &lt;td>As of 1.4 a BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.FRAME&lt;/code>     &lt;td>SpecialAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.FRAMESET&lt;/code>  &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H1&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H2&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H3&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H4&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H5&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.H6&lt;/code>        &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.HEAD&lt;/code>      &lt;td>HeadAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.HR&lt;/code>        &lt;td>SpecialAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.HTML&lt;/code>      &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.I&lt;/code>         &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.IMG&lt;/code>       &lt;td>SpecialAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.INPUT&lt;/code>     &lt;td>FormAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.ISINDEX&lt;/code>   &lt;td>IsndexAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.KBD&lt;/code>       &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.LI&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.LINK&lt;/code>      &lt;td>LinkAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.MAP&lt;/code>       &lt;td>MapAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.MENU&lt;/code>      &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.META&lt;/code>      &lt;td>MetaAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.NOFRAMES&lt;/code>  &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.OBJECT&lt;/code>    &lt;td>SpecialAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.OL&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.OPTION&lt;/code>    &lt;td>FormAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.P&lt;/code>         &lt;td>ParagraphAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.PARAM&lt;/code>     &lt;td>HiddenAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.PRE&lt;/code>       &lt;td>PreAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SAMP&lt;/code>      &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SCRIPT&lt;/code>    &lt;td>HiddenAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SELECT&lt;/code>    &lt;td>FormAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SMALL&lt;/code>     &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.STRIKE&lt;/code>    &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.S&lt;/code>         &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.STRONG&lt;/code>    &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.STYLE&lt;/code>     &lt;td>StyleAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SUB&lt;/code>       &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.SUP&lt;/code>       &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TABLE&lt;/code>     &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TD&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TEXTAREA&lt;/code>  &lt;td>FormAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TH&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TITLE&lt;/code>     &lt;td>TitleAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TR&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.TT&lt;/code>        &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.U&lt;/code>         &lt;td>CharacterAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.UL&lt;/code>        &lt;td>BlockAction&#xA;&lt;tr>&lt;td>&lt;code>HTML.Tag.VAR&lt;/code>       &lt;td>CharacterAction&#xA;&lt;/table>&#xA;&lt;p>&#xA;Once &lt;/html> is encountered, the Actions are no longer notified.&#xA;" annotatedElement="_9_5_f720368_1110473548299_866677_22972"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_246382_17796" isSubstitutable="true" general="_9_5_f720368_1110473548299_839887_23018"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_351366_22974" name="TagAction">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_372604_11851" body="An action to be performed in response&#xA;to parsing a tag.  This allows customization&#xA;of how each tag is handled and avoids a large&#xA;switch statement.&#xA;" annotatedElement="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_257264_22976" name="BlockAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_73006_17797" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_625923_22977" name="FormTagAction" visibility="private">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_174918_11852" body="Action used for the actual element form tag. This is named such&#xA;as there was already a public class named FormAction.&#xA;" annotatedElement="_9_5_f720368_1110473548299_625923_22977"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_395822_17798" isSubstitutable="true" general="_9_5_f720368_1110473548299_257264_22976"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_184957_22979" name="ParagraphAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_989691_17799" isSubstitutable="true" general="_9_5_f720368_1110473548299_257264_22976"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_676919_22980" name="SpecialAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_101191_17800" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_325255_22981" name="IsindexAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_626873_17801" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_650261_22982" name="HiddenAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_567917_17802" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_4335_22983" name="MetaAction" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_82232_11853" body="Subclass of HiddenAction to set the content type for style sheets,&#xA;and to set the name of the default style sheet.&#xA;" annotatedElement="_9_5_f720368_1110473548299_4335_22983"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_3540_17803" isSubstitutable="true" general="_9_5_f720368_1110473548299_650261_22982"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_886678_22985" name="HeadAction" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_851240_11854" body="End if overridden to create the necessary stylesheets that&#xA;are referenced via the link tag. It is done in this manner&#xA;as the meta tag can be used to specify an alternate style sheet,&#xA;and is not guaranteed to come before the link tags.&#xA;" annotatedElement="_9_5_f720368_1110473548299_886678_22985"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_926224_17804" isSubstitutable="true" general="_9_5_f720368_1110473548299_257264_22976"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_431351_22987" name="LinkAction" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_492572_11855" body="A subclass to add the AttributeSet to styles if the&#xA;attributes contains an attribute for 'rel' with value&#xA;'stylesheet' or 'alternate stylesheet'.&#xA;" annotatedElement="_9_5_f720368_1110473548299_431351_22987"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_651343_17805" isSubstitutable="true" general="_9_5_f720368_1110473548299_650261_22982"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_56681_22989" name="MapAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_724411_17806" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_73132_22990" name="AreaAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_82868_17807" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_45064_22991" name="StyleAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_620_17808" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_314344_22992" name="PreAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_804692_17809" isSubstitutable="true" general="_9_5_f720368_1110473548299_257264_22976"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_125149_22993" name="CharacterAction">
                    <generalization xmi:id="_10_5_622020d_1132928323792_807476_17810" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_848740_22994" name="ConvertAction" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_379086_11856" body="Provides conversion of HTML tag/attribute&#xA;mappings that have a corresponding StyleConstants&#xA;and CSS mapping.  The conversion is to CSS attributes.&#xA;" annotatedElement="_9_5_f720368_1110473548299_848740_22994"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_558199_17811" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_927472_22996" name="AnchorAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_800313_17812" isSubstitutable="true" general="_9_5_f720368_1110473548299_125149_22993"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_234404_22997" name="TitleAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_877066_17813" isSubstitutable="true" general="_9_5_f720368_1110473548299_650261_22982"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_865713_22998" name="BaseAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_352847_17814" isSubstitutable="true" general="_9_5_f720368_1110473548299_351366_22974"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_975340_22999" name="ObjectAction" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323792_622366_17815" isSubstitutable="true" general="_9_5_f720368_1110473548299_676919_22980"/>
                  </nestedClassifier>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_112783_23000" name="FormAction">
                    <ownedComment xmi:id="_10_5_622020d_1132928317452_770045_11857" body="Action to support forms by building all of the elements&#xA;used to represent form controls.  This will process&#xA;the &lt;INPUT>, &lt;TEXTAREA>, &lt;SELECT>,&#xA;and &lt;OPTION> tags.  The element created by&#xA;this action is expected to have the attribute&#xA;&lt;code>StyleConstants.ModelAttribute&lt;/code> set to&#xA;the model that holds the state for the form control.&#xA;This enables multiple views, and allows document to&#xA;be iterated over picking up the data of the form.&#xA;The following are the model assignments for the&#xA;various type of form elements.&#xA;&lt;table summary=&quot;model assignments for the various types of form elements&quot;>&#xA;&lt;tr>&#xA;&lt;th>Element Type&#xA;&lt;th>Model Type&#xA;&lt;tr>&#xA;&lt;td>input, type button&#xA;&lt;td>{@link DefaultButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type checkbox&#xA;&lt;td>{@link javax.swing.JToggleButton.ToggleButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type image&#xA;&lt;td>{@link DefaultButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type password&#xA;&lt;td>{@link PlainDocument}&#xA;&lt;tr>&#xA;&lt;td>input, type radio&#xA;&lt;td>{@link javax.swing.JToggleButton.ToggleButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type reset&#xA;&lt;td>{@link DefaultButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type submit&#xA;&lt;td>{@link DefaultButtonModel}&#xA;&lt;tr>&#xA;&lt;td>input, type text or type is null.&#xA;&lt;td>{@link PlainDocument}&#xA;&lt;tr>&#xA;&lt;td>select&#xA;&lt;td>{@link DefaultComboBoxModel} or an {@link DefaultListModel}, with an item type of Option&#xA;&lt;tr>&#xA;&lt;td>textarea&#xA;&lt;td>{@link PlainDocument}&#xA;&lt;/table>&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548299_112783_23000"/>
                    <generalization xmi:id="_10_5_622020d_1132928323792_111561_17816" isSubstitutable="true" general="_9_5_f720368_1110473548299_676919_22980"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_343827_23002" name="TaggedAttributeSet" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317462_56162_11859" body="Used by StyleSheet to determine when to avoid removing HTML.Tags&#xA;matching StyleConstants.&#xA;" annotatedElement="_9_5_f720368_1110473548299_343827_23002"/>
                  <generalization xmi:id="_10_5_622020d_1132928323792_535932_17817" isSubstitutable="true" general="_9_5_f720368_1110473546784_687204_10515"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_148893_23005" name="RunElement">
                  <ownedComment xmi:id="_10_5_622020d_1132928317462_604857_11860" body="An element that represents a chunk of text that has&#xA;a set of HTML character level attributes assigned to&#xA;it.&#xA;" annotatedElement="_9_5_f720368_1110473548299_148893_23005"/>
                  <generalization xmi:id="_10_5_622020d_1132928537038_783893_19004" isSubstitutable="true" general="_9_5_f720368_1110473548331_42430_23333"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_661053_23007" name="BlockElement">
                  <ownedComment xmi:id="_10_5_622020d_1132928317462_601435_11861" body="An element that represents a structural &lt;em>block&lt;/em> of&#xA;HTML.&#xA;" annotatedElement="_9_5_f720368_1110473548299_661053_23007"/>
                  <generalization xmi:id="_10_5_622020d_1132928537038_768370_19005" isSubstitutable="true" general="_9_5_f720368_1110473005518_261375_4517"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548299_599265_23009" name="FixedLengthDocument" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317462_905748_11862" body="Document that allows you to set the maximum length of the text.&#xA;" annotatedElement="_9_5_f720368_1110473548299_599265_23009"/>
                  <generalization xmi:id="_10_5_622020d_1132928323832_969809_17822" isSubstitutable="true" general="_9_5_f720368_1110473546784_75117_10505"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317442_762229_11824" name="FormSubmitEvent">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_219964_11829" body="FormSubmitEvent is used to notify interested&#xA;parties that a form was submited.&#xA;&#xA;@version 1.3 12/19/03&#xA;@since 1.5&#xA;@author    Denis Sharypov&#xA;" annotatedElement="_10_5_622020d_1132928317442_762229_11824"/>
                <generalization xmi:id="_10_5_622020d_1132928323792_83447_17775" isSubstitutable="true" general="_9_5_f720368_1110473546768_388524_10359"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317442_452687_11825" name="MethodType">
                  <ownedComment xmi:id="_10_5_622020d_1132928317442_470807_11827" body="Represents an HTML form method type.&#xA;&lt;UL>&#xA;&lt;LI>&lt;code>GET&lt;/code> corresponds to the GET form method&lt;/LI>&#xA;&lt;LI>&lt;code>POST&lt;/code> corresponds to the POST from method&lt;/LI>&#xA;&lt;/UL>&#xA;" annotatedElement="_10_5_622020d_1132928317442_452687_11825"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_879330_10339" name="CSSParser" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317442_816380_11821" body="A CSS parser. This works by way of a delegate that implements the&#xA;CSSParserCallback interface. The delegate is notified of the following&#xA;events:&#xA;&lt;ul>&#xA;&lt;li>Import statement: &lt;code>handleImport&lt;/code>&#xA;&lt;li>Selectors &lt;code>handleSelector&lt;/code>. This is invoked for each&#xA;string. For example if the Reader contained p, bar , a {}, the delegate&#xA;would be notified 4 times, for 'p,' 'bar' ',' and 'a'.&#xA;&lt;li>When a rule starts, &lt;code>startRule&lt;/code>&#xA;&lt;li>Properties in the rule via the &lt;code>handleProperty&lt;/code>. This&#xA;is invoked one per property/value key, eg font size: foo;, would&#xA;cause the delegate to be notified once with a value of 'font size'.&#xA;&lt;li>Values in the rule via the &lt;code>handleValue&lt;/code>, this is notified&#xA;for the total value.&#xA;&lt;li>When a rule ends, &lt;code>endRule&lt;/code>&#xA;&lt;/ul>&#xA;This will parse much more than CSS 1, and loosely implements the&#xA;recommendation for &lt;i>Forward-compatible parsing&lt;/i> in section&#xA;7.1 of the CSS spec found at:&#xA;&lt;a href=http://www.w3.org/TR/REC-CSS1>http://www.w3.org/TR/REC-CSS1&lt;/a>.&#xA;If an error results in parsing, a RuntimeException will be thrown.&#xA;&lt;p>&#xA;This will preserve case. If the callback wishes to treat certain poritions&#xA;case insensitively (such as selectors), it should use toLowerCase, or&#xA;something similar.&#xA;&#xA;@author Scott Violet&#xA;@version 1.8 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_879330_10339"/>
                <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548299_932301_22938" name="CSSParserCallback" visibility="package" isAbstract="true"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_999261_10379" name="NoFramesView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317523_502254_11904" body="This is the view associated with the html tag NOFRAMES.&#xA;This view has been written to ignore the contents of the&#xA;NOFRAMES tag.  The contents of the tag will only be visible&#xA;when the JTextComponent the view is contained in is editable.&#xA;&#xA;@author  Sunita Mani&#xA;@version 1.9 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_999261_10379"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_302553_17857" isSubstitutable="true" general="_9_5_f720368_1110473546768_995857_10331"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_831348_10371" name="ListView">
                <ownedComment xmi:id="_10_5_622020d_1132928317513_691870_11890" body="A view implementation to display an html list&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.28 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_831348_10371"/>
                <generalization xmi:id="_10_5_622020d_1132928323832_771785_17847" isSubstitutable="true" general="_9_5_f720368_1110473546768_995857_10331"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548284_548152_22833" name="parser">
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_424393_10309" name="DTD" clientDependency="_10_5_622020d_1132928323782_590011_17723">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_772058_11775" body="The representation of an SGML DTD.  DTD describes a document&#xA;syntax and is used in parsing of HTML documents.  It contains&#xA;a list of elements and their attributes as well as a list of&#xA;entities defined in the DTD.&#xA;&#xA;@see Element&#xA;@see AttributeList&#xA;@see ContentModel&#xA;@see Parser&#xA;@author Arthur van Hoff&#xA;@version 1.20 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546768_424393_10309"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_590011_17723" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_424393_10309" contract="_9_5_f720368_1110473546768_919561_10311"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_317516_10307" name="DocumentParser">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_616896_11773" body="A Parser for HTML Documents (actually, you can specify a DTD, but&#xA;you should really only use this class with the html dtd in swing).&#xA;Reads an InputStream of HTML and&#xA;invokes the appropriate methods in the ParserCallback class. This&#xA;is the default parser used by HTMLEditorKit to parse HTML url's.&#xA;&lt;p>This will message the callback for all valid tags, as well as&#xA;tags that are implied but not explicitly specified. For example, the&#xA;html string (&lt;p>blah) only has a p tag defined. The callback&#xA;will see the following methods:&#xA;&lt;ol>&lt;li>&lt;i>handleStartTag(html, ...)&lt;/i>&lt;/li>&#xA;&lt;li>&lt;i>handleStartTag(head, ...)&lt;/i>&lt;/li>&#xA;&lt;li>&lt;i>handleEndTag(head)&lt;/i>&lt;/li>&#xA;&lt;li>&lt;i>handleStartTag(body, ...)&lt;/i>&lt;/li>&#xA;&lt;li>handleStartTag(p, ...)&lt;/i>&lt;/li>&#xA;&lt;li>handleText(...)&lt;/li>&#xA;&lt;li>&lt;i>handleEndTag(p)&lt;/i>&lt;/li>&#xA;&lt;li>&lt;i>handleEndTag(body)&lt;/i>&lt;/li>&#xA;&lt;li>&lt;i>handleEndTag(html)&lt;/i>&lt;/li>&#xA;&lt;/ol>&#xA;The items in &lt;i>italic&lt;/i> are implied, that is, although they were not&#xA;explicitly specified, to be correct html they should have been present&#xA;(head isn't necessary, but it is still generated). For tags that&#xA;are implied, the AttributeSet argument will have a value of&#xA;&lt;code>Boolean.TRUE&lt;/code> for the key&#xA;&lt;code>HTMLEditorKit.ParserCallback.IMPLIED&lt;/code>.&#xA;&lt;p>HTML.Attributes defines a type safe enumeration of html attributes.&#xA;If an attribute key of a tag is defined in HTML.Attribute, the&#xA;HTML.Attribute will be used as the key, otherwise a String will be used.&#xA;For example &lt;p foo=bar class=neat> has two attributes. foo is&#xA;not defined in HTML.Attribute, where as class is, therefore the&#xA;AttributeSet will have two values in it, HTML.Attribute.CLASS with&#xA;a String value of 'neat' and the String key 'foo' with a String value of&#xA;'bar'.&#xA;&lt;p>The position argument will indicate the start of the tag, comment&#xA;or text. Similiar to arrays, the first character in the stream has a&#xA;position of 0. For tags that are&#xA;implied the position will indicate&#xA;the location of the next encountered tag. In the first example,&#xA;the implied start body and html tags will have the same position as the&#xA;p tag, and the implied end p, html and body tags will all have the same&#xA;position.&#xA;&lt;p>As html skips whitespace the position for text will be the position&#xA;of the first valid character, eg in the string '\n\n\nblah'&#xA;the text 'blah' will have a position of 3, the newlines are skipped.&#xA;&lt;p>&#xA;For attributes that do not have a value, eg in the html&#xA;string &lt;code>&lt;foo blah>&lt;/code> the attribute &lt;code>blah&lt;/code>&#xA;does not have a value, there are two possible values that will be&#xA;placed in the AttributeSet's value:&#xA;&lt;ul>&#xA;&lt;li>If the DTD does not contain an definition for the element, or the&#xA;definition does not have an explicit value then the value in the&#xA;AttributeSet will be &lt;code>HTML.NULL_ATTRIBUTE_VALUE&lt;/code>.&#xA;&lt;li>If the DTD contains an explicit value, as in:&#xA;&lt;code>&lt;!ATTLIST OPTION selected (selected) #IMPLIED>&lt;/code>&#xA;this value from the dtd (in this case selected) will be used.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Once the stream has been parsed, the callback is notified of the most&#xA;likely end of line string. The end of line string will be one of&#xA;\n, \r or \r\n, which ever is encountered the most in parsing the&#xA;stream.&#xA;&#xA;@version &#x9;1.28 12/19/03&#xA;@author      Sunita Mani&#xA;" annotatedElement="_9_5_f720368_1110473546768_317516_10307"/>
                  <generalization xmi:id="_10_5_622020d_1132928323782_362949_17722" isSubstitutable="true" general="_9_5_f720368_1110473546768_349080_10317"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_919561_10311" name="DTDConstants" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_262896_11777" body="SGML constants used in a DTD. The names of the&#xA;constants correspond the the equivalent SGML constructs&#xA;as described in &quot;The SGML Handbook&quot; by  Charles F. Goldfarb.&#xA;&#xA;@see DTD&#xA;@see Element&#xA;@version 1.10, 12/19/03&#xA;@author Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546768_919561_10311"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_953398_10315" name="Entity" clientDependency="_10_5_622020d_1132928323782_905572_17726" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_552803_11781" body="An entity is described in a DTD using the ENTITY construct.&#xA;It defines the type and value of the the entity.&#xA;&#xA;@see DTD&#xA;@version 1.10, 12/19/03&#xA;@author Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546768_953398_10315"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_905572_17726" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_953398_10315" contract="_9_5_f720368_1110473546768_919561_10311"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_103720_10313" name="Element" clientDependency="_10_5_622020d_1132928323782_632467_17724 _10_5_622020d_1132928323782_958490_17725" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_830223_11779" body="An element as described in a DTD using the ELEMENT construct.&#xA;This is essentiall the description of a tag. It describes the&#xA;type, content model, attributes, attribute types etc. It is used&#xA;to correctly parse a document by the Parser.&#xA;&#xA;@see DTD&#xA;@see AttributeList&#xA;@version 1.9, 12/19/03&#xA;@author Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546768_103720_10313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_632467_17724" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_103720_10313" contract="_9_5_f720368_1110473546768_919561_10311"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_958490_17725" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_103720_10313" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_46892_10321" name="ResourceLoader" visibility="package" clientDependency="_10_5_622020d_1132928323782_461179_17730">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_539200_11787" body="Simple class to load resources using the 1.2&#xA;security model.  Since the html support is loaded&#xA;lazily, it's resources are potentially fetched with&#xA;applet code in the call stack.  By providing this&#xA;functionality in a class that is only built on 1.2,&#xA;reflection can be used from the code that is also&#xA;built on 1.1 to call this functionality (and avoid&#xA;the evils of preprocessing).  This functionality&#xA;is called from ParserDelegator.getResourceAsStream.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.6 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_46892_10321"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_461179_17730" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_9_5_f720368_1110473546768_46892_10321" contract="_9_5_f720368_1110473546690_3186_8507"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_902713_10303" name="ContentModel" clientDependency="_10_5_622020d_1132928323782_955875_17721" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317412_907125_11769" body="A representation of a content model. A content model is&#xA;basically a restricted BNF expression. It is restricted in&#xA;the sense that it must be deterministic. This means that you&#xA;don't have to represent it as a finite state automata.&lt;p>&#xA;See Annex H on page 556 of the SGML handbook for more information.&#xA;&#xA;@author   Arthur van Hoff&#xA;@version  1.11,05/05/04&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546768_902713_10303"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_955875_17721" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_902713_10303" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_738467_10323" name="TagElement">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_985108_11789" body="A generic HTML TagElement class. The methods define how white&#xA;space is interpreted around the tag.&#xA;&#xA;@version &#x9;1.11, 12/19/03&#xA;@author      Sunita Mani&#xA;" annotatedElement="_9_5_f720368_1110473546768_738467_10323"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_772627_10301" name="AttributeList" clientDependency="_10_5_622020d_1132928323782_247040_17719 _10_5_622020d_1132928323782_422831_17720" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317412_142862_11767" body="This class defines the attributes of an SGML element&#xA;as described in a DTD using the ATTLIST construct.&#xA;An AttributeList can be obtained from the Element&#xA;class using the getAttributes() method.&#xA;&lt;p>&#xA;It is actually an element in a linked list. Use the&#xA;getNext() method repeatedly to enumerate all the attributes&#xA;of an element.&#xA;&#xA;@see&#x9;&#x9;Element&#xA;@author      Arthur Van Hoff&#xA;@version &#x9;1.11 05/05/04&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546768_772627_10301"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_247040_17719" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_772627_10301" contract="_9_5_f720368_1110473546768_919561_10311"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_422831_17720" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_772627_10301" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_839664_10305" name="ContentModelState" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_778077_11771" body="A content model state. This is basically a list of pointers to&#xA;the BNF expression representing the model (the ContentModel).&#xA;Each element in a DTD has a content model which describes the&#xA;elements that may occur inside, and the order in which they can&#xA;occur.&#xA;&lt;p>&#xA;Each time a token is reduced a new state is created.&#xA;&lt;p>&#xA;See Annex H on page 556 of the SGML handbook for more information.&#xA;&#xA;@see Parser&#xA;@see DTD&#xA;@see Element&#xA;@see ContentModel&#xA;@author Arthur van Hoff&#xA;@version &#x9;1.11 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_839664_10305"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_349080_10317" name="Parser" clientDependency="_10_5_622020d_1132928323782_362639_17727">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_851067_11783" body="A simple DTD-driven HTML parser. The parser reads an&#xA;HTML file from an InputStream and calls various methods&#xA;(which should be overridden in a subclass) when tags and&#xA;data are encountered.&#xA;&lt;p>&#xA;Unfortunately there are many badly implemented HTML parsers&#xA;out there, and as a result there are many badly formatted&#xA;HTML files. This parser attempts to parse most HTML files.&#xA;This means that the implementation sometimes deviates from&#xA;the SGML specification in favor of HTML.&#xA;&lt;p>&#xA;The parser treats \r and \r\n as \n. Newlines after starttags&#xA;and before end tags are ignored just as specified in the SGML/HTML&#xA;specification.&#xA;&lt;p>&#xA;The html spec does not specify how spaces are to be coalesced very well.&#xA;Specifically, the following scenarios are not discussed (note that a&#xA;space should be used here, but I am using &amp;nbsp to force the space to&#xA;be displayed):&#xA;&lt;p>&#xA;'&lt;b>blah&amp;nbsp;&lt;i>&amp;nbsp;&lt;strike>&amp;nbsp;foo' which can be treated as:&#xA;'&lt;b>blah&amp;nbsp;&lt;i>&lt;strike>foo'&#xA;&lt;p>as well as:&#xA;'&lt;p>&lt;a href=&quot;xx&quot;>&amp;nbsp;&lt;em>Using&lt;/em>&lt;/a>&lt;/p>'&#xA;which appears to be treated as:&#xA;'&lt;p>&lt;a href=&quot;xx&quot;>&lt;em>Using&lt;/em>&lt;/a>&lt;/p>'&#xA;&lt;p>&#xA;If &lt;code>strict&lt;/code> is false, when a tag that breaks flow,&#xA;(&lt;code>TagElement.breaksFlows&lt;/code>) or trailing whitespace is&#xA;encountered, all whitespace will be ignored until a non whitespace&#xA;character is encountered. This appears to give behavior closer to&#xA;the popular browsers.&#xA;&#xA;@see DTD&#xA;@see TagElement&#xA;@see SimpleAttributeSet&#xA;@version 1.38, 12/19/03&#xA;@author Arthur van Hoff&#xA;@author Sunita Mani&#xA;" annotatedElement="_9_5_f720368_1110473546768_349080_10317"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_362639_17727" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_349080_10317" contract="_9_5_f720368_1110473546768_919561_10311"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_329971_10325" name="TagStack" visibility="package" clientDependency="_10_5_622020d_1132928323782_735252_17731" isLeaf="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317432_622900_11791" body="A stack of tags. Used while parsing an HTML document.&#xA;It, together with the ContentModelStates, defines the&#xA;complete state of the parser while reading a document.&#xA;When a start tag is encountered an element is pushed onto&#xA;the stack, when an end tag is enountered an element is popped&#xA;of the stack.&#xA;&#xA;@see Parser&#xA;@see DTD&#xA;@see ContentModelState&#xA;@version &#x9;1.10, 12/19/03&#xA;@author &#x9;Arthur van Hoff&#xA;" annotatedElement="_9_5_f720368_1110473546768_329971_10325"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_735252_17731" name="" supplier="_9_5_f720368_1110473546768_919561_10311" client="_9_5_f720368_1110473546768_329971_10325" contract="_9_5_f720368_1110473546768_919561_10311"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_299925_10327" name="NPrintWriter" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323782_320785_17732" isSubstitutable="true" general="_9_5_f720368_1110473546612_101729_7469"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_932456_10319" name="ParserDelegator" clientDependency="_10_5_622020d_1132928323782_994990_17728">
                  <ownedComment xmi:id="_10_5_622020d_1132928317422_243507_11785" body="Responsible for starting up a new DocumentParser&#xA;each time its parse method is invoked. Stores a&#xA;reference to the dtd.&#xA;&#xA;@author  Sunita Mani&#xA;@version 1.15, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_932456_10319"/>
                  <generalization xmi:id="_10_5_622020d_1132928323782_387683_17729" isSubstitutable="true" general="_9_5_f720368_1110473548284_89061_22858"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_994990_17728" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_932456_10319" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </packagedElement>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_623336_10519" name="StringContent" clientDependency="_10_5_622020d_1132928323882_783082_18087 _10_5_622020d_1132928323882_988105_18086" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_965682_12150" body="An implementation of the AbstractDocument.Content interface that is&#xA;a brute force implementation that is useful for relatively small&#xA;documents and/or debugging.  It manages the character content&#xA;as a simple character array.  It is also quite inefficient.&#xA;&lt;p>&#xA;It is generally recommended that the gap buffer or piece table&#xA;implementations be used instead.  This buffer does not scale up&#xA;to large sizes.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.44 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_623336_10519"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_988105_18086" name="" supplier="_9_5_f720368_1110473548331_808450_23326" client="_9_5_f720368_1110473546784_623336_10519" contract="_9_5_f720368_1110473548331_808450_23326"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_783082_18087" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_623336_10519" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_475060_23614" name="PosRec" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_549195_12144" body="holds the data for a mark... separately from&#xA;the real mark so that the real mark can be&#xA;collected if there are no more references to&#xA;it.... the update table holds only a reference&#xA;to this grungy thing.&#xA;" annotatedElement="_9_5_f720368_1110473548362_475060_23614"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_1330_23616" name="StickyPosition" visibility="package" clientDependency="_10_5_622020d_1132928323882_150744_18088" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_511137_12145" body="This really wants to be a weak reference but&#xA;in 1.1 we don't have a 100% pure solution for&#xA;this... so this class trys to hack a solution&#xA;to causing the marks to be collected.&#xA;" annotatedElement="_9_5_f720368_1110473548362_1330_23616"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_150744_18088" name="" supplier="_9_5_f720368_1110473546784_86943_10509" client="_9_5_f720368_1110473548362_1330_23616" contract="_9_5_f720368_1110473546784_86943_10509"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_277008_23618" name="UndoPosRef" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_214122_12146" body="Used to hold a reference to a Position that is being reset as the&#xA;result of removing from the content.&#xA;" annotatedElement="_9_5_f720368_1110473548362_277008_23618"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_287075_23620" name="InsertUndo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_241364_12147" body="UnoableEdit created for inserts.&#xA;" annotatedElement="_9_5_f720368_1110473548362_287075_23620"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_726628_18089" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_946024_23622" name="RemoveUndo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_3904_12148" body="UndoableEdit created for removes.&#xA;" annotatedElement="_9_5_f720368_1110473548362_946024_23622"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_777356_18090" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_103495_10459" name="Element" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_296626_12053" body="Interface to describe a structural piece of a document.  It&#xA;is intended to capture the spirit of an SGML element.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.23 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_103495_10459"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_841531_10497" name="NavigationFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928317673_592610_12119" body="&lt;code>NavigationFilter&lt;/code> can be used to restrict where the cursor can&#xA;be positioned. When the default cursor positioning actions attempt to&#xA;reposition the cursor they will call into the&#xA;&lt;code>NavigationFilter&lt;/code>, assuming&#xA;the &lt;code>JTextComponent&lt;/code> has a non-null&#xA;&lt;code>NavigationFilter&lt;/code> set. In this manner&#xA;the &lt;code>NavigationFilter&lt;/code> can effectively restrict where the&#xA;cursor can be positioned. Similarly &lt;code>DefaultCaret&lt;/code> will call&#xA;into the &lt;code>NavigationFilter&lt;/code> when the user is changing the&#xA;selection to further restrict where the cursor can be positioned.&#xA;&lt;p>&#xA;Subclasses can conditionally call into supers implementation to restrict&#xA;where the cursor can be placed, or call directly into the&#xA;&lt;code>FilterBypass&lt;/code>.&#xA;&#xA;@see javax.swing.text.Caret&#xA;@see javax.swing.text.DefaultCaret&#xA;@see javax.swing.text.View&#xA;&#xA;@version 1.4 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_841531_10497"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_446805_23589" name="FilterBypass" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317673_490416_12117" body="Used as a way to circumvent calling back into the caret to&#xA;position the cursor. Caret implementations that wish to support&#xA;a NavigationFilter must provide an implementation that will&#xA;not callback into the NavigationFilter.&#xA;" annotatedElement="_9_5_f720368_1110473548362_446805_23589"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_616890_10483" name="JTextComponent" clientDependency="_10_5_622020d_1132928323862_31618_18031 _10_5_622020d_1132928323862_763757_18032" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317663_843231_12095" body="&lt;code>JTextComponent&lt;/code> is the base class for swing text&#xA;components.  It tries to be compatible with the&#xA;&lt;code>java.awt.TextComponent&lt;/code> class&#xA;where it can reasonably do so.  Also provided are other services&#xA;for additional flexibility (beyond the pluggable UI and bean&#xA;support).&#xA;You can find information on how to use the functionality&#xA;this class provides in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html&quot;>General Rules for Using Text Components&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;&lt;dl>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Caret Changes&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;The caret is a pluggable object in swing text components.&#xA;Notification of changes to the caret position and the selection&#xA;are sent to implementations of the &lt;code>CaretListener&lt;/code>&#xA;interface that have been registered with the text component.&#xA;The UI will install a default caret unless a customized caret&#xA;has been set. &lt;br>&#xA;By default the caret tracks all the document changes&#xA;performed on the Event Dispatching Thread and updates it's position&#xA;accordingly if an insertion occurs before or at the caret position&#xA;or a removal occurs before the caret position. &lt;code>DefaultCaret&lt;/code>&#xA;tries to make itself visible which may lead to scrolling&#xA;of a text component within &lt;code>JScrollPane&lt;/code>. The default caret&#xA;behavior can be changed by the {@link DefaultCaret#setUpdatePolicy} method.&#xA;&lt;br>&#xA;&lt;b>Note&lt;/b>: Non-editable text components also have a caret though&#xA;it may not be painted.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Commands&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;Text components provide a number of commands that can be used&#xA;to manipulate the component.  This is essentially the way that&#xA;the component expresses its capabilities.  These are expressed&#xA;in terms of the swing &lt;code>Action&lt;/code> interface,&#xA;using the &lt;code>TextAction&lt;/code> implementation.&#xA;The set of commands supported by the text component can be&#xA;found with the {@link #getActions} method.  These actions&#xA;can be bound to key events, fired from buttons, etc.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Text Input&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;The text components support flexible and internationalized text input, using&#xA;keymaps and the input method framework, while maintaining compatibility with&#xA;the AWT listener model.&#xA;&lt;p>&#xA;A {@link javax.swing.text.Keymap} lets an application bind key&#xA;strokes to actions.&#xA;In order to allow keymaps to be shared across multiple text components, they&#xA;can use actions that extend &lt;code>TextAction&lt;/code>.&#xA;&lt;code>TextAction&lt;/code> can determine which &lt;code>JTextComponent&lt;/code>&#xA;most recently has or had focus and therefore is the subject of&#xA;the action (In the case that the &lt;code>ActionEvent&lt;/code>&#xA;sent to the action doesn't contain the target text component as its source).&#xA;&lt;p>&#xA;The &lt;a href=&quot;../../../../guide/imf/spec.html&quot;>input method framework&lt;/a>&#xA;lets text components interact with input methods, separate software&#xA;components that preprocess events to let users enter thousands of&#xA;different characters using keyboards with far fewer keys.&#xA;&lt;code>JTextComponent&lt;/code> is an &lt;em>active client&lt;/em> of&#xA;the framework, so it implements the preferred user interface for interacting&#xA;with input methods. As a consequence, some key events do not reach the text&#xA;component because they are handled by an input method, and some text input&#xA;reaches the text component as committed text within an {@link&#xA;java.awt.event.InputMethodEvent} instead of as a key event.&#xA;The complete text input is the combination of the characters in&#xA;&lt;code>keyTyped&lt;/code> key events and committed text in input method events.&#xA;&lt;p>&#xA;The AWT listener model lets applications attach event listeners to&#xA;components in order to bind events to actions. Swing encourages the&#xA;use of keymaps instead of listeners, but maintains compatibility&#xA;with listeners by giving the listeners a chance to steal an event&#xA;by consuming it.&#xA;&lt;p>&#xA;Keyboard event and input method events are handled in the following stages,&#xA;with each stage capable of consuming the event:&#xA;&#xA;&lt;table border=1 summary=&quot;Stages of keyboard and input method event handling&quot;>&#xA;&lt;tr>&#xA;&lt;th id=&quot;stage&quot;>&lt;p align=&quot;left&quot;>Stage&lt;/p>&lt;/th>&#xA;&lt;th id=&quot;ke&quot;>&lt;p align=&quot;left&quot;>KeyEvent&lt;/p>&lt;/th>&#xA;&lt;th id=&quot;ime&quot;>&lt;p align=&quot;left&quot;>InputMethodEvent&lt;/p>&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td headers=&quot;stage&quot;>1.   &lt;/td>&#xA;&lt;td headers=&quot;ke&quot;>input methods &lt;/td>&#xA;&lt;td headers=&quot;ime&quot;>(generated here)&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td headers=&quot;stage&quot;>2.   &lt;/td>&#xA;&lt;td headers=&quot;ke&quot;>focus manager &lt;/td>&#xA;&lt;td headers=&quot;ime&quot;>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;stage&quot;>3.   &lt;/td>&#xA;&lt;td headers=&quot;ke&quot;>registered key listeners&lt;/td>&#xA;&lt;td headers=&quot;ime&quot;>registered input method listeners&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;stage&quot;>4.   &lt;/td>&#xA;&lt;td headers=&quot;ke&quot;>&lt;/td>&#xA;&lt;td headers=&quot;ime&quot;>input method handling in JTextComponent&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td headers=&quot;stage&quot;>5.   &lt;/td>&lt;td headers=&quot;ke ime&quot; colspan=2>keymap handling using the current keymap&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td headers=&quot;stage&quot;>6.   &lt;/td>&lt;td headers=&quot;ke&quot;>keyboard handling in JComponent (e.g. accelerators, component navigation, etc.)&lt;/td>&#xA;&lt;td headers=&quot;ime&quot;>&lt;/td>&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>&#xA;To maintain compatibility with applications that listen to key&#xA;events but are not aware of input method events, the input&#xA;method handling in stage 4 provides a compatibility mode for&#xA;components that do not process input method events. For these&#xA;components, the committed text is converted to keyTyped key events&#xA;and processed in the key event pipeline starting at stage 3&#xA;instead of in the input method event pipeline.&#xA;&lt;p>&#xA;By default the component will create a keymap (named &lt;b>DEFAULT_KEYMAP&lt;/b>)&#xA;that is shared by all JTextComponent instances as the default keymap.&#xA;Typically a look-and-feel implementation will install a different keymap&#xA;that resolves to the default keymap for those bindings not found in the&#xA;different keymap. The minimal bindings include:&#xA;&lt;ul>&#xA;&lt;li>inserting content into the editor for the&#xA;printable keys.&#xA;&lt;li>removing content with the backspace and del&#xA;keys.&#xA;&lt;li>caret movement forward and backward&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Model/View Split&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;The text components have a model-view split.  A text component pulls&#xA;together the objects used to represent the model, view, and controller.&#xA;The text document model may be shared by other views which act as observers&#xA;of the model (e.g. a document may be shared by multiple components).&#xA;&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/editor.gif&quot; alt=&quot;Diagram showing interaction between Controller, Document, events, and ViewFactory&quot;&#xA;HEIGHT=358 WIDTH=587>&lt;/p>&#xA;&#xA;&lt;p>&#xA;The model is defined by the {@link Document} interface.&#xA;This is intended to provide a flexible text storage mechanism&#xA;that tracks change during edits and can be extended to more sophisticated&#xA;models.  The model interfaces are meant to capture the capabilities of&#xA;expression given by SGML, a system used to express a wide variety of&#xA;content.&#xA;Each modification to the document causes notification of the&#xA;details of the change to be sent to all observers in the form of a&#xA;{@link DocumentEvent} which allows the views to stay up to date with the model.&#xA;This event is sent to observers that have implemented the&#xA;{@link DocumentListener}&#xA;interface and registered interest with the model being observed.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Location Information&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;The capability of determining the location of text in&#xA;the view is provided.  There are two methods, {@link #modelToView}&#xA;and {@link #viewToModel} for determining this information.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Undo/Redo support&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;Support for an edit history mechanism is provided to allow&#xA;undo/redo operations.  The text component does not itself&#xA;provide the history buffer by default, but does provide&#xA;the &lt;code>UndoableEdit&lt;/code> records that can be used in conjunction&#xA;with a history buffer to provide the undo/redo support.&#xA;The support is provided by the Document model, which allows&#xA;one to attach UndoableEditListener implementations.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Thread Safety&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;The swing text components provide some support of thread&#xA;safe operations.  Because of the high level of configurability&#xA;of the text components, it is possible to circumvent the&#xA;protection provided.  The protection primarily comes from&#xA;the model, so the documentation of &lt;code>AbstractDocument&lt;/code>&#xA;describes the assumptions of the protection provided.&#xA;The methods that are safe to call asynchronously are marked&#xA;with comments.&#xA;&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Newlines&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;For a discussion on how newlines are handled, see&#xA;&lt;a href=&quot;DefaultEditorKit.html&quot;>DefaultEditorKit&lt;/a>.&#xA;&lt;/dl>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.212 04/15/04&#xA;@see Document&#xA;@see DocumentEvent&#xA;@see DocumentListener&#xA;@see Caret&#xA;@see CaretEvent&#xA;@see CaretListener&#xA;@see TextUI&#xA;@see View&#xA;@see ViewFactory&#xA;" annotatedElement="_9_5_f720368_1110473546784_616890_10483"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_466676_18033" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_31618_18031" name="" supplier="_9_5_f720368_1110473546799_139584_10841" client="_9_5_f720368_1110473546784_616890_10483" contract="_9_5_f720368_1110473546799_139584_10841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_763757_18032" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_616890_10483" contract="_9_5_f720368_1110473546706_827345_8951"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_487087_23538" name="KeyBinding">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_186124_12087" body="Binding record for creating key bindings.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548362_487087_23538"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_214589_23541" name="AccessibleJTextComponent" clientDependency="_10_5_622020d_1132928323872_107928_18034 _10_5_622020d_1132928323872_73940_18035 _10_5_622020d_1132928323872_499966_18036 _10_5_622020d_1132928323872_160840_18037 _10_5_622020d_1132928323872_395333_18038">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_928940_12089" body="This class implements accessibility support for the&#xA;&lt;code>JTextComponent&lt;/code> class.  It provides an implementation of&#xA;the Java Accessibility API appropriate to menu user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548362_214589_23541"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_106970_18039" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_107928_18034" name="" supplier="_9_5_f720368_1110473546706_466273_8993" client="_9_5_f720368_1110473548362_214589_23541" contract="_9_5_f720368_1110473546706_466273_8993"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_73940_18035" name="" supplier="_9_5_f720368_1110473546753_881060_9835" client="_9_5_f720368_1110473548362_214589_23541" contract="_9_5_f720368_1110473546753_881060_9835"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_499966_18036" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473548362_214589_23541" contract="_9_5_f720368_1110473546753_81876_9845"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_160840_18037" name="" supplier="_9_5_f720368_1110473546706_522529_8953" client="_9_5_f720368_1110473548362_214589_23541" contract="_9_5_f720368_1110473546706_522529_8953"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_395333_18038" name="" supplier="_9_5_f720368_1110473546706_90789_8961" client="_9_5_f720368_1110473548362_214589_23541" contract="_9_5_f720368_1110473546706_90789_8961"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_664108_23543" name="IndexedSegment" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317613_48328_12088" body="IndexedSegment extends Segment adding the offset into the&#xA;the model the &lt;code>Segment&lt;/code> was asked for.&#xA;" annotatedElement="_9_5_f720368_1110473548362_664108_23543"/>
                  <generalization xmi:id="_10_5_622020d_1132928323872_226672_18040" isSubstitutable="true" general="_9_5_f720368_1110473546784_181396_10511"/>
                </nestedClassifier>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_210935_23545" name="DefaultTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323872_595406_18041">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_268454_12090" body="A Simple TransferHandler that exports the data as a String, and&#xA;imports the data from the String clipboard.  This is only used&#xA;if the UI hasn't supplied one, which would only happen if someone&#xA;hasn't subclassed Basic.&#xA;" annotatedElement="_9_5_f720368_1110473548362_210935_23545"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_479344_18042" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_595406_18041" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548362_210935_23545" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_167711_23548" name="DefaultKeymap" visibility="package" clientDependency="_10_5_622020d_1132928323872_875230_18043">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_875230_18043" name="" supplier="_9_5_f720368_1110473546784_738554_10485" client="_9_5_f720368_1110473548362_167711_23548" contract="_9_5_f720368_1110473546784_738554_10485"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_832812_23550" name="KeymapWrapper" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_157937_12091" body="KeymapWrapper wraps a Keymap inside an InputMap. For KeymapWrapper&#xA;to be useful it must be used with a KeymapActionMap.&#xA;KeymapWrapper for the most part, is an InputMap with two parents.&#xA;The first parent visited is ALWAYS the Keymap, with the second&#xA;parent being the parent inherited from InputMap. If&#xA;&lt;code>keymap.getAction&lt;/code> returns null, implying the Keymap&#xA;does not have a binding for the KeyStroke,&#xA;the parent is then visited. If the Keymap has a binding, the&#xA;Action is returned, if not and the KeyStroke represents a&#xA;KeyTyped event and the Keymap has a defaultAction,&#xA;&lt;code>DefaultActionKey&lt;/code> is returned.&#xA;&lt;p>KeymapActionMap is then able to transate the object passed in&#xA;to either message the Keymap, or message its default implementation.&#xA;" annotatedElement="_9_5_f720368_1110473548362_832812_23550"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_952_18044" isSubstitutable="true" general="_9_5_f720368_1110473546784_409896_10697"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_201999_23553" name="KeymapActionMap" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_920698_12092" body="Wraps a Keymap inside an ActionMap. This is used with&#xA;a KeymapWrapper. If &lt;code>get&lt;/code> is passed in&#xA;&lt;code>KeymapWrapper.DefaultActionKey&lt;/code>, the default action is&#xA;returned, otherwise if the key is an Action, it is returned.&#xA;" annotatedElement="_9_5_f720368_1110473548362_201999_23553"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_435495_18045" isSubstitutable="true" general="_9_5_f720368_1110473546784_735162_10623"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_913827_23556" name="MutableCaretEvent" visibility="package" clientDependency="_10_5_622020d_1132928323872_419286_18046 _10_5_622020d_1132928323872_997277_18047 _10_5_622020d_1132928323872_321889_18048">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_124995_12093" body="Event to use when firing a notification of change to caret&#xA;position.  This is mutable so that the event can be reused&#xA;since caret events can be fairly high in bandwidth.&#xA;" annotatedElement="_9_5_f720368_1110473548362_913827_23556"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_21492_18049" isSubstitutable="true" general="_9_5_f720368_1110473546753_419008_9833"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_419286_18046" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548362_913827_23556" contract="_9_5_f720368_1110473546753_937925_9841"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_997277_18047" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548362_913827_23556" contract="_9_5_f720368_1110473546565_10343_6561"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_321889_18048" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473548362_913827_23556" contract="_9_5_f720368_1110473546565_486724_6593"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_604911_23559" name="InputMethodRequestsHandler" visibility="package" clientDependency="_10_5_622020d_1132928323872_579842_18050 _10_5_622020d_1132928323872_955722_18051">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_579842_18050" name="" supplier="_9_5_f720368_1110473546565_674254_6725" client="_9_5_f720368_1110473548362_604911_23559" contract="_9_5_f720368_1110473546565_674254_6725"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_955722_18051" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473548362_604911_23559" contract="_9_5_f720368_1110473546753_81876_9845"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_949709_23560" name="ComposedTextCaret" visibility="package" clientDependency="_10_5_622020d_1132928323872_199939_18052">
                <generalization xmi:id="_10_5_622020d_1132928323872_438563_18053" isSubstitutable="true" general="_9_5_f720368_1110473546784_435224_10439"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_199939_18052" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548362_949709_23560" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_963490_23561" name="DoSetCaretPosition" visibility="private" clientDependency="_10_5_622020d_1132928323872_574808_18054">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_574808_18054" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548362_963490_23561" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_194953_10527" name="StyledDocument" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_419472_12167" body="Interface for a generic styled document.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.21 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_194953_10527"/>
              <generalization xmi:id="_10_5_622020d_1132928323882_489144_18108" isSubstitutable="true" general="_9_5_f720368_1110473546784_150050_10453"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_759614_10423" name="AttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317543_128929_11986" body="A collection of unique attributes.  This is a read-only,&#xA;immutable interface.  An attribute is basically a key and&#xA;a value assigned to the key.  The collection may represent&#xA;something like a style run, a logical style, etc.  These&#xA;are generally used to describe features that will contribute&#xA;to some graphical representation such as a font.  The&#xA;set of possible keys is unbounded and can be anything.&#xA;Typically View implementations will respond to attribute&#xA;definitions and render something to represent the attributes.&#xA;&lt;p>&#xA;Attributes can potentially resolve in a hierarchy.  If a&#xA;key doesn't resolve locally, and a resolving parent&#xA;exists, the key will be resolved through the parent.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.40 05/05/04&#xA;@see MutableAttributeSet&#xA;" annotatedElement="_9_5_f720368_1110473546784_759614_10423"/>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_710834_23353" name="FontAttribute" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_132834_11981" body="This interface is the type signature that is expected&#xA;to be present on any attribute key that contributes to&#xA;the determination of what font to use to render some&#xA;text.  This is not considered to be a closed set, the&#xA;definition can change across version of the platform and can&#xA;be amended by additional user added entries that&#xA;correspond to logical settings that are specific to&#xA;some type of content.&#xA;" annotatedElement="_9_5_f720368_1110473548331_710834_23353"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_159202_23355" name="ColorAttribute" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_412103_11982" body="This interface is the type signature that is expected&#xA;to be present on any attribute key that contributes to&#xA;presentation of color.&#xA;" annotatedElement="_9_5_f720368_1110473548331_159202_23355"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_355066_23357" name="CharacterAttribute" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_769181_11983" body="This interface is the type signature that is expected&#xA;to be present on any attribute key that contributes to&#xA;character level presentation.  This would be any attribute&#xA;that applies to a so-called &lt;term>run&lt;/term> of&#xA;style.&#xA;" annotatedElement="_9_5_f720368_1110473548331_355066_23357"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_982952_23359" name="ParagraphAttribute" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_169636_11984" body="This interface is the type signature that is expected&#xA;to be present on any attribute key that contributes to&#xA;the paragraph level presentation.&#xA;" annotatedElement="_9_5_f720368_1110473548331_982952_23359"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_892440_10513" name="SegmentCache" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_152706_12138" body="SegmentCache caches &lt;code>Segment&lt;/code>s to avoid continually creating&#xA;and destroying of &lt;code>Segment&lt;/code>s. A common use of this class would&#xA;be:&#xA;&lt;pre>&#xA;Segment segment = segmentCache.getSegment();&#xA;do something with segment&#xA;...&#xA;segmentCache.releaseSegment(segment);&#xA;&lt;/pre>&#xA;&#xA;@version 1.5 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_892440_10513"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_603705_23605" name="CachedSegment" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317683_964856_12136" body="CachedSegment is used as a tagging interface to determine if&#xA;a Segment can successfully be shared.&#xA;" annotatedElement="_9_5_f720368_1110473548362_603705_23605"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_885008_18079" isSubstitutable="true" general="_9_5_f720368_1110473546784_181396_10511"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_316034_10545" name="Utilities">
              <ownedComment xmi:id="_10_5_622020d_1132928317733_581633_12202" body="A collection of methods to deal with various text&#xA;related activities.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.47 04/15/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_316034_10545"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_803679_10421" name="AsyncBoxView">
              <ownedComment xmi:id="_10_5_622020d_1132928317543_326189_11980" body="A box that does layout asynchronously.  This&#xA;is useful to keep the GUI event thread moving by&#xA;not doing any layout on it.  The layout is done&#xA;on a granularity of operations on the child views.&#xA;After each child view is accessed for some part&#xA;of layout (a potentially time consuming operation)&#xA;the remaining tasks can be abandoned or a new higher&#xA;priority task (i.e. to service a synchronous request&#xA;or a visible area) can be taken on.&#xA;&lt;p>&#xA;While the child view is being accessed&#xA;a read lock is aquired on the associated document&#xA;so that the model is stable while being accessed.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.16 12/19/03&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546784_803679_10421"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_961321_17928" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_347801_23346" name="ChildLocator">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_614443_11976" body="A class to manage the effective position of the&#xA;child views in a localized area while changes are&#xA;being made around the localized area.  The AsyncBoxView&#xA;may be continuously changing, but the visible area&#xA;needs to remain fairly stable until the layout thread&#xA;decides to publish an update to the parent.&#xA;" annotatedElement="_9_5_f720368_1110473548331_347801_23346"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_612783_23348" name="ChildState" clientDependency="_10_5_622020d_1132928323852_556912_17929">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_142415_11977" body="A record representing the layout state of a&#xA;child view.  It is runnable as a task on another&#xA;thread.  All access to the child view that is&#xA;based upon a read-lock on the model should synchronize&#xA;on this object (i.e. The layout thread and the GUI&#xA;thread can both have a read lock on the model at the&#xA;same time and are not protected from each other).&#xA;Access to a child view hierarchy is serialized via&#xA;synchronization on the ChildState instance.&#xA;" annotatedElement="_9_5_f720368_1110473548331_612783_23348"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_556912_17929" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548331_612783_23348" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_117620_23350" name="FlushTask" visibility="package" clientDependency="_10_5_622020d_1132928323852_996713_17930">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_57963_11978" body="Task to flush requirement changes upward&#xA;" annotatedElement="_9_5_f720368_1110473548331_117620_23350"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_996713_17930" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548331_117620_23350" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_986470_10431" name="ChangedCharSetException">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_616715_11994" body="ChangedCharSetException as the name indicates is an exception&#xA;thrown when the charset is changed.&#xA;&#xA;@author Sunita Mani&#xA;1.8, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_986470_10431"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_854356_17933" isSubstitutable="true" general="_9_5_f720368_1110473546596_502964_7425"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_279812_10517" name="StateInvariantError" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_129247_12143" body="This exception is to report the failure of state invarient&#xA;assertion that was made.  This indicates an internal error&#xA;has occurred.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.17 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_279812_10517"/>
              <generalization xmi:id="_10_5_622020d_1132928323882_472763_18085" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_75117_10505" name="PlainDocument">
              <ownedComment xmi:id="_10_5_622020d_1132928317683_449799_12128" body="A plain document that maintains no character attributes.  The&#xA;default element structure for this document is a map of the lines in&#xA;the text.  The Element returned by getDefaultRootElement is&#xA;a map of the lines, and each child element represents a line.&#xA;This model does not maintain any character level attributes,&#xA;but each line can be tagged with an arbitrary set of attributes.&#xA;Line to offset, and offset to line translations can be quickly&#xA;performed using the default root element.  The structure information&#xA;of the DocumentEvent's fired by edits will indicate the line&#xA;structure changes.&#xA;&lt;p>&#xA;The default content storage management is performed by a&#xA;gapped buffer implementation (GapContent).  It supports&#xA;editing reasonably large documents with good efficiency when&#xA;the edits are contiguous or clustered, as is typical.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.43 12/19/03&#xA;@see     Document&#xA;@see     AbstractDocument&#xA;" annotatedElement="_9_5_f720368_1110473546784_75117_10505"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_428262_18074" isSubstitutable="true" general="_9_5_f720368_1110473546784_322991_10417"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_902806_10479" name="IconView">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_870547_12082" body="Icon decorator that implements the view interface.  The&#xA;entire element is used to represent the icon.  This acts&#xA;as a gateway from the display-only View implementations to&#xA;interactive lightweight icons (that is, it allows icons&#xA;to be embedded into the View hierarchy.  The parent of the icon&#xA;is the container that is handed out by the associated view&#xA;factory.&#xA;&#xA;@author Timothy Prinzing&#xA;@version 1.28 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_902806_10479"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_417345_18027" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_822005_10533" name="TabExpander" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_829031_12183" body="Simple interface to allow for different types of&#xA;implementations of tab expansion.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.15 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_822005_10533"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_207026_10477" name="Highlighter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_945386_12080" body="An interface for an object that allows one to mark up the background&#xA;with colored areas.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.22 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_207026_10477"/>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548362_284053_23527" name="HighlightPainter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_350143_12078" body="Highlight renderer.&#xA;" annotatedElement="_9_5_f720368_1110473548362_284053_23527"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548362_638067_23529" name="Highlight" isAbstract="true"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_416196_10489" name="LayeredHighlighter" clientDependency="_10_5_622020d_1132928323872_918472_18057" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317663_94525_12102" body="@author  Scott Violet&#xA;@author  Timothy Prinzing&#xA;@version 1.7 12/19/03&#xA;@see     Highlighter&#xA;" annotatedElement="_9_5_f720368_1110473546784_416196_10489"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323872_918472_18057" name="" supplier="_9_5_f720368_1110473546784_207026_10477" client="_9_5_f720368_1110473546784_416196_10489" contract="_9_5_f720368_1110473546784_207026_10477"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_499811_23565" name="LayerPainter" clientDependency="_10_5_622020d_1132928323872_808640_18058" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_925871_12100" body="Layered highlight renderer.&#xA;" annotatedElement="_9_5_f720368_1110473548362_499811_23565"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323872_808640_18058" name="" supplier="_9_5_f720368_1110473548362_284053_23527" client="_9_5_f720368_1110473548362_499811_23565" contract="_9_5_f720368_1110473548362_284053_23527"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_498589_10539" name="TabStop" clientDependency="_10_5_622020d_1132928323882_865384_18128">
              <ownedComment xmi:id="_10_5_622020d_1132928317733_329439_12195" body="This class encapsulates a single tab stop (basically as tab stops&#xA;are thought of by RTF). A tab stop is at a specified distance from the&#xA;left margin, aligns text in a specified way, and has a specified leader.&#xA;TabStops are immutable, and usually contained in TabSets.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_498589_10539"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_865384_18128" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_498589_10539" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_119034_10447" name="DefaultHighlighter">
              <ownedComment xmi:id="_10_5_622020d_1132928317583_320874_12029" body="Implements the Highlighter interfaces.  Implements a simple highlight&#xA;painter that renders in a solid color.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.39 12/19/03&#xA;@see     Highlighter&#xA;" annotatedElement="_9_5_f720368_1110473546784_119034_10447"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_86264_17991" isSubstitutable="true" general="_9_5_f720368_1110473546784_416196_10489"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_759384_16196" name="DefaultHighlightPainter">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_330947_12024" body="Simple highlight painter that fills a highlighted area with&#xA;a solid color.&#xA;" annotatedElement="_9_5_f720368_1110473547237_759384_16196"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_863025_17992" isSubstitutable="true" general="_9_5_f720368_1110473548362_499811_23565"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_201425_23465" name="HighlightInfo" visibility="package" clientDependency="_10_5_622020d_1132928323862_243600_17993">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_243600_17993" name="" supplier="_9_5_f720368_1110473548362_638067_23529" client="_9_5_f720368_1110473548346_201425_23465" contract="_9_5_f720368_1110473548362_638067_23529"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_173466_23466" name="LayeredHighlightInfo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_779279_12025" body="LayeredHighlightPainter is used when a drawsLayeredHighlights is&#xA;true. It maintains a rectangle of the region to paint.&#xA;" annotatedElement="_9_5_f720368_1110473548346_173466_23466"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_600369_17994" isSubstitutable="true" general="_9_5_f720368_1110473548346_201425_23465"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317583_865361_12026" name="SafeDamager" visibility="package" clientDependency="_10_5_622020d_1132928323862_613349_17995">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_215704_12027" body="This class invokes &lt;code>mapper.damageRange&lt;/code> in&#xA;EventDispatchThread. The only one instance per Highlighter&#xA;is cretaed. When a number of ranges should be damaged&#xA;it collects them into queue and damages&#xA;them in consecutive order in &lt;code>run&lt;/code>&#xA;call.&#xA;" annotatedElement="_10_5_622020d_1132928317583_865361_12026"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_613349_17995" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_10_5_622020d_1132928317583_865361_12026" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_480833_10467" name="GapContent" clientDependency="_10_5_622020d_1132928323862_535932_18013 _10_5_622020d_1132928323862_517893_18014">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_732737_12068" body="An implementation of the AbstractDocument.Content interface&#xA;implemented using a gapped buffer similar to that used by emacs.&#xA;The underlying storage is a array of unicode characters with&#xA;a gap somewhere.  The gap is moved to the location of changes&#xA;to take advantage of common behavior where most changes are&#xA;in the same location.  Changes that occur at a gap boundary are&#xA;generally cheap and moving the gap is generally cheaper than&#xA;moving the array contents directly to accomodate the change.&#xA;&lt;p>&#xA;The positions tracking change are also generally cheap to&#xA;maintain.  The Position implementations (marks) store the array&#xA;index and can easily calculate the sequential position from&#xA;the current gap location.  Changes only require update to the&#xA;the marks between the old and new gap boundaries when the gap&#xA;is moved, so generally updating the marks is pretty cheap.&#xA;The marks are stored sorted so they can be located quickly&#xA;with a binary search.  This increases the cost of adding a&#xA;mark, and decreases the cost of keeping the mark updated.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.21 12/03/01&#xA;" annotatedElement="_9_5_f720368_1110473546784_480833_10467"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_882807_18015" isSubstitutable="true" general="_9_5_f720368_1110473546784_304890_10469"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_535932_18013" name="" supplier="_9_5_f720368_1110473548331_808450_23326" client="_9_5_f720368_1110473546784_480833_10467" contract="_9_5_f720368_1110473548331_808450_23326"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_517893_18014" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_480833_10467" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_30846_23508" name="MarkData" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_214673_12063" body="Holds the data for a mark... separately from&#xA;the real mark so that the real mark (Position&#xA;that the caller of createPosition holds) can be&#xA;collected if there are no more references to&#xA;it.  The update table holds only a reference&#xA;to this data.&#xA;" annotatedElement="_9_5_f720368_1110473548346_30846_23508"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_861415_18016" isSubstitutable="true" general="_9_5_f720368_1110473546612_633971_7521"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_601235_23510" name="StickyPosition" visibility="package" clientDependency="_10_5_622020d_1132928323862_94560_18017" isLeaf="true">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_94560_18017" name="" supplier="_9_5_f720368_1110473546784_86943_10509" client="_9_5_f720368_1110473548346_601235_23510" contract="_9_5_f720368_1110473546784_86943_10509"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_8458_23511" name="MarkVector" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323862_923197_18018" isSubstitutable="true" general="_9_5_f720368_1110473546784_304890_10469"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_261671_23513" name="UndoPosRef" visibility="package" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_768516_12064" body="Used to hold a reference to a Mark that is being reset as the&#xA;result of removing from the content.&#xA;" annotatedElement="_9_5_f720368_1110473548346_261671_23513"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_309088_23515" name="InsertUndo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_587159_12065" body="UnoableEdit created for inserts.&#xA;" annotatedElement="_9_5_f720368_1110473548346_309088_23515"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_202850_18019" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_333247_23517" name="RemoveUndo" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_803678_12066" body="UndoableEdit created for removes.&#xA;" annotatedElement="_9_5_f720368_1110473548346_333247_23517"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_229073_18020" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_687204_10515" name="SimpleAttributeSet" clientDependency="_10_5_622020d_1132928323882_674915_18081 _10_5_622020d_1132928323882_334114_18082 _10_5_622020d_1132928323882_204568_18080">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_117104_12141" body="A straightforward implementation of MutableAttributeSet using a&#xA;hash table.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.41 05/05/04&#xA;@author Tim Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546784_687204_10515"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_204568_18080" name="" supplier="_9_5_f720368_1110473546784_815693_10495" client="_9_5_f720368_1110473546784_687204_10515" contract="_9_5_f720368_1110473546784_815693_10495"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_674915_18081" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_687204_10515" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_334114_18082" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_687204_10515" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_519304_23609" name="EmptyAttributeSet" visibility="package" clientDependency="_10_5_622020d_1132928323882_860043_18083 _10_5_622020d_1132928323882_695535_18084">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_74123_12139" body="An AttributeSet this is always empty.&#xA;" annotatedElement="_9_5_f720368_1110473548362_519304_23609"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_860043_18083" name="" supplier="_9_5_f720368_1110473546784_759614_10423" client="_9_5_f720368_1110473548362_519304_23609" contract="_9_5_f720368_1110473546784_759614_10423"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_695535_18084" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548362_519304_23609" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_624787_10499" name="NumberFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928317673_547769_12121" body="&lt;code>NumberFormatter&lt;/code> subclasses &lt;code>InternationalFormatter&lt;/code>&#xA;adding special behavior for numbers. Among the specializations are&#xA;(these are only used if the &lt;code>NumberFormatter&lt;/code> does not display&#xA;invalid nubers, eg &lt;code>setAllowsInvalid(false)&lt;/code>):&#xA;&lt;ul>&#xA;&lt;li>Pressing +/- (- is determined from the&#xA;&lt;code>DecimalFormatSymbols&lt;/code> associated with the&#xA;&lt;code>DecimalFormat&lt;/code>) in any field but the exponent&#xA;field will attempt to change the sign of the number to&#xA;positive/negative.&#xA;&lt;li>Pressing +/- (- is determined from the&#xA;&lt;code>DecimalFormatSymbols&lt;/code> associated with the&#xA;&lt;code>DecimalFormat&lt;/code>) in the exponent field will&#xA;attemp to change the sign of the exponent to positive/negative.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;If you are displaying scientific numbers, you may wish to turn on&#xA;overwrite mode, &lt;code>setOverwriteMode(true)&lt;/code>. For example:&#xA;&lt;pre>&#xA;DecimalFormat decimalFormat = new DecimalFormat(&quot;0.000E0&quot;);&#xA;NumberFormatter textFormatter = new NumberFormatter(decimalFormat);&#xA;textFormatter.setOverwriteMode(true);&#xA;textFormatter.setAllowsInvalid(false);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;If you are going to allow the user to enter decimal&#xA;values, you should either force the DecimalFormat to contain at least&#xA;one decimal (&lt;code>#.0###&lt;/code>), or allow the value to be invalid&#xA;&lt;code>setAllowsInvalid(true)&lt;/code>. Otherwise users may not be able to&#xA;input decimal values.&#xA;&lt;p>&#xA;&lt;code>NumberFormatter&lt;/code> provides slightly different behavior to&#xA;&lt;code>stringToValue&lt;/code> than that of its superclass. If you have&#xA;specified a Class for values, {@link #setValueClass}, that is one of&#xA;of &lt;code>Integer&lt;/code>, &lt;code>Long&lt;/code>, &lt;code>Float&lt;/code>,&#xA;&lt;code>Double&lt;/code>, &lt;code>Byte&lt;/code> or &lt;code>Short&lt;/code> and&#xA;the Format's &lt;code>parseObject&lt;/code> returns an instance of&#xA;&lt;code>Number&lt;/code>, the corresponding instance of the value class&#xA;will be created using the constructor appropriate for the primitive&#xA;type the value class represents. For example:&#xA;&lt;code>setValueClass(Integer.class)&lt;/code> will cause the resulting&#xA;value to be created via&#xA;&lt;code>new Integer(((Number)formatter.parseObject(string)).intValue())&lt;/code>.&#xA;This is typically useful if you&#xA;wish to set a min/max value as the various &lt;code>Number&lt;/code>&#xA;implementations are generally not comparable to each other. This is also&#xA;useful if for some reason you need a specific &lt;code>Number&lt;/code>&#xA;implementation for your values.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.4 03/05/01&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_624787_10499"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_171626_18069" isSubstitutable="true" general="_9_5_f720368_1110473546784_55684_10481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_435224_10439" name="DefaultCaret" clientDependency="_10_5_622020d_1132928323852_990819_17940 _10_5_622020d_1132928323852_80736_17941 _10_5_622020d_1132928323852_818428_17938 _10_5_622020d_1132928323852_10427_17939">
              <ownedComment xmi:id="_10_5_622020d_1132928317563_614332_12004" body="A default implementation of Caret.  The caret is rendered as&#xA;a vertical line in the color specified by the CaretColor property&#xA;of the associated JTextComponent.  It can blink at the rate specified&#xA;by the BlinkRate property.&#xA;&lt;p>&#xA;This implementation expects two sources of asynchronous notification.&#xA;The timer thread fires asynchronously, and causes the caret to simply&#xA;repaint the most recent bounding box.  The caret also tracks change&#xA;as the document is modified.  Typically this will happen on the&#xA;event dispatch thread as a result of some mouse or keyboard event.&#xA;The caret behavior on both synchronous and asynchronous documents updates&#xA;is controlled by &lt;code>UpdatePolicy&lt;/code> property. The repaint of the&#xA;new caret location will occur on the event thread in any case, as calls to&#xA;&lt;code>modelToView&lt;/code> are only safe on the event thread.&#xA;&lt;p>&#xA;The caret acts as a mouse and focus listener on the text component&#xA;it has been installed in, and defines the caret semantics based upon&#xA;those events.  The listener methods can be reimplemented to change the&#xA;semantics.&#xA;By default, the first mouse button will be used to set focus and caret&#xA;position.  Dragging the mouse pointer with the first mouse button will&#xA;sweep out a selection that is contiguous in the model.  If the associated&#xA;text component is editable, the caret will become visible when focus&#xA;is gained, and invisible when focus is lost.&#xA;&lt;p>&#xA;The Highlighter bound to the associated text component is used to&#xA;render the selection by default.&#xA;Selection appearance can be customized by supplying a&#xA;painter to use for the highlights.  By default a painter is used that&#xA;will render a solid color as specified in the associated text component&#xA;in the &lt;code>SelectionColor&lt;/code> property.  This can easily be changed&#xA;by reimplementing the&#xA;&lt;a href=&quot;#getSelectionHighlighter&quot;>getSelectionHighlighter&lt;/a>&#xA;method.&#xA;&lt;p>&#xA;A customized caret appearance can be achieved by reimplementing&#xA;the paint method.  If the paint method is changed, the damage method&#xA;should also be reimplemented to cause a repaint for the area needed&#xA;to render the caret.  The caret extends the Rectangle class which&#xA;is used to hold the bounding box for where the caret was last rendered.&#xA;This enables the caret to repaint in a thread-safe manner when the&#xA;caret moves without making a call to modelToView which is unstable&#xA;between model updates and view repair (i.e. the order of delivery&#xA;to DocumentListeners is not guaranteed).&#xA;&lt;p>&#xA;The magic caret position is set to null when the caret position changes.&#xA;A timer is used to determine the new location (after the caret change).&#xA;When the timer fires, if the magic caret position is still null it is&#xA;reset to the current caret position. Any actions that change&#xA;the caret position and want the magic caret position to remain the&#xA;same, must remember the magic caret position, change the cursor, and&#xA;then set the magic caret position to its original value. This has the&#xA;benefit that only actions that want the magic caret position to persist&#xA;(such as open/down) need to know about it.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.138 06/24/04&#xA;@see     Caret&#xA;" annotatedElement="_9_5_f720368_1110473546784_435224_10439"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_905853_17942" isSubstitutable="true" general="_9_5_f720368_1110473546581_380235_7107"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323852_818428_17938" name="" supplier="_9_5_f720368_1110473546784_137193_10429" client="_9_5_f720368_1110473546784_435224_10439" contract="_9_5_f720368_1110473546784_137193_10429"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323852_10427_17939" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473546784_435224_10439" contract="_9_5_f720368_1110473546565_10343_6561"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323852_990819_17940" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546784_435224_10439" contract="_9_5_f720368_1110473546565_486724_6593"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323852_80736_17941" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546784_435224_10439" contract="_9_5_f720368_1110473546565_341038_6597"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_858273_23371" name="SafeScroller" visibility="package" clientDependency="_10_5_622020d_1132928323852_582752_17943">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_582752_17943" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548331_858273_23371" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_910632_23377" name="DefaultFilterBypass" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928323852_633492_17948" isSubstitutable="true" general="_9_5_f720368_1110473548362_446805_23589"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317553_774767_12002" name="Handler" visibility="package" clientDependency="_10_5_622020d_1132928323852_842415_17947 _10_5_622020d_1132928323852_564428_17944 _10_5_622020d_1132928323852_674954_17945 _10_5_622020d_1132928323852_394661_17946">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_564428_17944" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317553_774767_12002" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_674954_17945" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_10_5_622020d_1132928317553_774767_12002" contract="_9_5_f720368_1110473546753_81876_9845"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_394661_17946" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317553_774767_12002" contract="_9_5_f720368_1110473546565_106737_6535"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_842415_17947" name="" supplier="_9_5_f720368_1110473546549_562232_6457" client="_10_5_622020d_1132928317553_774767_12002" contract="_9_5_f720368_1110473546549_562232_6457"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_55684_10481" name="InternationalFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_696046_12086" body="&lt;code>InternationalFormatter&lt;/code> extends &lt;code>DefaultFormatter&lt;/code>,&#xA;using an instance of &lt;code>java.text.Format&lt;/code> to handle the&#xA;conversion to a String, and the conversion from a String.&#xA;&lt;p>&#xA;If &lt;code>getAllowsInvalid()&lt;/code> is false, this will ask the&#xA;&lt;code>Format&lt;/code> to format the current text on every edit.&#xA;&lt;p>&#xA;You can specify a minimum and maximum value by way of the&#xA;&lt;code>setMinimum&lt;/code> and &lt;code>setMaximum&lt;/code> methods. In order&#xA;for this to work the values returned from &lt;code>stringToValue&lt;/code> must be&#xA;comparable to the min/max values by way of the &lt;code>Comparable&lt;/code>&#xA;interface.&#xA;&lt;p>&#xA;Be careful how you configure the &lt;code>Format&lt;/code> and the&#xA;&lt;code>InternationalFormatter&lt;/code>, as it is possible to create a&#xA;situation where certain values can not be input. Consider the date&#xA;format 'M/d/yy', an &lt;code>InternationalFormatter&lt;/code> that is always&#xA;valid (&lt;code>setAllowsInvalid(false)&lt;/code>), is in overwrite mode&#xA;(&lt;code>setOverwriteMode(true)&lt;/code>) and the date 7/1/99. In this&#xA;case the user will not be able to enter a two digit month or day of&#xA;month. To avoid this, the format should be 'MM/dd/yy'.&#xA;&lt;p>&#xA;If &lt;code>InternationalFormatter&lt;/code> is configured to only allow valid&#xA;values (&lt;code>setAllowsInvalid(false)&lt;/code>), every valid edit will result&#xA;in the text of the &lt;code>JFormattedTextField&lt;/code> being completely reset&#xA;from the &lt;code>Format&lt;/code>.&#xA;The cursor position will also be adjusted as literal characters are&#xA;added/removed from the resulting String.&#xA;&lt;p>&#xA;&lt;code>InternationalFormatter&lt;/code>'s behavior of&#xA;&lt;code>stringToValue&lt;/code> is  slightly different than that of&#xA;&lt;code>DefaultTextFormatter&lt;/code>, it does the following:&#xA;&lt;ol>&#xA;&lt;li>&lt;code>parseObject&lt;/code> is invoked on the &lt;code>Format&lt;/code>&#xA;specified by &lt;code>setFormat&lt;/code>&#xA;&lt;li>If a Class has been set for the values (&lt;code>setValueClass&lt;/code>),&#xA;supers implementation is invoked to convert the value returned&#xA;from &lt;code>parseObject&lt;/code> to the appropriate class.&#xA;&lt;li>If a &lt;code>ParseException&lt;/code> has not been thrown, and the value&#xA;is outside the min/max a &lt;code>ParseException&lt;/code> is thrown.&#xA;&lt;li>The value is returned.&#xA;&lt;/ol>&#xA;&lt;code>InternationalFormatter&lt;/code> implements &lt;code>stringToValue&lt;/code>&#xA;in this manner so that you can specify an alternate Class than&#xA;&lt;code>Format&lt;/code> may return.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see java.text.Format&#xA;@see java.lang.Comparable&#xA;&#xA;@version 1.7 04/09/01&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_55684_10481"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_69881_18028" isSubstitutable="true" general="_9_5_f720368_1110473546784_343355_10443"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_392148_23532" name="ExtendedReplaceHolder" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_636159_12083" body="As InternationalFormatter replaces the complete text on every edit,&#xA;ExtendedReplaceHolder keeps track of the offset and length passed&#xA;into canReplace.&#xA;" annotatedElement="_9_5_f720368_1110473548362_392148_23532"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_668877_18029" isSubstitutable="true" general="_9_5_f720368_1110473548346_960021_23454"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_5516_23535" name="IncrementAction" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_483168_12084" body="IncrementAction is used to increment the value by a certain amount.&#xA;It calls into &lt;code>adjustValue&lt;/code> to handle the actual&#xA;incrementing of the value.&#xA;" annotatedElement="_9_5_f720368_1110473548362_5516_23535"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_781812_18030" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548331_498642_23260" name="rtf">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_862092_10413" name="RTFParser" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_64952_11948" body="&lt;b>RTFParser&lt;/b> is a subclass of &lt;b>AbstractFilter&lt;/b> which understands basic RTF syntax&#xA;and passes a stream of control words, text, and begin/end group&#xA;indications to its subclass.&#xA;&#xA;Normally programmers will only use &lt;b>RTFFilter&lt;/b>, a subclass of this class that knows what to&#xA;do with the tokens this class parses.&#xA;&#xA;@see AbstractFilter&#xA;@see RTFFilter&#xA;" annotatedElement="_9_5_f720368_1110473546784_862092_10413"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_445952_17896" isSubstitutable="true" general="_9_5_f720368_1110473546784_406585_10399"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_174952_10409" name="RTFEditorKit">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_500361_11944" body="This is the default implementation of RTF editing&#xA;functionality.  The RTF support was not written by the&#xA;Swing team.  In the future we hope to improve the support&#xA;provided.&#xA;&#xA;@author  Timothy Prinzing (of this class, not the package!)&#xA;@version 1.13 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_174952_10409"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_271515_17894" isSubstitutable="true" general="_9_5_f720368_1110473546784_562213_10529"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_645503_10401" name="Constants" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_723748_11938" body="Class to hold dictionary keys used by the RTF reader/writer.&#xA;These should be moved into StyleConstants.&#xA;" annotatedElement="_9_5_f720368_1110473546784_645503_10401"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_106507_10405" name="RTFAttribute" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_858731_11941" body="This interface describes a class which defines a 1-1 mapping between&#xA;an RTF keyword and a SwingText attribute.&#xA;" annotatedElement="_9_5_f720368_1110473546784_106507_10405"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_443951_10415" name="RTFReader" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_976430_11960" body="Takes a sequence of RTF tokens and text and appends the text&#xA;described by the RTF to a &lt;code>StyledDocument&lt;/code> (the &lt;em>target&lt;/em>).&#xA;The RTF is lexed&#xA;from the character stream by the &lt;code>RTFParser&lt;/code> which is this class's&#xA;superclass.&#xA;&#xA;This class is an indirect subclass of OutputStream. It must be closed&#xA;in order to guarantee that all of the text has been sent to&#xA;the text acceptor.&#xA;&#xA;@see RTFParser&#xA;@see java.io.OutputStream&#xA;" annotatedElement="_9_5_f720368_1110473546784_443951_10415"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_239997_17897" isSubstitutable="true" general="_9_5_f720368_1110473546784_862092_10413"/>
                <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_532482_23278" name="Destination" visibility="package" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_220203_11949" body="An interface (could be an entirely abstract class) describing&#xA;a destination. The RTF reader always has a current destination&#xA;which is where text is sent.&#xA;&#xA;@see RTFReader&#xA;" annotatedElement="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_72109_23280" name="DiscardingDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_803107_17898">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_590705_11950" body="This data-sink class is used to implement ignored destinations&#xA;(e.g. {\*\blegga blah blah blah} )&#xA;It accepts all keywords and text but does nothing with them." annotatedElement="_9_5_f720368_1110473548331_72109_23280"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_803107_17898" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_72109_23280" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_640936_23282" name="FonttblDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_647093_17899">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_179850_11951" body="Reads the fonttbl group, inserting fonts into the RTFReader's&#xA;fontTable dictionary." annotatedElement="_9_5_f720368_1110473548331_640936_23282"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_647093_17899" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_640936_23282" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_704903_23284" name="ColortblDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_781818_17900">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_993177_11952" body="Reads the colortbl group. Upon end-of-group, the RTFReader's&#xA;color table is set to an array containing the read colors." annotatedElement="_9_5_f720368_1110473548331_704903_23284"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_781818_17900" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_704903_23284" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_251050_23286" name="StylesheetDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_883095_17901">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_194686_11954" body="Handles the stylesheet keyword. Styles are read and sorted&#xA;into the three style arrays in the RTFReader." annotatedElement="_9_5_f720368_1110473548331_251050_23286"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_833704_17902" isSubstitutable="true" general="_9_5_f720368_1110473548331_72109_23280"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_883095_17901" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_251050_23286" contract="_9_5_f720368_1110473548331_532482_23278"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_823672_23288" name="StyleDefiningDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_824502_17903">
                    <ownedComment xmi:id="_10_5_622020d_1132928317543_21770_11953" body="This subclass handles an individual style" annotatedElement="_9_5_f720368_1110473548331_823672_23288"/>
                    <generalization xmi:id="_10_5_622020d_1132928323842_676380_17904" isSubstitutable="true" general="_9_5_f720368_1110473548331_992209_23292"/>
                    <interfaceRealization xmi:id="_10_5_622020d_1132928323842_824502_17903" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_823672_23288" contract="_9_5_f720368_1110473548331_532482_23278"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_37935_23290" name="InfoDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_574332_17905">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_631676_11955" body="Handles the info group. Currently no info keywords are recognized&#xA;so this is a subclass of DiscardingDestination." annotatedElement="_9_5_f720368_1110473548331_37935_23290"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_751144_17906" isSubstitutable="true" general="_9_5_f720368_1110473548331_72109_23280"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_574332_17905" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_37935_23290" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_992209_23292" name="AttributeTrackingDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_768254_17907" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_251621_11956" body="RTFReader.TextHandlingDestination is an abstract RTF destination&#xA;which simply tracks the attributes specified by the RTF control words&#xA;in internal form and can produce acceptable AttributeSets for the&#xA;current character, paragraph, and section attributes. It is up&#xA;to the subclasses to determine what is done with the actual text." annotatedElement="_9_5_f720368_1110473548331_992209_23292"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_768254_17907" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_992209_23292" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_229451_23294" name="TextHandlingDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_393490_17908" isAbstract="true">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_315418_11957" body="RTFReader.TextHandlingDestination provides basic text handling&#xA;functionality. Subclasses must implement: &lt;dl>&#xA;&lt;dt>deliverText()&lt;dd>to handle a run of text with the same&#xA;attributes&#xA;&lt;dt>finishParagraph()&lt;dd>to end the current paragraph and&#xA;set the paragraph's attributes&#xA;&lt;dt>endSection()&lt;dd>to end the current section&#xA;&lt;/dl>&#xA;" annotatedElement="_9_5_f720368_1110473548331_229451_23294"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_428398_17909" isSubstitutable="true" general="_9_5_f720368_1110473548331_992209_23292"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_393490_17908" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_229451_23294" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_1532_23296" name="DocumentDestination" visibility="package" clientDependency="_10_5_622020d_1132928323842_143386_17910">
                  <ownedComment xmi:id="_10_5_622020d_1132928317543_363259_11958" body="RTFReader.DocumentDestination is a concrete subclass of&#xA;TextHandlingDestination which appends the text to the&#xA;StyledDocument given by the &lt;code>target&lt;/code> ivar of the&#xA;containing RTFReader.&#xA;" annotatedElement="_9_5_f720368_1110473548331_1532_23296"/>
                  <generalization xmi:id="_10_5_622020d_1132928323842_617268_17911" isSubstitutable="true" general="_9_5_f720368_1110473548331_229451_23294"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_143386_17910" name="" supplier="_9_5_f720368_1110473548331_532482_23278" client="_9_5_f720368_1110473548331_1532_23296" contract="_9_5_f720368_1110473548331_532482_23278"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_388487_10411" name="RTFGenerator" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_707762_11946" body="Generates an RTF output stream (java.io.OutputStream) from rich text&#xA;(handed off through a series of LTTextAcceptor calls).  Can be used to&#xA;generate RTF from any object which knows how to write to a text acceptor&#xA;(e.g., LTAttributedText and LTRTFFilter).&#xA;&#xA;&lt;p>Note that this is a lossy conversion since RTF's model of&#xA;text does not exactly correspond with LightText's.&#xA;&#xA;@see LTAttributedText&#xA;@see LTRTFFilter&#xA;@see LTTextAcceptor&#xA;@see java.io.OutputStream&#xA;" annotatedElement="_9_5_f720368_1110473546784_388487_10411"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_943066_17895" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_543750_23274" name="CharacterKeywordPair" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_826974_10403" name="MockAttributeSet" visibility="package" clientDependency="_10_5_622020d_1132928323842_921755_17886 _10_5_622020d_1132928323842_339634_17887">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_921755_17886" name="" supplier="_9_5_f720368_1110473546784_759614_10423" client="_9_5_f720368_1110473546784_826974_10403" contract="_9_5_f720368_1110473546784_759614_10423"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_339634_17887" name="" supplier="_9_5_f720368_1110473546784_815693_10495" client="_9_5_f720368_1110473546784_826974_10403" contract="_9_5_f720368_1110473546784_815693_10495"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_406585_10399" name="AbstractFilter" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317533_232676_11936" body="A generic superclass for streams which read and parse text&#xA;consisting of runs of characters interspersed with occasional&#xA;``specials'' (formatting characters).&#xA;&#xA;&lt;p> Most of the functionality&#xA;of this class would be redundant except that the&#xA;&lt;code>ByteToChar&lt;/code> converters&#xA;are suddenly private API. Presumably this class will disappear&#xA;when the API is made public again. (sigh) That will also let us handle&#xA;multibyte character sets...&#xA;&#xA;&lt;P> A subclass should override at least &lt;code>write(char)&lt;/code>&#xA;and &lt;code>writeSpecial(int)&lt;/code>. For efficiency's sake it's a&#xA;good idea to override &lt;code>write(String)&lt;/code> as well. The subclass'&#xA;initializer may also install appropriate translation and specials tables.&#xA;&#xA;@see OutputStream&#xA;" annotatedElement="_9_5_f720368_1110473546784_406585_10399"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_824475_17885" isSubstitutable="true" general="_9_5_f720368_1110473546612_985863_7455"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_854900_10407" name="RTFAttributes" visibility="package">
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_755801_23264" name="GenericAttribute" visibility="package" isAbstract="true"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_354979_23266" name="BooleanAttribute" visibility="package" clientDependency="_10_5_622020d_1132928323842_654177_17888">
                  <generalization xmi:id="_10_5_622020d_1132928323842_353778_17889" isSubstitutable="true" general="_9_5_f720368_1110473548331_755801_23264"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_654177_17888" name="" supplier="_9_5_f720368_1110473546784_106507_10405" client="_9_5_f720368_1110473548331_354979_23266" contract="_9_5_f720368_1110473546784_106507_10405"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_125981_23268" name="AssertiveAttribute" visibility="package" clientDependency="_10_5_622020d_1132928323842_341835_17890">
                  <generalization xmi:id="_10_5_622020d_1132928323842_586092_17891" isSubstitutable="true" general="_9_5_f720368_1110473548331_755801_23264"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_341835_17890" name="" supplier="_9_5_f720368_1110473546784_106507_10405" client="_9_5_f720368_1110473548331_125981_23268" contract="_9_5_f720368_1110473546784_106507_10405"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_389124_23270" name="NumericAttribute" visibility="package" clientDependency="_10_5_622020d_1132928323842_551530_17892">
                  <generalization xmi:id="_10_5_622020d_1132928323842_407847_17893" isSubstitutable="true" general="_9_5_f720368_1110473548331_755801_23264"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323842_551530_17892" name="" supplier="_9_5_f720368_1110473546784_106507_10405" client="_9_5_f720368_1110473548331_389124_23270" contract="_9_5_f720368_1110473546784_106507_10405"/>
                </nestedClassifier>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_600666_10475" name="GlyphView" clientDependency="_10_5_622020d_1132928323862_755267_18025 _10_5_622020d_1132928323862_224951_18024">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_166121_12077" body="A GlyphView is a styled chunk of text that represents a view&#xA;mapped over an element in the text model. This view is generally&#xA;responsible for displaying text glyphs using character level&#xA;attributes in some way.&#xA;An implementation of the GlyphPainter class is used to do the&#xA;actual rendering and model/view translations.  This separates&#xA;rendering from layout and management of the association with&#xA;the model.&#xA;&lt;p>&#xA;The view supports breaking for the purpose of formatting.&#xA;The fragments produced by breaking share the view that has&#xA;primary responsibility for the element (i.e. they are nested&#xA;classes and carry only a small amount of state of their own)&#xA;so they can share its resources.&#xA;&lt;p>&#xA;Since this view&#xA;represents text that may have tabs embedded in it, it implements the&#xA;&lt;code>TabableView&lt;/code> interface.  Tabs will only be&#xA;expanded if this view is embedded in a container that does&#xA;tab expansion.  ParagraphView is an example of a container&#xA;that does tab expansion.&#xA;&lt;p>&#xA;&#xA;@since 1.3&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.36 05/26/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_600666_10475"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_844509_18026" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_224951_18024" name="" supplier="_9_5_f720368_1110473546784_207616_10531" client="_9_5_f720368_1110473546784_600666_10475" contract="_9_5_f720368_1110473546784_207616_10531"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_755267_18025" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_600666_10475" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_751839_23523" name="GlyphPainter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317613_674150_12075" body="A class to perform rendering of the glyphs.&#xA;This can be implemented to be stateless, or&#xA;to hold some information as a cache to&#xA;facilitate faster rendering and model/view&#xA;translation.  At a minimum, the GlyphPainter&#xA;allows a View implementation to perform its&#xA;duties independant of a particular version&#xA;of JVM and selection of capabilities (i.e.&#xA;shaping for i18n, etc).&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548346_751839_23523"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_815693_10495" name="MutableAttributeSet" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317673_107454_12116" body="A generic interface for a mutable collection of unique attributes.&#xA;&#xA;Implementations will probably want to provide a constructor of the&#xA;form:&lt;tt>&#xA;public XXXAttributeSet(ConstAttributeSet source);&lt;/tt>&#xA;&#xA;@version 1.17 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_815693_10495"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_144244_18068" isSubstitutable="true" general="_9_5_f720368_1110473546784_759614_10423"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_538863_10455" name="DocumentFilter">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_295357_12049" body="&lt;code>DocumentFilter&lt;/code>, as the name implies, is a filter for the&#xA;&lt;code>Document&lt;/code> mutation methods. When a &lt;code>Document&lt;/code>&#xA;containing a &lt;code>DocumentFilter&lt;/code> is modified (either through&#xA;&lt;code>insert&lt;/code> or &lt;code>remove&lt;/code>), it forwards the appropriate&#xA;method invocation to the &lt;code>DocumentFilter&lt;/code>. The&#xA;default implementation allows the modification to&#xA;occur. Subclasses can filter the modifications by conditionally invoking&#xA;methods on the superclass, or invoking the necessary methods on&#xA;the passed in &lt;code>FilterBypass&lt;/code>. Subclasses should NOT call back&#xA;into the Document for the modification&#xA;instead call into the superclass or the &lt;code>FilterBypass&lt;/code>.&#xA;&lt;p>&#xA;When &lt;code>remove&lt;/code> or &lt;code>insertString&lt;/code> is invoked&#xA;on the &lt;code>DocumentFilter&lt;/code>, the &lt;code>DocumentFilter&lt;/code>&#xA;may callback into the&#xA;&lt;code>FilterBypass&lt;/code> multiple times, or for different regions, but&#xA;it should not callback into the &lt;code>FilterBypass&lt;/code> after returning&#xA;from the &lt;code>remove&lt;/code> or &lt;code>insertString&lt;/code> method.&#xA;&#xA;@see javax.swing.text.Document&#xA;&#xA;@version 1.6 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_538863_10455"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_310196_23491" name="FilterBypass" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_997833_12047" body="Used as a way to circumvent calling back into the Document to&#xA;change it. Document implementations that wish to support&#xA;a DocumentFilter must provide an implementation that will&#xA;not callback into the DocumentFilter when the following methods&#xA;are invoked from the DocumentFilter.&#xA;" annotatedElement="_9_5_f720368_1110473548346_310196_23491"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_852008_10493" name="MaskFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928317673_162417_12114" body="&lt;code>MaskFormatter&lt;/code> is used to format and edit strings. The behavior&#xA;of a &lt;code>MaskFormatter&lt;/code> is controlled by way of a String mask&#xA;that specifies the valid characters that can be contained at a particular&#xA;location in the &lt;code>Document&lt;/code> model. The following characters can&#xA;be specified:&#xA;&#xA;&lt;table border=1 summary=&quot;Valid characters and their descriptions&quot;>&#xA;&lt;tr>&#xA;&lt;th>Character&amp;nbsp;&lt;/th>&#xA;&lt;th>&lt;p align=&quot;left&quot;>Description&lt;/p>&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>#&lt;/td>&#xA;&lt;td>Any valid number, uses &lt;code>Character.isDigit&lt;/code>.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>'&lt;/td>&#xA;&lt;td>Escape character, used to escape any of the&#xA;special formatting characters.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>U&lt;/td>&lt;td>Any character (&lt;code>Character.isLetter&lt;/code>). All&#xA;lowercase letters are mapped to upper case.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&lt;td>L&lt;/td>&lt;td>Any character (&lt;code>Character.isLetter&lt;/code>). All&#xA;upper case letters are mapped to lower case.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&lt;td>A&lt;/td>&lt;td>Any character or number (&lt;code>Character.isLetter&lt;/code>&#xA;or &lt;code>Character.isDigit&lt;/code>)&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&lt;td>?&lt;/td>&lt;td>Any character&#xA;(&lt;code>Character.isLetter&lt;/code>).&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&lt;td>*&lt;/td>&lt;td>Anything.&lt;/td>&lt;/tr>&#xA;&lt;tr>&lt;td>H&lt;/td>&lt;td>Any hex character (0-9, a-f or A-F).&lt;/td>&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>&#xA;Typically characters correspond to one char, but in certain languages this&#xA;is not the case. The mask is on a per character basis, and will thus&#xA;adjust to fit as many chars as are needed.&#xA;&lt;p>&#xA;You can further restrict the characters that can be input by the&#xA;&lt;code>setInvalidCharacters&lt;/code> and &lt;code>setValidCharacters&lt;/code>&#xA;methods. &lt;code>setInvalidCharacters&lt;/code> allows you to specify&#xA;which characters are not legal. &lt;code>setValidCharacters&lt;/code> allows&#xA;you to specify which characters are valid. For example, the following&#xA;code block is equivalent to a mask of '0xHHH' with no invalid/valid&#xA;characters:&#xA;&lt;pre>&#xA;MaskFormatter formatter = new MaskFormatter(&quot;0x***&quot;);&#xA;formatter.setValidCharacters(&quot;0123456789abcdefABCDEF&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;When initially formatting a value if the length of the string is&#xA;less than the length of the mask, two things can happen. Either&#xA;the placeholder string will be used, or the placeholder character will&#xA;be used. Precedence is given to the placeholder string. For example:&#xA;&lt;pre>&#xA;MaskFormatter formatter = new MaskFormatter(&quot;###-####&quot;);&#xA;formatter.setPlaceholderCharacter('_');&#xA;formatter.getDisplayValue(tf, &quot;123&quot;);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Would result in the string '123-____'. If&#xA;&lt;code>setPlaceholder(&quot;555-1212&quot;)&lt;/code> was invoked '123-1212' would&#xA;result. The placeholder String is only used on the initial format,&#xA;on subsequent formats only the placeholder character will be used.&#xA;&lt;p>&#xA;If a &lt;code>MaskFormatter&lt;/code> is configured to only allow valid characters&#xA;(&lt;code>setAllowsInvalid(false)&lt;/code>) literal characters will be skipped as&#xA;necessary when editing. Consider a &lt;code>MaskFormatter&lt;/code> with&#xA;the mask &quot;###-####&quot; and current value &quot;555-1212&quot;. Using the right&#xA;arrow key to navigate through the field will result in (| indicates the&#xA;position of the caret):&#xA;&lt;pre>&#xA;|555-1212&#xA;5|55-1212&#xA;55|5-1212&#xA;555-|1212&#xA;555-1|212&#xA;&lt;/pre>&#xA;The '-' is a literal (non-editable) character, and is skipped.&#xA;&lt;p>&#xA;Similar behavior will result when editing. Consider inserting the string&#xA;'123-45' and '12345' into the &lt;code>MaskFormatter&lt;/code> in the&#xA;previous example. Both inserts will result in the same String,&#xA;'123-45__'. When &lt;code>MaskFormatter&lt;/code>&#xA;is processing the insert at character position 3 (the '-'), two things can&#xA;happen:&#xA;&lt;ol>&#xA;&lt;li>If the inserted character is '-', it is accepted.&#xA;&lt;li>If the inserted character matches the mask for the next non-literal&#xA;character, it is accepted at the new location.&#xA;&lt;li>Anything else results in an invalid edit&#xA;&lt;/ol>&#xA;&lt;p>&#xA;By default &lt;code>MaskFormatter&lt;/code> will not allow invalid edits, you can&#xA;change this with the &lt;code>setAllowsInvalid&lt;/code> method, and will&#xA;commit edits on valid edits (use the &lt;code>setCommitsOnValidEdit&lt;/code> to&#xA;change this).&#xA;&lt;p>&#xA;By default, &lt;code>MaskFormatter&lt;/code> is in overwrite mode. That is as&#xA;characters are typed a new character is not inserted, rather the character&#xA;at the current location is replaced with the newly typed character. You&#xA;can change this behavior by way of the method &lt;code>setOverwriteMode&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.12 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_852008_10493"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_309313_18060" isSubstitutable="true" general="_9_5_f720368_1110473546784_343355_10443"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_819300_23572" name="MaskCharacter" visibility="private"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_588204_23573" name="LiteralCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_3138_12106" body="Used to represent a fixed character in the mask.&#xA;" annotatedElement="_9_5_f720368_1110473548362_588204_23573"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_738541_18061" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_156141_23575" name="DigitMaskCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_100642_12107" body="Represents a number, uses &lt;code>Character.isDigit&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548362_156141_23575"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_875581_18062" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_846363_23577" name="UpperCaseCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_787579_12108" body="Represents a character, lower case letters are mapped to upper case&#xA;using &lt;code>Character.toUpperCase&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548362_846363_23577"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_983871_18063" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_551227_23579" name="LowerCaseCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_32076_12109" body="Represents a character, upper case letters are mapped to lower case&#xA;using &lt;code>Character.toLowerCase&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548362_551227_23579"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_716521_18064" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_379774_23581" name="AlphaNumericCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_589840_12110" body="Represents either a character or digit, uses&#xA;&lt;code>Character.isLetterOrDigit&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548362_379774_23581"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_111657_18065" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_648286_23583" name="CharCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_993647_12111" body="Represents a letter, uses &lt;code>Character.isLetter&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548362_648286_23583"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_131825_18066" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_241540_23585" name="HexCharacter" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_334943_12112" body="Represents a hex character, 0-9a-fA-F. a-f is mapped to A-F&#xA;" annotatedElement="_9_5_f720368_1110473548362_241540_23585"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_841122_18067" isSubstitutable="true" general="_9_5_f720368_1110473548362_819300_23572"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_499236_10465" name="FlowView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_927757_12062" body="A View that tries to flow it's children into some&#xA;partially constrained space.  This can be used to&#xA;build things like paragraphs, pages, etc.  The&#xA;flow is made up of the following pieces of functionality.&#xA;&lt;ul>&#xA;&lt;li>A logical set of child views, which as used as a&#xA;layout pool from which a physical view is formed.&#xA;&lt;li>A strategy for translating the logical view to&#xA;a physical (flowed) view.&#xA;&lt;li>Constraints for the strategy to work against.&#xA;&lt;li>A physical structure, that represents the flow.&#xA;The children of this view are where the pieces of&#xA;of the logical views are placed to create the flow.&#xA;&lt;/ul>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.43 06/24/04&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_499236_10465"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_479713_18011" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_60632_23501" name="FlowStrategy">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_453931_12059" body="Strategy for maintaining the physical form&#xA;of the flow.  The default implementation is&#xA;completely stateless, and recalculates the&#xA;entire flow if the layout is invalid on the&#xA;given FlowView.  Alternative strategies can&#xA;be implemented by subclassing, and might&#xA;perform incrementatal repair to the layout&#xA;or alternative breaking behavior.&#xA;" annotatedElement="_9_5_f720368_1110473548346_60632_23501"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_194709_23504" name="LogicalView" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_617695_12060" body="This class can be used to represent a logical view for&#xA;a flow.  It keeps the children updated to reflect the state&#xA;of the model, gives the logical child views access to the&#xA;view hierarchy, and calculates a preferred span.  It doesn't&#xA;do any rendering, layout, or model/view translation.&#xA;" annotatedElement="_9_5_f720368_1110473548346_194709_23504"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_275383_18012" isSubstitutable="true" general="_9_5_f720368_1110473546784_235862_10435"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_304890_10469" name="GapVector" visibility="package" clientDependency="_10_5_622020d_1132928323862_556252_18021" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_189218_12070" body="An implementation of a gapped buffer similar to that used by&#xA;emacs.  The underlying storage is a java array of some type,&#xA;which is known only by the subclass of this class.  The array&#xA;has a gap somewhere.  The gap is moved to the location of changes&#xA;to take advantage of common behavior where most changes occur&#xA;in the same location.  Changes that occur at a gap boundary are&#xA;generally cheap and moving the gap is generally cheaper than&#xA;moving the array contents directly to accomodate the change.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.12 12/19/03&#xA;@see GapContent&#xA;" annotatedElement="_9_5_f720368_1110473546784_304890_10469"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_556252_18021" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_304890_10469" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_659253_10549" name="ViewFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317743_417439_12206" body="A factory to create a view of some portion of document subject.&#xA;This is intended to enable customization of how views get&#xA;mapped over a document model.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.18 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_659253_10549"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_86943_10509" name="Position" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317683_707460_12133" body="Represents a location within a document.  It is intended to abstract away&#xA;implementation details of the document and enable specification of&#xA;positions within the document that are capable of tracking of change as&#xA;the document is edited (i.e. offsets are fragile).&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.18 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_86943_10509"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_802332_23600" name="Bias" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317683_750237_12131" body="A typesafe enumeration to indicate bias to a position&#xA;in the model.  A position indicates a location between&#xA;two characters.  The bias can be used to indicate an&#xA;interest toward one of the two sides of the position&#xA;in boundary conditions where a simple offset is&#xA;ambiguous.&#xA;" annotatedElement="_9_5_f720368_1110473548362_802332_23600"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_555985_10521" name="Style" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_815389_12152" body="A collection of attributes to associate with an element in a document.&#xA;Since these are typically used to associate character and paragraph&#xA;styles with the element, operations for this are provided.  Other&#xA;customized attributes that get associated with the element will&#xA;effectively be name-value pairs that live in a hierarchy and if a name&#xA;(key) is not found locally, the request is forwarded to the parent.&#xA;Commonly used attributes are separated out to facilitate alternative&#xA;implementations that are more efficient.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.21 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_555985_10521"/>
              <generalization xmi:id="_10_5_622020d_1132928323882_979718_18091" isSubstitutable="true" general="_9_5_f720368_1110473546784_815693_10495"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_484249_10461" name="ElementIterator" clientDependency="_10_5_622020d_1132928323862_943699_18008">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_529997_12056" body="&lt;p>&#xA;ElementIterator, as the name suggests, iteratates over the Element&#xA;tree.  The constructor can be invoked with either Document or an Element&#xA;as an argument.  If the constructor is invoked with a Document as an&#xA;argument then the root of the iteration is the return value of&#xA;document.getDefaultRootElement().&#xA;&#xA;The iteration happens in a depth-first manner.  In terms of how&#xA;boundary conditions are handled:&#xA;a) if next() is called before first() or current(), the&#xA;root will be returned.&#xA;b) next() returns null to indicate the end of the list.&#xA;c) previous() returns null when the current element is the root&#xA;or next() has returned null.&#xA;&#xA;The ElementIterator does no locking of the Element tree. This means&#xA;that it does not track any changes.  It is the responsibility of the&#xA;user of this class, to ensure that no changes happen during element&#xA;iteration.&#xA;&#xA;Simple usage example:&#xA;&#xA;public void iterate() {&#xA;ElementIterator it = new ElementIterator(root);&#xA;Element elem;&#xA;while (true) {&#xA;if ((elem = next()) != null) {&#xA;process element&#xA;System.out.println(&quot;elem: &quot; + elem.getName());&#xA;} else {&#xA;break;&#xA;}&#xA;}&#xA;}&#xA;&#xA;@author Sunita Mani&#xA;@version 1.14 12/19/03&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546784_484249_10461"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_943699_18008" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_484249_10461" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_59814_23497" name="StackItem" visibility="private" clientDependency="_10_5_622020d_1132928323862_644304_18009">
                <ownedComment xmi:id="_10_5_622020d_1132928317603_273204_12054" body="The StackItem class stores the element&#xA;as well as a child index.  If the&#xA;index is -1, then the element represented&#xA;on the stack is the element itself.&#xA;Otherwise, the index functions as as index&#xA;into the vector of children of the element.&#xA;In this case, the item on the stack&#xA;represents the &quot;index&quot;th child of the element&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548346_59814_23497"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_644304_18009" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473548346_59814_23497" contract="_9_5_f720368_1110473546612_888397_7587"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_241218_10553" name="ZoneView">
              <ownedComment xmi:id="_10_5_622020d_1132928317753_88034_12212" body="ZoneView is a View implementation that creates zones for which&#xA;the child views are not created or stored until they are needed&#xA;for display or model/view translations.  This enables a substantial&#xA;reduction in memory consumption for situations where the model&#xA;being represented is very large, by building view objects only for&#xA;the region being actively viewed/edited.  The size of the children&#xA;can be estimated in some way, or calculated asynchronously with&#xA;only the result being saved.&#xA;&lt;p>&#xA;ZoneView extends BoxView to provide a box that implements&#xA;zones for it's children.  The zones are special View implementations&#xA;(the children of an instance of this class) that represent only a&#xA;portion of the model that an instance of ZoneView is responsible&#xA;for.  The zones don't create child views until an attempt is made&#xA;to display them. A box shaped view is well suited to this because:&#xA;&lt;ul>&#xA;&lt;li>&#xA;Boxes are a heavily used view, and having a box that&#xA;provides this behavior gives substantial opportunity&#xA;to plug the behavior into a view hierarchy from the&#xA;view factory.&#xA;&lt;li>&#xA;Boxes are tiled in one direction, so it is easy to&#xA;divide them into zones in a reliable way.&#xA;&lt;li>&#xA;Boxes typically have a simple relationship to the model (i.e. they&#xA;create child views that directly represent the child elements).&#xA;&lt;li>&#xA;Boxes are easier to estimate the size of than some other shapes.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The default behavior is controled by two properties, maxZoneSize&#xA;and maxZonesLoaded.  Setting maxZoneSize to Integer.MAX_VALUE would&#xA;have the effect of causing only one zone to be created.  This would&#xA;effectively turn the view into an implementation of the decorator&#xA;pattern.  Setting maxZonesLoaded to a value of Integer.MAX_VALUE would&#xA;cause zones to never be unloaded.  For simplicity, zones are created on&#xA;boundaries represented by the child elements of the element the view is&#xA;responsible for.  The zones can be any View implementation, but the&#xA;default implementation is based upon AsyncBoxView which supports fairly&#xA;large zones efficiently.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.17 12/19/03&#xA;@see     View&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546784_241218_10553"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_349297_18137" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_81896_23704" name="Zone" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317743_306108_12210" body="Internally created view that has the purpose of holding&#xA;the views that represent the children of the ZoneView&#xA;that have been arranged in a zone.&#xA;" annotatedElement="_9_5_f720368_1110473548378_81896_23704"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_279946_18138" isSubstitutable="true" general="_9_5_f720368_1110473546784_803679_10421"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_679959_10487" name="LabelView" clientDependency="_10_5_622020d_1132928323872_396090_18055">
              <ownedComment xmi:id="_10_5_622020d_1132928317663_129319_12099" body="A &lt;code>LabelView&lt;/code> is a styled chunk of text&#xA;that represents a view mapped over an element in the&#xA;text model.  It caches the character level attributes&#xA;used for rendering.&#xA;&#xA;@author Timothy Prinzing&#xA;@version 1.68 06/28/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_679959_10487"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_322496_18056" isSubstitutable="true" general="_9_5_f720368_1110473546784_600666_10475"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323872_396090_18055" name="" supplier="_9_5_f720368_1110473546784_207616_10531" client="_9_5_f720368_1110473546784_679959_10487" contract="_9_5_f720368_1110473546784_207616_10531"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_76097_10427" name="BoxView">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_849059_11990" body="A view that arranges its children into a box shape by tiling&#xA;its children along an axis.  The box is somewhat like that&#xA;found in TeX where there is alignment of the&#xA;children, flexibility of the children is considered, etc.&#xA;This is a building block that might be useful to represent&#xA;things like a collection of lines, paragraphs,&#xA;lists, columns, pages, etc.  The axis along which the children are tiled is&#xA;considered the major axis.  The orthoginal axis is the minor axis.&#xA;&lt;p>&#xA;Layout for each axis is handled separately by the methods&#xA;&lt;code>layoutMajorAxis&lt;/code> and &lt;code>layoutMinorAxis&lt;/code>.&#xA;Subclasses can change the layout algorithm by&#xA;reimplementing these methods.    These methods will be called&#xA;as necessary depending upon whether or not there is cached&#xA;layout information and the cache is considered&#xA;valid.  These methods are typically called if the given size&#xA;along the axis changes, or if &lt;code>layoutChanged&lt;/code> is&#xA;called to force an updated layout.  The &lt;code>layoutChanged&lt;/code>&#xA;method invalidates cached layout information, if there is any.&#xA;The requirements published to the parent view are calculated by&#xA;the methods &lt;code>calculateMajorAxisRequirements&lt;/code>&#xA;and  &lt;code>calculateMinorAxisRequirements&lt;/code>.&#xA;If the layout algorithm is changed, these methods will&#xA;likely need to be reimplemented.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.61 03/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_76097_10427"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_751850_17932" isSubstitutable="true" general="_9_5_f720368_1110473546784_235862_10435"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_562213_10529" name="StyledEditorKit">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_929642_12179" body="This is the set of things needed by a text component&#xA;to be a reasonably functioning editor for some &lt;em>type&lt;/em>&#xA;of text document.  This implementation provides a default&#xA;implementation which treats text as styled text and&#xA;provides a minimal set of actions for editing styled text.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.45 02/04/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_562213_10529"/>
              <generalization xmi:id="_10_5_622020d_1132928323882_248949_18109" isSubstitutable="true" general="_9_5_f720368_1110473546784_732622_10441"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_495914_23651" name="AttributeTracker" visibility="package" clientDependency="_10_5_622020d_1132928323882_964493_18112 _10_5_622020d_1132928323882_620317_18110 _10_5_622020d_1132928323882_32720_18111">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_870006_12168" body="Tracks caret movement and keeps the input attributes set&#xA;to reflect the current set of attribute definitions at the&#xA;caret position.&#xA;&lt;p>This implements PropertyChangeListener to update the&#xA;input attributes when the Document changes, as if the Document&#xA;changes the attributes will almost certainly change.&#xA;" annotatedElement="_9_5_f720368_1110473548378_495914_23651"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_620317_18110" name="" supplier="_9_5_f720368_1110473546753_881060_9835" client="_9_5_f720368_1110473548378_495914_23651" contract="_9_5_f720368_1110473546753_881060_9835"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_32720_18111" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548378_495914_23651" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_964493_18112" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548378_495914_23651" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_534265_23653" name="StyledViewFactory" visibility="package" clientDependency="_10_5_622020d_1132928323882_831431_18113">
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_831431_18113" name="" supplier="_9_5_f720368_1110473546784_659253_10549" client="_9_5_f720368_1110473548378_534265_23653" contract="_9_5_f720368_1110473546784_659253_10549"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548315_920190_23205" name="StyledTextAction" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_738639_12169" body="An action that assumes it's being fired on a JEditorPane&#xA;with a StyledEditorKit (or subclass) installed.  This has&#xA;some convenience methods for causing character or paragraph&#xA;level attribute changes.  The convenience methods will&#xA;throw an IllegalArgumentException if the assumption of&#xA;a StyledDocument, a JEditorPane, or a StyledEditorKit&#xA;fail to be true.&#xA;&lt;p>&#xA;The component that gets acted upon by the action&#xA;will be the source of the ActionEvent if the source&#xA;can be narrowed to a JEditorPane type.  If the source&#xA;can't be narrowed, the most recently focused text&#xA;component is changed.  If neither of these are the&#xA;case, the action cannot be performed.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548315_920190_23205"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_673894_18114" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_174797_23657" name="FontFamilyAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_965006_12170" body="An action to set the font family in the associated&#xA;JEditorPane.  This will use the family specified as&#xA;the command string on the ActionEvent if there is one,&#xA;otherwise the family that was initialized with will be used.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_174797_23657"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_713593_18115" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_996427_23660" name="FontSizeAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_151929_12171" body="An action to set the font size in the associated&#xA;JEditorPane.  This will use the size specified as&#xA;the command string on the ActionEvent if there is one,&#xA;otherwise the size that was initialized with will be used.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_996427_23660"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_141861_18116" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_603406_23663" name="ForegroundAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_783371_12172" body="An action to set foreground color.  This sets the&#xA;&lt;code>StyleConstants.Foreground&lt;/code> attribute for the&#xA;currently selected range of the target JEditorPane.&#xA;This is done by calling&#xA;&lt;code>StyledDocument.setCharacterAttributes&lt;/code>&#xA;on the styled document associated with the target&#xA;JEditorPane.&#xA;&lt;p>&#xA;If the target text component is specified as the&#xA;source of the ActionEvent and there is a command string,&#xA;the command string will be interpreted as the foreground&#xA;color.  It will be interpreted by called&#xA;&lt;code>Color.decode&lt;/code>, and should therefore be&#xA;legal input for that method.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_603406_23663"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_41687_18117" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_668199_23666" name="AlignmentAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_233809_12173" body="An action to set paragraph alignment.  This sets the&#xA;&lt;code>StyleConstants.Alignment&lt;/code> attribute for the&#xA;currently selected range of the target JEditorPane.&#xA;This is done by calling&#xA;&lt;code>StyledDocument.setParagraphAttributes&lt;/code>&#xA;on the styled document associated with the target&#xA;JEditorPane.&#xA;&lt;p>&#xA;If the target text component is specified as the&#xA;source of the ActionEvent and there is a command string,&#xA;the command string will be interpreted as an integer&#xA;that should be one of the legal values for the&#xA;&lt;code>StyleConstants.Alignment&lt;/code> attribute.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_668199_23666"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_201600_18118" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_605391_23669" name="BoldAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_802764_12174" body="An action to toggle the bold attribute.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_605391_23669"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_651938_18119" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_680240_23672" name="ItalicAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_203033_12175" body="An action to toggle the italic attribute.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_680240_23672"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_6328_18120" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_671826_23675" name="UnderlineAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_957676_12176" body="An action to toggle the underline attribute.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548378_671826_23675"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_798577_18121" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_379866_23678" name="StyledInsertBreakAction" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_392321_12177" body="StyledInsertBreakAction has similar behavior to that of&#xA;&lt;code>DefaultEditorKit.InsertBreakAction&lt;/code>. That is when&#xA;its &lt;code>actionPerformed&lt;/code> method is invoked, a newline&#xA;is inserted. Beyond that, this will reset the input attributes to&#xA;what they were before the newline was inserted.&#xA;" annotatedElement="_9_5_f720368_1110473548378_379866_23678"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_809026_18122" isSubstitutable="true" general="_9_5_f720368_1110473548315_920190_23205"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_88053_10463" name="FieldView">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_734937_12058" body="Extends the multi-line plain text view to be suitable&#xA;for a single-line editor view.  If the view is&#xA;allocated extra space, the field must adjust for it.&#xA;If the hosting component is a JTextField, this view&#xA;will manage the ranges of the associated BoundedRangeModel&#xA;and will adjust the horizontal allocation to match the&#xA;current visibility settings of the JTextField.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.25 12/19/03&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_88053_10463"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_934725_18010" isSubstitutable="true" general="_9_5_f720368_1110473546784_223092_10507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_453540_10437" name="DateFormatter">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_314621_12001" body="DateFormatter is an &lt;code>InternationalFormatter&lt;/code> that does its&#xA;formatting by way of an instance of &lt;code>java.text.DateFormat&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see java.text.DateFormat&#xA;&#xA;@version 1.5 04/09/01&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_453540_10437"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_121111_17937" isSubstitutable="true" general="_9_5_f720368_1110473546784_55684_10481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_8722_10543" name="TextLayoutStrategy" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317733_799278_12200" body="A flow strategy that uses java.awt.font.LineBreakMeasureer to&#xA;produce java.awt.font.TextLayout for i18n capable rendering.&#xA;If the child view being placed into the flow is of type&#xA;GlyphView and can be rendered by TextLayout, a GlyphPainter&#xA;that uses TextLayout is plugged into the GlyphView.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.22 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_8722_10543"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_124038_18130" isSubstitutable="true" general="_9_5_f720368_1110473548346_60632_23501"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_287023_23694" name="AttributedSegment" visibility="package" clientDependency="_10_5_622020d_1132928323892_166293_18131">
                <ownedComment xmi:id="_10_5_622020d_1132928317733_934530_12198" body="Implementation of AttributedCharacterIterator that supports&#xA;the GlyphView attributes for rendering the glyphs through a&#xA;TextLayout.&#xA;" annotatedElement="_9_5_f720368_1110473548378_287023_23694"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_31236_18132" isSubstitutable="true" general="_9_5_f720368_1110473546784_181396_10511"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323892_166293_18131" name="" supplier="_9_5_f720368_1110473546690_363626_8609" client="_9_5_f720368_1110473548378_287023_23694" contract="_9_5_f720368_1110473546690_363626_8609"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_592144_10445" name="DefaultFormatterFactory" clientDependency="_10_5_622020d_1132928323862_762641_17989">
              <ownedComment xmi:id="_10_5_622020d_1132928317583_122873_12023" body="An implementation of&#xA;&lt;code>JFormattedTextField.AbstractFormatterFactory&lt;/code>.&#xA;&lt;code>DefaultFormatterFactory&lt;/code> allows specifying a number of&#xA;different &lt;code>JFormattedTextField.AbstractFormatter&lt;/code>s that are to&#xA;be used.&#xA;The most important one is the default one&#xA;(&lt;code>setDefaultFormatter&lt;/code>). The default formatter will be used&#xA;if a more specific formatter could not be found. The following process&#xA;is used to determine the appropriate formatter to use.&#xA;&lt;ol>&#xA;&lt;li>Is the passed in value null? Use the null formatter.&#xA;&lt;li>Does the &lt;code>JFormattedTextField&lt;/code> have focus? Use the edit&#xA;formatter.&#xA;&lt;li>Otherwise, use the display formatter.&#xA;&lt;li>If a non-null &lt;code>AbstractFormatter&lt;/code> has not been found, use&#xA;the default formatter.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;The following code shows how to configure a&#xA;&lt;code>JFormattedTextField&lt;/code> with two&#xA;&lt;code>JFormattedTextField.AbstractFormatter&lt;/code>s, one for display and&#xA;one for editing.&#xA;&lt;pre>&#xA;JFormattedTextField.AbstractFormatter editFormatter = ...;&#xA;JFormattedTextField.AbstractFormatter displayFormatter = ...;&#xA;DefaultFormatterFactory factory = new DefaultFormatterFactory(&#xA;displayFormatter, displayFormatter, editFormatter);&#xA;JFormattedTextField tf = new JFormattedTextField(factory);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.JFormattedTextField&#xA;&#xA;@version 1.8 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_592144_10445"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_616119_17990" isSubstitutable="true" general="_9_5_f720368_1110473548378_381007_23786"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_762641_17989" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_592144_10445" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_58626_10523" name="StyleConstants">
              <ownedComment xmi:id="_10_5_622020d_1132928317713_998046_12158" body="&lt;p>&#xA;A collection of &lt;em>well known&lt;/em> or common attribute keys&#xA;and methods to apply to an AttributeSet or MutableAttributeSet&#xA;to get/set the properties in a typesafe manner.&#xA;&lt;p>&#xA;The paragraph attributes form the definition of a paragraph to be rendered.&#xA;All sizes are specified in points (such as found in postscript), a&#xA;device independent measure.&#xA;&lt;/p>&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/paragraph.gif&quot;&#xA;alt=&quot;Diagram shows SpaceAbove, FirstLineIndent, LeftIndent, RightIndent,&#xA;and SpaceBelow a paragraph.&quot;>&lt;/p>&#xA;&lt;p>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.36 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_58626_10523"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_130120_23626" name="ParagraphConstants" clientDependency="_10_5_622020d_1132928323882_129584_18092">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_714606_12153" body="This is a typesafe enumeration of the &lt;em>well-known&lt;/em>&#xA;attributes that contribute to a paragraph style.  These are&#xA;aliased by the outer class for general presentation.&#xA;" annotatedElement="_9_5_f720368_1110473548362_130120_23626"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_12309_18093" isSubstitutable="true" general="_9_5_f720368_1110473546784_58626_10523"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_129584_18092" name="" supplier="_9_5_f720368_1110473548331_982952_23359" client="_9_5_f720368_1110473548362_130120_23626" contract="_9_5_f720368_1110473548331_982952_23359"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_217358_23629" name="CharacterConstants" clientDependency="_10_5_622020d_1132928323882_786573_18094">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_136451_12154" body="This is a typesafe enumeration of the &lt;em>well-known&lt;/em>&#xA;attributes that contribute to a character style.  These are&#xA;aliased by the outer class for general presentation.&#xA;" annotatedElement="_9_5_f720368_1110473548362_217358_23629"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_98544_18095" isSubstitutable="true" general="_9_5_f720368_1110473546784_58626_10523"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_786573_18094" name="" supplier="_9_5_f720368_1110473548331_355066_23357" client="_9_5_f720368_1110473548362_217358_23629" contract="_9_5_f720368_1110473548331_355066_23357"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_900369_23632" name="ColorConstants" clientDependency="_10_5_622020d_1132928323882_368690_18096 _10_5_622020d_1132928323882_264167_18097">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_703447_12155" body="This is a typesafe enumeration of the &lt;em>well-known&lt;/em>&#xA;attributes that contribute to a color.  These are aliased&#xA;by the outer class for general presentation.&#xA;" annotatedElement="_9_5_f720368_1110473548362_900369_23632"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_643701_18098" isSubstitutable="true" general="_9_5_f720368_1110473546784_58626_10523"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_368690_18096" name="" supplier="_9_5_f720368_1110473548331_159202_23355" client="_9_5_f720368_1110473548362_900369_23632" contract="_9_5_f720368_1110473548331_159202_23355"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_264167_18097" name="" supplier="_9_5_f720368_1110473548331_355066_23357" client="_9_5_f720368_1110473548362_900369_23632" contract="_9_5_f720368_1110473548331_355066_23357"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_96142_23635" name="FontConstants" clientDependency="_10_5_622020d_1132928323882_845074_18099 _10_5_622020d_1132928323882_365953_18100">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_563376_12156" body="This is a typesafe enumeration of the &lt;em>well-known&lt;/em>&#xA;attributes that contribute to a font.  These are aliased&#xA;by the outer class for general presentation.&#xA;" annotatedElement="_9_5_f720368_1110473548362_96142_23635"/>
                <generalization xmi:id="_10_5_622020d_1132928323882_331892_18101" isSubstitutable="true" general="_9_5_f720368_1110473546784_58626_10523"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_845074_18099" name="" supplier="_9_5_f720368_1110473548331_710834_23353" client="_9_5_f720368_1110473548362_96142_23635" contract="_9_5_f720368_1110473548331_710834_23353"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_365953_18100" name="" supplier="_9_5_f720368_1110473548331_355066_23357" client="_9_5_f720368_1110473548362_96142_23635" contract="_9_5_f720368_1110473548331_355066_23357"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_837851_10501" name="ParagraphView" clientDependency="_10_5_622020d_1132928323872_343111_18070">
              <ownedComment xmi:id="_10_5_622020d_1132928317673_491704_12124" body="View of a simple line-wrapping paragraph that supports&#xA;multiple fonts, colors, components, icons, etc.  It is&#xA;basically a vertical box with a margin around it.  The&#xA;contents of the box are a bunch of rows which are special&#xA;horizontal boxes.  This view creates a collection of&#xA;views that represent the child elements of the paragraph&#xA;element.  Each of these views are placed into a row&#xA;directly if they will fit, otherwise the &lt;code>breakView&lt;/code>&#xA;method is called to try and carve the view into pieces&#xA;that fit.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Scott Violet&#xA;@version 1.90 04/16/03&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_837851_10501"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_627745_18071" isSubstitutable="true" general="_9_5_f720368_1110473546784_499236_10465"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323872_343111_18070" name="" supplier="_9_5_f720368_1110473546784_822005_10533" client="_9_5_f720368_1110473546784_837851_10501" contract="_9_5_f720368_1110473546784_822005_10533"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_20028_23594" name="Row" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317673_372083_12122" body="Internally created view that has the purpose of holding&#xA;the views that represent the children of the paragraph&#xA;that have been arranged in rows.&#xA;" annotatedElement="_9_5_f720368_1110473548362_20028_23594"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_530367_18072" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_137193_10429" name="Caret" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_929933_11992" body="A place within a document view that represents where&#xA;things can be inserted into the document model.  A caret&#xA;has a position in the document referred to as a dot.&#xA;The dot is where the caret is currently located in the&#xA;model.  There is&#xA;a second position maintained by the caret that represents&#xA;the other end of a selection called mark.  If there is&#xA;no selection the dot and mark will be equal.  If a selection&#xA;exists, the two values will be different.&#xA;&lt;p>&#xA;The dot can be placed by either calling&#xA;&lt;code>setDot&lt;/code> or &lt;code>moveDot&lt;/code>.  Setting&#xA;the dot has the effect of removing any selection that may&#xA;have previously existed.  The dot and mark will be equal.&#xA;Moving the dot has the effect of creating a selection as&#xA;the mark is left at whatever position it previously had.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.30 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_137193_10429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_736243_10471" name="GlyphPainter1" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_395251_12072" body="A class to perform rendering of the glyphs.&#xA;This can be implemented to be stateless, or&#xA;to hold some information as a cache to&#xA;facilitate faster rendering and model/view&#xA;translation.  At a minimum, the GlyphPainter&#xA;allows a View implementation to perform its&#xA;duties independent of a particular version&#xA;of JVM and selection of capabilities (i.e.&#xA;shaping for i18n, etc).&#xA;&lt;p>&#xA;This implementation is intended for operation&#xA;under the JDK1.1 API of the Java Platform.&#xA;Since the JDK is backward compatible with&#xA;JDK1.1 API, this class will also function on&#xA;Java 2.  The JDK introduces improved&#xA;API for rendering text however, so the GlyphPainter2&#xA;is recommended for the DK.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.18 06/28/04&#xA;@see GlyphView&#xA;" annotatedElement="_9_5_f720368_1110473546784_736243_10471"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_865103_18022" isSubstitutable="true" general="_9_5_f720368_1110473548346_751839_23523"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_116694_10503" name="PasswordView">
              <ownedComment xmi:id="_10_5_622020d_1132928317683_763256_12126" body="Implements a View suitable for use in JPasswordField&#xA;UI implementations.  This is basically a field ui that&#xA;renders its contents as the echo character specified&#xA;in the associated component (if it can narrow the&#xA;component to a JPasswordField).&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.20 04/15/04&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_116694_10503"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_49741_18073" isSubstitutable="true" general="_9_5_f720368_1110473546784_88053_10463"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_102825_10449" name="DefaultStyledDocument" clientDependency="_10_5_622020d_1132928323862_657249_17996">
              <ownedComment xmi:id="_10_5_622020d_1132928317583_420317_12039" body="A document that can be marked up with character and paragraph&#xA;styles in a manner similar to the Rich Text Format.  The element&#xA;structure for this document represents style crossings for&#xA;style runs.  These style runs are mapped into a paragraph element&#xA;structure (which may reside in some other structure).  The&#xA;style runs break at paragraph boundaries since logical styles are&#xA;assigned to paragraph boundaries.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.124 05/05/04&#xA;@see     Document&#xA;@see     AbstractDocument&#xA;" annotatedElement="_9_5_f720368_1110473546784_102825_10449"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_198638_17997" isSubstitutable="true" general="_9_5_f720368_1110473546784_322991_10417"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_657249_17996" name="" supplier="_9_5_f720368_1110473546784_194953_10527" client="_9_5_f720368_1110473546784_102825_10449" contract="_9_5_f720368_1110473546784_194953_10527"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473005518_855350_4519" name="SectionElement" visibility="protected">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_174138_12030" body="Default root element for a document... maps out the&#xA;paragraphs/lines contained.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473005518_855350_4519"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_192608_17998" isSubstitutable="true" general="_9_5_f720368_1110473005518_261375_4517"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_878384_23470" name="ElementSpec">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_271620_12031" body="Specification for building elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548346_878384_23470"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_608054_23473" name="ElementBuffer" clientDependency="_10_5_622020d_1132928323862_412962_17999">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_724597_12032" body="Class to manage changes to the element&#xA;hierarchy.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548346_608054_23473"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_412962_17999" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548346_608054_23473" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_874807_23475" name="ElemChanges" visibility="package"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_258400_23476" name="AttributeUndoableEdit">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_71854_12033" body="An UndoableEdit used to remember AttributeSet changes to an&#xA;Element.&#xA;" annotatedElement="_9_5_f720368_1110473548346_258400_23476"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_358473_18000" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_999641_23479" name="StyleChangeUndoableEdit" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_989248_12034" body="UndoableEdit for changing the resolve parent of an Element.&#xA;" annotatedElement="_9_5_f720368_1110473548346_999641_23479"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_361433_18001" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_416016_23482" name="StyleChangeHandler" visibility="package" clientDependency="_10_5_622020d_1132928323862_560861_18002">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_707163_12035" body="Added to all the Styles. When instances of this receive a&#xA;stateChanged method, styleChanged is invoked.&#xA;" annotatedElement="_9_5_f720368_1110473548346_416016_23482"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_560861_18002" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548346_416016_23482" contract="_9_5_f720368_1110473546753_937925_9841"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_11668_23484" name="StyleContextChangeHandler" visibility="package" clientDependency="_10_5_622020d_1132928323862_237206_18003">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_491279_12036" body="Added to the StyleContext. When the StyleContext changes, this invokes&#xA;&lt;code>updateStylesListeningTo&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548346_11668_23484"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_237206_18003" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548346_11668_23484" contract="_9_5_f720368_1110473546753_937925_9841"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_353794_23486" name="ChangeUpdateRunnable" visibility="package" clientDependency="_10_5_622020d_1132928323862_739987_18004">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_708055_12037" body="When run this creates a change event for the complete document&#xA;and fires it.&#xA;" annotatedElement="_9_5_f720368_1110473548346_353794_23486"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_739987_18004" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548346_353794_23486" contract="_9_5_f720368_1110473546612_953158_7669"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_223092_10507" name="PlainView" clientDependency="_10_5_622020d_1132928323872_53455_18075">
              <ownedComment xmi:id="_10_5_622020d_1132928317683_371835_12130" body="Implements View interface for a simple multi-line text view&#xA;that has text in one font and color.  The view represents each&#xA;child element as a line of text.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.74 04/15/04&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_223092_10507"/>
              <generalization xmi:id="_10_5_622020d_1132928323872_471794_18076" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323872_53455_18075" name="" supplier="_9_5_f720368_1110473546784_822005_10533" client="_9_5_f720368_1110473546784_223092_10507" contract="_9_5_f720368_1110473546784_822005_10533"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_322991_10417" name="AbstractDocument" clientDependency="_10_5_622020d_1132928323842_431955_17912 _10_5_622020d_1132928323842_65894_17913" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317543_279786_11973" body="An implementation of the document interface to serve as a&#xA;basis for implementing various kinds of documents.  At this&#xA;level there is very little policy, so there is a corresponding&#xA;increase in difficulty of use.&#xA;&lt;p>&#xA;This class implements a locking mechanism for the document.  It&#xA;allows multiple readers or one writer, and writers must wait until&#xA;all observers of the document have been notified of a previous&#xA;change before beginning another mutation to the document.  The&#xA;read lock is acquired and released using the &lt;code>render&lt;/code>&#xA;method.  A write lock is aquired by the methods that mutate the&#xA;document, and are held for the duration of the method call.&#xA;Notification is done on the thread that produced the mutation,&#xA;and the thread has full read access to the document for the&#xA;duration of the notification, but other readers are kept out&#xA;until the notification has finished.  The notification is a&#xA;beans event notification which does not allow any further&#xA;mutations until all listeners have been notified.&#xA;&lt;p>&#xA;Any models subclassed from this class and used in conjunction&#xA;with a text component that has a look and feel implementation&#xA;that is derived from BasicTextUI may be safely updated&#xA;asynchronously, because all access to the View hierarchy&#xA;is serialized by BasicTextUI if the document is of type&#xA;&lt;code>AbstractDocument&lt;/code>.  The locking assumes that an&#xA;independant thread will access the View hierarchy only from&#xA;the DocumentListener methods, and that there will be only&#xA;one event thread active at a time.&#xA;&lt;p>&#xA;If concurrency support is desired, there are the following&#xA;additional implications.  The code path for any DocumentListener&#xA;implementation and any UndoListener implementation must be threadsafe,&#xA;and not access the component lock if trying to be safe from deadlocks.&#xA;The &lt;code>repaint&lt;/code> and &lt;code>revalidate&lt;/code> methods&#xA;on JComponent are safe.&#xA;&lt;p>&#xA;AbstractDocument models an implied break at the end of the document.&#xA;Among other things this allows you to position the caret after the last&#xA;character. As a result of this, &lt;code>getLength&lt;/code> returns one less&#xA;than the length of the Content. If you create your own Content, be&#xA;sure and initialize it to have an additional character. Refer to&#xA;StringContent and GapContent for examples of this. Another implication&#xA;of this is that Elements that model the implied end character will have&#xA;an endOffset == (getLength() + 1). For example, in DefaultStyledDocument&#xA;&lt;code>getParagraphElement(getLength()).getEndOffset() == getLength() + 1&#xA;&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.151 07/13/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_322991_10417"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323842_431955_17912" name="" supplier="_9_5_f720368_1110473546784_150050_10453" client="_9_5_f720368_1110473546784_322991_10417" contract="_9_5_f720368_1110473546784_150050_10453"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323842_65894_17913" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_322991_10417" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_808450_23326" name="Content" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_145008_11961" body="Interface to describe a sequence of character content that&#xA;can be edited.  Implementations may or may not support a&#xA;history mechanism which will be reflected by whether or not&#xA;mutations return an UndoableEdit implementation.&#xA;@see AbstractDocument&#xA;" annotatedElement="_9_5_f720368_1110473548331_808450_23326"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548331_536355_23328" name="AttributeContext" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_737864_11962" body="An interface that can be used to allow MutableAttributeSet&#xA;implementations to use pluggable attribute compression&#xA;techniques.  Each mutation of the attribute set can be&#xA;used to exchange a previous AttributeSet instance with&#xA;another, preserving the possibility of the AttributeSet&#xA;remaining immutable.  An implementation is provided by&#xA;the StyleContext class.&#xA;&#xA;The Element implementations provided by this class use&#xA;this interface to provide their MutableAttributeSet&#xA;implementations, so that different AttributeSet compression&#xA;techniques can be employed.  The method&#xA;&lt;code>getAttributeContext&lt;/code> should be implemented to&#xA;return the object responsible for implementing the desired&#xA;compression technique.&#xA;&#xA;@see StyleContext&#xA;" annotatedElement="_9_5_f720368_1110473548331_536355_23328"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_142599_23330" name="AbstractElement" clientDependency="_10_5_622020d_1132928323842_258819_17915 _10_5_622020d_1132928323842_826645_17917 _10_5_622020d_1132928323842_200282_17914 _10_5_622020d_1132928323842_93265_17916" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_622709_11963" body="Implements the abstract part of an element.  By default elements&#xA;support attributes by having a field that represents the immutable&#xA;part of the current attribute set for the element.  The element itself&#xA;implements MutableAttributeSet which can be used to modify the set&#xA;by fetching a new immutable set.  The immutable sets are provided&#xA;by the AttributeContext associated with the document.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548331_142599_23330"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_200282_17914" name="" supplier="_9_5_f720368_1110473546784_103495_10459" client="_9_5_f720368_1110473548331_142599_23330" contract="_9_5_f720368_1110473546784_103495_10459"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_258819_17915" name="" supplier="_9_5_f720368_1110473546784_815693_10495" client="_9_5_f720368_1110473548331_142599_23330" contract="_9_5_f720368_1110473546784_815693_10495"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_93265_17916" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548331_142599_23330" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323842_826645_17917" name="" supplier="_9_5_f720368_1110473546784_994433_10583" client="_9_5_f720368_1110473548331_142599_23330" contract="_9_5_f720368_1110473546784_994433_10583"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473005518_261375_4517" name="BranchElement">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_114212_11964" body="Implements a composite element that contains other elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473005518_261375_4517"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_876124_17918" isSubstitutable="true" general="_9_5_f720368_1110473548331_142599_23330"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_42430_23333" name="LeafElement">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_796471_11965" body="Implements an element that directly represents content of&#xA;some kind.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see     Element&#xA;" annotatedElement="_9_5_f720368_1110473548331_42430_23333"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_713057_17919" isSubstitutable="true" general="_9_5_f720368_1110473548331_142599_23330"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473005518_873659_4518" name="BidiRootElement" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_798459_11966" body="Represents the root element of the bidirectional element structure.&#xA;The root element is the only element in the bidi element structure&#xA;which contains children.&#xA;" annotatedElement="_9_5_f720368_1110473005518_873659_4518"/>
                <generalization xmi:id="_10_5_622020d_1132928323842_933554_17920" isSubstitutable="true" general="_9_5_f720368_1110473005518_261375_4517"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_837929_23336" name="BidiElement" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_249635_11967" body="Represents an element of the bidirectional element structure.&#xA;" annotatedElement="_9_5_f720368_1110473548331_837929_23336"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_401677_17921" isSubstitutable="true" general="_9_5_f720368_1110473548331_42430_23333"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_896049_23338" name="DefaultDocumentEvent" clientDependency="_10_5_622020d_1132928323852_812029_17922">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_723537_11968" body="Stores document changes as the document is being&#xA;modified.  Can subsequently be used for change notification&#xA;when done with the document modification transaction.&#xA;This is used by the AbstractDocument class and its extensions&#xA;for broadcasting change information to the document listeners.&#xA;" annotatedElement="_9_5_f720368_1110473548331_896049_23338"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_478463_17923" isSubstitutable="true" general="_9_5_f720368_1110473546784_798898_10597"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_812029_17922" name="" supplier="_9_5_f720368_1110473546753_760814_9843" client="_9_5_f720368_1110473548331_896049_23338" contract="_9_5_f720368_1110473546753_760814_9843"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_516644_23340" name="ElementEdit" clientDependency="_10_5_622020d_1132928323852_203004_17925">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_465895_11971" body="An implementation of ElementChange that can be added to the document&#xA;event.&#xA;" annotatedElement="_9_5_f720368_1110473548331_516644_23340"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_479133_17926" isSubstitutable="true" general="_9_5_f720368_1110473546784_200616_10591"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_203004_17925" name="" supplier="_9_5_f720368_1110473548128_875600_21032" client="_9_5_f720368_1110473548331_516644_23340" contract="_9_5_f720368_1110473548128_875600_21032"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_306282_23343" name="DefaultFilterBypass" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928323852_317991_17927" isSubstitutable="true" general="_9_5_f720368_1110473548346_310196_23491"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317543_961512_11969" name="UndoRedoDocumentEvent" visibility="package" clientDependency="_10_5_622020d_1132928323852_75854_17924">
                <ownedComment xmi:id="_10_5_622020d_1132928317543_297891_11970" body="This event used when firing document changes while Undo/Redo&#xA;operations. It just wraps DefaultDocumentEvent and delegates&#xA;all calls to it except getType() which depends on operation&#xA;(Undo or Redo).&#xA;" annotatedElement="_10_5_622020d_1132928317543_961512_11969"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323852_75854_17924" name="" supplier="_9_5_f720368_1110473546753_760814_9843" client="_10_5_622020d_1132928317543_961512_11969" contract="_9_5_f720368_1110473546753_760814_9843"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_738554_10485" name="Keymap" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317663_900003_12097" body="A collection of bindings of KeyStrokes to actions.  The&#xA;bindings are basically name-value pairs that potentially&#xA;resolve in a hierarchy.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.18 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_738554_10485"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_903269_10537" name="TabSet" clientDependency="_10_5_622020d_1132928323882_803702_18127">
              <ownedComment xmi:id="_10_5_622020d_1132928317733_977998_12193" body="A TabSet is comprised of many TabStops. It offers methods for locating the&#xA;closest TabStop to a given position and finding all the potential TabStops.&#xA;It is also immutable.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Scott Violet&#xA;@version 1.15 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_903269_10537"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_803702_18127" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_903269_10537" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_498584_10491" name="LayoutQueue">
              <ownedComment xmi:id="_10_5_622020d_1132928317663_836380_12105" body="A queue of text layout tasks.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.6 12/19/03&#xA;@see     AsyncBoxView&#xA;@since   1.3&#xA;" annotatedElement="_9_5_f720368_1110473546784_498584_10491"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_389146_23569" name="LayoutThread" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317663_859022_12103" body="low priority thread to perform layout work forever&#xA;" annotatedElement="_9_5_f720368_1110473548362_389146_23569"/>
                <generalization xmi:id="_10_5_622020d_1132928323872_527784_18059" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_913090_10473" name="GlyphPainter2" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317613_509842_12074" body="A class to perform rendering of the glyphs.&#xA;This can be implemented to be stateless, or&#xA;to hold some information as a cache to&#xA;facilitate faster rendering and model/view&#xA;translation.  At a minimum, the GlyphPainter&#xA;allows a View implementation to perform its&#xA;duties independent of a particular version&#xA;of JVM and selection of capabilities (i.e.&#xA;shaping for i18n, etc).&#xA;&lt;p>&#xA;This implementation is intended for operation&#xA;under the JDK.  It uses the&#xA;java.awt.font.TextLayout class to do i18n capable&#xA;rendering.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.21 06/28/04&#xA;@see GlyphView&#xA;" annotatedElement="_9_5_f720368_1110473546784_913090_10473"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_445950_18023" isSubstitutable="true" general="_9_5_f720368_1110473548346_751839_23523"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_352959_10433" name="ComponentView">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_364151_11997" body="Component decorator that implements the view interface.  The&#xA;entire element is used to represent the component.  This acts&#xA;as a gateway from the display-only View implementations to&#xA;interactive lightweight components (ie it allows components&#xA;to be embedded into the View hierarchy).&#xA;&lt;p>&#xA;The component is placed relative to the text baseline&#xA;according to the value returned by&#xA;&lt;code>Component.getAlignmentY&lt;/code>.  For Swing components&#xA;this value can be conveniently set using the method&#xA;&lt;code>JComponent.setAlignmentY&lt;/code>.  For example, setting&#xA;a value of &lt;code>0.75&lt;/code> will cause 75 percent of the&#xA;component to be above the baseline, and 25 percent of the&#xA;component to be below the baseline.&#xA;&lt;p>&#xA;This class is implemented to do the extra work necessary to&#xA;work properly in the presence of multiple threads (i.e. from&#xA;asynchronous notification of model changes for example) by&#xA;ensuring that all component access is done on the event thread.&#xA;&lt;p>&#xA;The component used is determined by the return value of the&#xA;createComponent method.  The default implementation of this&#xA;method is to return the component held as an attribute of&#xA;the element (by calling StyleConstants.getComponent).  A&#xA;limitation of this behavior is that the component cannot&#xA;be used by more than one text component (i.e. with a shared&#xA;model).  Subclasses can remove this constraint by implementing&#xA;the createComponent to actually create a component based upon&#xA;some kind of specification contained in the attributes.  The&#xA;ObjectView class in the html package is an example of a&#xA;ComponentView implementation that supports multiple component&#xA;views of a shared model.&#xA;&#xA;@author Timothy Prinzing&#xA;@version 1.54 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_352959_10433"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_603789_17934" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_673330_23366" name="Invalidator" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317553_478780_11995" body="This class feeds the invalidate back to the&#xA;hosting View.  This is needed to get the View&#xA;hierarchy to consider giving the component&#xA;a different size (i.e. layout may have been&#xA;cached between the associated view and the&#xA;container hosting this component).&#xA;" annotatedElement="_9_5_f720368_1110473548331_673330_23366"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_54658_17935" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_123949_10551" name="WrappedPlainView" clientDependency="_10_5_622020d_1132928323892_686136_18134">
              <ownedComment xmi:id="_10_5_622020d_1132928317743_860031_12209" body="View of plain text (text with only one font and color)&#xA;that does line-wrapping.  This view expects that its&#xA;associated element has child elements that represent&#xA;the lines it should be wrapping.  It is implemented&#xA;as a vertical box that contains logical line views.&#xA;The logical line views are nested classes that render&#xA;the logical line as multiple physical line if the logical&#xA;line is too wide to fit within the allocation.  The&#xA;line views draw upon the outer class for its state&#xA;to reduce their memory requirements.&#xA;&lt;p>&#xA;The line views do all of their rendering through the&#xA;&lt;code>drawLine&lt;/code> method which in turn does all of&#xA;its rendering through the &lt;code>drawSelectedText&lt;/code>&#xA;and &lt;code>drawUnselectedText&lt;/code> methods.  This&#xA;enables subclasses to easily specialize the rendering&#xA;without concern for the layout aspects.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.38 05/26/04&#xA;@see     View&#xA;" annotatedElement="_9_5_f720368_1110473546784_123949_10551"/>
              <generalization xmi:id="_10_5_622020d_1132928323892_749711_18135" isSubstitutable="true" general="_9_5_f720368_1110473546784_76097_10427"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_686136_18134" name="" supplier="_9_5_f720368_1110473546784_822005_10533" client="_9_5_f720368_1110473546784_123949_10551" contract="_9_5_f720368_1110473546784_822005_10533"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_381192_23701" name="WrappedLine" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317743_395344_12207" body="Simple view of a line that wraps if it doesn't&#xA;fit withing the horizontal space allocated.&#xA;This class tries to be lightweight by carrying little&#xA;state of it's own and sharing the state of the outer class&#xA;with it's sibblings.&#xA;" annotatedElement="_9_5_f720368_1110473548378_381192_23701"/>
                <generalization xmi:id="_10_5_622020d_1132928323892_866161_18136" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_981332_10425" name="BadLocationException">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_105870_11988" body="This exception is to report bad locations within a document model&#xA;(that is, attempts to reference a location that doesn't exist).&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.20 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_981332_10425"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_747884_17931" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_850412_10525" name="StyleContext" clientDependency="_10_5_622020d_1132928323882_998506_18102 _10_5_622020d_1132928323882_607891_18103">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_864719_12165" body="A pool of styles and their associated resources.  This class determines&#xA;the lifetime of a group of resources by being a container that holds&#xA;caches for various resources such as font and color that get reused&#xA;by the various style definitions.  This can be shared by multiple&#xA;documents if desired to maximize the sharing of related resources.&#xA;&lt;p>&#xA;This class also provides efficient support for small sets of attributes&#xA;and compresses them by sharing across uses and taking advantage of&#xA;their immutable nature.  Since many styles are replicated, the potential&#xA;for sharing is significant, and copies can be extremely cheap.&#xA;Larger sets reduce the possibility of sharing, and therefore revert&#xA;automatically to a less space-efficient implementation.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.78 05/05/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_850412_10525"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_998506_18102" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_850412_10525" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_607891_18103" name="" supplier="_9_5_f720368_1110473548331_536355_23328" client="_9_5_f720368_1110473546784_850412_10525" contract="_9_5_f720368_1110473548331_536355_23328"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_855721_23243" name="SmallAttributeSet" clientDependency="_10_5_622020d_1132928323882_752476_18104">
                <ownedComment xmi:id="_10_5_622020d_1132928317713_826271_12159" body="This class holds a small number of attributes in an array.&#xA;The storage format is key, value, key, value, etc.  The size&#xA;of the set is the length of the array divided by two.  By&#xA;default, this is the class that will be used to store attributes&#xA;when held in the compact sharable form.&#xA;" annotatedElement="_9_5_f720368_1110473548331_855721_23243"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_752476_18104" name="" supplier="_9_5_f720368_1110473546784_759614_10423" client="_9_5_f720368_1110473548331_855721_23243" contract="_9_5_f720368_1110473546784_759614_10423"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_479824_23640" name="KeyEnumeration" visibility="package" clientDependency="_10_5_622020d_1132928323882_443196_18105">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_630062_12160" body="An enumeration of the keys in a SmallAttributeSet.&#xA;" annotatedElement="_9_5_f720368_1110473548362_479824_23640"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_443196_18105" name="" supplier="_10_5_622020d_1132928322580_607670_14982" client="_9_5_f720368_1110473548362_479824_23640" contract="_10_5_622020d_1132928322580_607670_14982"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_413324_23642" name="KeyBuilder" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_447135_12161" body="Sorts the key strings so that they can be very quickly compared&#xA;in the attribute set searchs.&#xA;" annotatedElement="_9_5_f720368_1110473548362_413324_23642"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_818483_23644" name="FontKey" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_191698_12162" body="key for a font table&#xA;" annotatedElement="_9_5_f720368_1110473548362_818483_23644"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548362_78901_23647" name="NamedStyle" clientDependency="_10_5_622020d_1132928323882_265337_18106 _10_5_622020d_1132928323882_94486_18107">
                <ownedComment xmi:id="_10_5_622020d_1132928317723_219627_12163" body="A collection of attributes, typically used to represent&#xA;character and paragraph styles.  This is an implementation&#xA;of MutableAttributeSet that can be observed if desired.&#xA;These styles will take advantage of immutability while&#xA;the sets are small enough, and may be substantially more&#xA;efficient than something like SimpleAttributeSet.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548362_78901_23647"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_265337_18106" name="" supplier="_9_5_f720368_1110473546784_555985_10521" client="_9_5_f720368_1110473548362_78901_23647" contract="_9_5_f720368_1110473546784_555985_10521"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323882_94486_18107" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548362_78901_23647" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_436800_10419" name="AbstractWriter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317543_937778_11975" body="AbstractWriter is an abstract class that actually&#xA;does the work of writing out the element tree&#xA;including the attributes.  In terms of how much is&#xA;written out per line, the writer defaults to 100.&#xA;But this value can be set by subclasses.&#xA;&#xA;@author Sunita Mani&#xA;@version 1.21, 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_436800_10419"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_343355_10443" name="DefaultFormatter" clientDependency="_10_5_622020d_1132928323852_54203_17982 _10_5_622020d_1132928323862_618480_17983">
              <ownedComment xmi:id="_10_5_622020d_1132928317583_100354_12021" body="&lt;code>DefaultFormatter&lt;/code> formats aribtrary objects. Formatting is done&#xA;by invoking the &lt;code>toString&lt;/code> method. In order to convert the&#xA;value back to a String, your class must provide a constructor that&#xA;takes a String argument. If no single argument constructor that takes a&#xA;String is found, the returned value will be the String passed into&#xA;&lt;code>stringToValue&lt;/code>.&#xA;&lt;p>&#xA;Instances of &lt;code>DefaultFormatter&lt;/code> can not be used in multiple&#xA;instances of &lt;code>JFormattedTextField&lt;/code>. To obtain a copy of&#xA;an already configured &lt;code>DefaultFormatter&lt;/code>, use the&#xA;&lt;code>clone&lt;/code> method.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.JFormattedTextField.AbstractFormatter&#xA;&#xA;@version 1.13 05/05/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_343355_10443"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_368629_17984" isSubstitutable="true" general="_9_5_f720368_1110473548378_844822_23779"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323852_54203_17982" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_343355_10443" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_618480_17983" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_343355_10443" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_960021_23454" name="ReplaceHolder" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_875303_12017" body="ReplaceHolder is used to track where insert/remove/replace is&#xA;going to happen.&#xA;" annotatedElement="_9_5_f720368_1110473548346_960021_23454"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_518850_23457" name="DefaultNavigationFilter" visibility="private" clientDependency="_10_5_622020d_1132928323862_510281_17985">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_394128_12018" body="NavigationFilter implementation that calls back to methods with&#xA;same name in DefaultFormatter.&#xA;" annotatedElement="_9_5_f720368_1110473548346_518850_23457"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_595142_17986" isSubstitutable="true" general="_9_5_f720368_1110473546784_841531_10497"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_510281_17985" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548346_518850_23457" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_728150_23459" name="DefaultDocumentFilter" visibility="private" clientDependency="_10_5_622020d_1132928323862_526552_17987">
                <ownedComment xmi:id="_10_5_622020d_1132928317583_291594_12019" body="DocumentFilter implementation that calls back to the replace&#xA;method of DefaultFormatter.&#xA;" annotatedElement="_9_5_f720368_1110473548346_728150_23459"/>
                <generalization xmi:id="_10_5_622020d_1132928323862_896644_17988" isSubstitutable="true" general="_9_5_f720368_1110473546784_538863_10455"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323862_526552_17987" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548346_728150_23459" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_150050_10453" name="Document" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317593_984785_12046" body="&lt;p>&#xA;The &lt;code>Document&lt;/code> is a container for text that serves&#xA;as the model for swing text components.  The goal for this&#xA;interface is to scale from very simple needs (a plain text textfield)&#xA;to complex needs (an HTML or XML document, for example).&#xA;&#xA;&lt;p>&lt;b>&lt;font size=+1>Content&lt;/font>&lt;/b>&#xA;&lt;p>&#xA;At the simplest level, text can be&#xA;modeled as a linear sequence of characters. To support&#xA;internationalization, the Swing text model uses&#xA;&lt;a href=&quot;http://www.unicode.org/&quot;>unicode&lt;/a> characters.&#xA;The sequence of characters displayed in a text component is&#xA;generally referred to as the component's &lt;em>content&lt;/em>.&#xA;&lt;p>&#xA;To refer to locations within the sequence, the coordinates&#xA;used are the location between two characters.  As the diagram&#xA;below shows, a location in a text document can be referred to&#xA;as a position, or an offset. This position is zero-based.&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/Document-coord.gif&quot;&#xA;alt=&quot;The following text describes this graphic.&quot;>&#xA;&lt;p>&#xA;In the example, if the content of a document is the&#xA;sequence &quot;The quick brown fox,&quot; as shown in the preceding diagram,&#xA;the location just before the word &quot;The&quot; is 0, and the location after&#xA;the word &quot;The&quot; and before the whitespace that follows it is 3.&#xA;The entire sequence of characters in the sequence &quot;The&quot; is called a&#xA;&lt;em>range&lt;/em>.&#xA;&lt;p>The following methods give access to the character data&#xA;that makes up the content.&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#getLength()&quot;>getLength()&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getText(int, int)&quot;>getText(int, int)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getText(int, int, javax.swing.text.Segment)&quot;>getText(int, int, Segment)&lt;/a>&#xA;&lt;/ul>&#xA;&lt;p>&lt;b>&lt;font size=+1>Structure&lt;/font>&lt;/b>&#xA;&lt;p>&#xA;Text is rarely represented simply as featureless content. Rather,&#xA;text typically has some sort of structure associated with it.&#xA;Exactly what structure is modeled is up to a particular Document&#xA;implementation.  It might be as simple as no structure (i.e. a&#xA;simple text field), or it might be something like diagram below.&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/Document-structure.gif&quot;&#xA;alt=&quot;Diagram shows Book->Chapter->Paragraph&quot;>&#xA;&lt;p>&#xA;The unit of structure (i.e. a node of the tree) is referred to&#xA;by the &lt;a href=&quot;Element.html&quot;>Element&lt;/a> interface.  Each Element&#xA;can be tagged with a set of attributes.  These attributes&#xA;(name/value pairs) are defined by the&#xA;&lt;a href=&quot;AttributeSet.html&quot;>AttributeSet&lt;/a> interface.&#xA;&lt;p>The following methods give access to the document structure.&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#getDefaultRootElement()&quot;>getDefaultRootElement&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getRootElements()&quot;>getRootElements&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&lt;b>&lt;font size=+1>Mutations&lt;/font>&lt;/b>&#xA;&lt;p>&#xA;All documents need to be able to add and remove simple text.&#xA;Typically, text is inserted and removed via gestures from&#xA;a keyboard or a mouse.  What effect the insertion or removal&#xA;has upon the document structure is entirely up to the&#xA;implementation of the document.&#xA;&lt;p>The following methods are related to mutation of the&#xA;document content:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#insertString(int, java.lang.String, javax.swing.text.AttributeSet)&quot;>insertString(int, String, AttributeSet)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#remove(int, int)&quot;>remove(int, int)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#createPosition(int)&quot;>createPosition(int)&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&lt;b>&lt;font size=+1>Notification&lt;/font>&lt;/b>&#xA;&lt;p>&#xA;Mutations to the &lt;code>Document&lt;/code> must be communicated to&#xA;interested observers.  The notification of change follows the event model&#xA;guidelines that are specified for JavaBeans.  In the JavaBeans&#xA;event model, once an event notification is dispatched, all listeners&#xA;must be notified before any further mutations occur to the source&#xA;of the event.  Further, order of delivery is not guaranteed.&#xA;&lt;p>&#xA;Notification is provided as two separate events,&#xA;&lt;a href=&quot;../event/DocumentEvent.html&quot;>DocumentEvent&lt;/a>, and&#xA;&lt;a href=&quot;../event/UndoableEditEvent.html&quot;>UndoableEditEvent&lt;/a>.&#xA;If a mutation is made to a &lt;code>Document&lt;/code> through its api,&#xA;a &lt;code>DocumentEvent&lt;/code> will be sent to all of the registered&#xA;&lt;code>DocumentListeners&lt;/code>.  If the &lt;code>Document&lt;/code>&#xA;implementation supports undo/redo capabilities, an&#xA;&lt;code>UndoableEditEvent&lt;/code> will be sent&#xA;to all of the registered &lt;code>UndoableEditListener&lt;/code>s.&#xA;If an undoable edit is undone, a &lt;code>DocumentEvent&lt;/code> should be&#xA;fired from the Document to indicate it has changed again.&#xA;In this case however, there should be no &lt;code>UndoableEditEvent&lt;/code>&#xA;generated since that edit is actually the source of the change&#xA;rather than a mutation to the &lt;code>Document&lt;/code> made through its&#xA;api.&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/Document-notification.gif&quot;&#xA;alt=&quot;The preceeding text describes this graphic.&quot;>&#xA;&lt;p>&#xA;Referring to the above diagram, suppose that the component shown&#xA;on the left mutates the document object represented by the blue&#xA;rectangle. The document responds by dispatching a DocumentEvent to&#xA;both component views and sends an UndoableEditEvent to the listening&#xA;logic, which maintains a history buffer.&#xA;&lt;p>&#xA;Now suppose that the component shown on the right mutates the same&#xA;document.  Again, the document dispatches a DocumentEvent to both&#xA;component views and sends an UndoableEditEvent to the listening logic&#xA;that is maintaining the history buffer.&#xA;&lt;p>&#xA;If the history buffer is then rolled back (i.e. the last UndoableEdit&#xA;undone), a DocumentEvent is sent to both views, causing both of them to&#xA;reflect the undone mutation to the document (that is, the&#xA;removal of the right component's mutation). If the history buffer again&#xA;rolls back another change, another DocumentEvent is sent to both views,&#xA;causing them to reflect the undone mutation to the document -- that is,&#xA;the removal of the left component's mutation.&#xA;&lt;p>&#xA;The methods related to observing mutations to the document are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#addDocumentListener(javax.swing.event.DocumentListener)&quot;>addDocumentListener(DocumentListener)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#removeDocumentListener(javax.swing.event.DocumentListener)&quot;>removeDocumentListener(DocumentListener)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#addUndoableEditListener(javax.swing.event.UndoableEditListener)&quot;>addUndoableEditListener(UndoableEditListener)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#removeUndoableEditListener(javax.swing.event.UndoableEditListener)&quot;>removeUndoableEditListener(UndoableEditListener)&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>&lt;b>&lt;font size=+1>Properties&lt;/font>&lt;/b>&#xA;&lt;p>&#xA;Document implementations will generally have some set of properties&#xA;associated with them at runtime.  Two well known properties are the&#xA;&lt;a href=&quot;#StreamDescriptionProperty&quot;>StreamDescriptionProperty&lt;/a>,&#xA;which can be used to describe where the &lt;code>Document&lt;/code> came from,&#xA;and the &lt;a href=&quot;#TitleProperty&quot;>TitleProperty&lt;/a>, which can be used to&#xA;name the &lt;code>Document&lt;/code>.  The methods related to the properties are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#getProperty(java.lang.Object)&quot;>getProperty(Object)&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#putProperty(java.lang.Object, java.lang.Object)&quot;>putProperty(Object, Object)&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>For more information on the &lt;code>Document&lt;/code> class, see&#xA;&lt;a href=&quot;http://java.sun.com/products/jfc/tsc&quot;>The Swing Connection&lt;/a>&#xA;and most particularly the article,&#xA;&lt;a href=&quot;http://java.sun.com/products/jfc/tsc/articles/text/element_interface&quot;>&#xA;The Element Interface&lt;/a>.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.43 12/19/03&#xA;&#xA;@see javax.swing.event.DocumentEvent&#xA;@see javax.swing.event.DocumentListener&#xA;@see javax.swing.event.UndoableEditEvent&#xA;@see javax.swing.event.UndoableEditListener&#xA;@see Element&#xA;@see Position&#xA;@see AttributeSet&#xA;" annotatedElement="_9_5_f720368_1110473546784_150050_10453"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_235862_10435" name="CompositeView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317553_481498_11999" body="&lt;code>CompositeView&lt;/code> is an abstract &lt;code>View&lt;/code>&#xA;implementation which manages one or more child views.&#xA;(Note that &lt;code>CompositeView&lt;/code> is intended&#xA;for managing relatively small numbers of child views.)&#xA;&lt;code>CompositeView&lt;/code> is intended to be used as&#xA;a starting point for &lt;code>View&lt;/code> implementations,&#xA;such as &lt;code>BoxView&lt;/code>, that will contain child&#xA;&lt;code>View&lt;/code>s. Subclasses that wish to manage the&#xA;collection of child &lt;code>View&lt;/code>s should use the&#xA;{@link #replace} method.  As &lt;code>View&lt;/code> invokes&#xA;&lt;code>replace&lt;/code> during &lt;code>DocumentListener&lt;/code>&#xA;notification, you normally won't need to directly&#xA;invoke &lt;code>replace&lt;/code>.&#xA;&#xA;&lt;p>While &lt;code>CompositeView&lt;/code>&#xA;does not impose a layout policy on its child &lt;code>View&lt;/code>s,&#xA;it does allow for inseting the child &lt;code>View&lt;/code>s&#xA;it will contain.  The insets can be set by either&#xA;{@link #setInsets} or {@link #setParagraphInsets}.&#xA;&#xA;&lt;p>In addition to the abstract methods of&#xA;{@link javax.swing.text.View},&#xA;subclasses of &lt;code>CompositeView&lt;/code> will need to&#xA;override:&#xA;&lt;ul>&#xA;&lt;li>{@link #isBefore} - Used to test if a given&#xA;&lt;code>View&lt;/code> location is before the visual space&#xA;of the &lt;code>CompositeView&lt;/code>.&#xA;&lt;li>{@link #isAfter} - Used to test if a given&#xA;&lt;code>View&lt;/code> location is after the visual space&#xA;of the &lt;code>CompositeView&lt;/code>.&#xA;&lt;li>{@link #getViewAtPoint} - Returns the view at&#xA;a given visual location.&#xA;&lt;li>{@link #childAllocation} - Returns the bounds of&#xA;a particular child &lt;code>View&lt;/code>.&#xA;&lt;code>getChildAllocation&lt;/code> will invoke&#xA;&lt;code>childAllocation&lt;/code> after offseting&#xA;the bounds by the &lt;code>Inset&lt;/code>s of the&#xA;&lt;code>CompositeView&lt;/code>.&#xA;&lt;/ul>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.67 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_235862_10435"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_261544_17936" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_732622_10441" name="DefaultEditorKit">
              <ownedComment xmi:id="_10_5_622020d_1132928317583_327078_12016" body="This is the set of things needed by a text component&#xA;to be a reasonably functioning editor for some &lt;em>type&lt;/em>&#xA;of text document.  This implementation provides a default&#xA;implementation which treats text as plain text and&#xA;provides a minimal set of actions for a simple editor.&#xA;&lt;p>&#xA;&lt;dl>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Newlines&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;There are two properties which deal with newlines.  The&#xA;system property, &lt;code>line.separator&lt;/code>, is defined to be&#xA;platform-dependent, either &quot;\n&quot;, &quot;\r&quot;, or &quot;\r\n&quot;.  There is also&#xA;a property defined in &lt;code>DefaultEditorKit&lt;/code>, called&#xA;&lt;a href=#EndOfLineStringProperty>&lt;code>EndOfLineStringProperty&lt;/code>&lt;/a>,&#xA;which is defined automatically when a document is loaded, to be&#xA;the first occurrence of any of the newline characters.&#xA;When a document is loaded, &lt;code>EndOfLineStringProperty&lt;/code>&#xA;is set appropriately, and when the document is written back out, the&#xA;&lt;code>EndOfLineStringProperty&lt;/code> is used.  But while the document&#xA;is in memory, the &quot;\n&quot; character is used to define a&#xA;newline, regardless of how the newline is defined when&#xA;the document is on disk.  Therefore, for searching purposes,&#xA;&quot;\n&quot; should always be used.  When a new document is created,&#xA;and the &lt;code>EndOfLineStringProperty&lt;/code> has not been defined,&#xA;it will use the System property when writing out the&#xA;document.&#xA;&lt;p>Note that &lt;code>EndOfLineStringProperty&lt;/code> is set&#xA;on the &lt;code>Document&lt;/code> using the &lt;code>get/setProperty&lt;/code>&#xA;methods.  Subclasses may override this behavior.&#xA;&#xA;&lt;/dl>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.67 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_732622_10441"/>
              <generalization xmi:id="_10_5_622020d_1132928323852_178951_17949" isSubstitutable="true" general="_9_5_f720368_1110473546784_267959_10457"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_586921_23379" name="DefaultKeyTypedAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317563_269914_12005" body="The action that is executed by default if&#xA;a &lt;em>key typed event&lt;/em> is received and there&#xA;is no keymap entry.  There is a variation across&#xA;different VM's in what gets sent as a &lt;em>key typed&lt;/em>&#xA;event, and this action tries to filter out the undesired&#xA;events.  This filters the control characters and those&#xA;with the ALT modifier.  It allows Control-Alt sequences&#xA;through as these form legitimate unicode characters on&#xA;some PC keyboards.&#xA;&lt;p>&#xA;If the event doesn't get filtered, it will try to insert&#xA;content into the text editor.  The content is fetched&#xA;from the command string of the ActionEvent.  The text&#xA;entry is done through the &lt;code>replaceSelection&lt;/code>&#xA;method on the target text component.  This is the&#xA;action that will be fired for most text entry tasks.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#defaultKeyTypedAction&#xA;@see DefaultEditorKit#getActions&#xA;@see Keymap#setDefaultAction&#xA;@see Keymap#getDefaultAction&#xA;" annotatedElement="_9_5_f720368_1110473548331_586921_23379"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_29849_17950" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_234375_23382" name="InsertContentAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_175454_12006" body="Places content into the associated document.&#xA;If there is a selection, it is removed before&#xA;the new content is added.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#insertContentAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548331_234375_23382"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_960990_17951" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_585920_23385" name="InsertBreakAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_75454_12007" body="Places a line/paragraph break into the document.&#xA;If there is a selection, it is removed before&#xA;the break is added.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#insertBreakAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548331_585920_23385"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_91685_17952" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548331_151504_23388" name="InsertTabAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_61069_12008" body="Places a tab character into the document. If there&#xA;is a selection, it is removed before the tab is added.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#insertTabAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548331_151504_23388"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_503170_17953" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_487469_23391" name="DeletePrevCharAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_732011_17954" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_275430_23393" name="DeleteNextCharAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_659818_17955" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_152808_23395" name="ReadOnlyAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_276965_17956" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_636705_23397" name="WritableAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_8522_17957" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_132000_23399" name="CutAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_718150_12009" body="Cuts the selected region and place its contents&#xA;into the system clipboard.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#cutAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548346_132000_23399"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_843991_17958" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_832749_23402" name="CopyAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_214175_12010" body="Copies the selected region and place its contents&#xA;into the system clipboard.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#copyAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548346_832749_23402"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_722958_17959" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_242796_23405" name="PasteAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_503223_12011" body="Pastes the contents of the system clipboard into the&#xA;selected region, or before the caret if nothing is&#xA;selected.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#pasteAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548346_242796_23405"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_682829_17960" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_952013_23408" name="BeepAction">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_592109_12012" body="Creates a beep.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see DefaultEditorKit#beepAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548346_952013_23408"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_178579_17961" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_748869_23411" name="VerticalPageAction" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_425717_12013" body="Scrolls up/down vertically.  The select version of this action extends&#xA;the selection, instead of simply moving the caret.&#xA;&#xA;@see DefaultEditorKit#pageUpAction&#xA;@see DefaultEditorKit#selectPageUpAction&#xA;@see DefaultEditorKit#getActions&#xA;" annotatedElement="_9_5_f720368_1110473548346_748869_23411"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_189426_17962" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_717990_23414" name="PageAction" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317573_917924_12014" body="Pages one view to the left or right.&#xA;" annotatedElement="_9_5_f720368_1110473548346_717990_23414"/>
                <generalization xmi:id="_10_5_622020d_1132928323852_218934_17963" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_613019_23417" name="DumpModelAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_586823_17964" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_721123_23419" name="NextVisualPositionAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_790106_17965" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_496820_23421" name="BeginWordAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_242062_17966" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_478808_23423" name="EndWordAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_889540_17967" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_767471_23425" name="PreviousWordAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_919096_17968" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_129666_23427" name="NextWordAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_802441_17969" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_855204_23429" name="BeginLineAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_10332_17970" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_217054_23431" name="EndLineAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_758733_17971" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_938550_23433" name="BeginParagraphAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_640078_17972" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_410340_23435" name="EndParagraphAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_46562_17973" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_872075_23437" name="BeginAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_78660_17974" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_989374_23439" name="EndAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_390585_17975" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_341311_23441" name="SelectWordAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_873883_17976" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_179214_23443" name="SelectLineAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_936271_17977" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_331080_23445" name="SelectParagraphAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_615084_17978" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_480398_23447" name="SelectAllAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_382515_17979" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_931912_23449" name="UnselectAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_52845_17980" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548346_844151_23451" name="ToggleComponentOrientationAction" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928323852_846810_17981" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_207616_10531" name="TabableView" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317723_57244_12181" body="Interface for &lt;code>View&lt;/code>s that have size dependent upon tabs.&#xA;&#xA;@author  Timothy Prinzing&#xA;@author  Scott Violet&#xA;@version 1.10 12/19/03&#xA;@see TabExpander&#xA;@see LabelView&#xA;@see ParagraphView&#xA;" annotatedElement="_9_5_f720368_1110473546784_207616_10531"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_267959_10457" name="EditorKit" clientDependency="_10_5_622020d_1132928323862_325400_18006 _10_5_622020d_1132928323862_108776_18007" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317603_169336_12051" body="Establishes the set of things needed by a text component&#xA;to be a reasonably functioning editor for some &lt;em>type&lt;/em>&#xA;of text content.  The EditorKit acts as a factory for some&#xA;kind of policy.  For example, an implementation&#xA;of html and rtf can be provided that is replaceable&#xA;with other implementations.&#xA;&lt;p>&#xA;A kit can safely store editing state as an instance&#xA;of the kit will be dedicated to a text component.&#xA;New kits will normally be created by cloning a&#xA;prototype kit.  The kit will have it's&#xA;&lt;code>setComponent&lt;/code> method called to establish&#xA;it's relationship with a JTextComponent.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.19 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_267959_10457"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_325400_18006" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_267959_10457" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323862_108776_18007" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_267959_10457" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_593808_10451" name="DefaultTextUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317593_441645_12044" body="&lt;p>&#xA;This class has been deprecated and should no longer be used.&#xA;The basis of the various TextUI implementations can be found&#xA;in the javax.swing.plaf.basic package and the class&#xA;BasicTextUI replaces this class.&#xA;&#xA;@deprecated&#xA;" annotatedElement="_9_5_f720368_1110473546784_593808_10451"/>
              <generalization xmi:id="_10_5_622020d_1132928323862_5358_18005" isSubstitutable="true" general="_9_5_f720368_1110473546753_662116_10031"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_975109_10547" name="View" clientDependency="_10_5_622020d_1132928323892_2046_18133" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317743_980539_12204" body="&lt;p>&#xA;A very important part of the text package is the &lt;code>View&lt;/code> class.&#xA;As the name suggests it represents a view of the text model,&#xA;or a piece of the text model.&#xA;It is this class that is responsible for the look of the text component.&#xA;The view is not intended to be some completely new thing that one must&#xA;learn, but rather is much like a lightweight component.&#xA;In fact, the original &lt;code>View&lt;/code> implementation was a&#xA;lightweight component.   There were several reasons why&#xA;the &lt;code>Component&lt;/code> implementation was abandoned in favor of&#xA;an alternative.&#xA;&lt;ol>&#xA;&lt;li>&#xA;&lt;p>&#xA;There was barely time to get the lightweight component support in the&#xA;1.1 version of the JDK.  There simply wasn't time to lighten up the&#xA;component further to where it would need to be to be used for text purposes.&#xA;The additions made to &lt;code>JComponent&lt;/code> increased the memory&#xA;consumption, and as it currently stands its much too heavy for&#xA;representing text.&#xA;&lt;/p>&#xA;&lt;li>&#xA;&lt;p>&#xA;The layout semantics aren't quite right for text,&#xA;and changing the current layout&#xA;semantics of component might break existing applications.&#xA;&lt;/p>&#xA;&lt;li>&#xA;&lt;p>&#xA;The component api uses integers, but in 1.2 one can use floating point&#xA;device independent coordinates.  An api that works in both 1.1 and 1.2&#xA;would be convenient for minimizing transition difficulties.  The&#xA;&lt;code>View&lt;/code> class uses the &lt;code>Shape&lt;/code> interface and&#xA;float arguments to enable View implementations for the Java 2 platform&#xA;v1.2 and later while still functioning in the older 1.1 JDK.&#xA;&lt;/p>&#xA;&lt;/ol>&#xA;&lt;p>&#xA;By default, a view is very light.  It contains a reference to the parent&#xA;view from which it can fetch many things without holding state, and it&#xA;contains a reference to a portion of the model (&lt;/code>Element&lt;/code>).&#xA;A view does not&#xA;have to exactly represent an element in the model, that is simply a typical&#xA;and therefore convenient mapping.  A view can alternatively maintain a couple&#xA;of Position objects to maintain its location in the model (i.e. represent&#xA;a fragment of an element).  This is typically the result of formatting where&#xA;views have been broken down into pieces.  The convenience of a substantial&#xA;relationship to the element makes it easier to build factories to produce the&#xA;views, and makes it easier  to keep track of the view pieces as the model is&#xA;changed and the view must be changed to reflect the model.  Simple views&#xA;therefore represent an Element directly and complex views do not.&#xA;&lt;p>&#xA;A view has the following responsibilities:&#xA;&lt;dl>&#xA;&lt;dt>&lt;b>Participate in layout.&lt;/b>&#xA;&lt;dd>&#xA;&lt;p>The view has a &lt;code>setSize&lt;/code> method which is like&#xA;&lt;code>doLayout&lt;/code> and &lt;code>setSize&lt;/code> in &lt;code>Component&lt;/code> combined.&#xA;The view has a &lt;code>preferenceChanged&lt;/code> method which is&#xA;like &lt;code>invalidate&lt;/code> in &lt;code>Component&lt;/code> except that one can&#xA;invalidate just one axis&#xA;and the child requesting the change is identified.&#xA;&lt;p>A View expresses the size that it would like to be in terms of three&#xA;values, a minimum, a preferred, and a maximum span.  Layout in a view is&#xA;can be done independently upon each axis.  For a properly functioning View&#xA;implementation, the minimum span will be &lt;= the preferred span which in turn&#xA;will be &lt;= the maximum span.&#xA;&lt;/p>&#xA;&lt;p align=center>&lt;img src=&quot;doc-files/View-flexibility.jpg&quot;&#xA;alt=&quot;The above text describes this graphic.&quot;>&#xA;&lt;p>The minimum set of methods for layout are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#getMinimumSpan(int)&quot;>getMinimumSpan&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getPreferredSpan(int)&quot;>getPreferredSpan&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getMaximumSpan(int)&quot;>getMaximumSpan&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getAlignment(int)&quot;>getAlignment&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#preferenceChanged(javax.swing.text.View, boolean, boolean)&quot;>preferenceChanged&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#setSize(float, float)&quot;>setSize&lt;/a>&#xA;&lt;/ul>&#xA;&#xA;&lt;p>The &lt;code>setSize&lt;/code> method should be prepared to be called a number of times&#xA;(i.e. It may be called even if the size didn't change).&#xA;The &lt;code>setSize&lt;/code> method&#xA;is generally called to make sure the View layout is complete prior to trying&#xA;to perform an operation on it that requires an up-to-date layout.  A view's&#xA;size should &lt;em>always&lt;/em> be set to a value within the minimum and maximum&#xA;span specified by that view.  Additionally, the view must always call the&#xA;&lt;code>preferenceChanged&lt;/code> method on the parent if it has changed the&#xA;values for the&#xA;layout it would like, and expects the parent to honor.  The parent View is&#xA;not required to recognize a change until the &lt;code>preferenceChanged&lt;/code>&#xA;has been sent.&#xA;This allows parent View implementations to cache the child requirements if&#xA;desired.  The calling sequence looks something like the following:&#xA;&lt;/p>&#xA;&lt;p align=center>&#xA;&lt;img src=&quot;doc-files/View-layout.jpg&quot;&#xA;alt=&quot;Sample calling sequence between parent view and child view:&#xA;setSize, getMinimum, getPreferred, getMaximum, getAlignment, setSize&quot;>&#xA;&lt;p>The exact calling sequence is up to the layout functionality of&#xA;the parent view (if the view has any children).  The view may collect&#xA;the preferences of the children prior to determining what it will give&#xA;each child, or it might iteratively update the children one at a time.&#xA;&lt;/p>&#xA;&lt;dt>&lt;b>Render a portion of the model.&lt;/b>&#xA;&lt;dd>&#xA;&lt;p>This is done in the paint method, which is pretty much like a component&#xA;paint method.  Views are expected to potentially populate a fairly large&#xA;tree.  A &lt;code>View&lt;/code> has the following semantics for rendering:&#xA;&lt;/p>&#xA;&lt;ul>&#xA;&lt;li>The view gets its allocation from the parent at paint time, so it&#xA;must be prepared to redo layout if the allocated area is different from&#xA;what it is prepared to deal with.&#xA;&lt;li>The coordinate system is the same as the hosting &lt;code>Component&lt;/code>&#xA;(i.e. the &lt;code>Component&lt;/code> returned by the&#xA;&lt;a href=&quot;#getContainer&quot;>getContainer&lt;/a> method).&#xA;This means a child view lives in the same coordinate system as the parent&#xA;view unless the parent has explicitly changed the coordinate system.&#xA;To schedule itself to be repainted a view can call repaint on the hosting&#xA;&lt;code>Component&lt;/code>.&#xA;&lt;li>The default is to &lt;em>not clip&lt;/em> the children.  It is more efficient&#xA;to allow a view to clip only if it really feels it needs clipping.&#xA;&lt;li>The &lt;code>Graphics&lt;/code> object given is not initialized in any way.&#xA;A view should set any settings needed.&#xA;&lt;li>A &lt;code>View&lt;/code> is inherently transparent.  While a view may render into its&#xA;entire allocation, typically a view does not.  Rendering is performed by&#xA;tranversing down the tree of &lt;code>View&lt;/code> implementations.&#xA;Each &lt;code>View&lt;/code> is responsible&#xA;for rendering its children.  This behavior is depended upon for thread&#xA;safety.  While view implementations do not necessarily have to be implemented&#xA;with thread safety in mind, other view implementations that do make use of&#xA;concurrency can depend upon a tree traversal to guarantee thread safety.&#xA;&lt;li>The order of views relative to the model is up to the implementation.&#xA;Although child views will typically be arranged in the same order that they&#xA;occur in the model, they may be visually arranged in an entirely different&#xA;order.  View implementations may have Z-Order associated with them if the&#xA;children are overlapping.&#xA;&lt;/ul>&#xA;&lt;p>The methods for rendering are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#paint(java.awt.Graphics, java.awt.Shape)&quot;>paint&lt;/a>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;dt>&lt;b>Translate between the model and view coordinate systems.&lt;/b>&#xA;&lt;dd>&#xA;&lt;p>Because the view objects are produced from a factory and therefore cannot&#xA;necessarily be counted upon to be in a particular pattern, one must be able&#xA;to perform translation to properly locate spatial representation of the model.&#xA;The methods for doing this are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#modelToView(int, javax.swing.text.Position.Bias, int, javax.swing.text.Position.Bias, java.awt.Shape)&quot;>modelToView&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])&quot;>viewToModel&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getDocument()&quot;>getDocument&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getElement()&quot;>getElement&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getStartOffset()&quot;>getStartOffset&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#getEndOffset()&quot;>getEndOffset&lt;/a>&#xA;&lt;/ul>&#xA;&lt;p>The layout must be valid prior to attempting to make the translation.&#xA;The translation is not valid, and must not be attempted while changes&#xA;are being broadcasted from the model via a &lt;code>DocumentEvent&lt;/code>.&#xA;&lt;/p>&#xA;&lt;dt>&lt;b>Respond to changes from the model.&lt;/b>&#xA;&lt;dd>&#xA;&lt;p>If the overall view is represented by many pieces (which is the best situation&#xA;if one want to be able to change the view and write the least amount of new code),&#xA;it would be impractical to have a huge number of &lt;code>DocumentListener&lt;/code>s.&#xA;If each&#xA;view listened to the model, only a few would actually be interested in the&#xA;changes broadcasted at any given time.   Since the model has no knowledge of&#xA;views, it has no way to filter the broadcast of change information.  The view&#xA;hierarchy itself is instead responsible for propagating the change information.&#xA;At any level in the view hierarchy, that view knows enough about its children to&#xA;best distribute the change information further.   Changes are therefore broadcasted&#xA;starting from the root of the view hierarchy.&#xA;The methods for doing this are:&#xA;&lt;ul>&#xA;&lt;li>&lt;a href=&quot;#insertUpdate&quot;>insertUpdate&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#removeUpdate&quot;>removeUpdate&lt;/a>&#xA;&lt;li>&lt;a href=&quot;#changedUpdate&quot;>changedUpdate&lt;/a>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;&lt;/dl>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.70 05/18/04&#xA;" annotatedElement="_9_5_f720368_1110473546784_975109_10547"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323892_2046_18133" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546784_975109_10547" contract="_9_5_f720368_1110473546799_869308_10869"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_181396_10511" name="Segment" clientDependency="_10_5_622020d_1132928323882_211302_18077 _10_5_622020d_1132928323882_968638_18078">
              <ownedComment xmi:id="_10_5_622020d_1132928317683_767208_12135" body="A segment of a character array representing a fragment&#xA;of text.  It should be treated as immutable even though&#xA;the array is directly accessible.  This gives fast access&#xA;to fragments of text without the overhead of copying&#xA;around characters.  This is effectively an unprotected&#xA;String.&#xA;&lt;p>&#xA;The Segment implements the java.text.CharacterIterator&#xA;interface to support use with the i18n support without&#xA;copying text into a string.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.22 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_181396_10511"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_211302_18077" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_181396_10511" contract="_9_5_f720368_1110473546612_888397_7587"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323882_968638_18078" name="" supplier="_9_5_f720368_1110473546690_140017_8623" client="_9_5_f720368_1110473546784_181396_10511" contract="_9_5_f720368_1110473546690_140017_8623"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_951447_10663" name="DefaultCellEditor" clientDependency="_10_5_622020d_1132928323962_626059_18245 _10_5_622020d_1132928323962_273886_18244">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_110293_12340" body="The default editor for table and tree cells.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.50 12/19/03&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546784_951447_10663"/>
            <generalization xmi:id="_10_5_622020d_1132928323962_174988_18246" isSubstitutable="true" general="_9_5_f720368_1110473546784_98267_10615"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323962_273886_18244" name="" supplier="_9_5_f720368_1110473546768_601206_10291" client="_9_5_f720368_1110473546784_951447_10663" contract="_9_5_f720368_1110473546768_601206_10291"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323962_626059_18245" name="" supplier="_9_5_f720368_1110473546784_342764_10577" client="_9_5_f720368_1110473546784_951447_10663" contract="_9_5_f720368_1110473546784_342764_10577"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_126718_24076" name="EditorDelegate" visibility="protected" clientDependency="_10_5_622020d_1132928323972_368527_18248 _10_5_622020d_1132928323972_858421_18249 _10_5_622020d_1132928323962_789820_18247">
              <ownedComment xmi:id="_10_5_622020d_1132928317843_403217_12338" body="The protected &lt;code>EditorDelegate&lt;/code> class.&#xA;" annotatedElement="_9_5_f720368_1110473548409_126718_24076"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323962_789820_18247" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548409_126718_24076" contract="_9_5_f720368_1110473546565_106737_6535"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323972_368527_18248" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473548409_126718_24076" contract="_9_5_f720368_1110473546565_919591_6581"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323972_858421_18249" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548409_126718_24076" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548128_385384_21128" name="plaf">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_282123_10233" name="LabelUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_258300_11696" body="Pluggable look and feel interface for JLabel.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546768_282123_10233"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_43826_17671" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_475119_10213" name="ComponentUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317342_57976_11679" body="The base class for all UI delegate objects in the Swing pluggable&#xA;look and feel architecture.  The UI delegate object for a Swing&#xA;component is responsible for implementing the aspects of the&#xA;component that depend on the look and feel.&#xA;The &lt;code>JComponent&lt;/code> class&#xA;invokes methods from this class in order to delegate operations&#xA;(painting, layout calculations, etc.) that may vary depending on the&#xA;look and feel installed.  &lt;b>Client programs should not invoke methods&#xA;on this class directly.&lt;/b>&#xA;&#xA;@see javax.swing.JComponent&#xA;@see javax.swing.UIManager&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_148788_10261" name="SplitPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_304156_11724" body="Pluggable look and feel interface for JSplitPane.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_148788_10261"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_685698_17685" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_820258_10209" name="ComboBoxUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317342_79089_11675" body="Pluggable look and feel interface for JComboBox.&#xA;&#xA;@version 1.19 12/19/03&#xA;@author Arnaud Weber&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546768_820258_10209"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_868939_17653" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_60659_10243" name="PanelUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_740849_11706" body="Pluggable look and feel interface for Panel.&#xA;&#xA;@version 1.8 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_60659_10243"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_277503_17676" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_286036_10267" name="TableUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_49417_11730" body="Pluggable look and feel interface for JTable.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546768_286036_10267"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_802045_17688" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_147025_10199" name="ActionMapUIResource" clientDependency="_10_5_622020d_1132928323751_540800_17630">
              <ownedComment xmi:id="_10_5_622020d_1132928317332_562479_11667" body="A subclass of javax.swing.ActionMap that implements UIResource.&#xA;UI classes which provide an ActionMap should use this class.&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_147025_10199"/>
              <generalization xmi:id="_10_5_622020d_1132928323751_205885_17631" isSubstitutable="true" general="_9_5_f720368_1110473546784_735162_10623"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323751_540800_17630" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_147025_10199" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_665989_10255" name="SeparatorUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_64004_11718" body="Pluggable look and feel interface for JSeparator.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546768_665989_10255"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_356489_17682" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_732615_10279" name="ViewportUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_798881_11742" body="Pluggable look and feel interface for JViewport.&#xA;&#xA;@version 1.1 05/01/98&#xA;@author Rich Schiavi&#xA;" annotatedElement="_9_5_f720368_1110473546768_732615_10279"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_601544_17693" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_166892_10223" name="FontUIResource" clientDependency="_10_5_622020d_1132928323762_639436_17661">
              <ownedComment xmi:id="_10_5_622020d_1132928317382_863812_11688" body="A subclass of java.awt.Font that implements UIResource.&#xA;UI classes which set default font properties should use&#xA;this class.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.plaf.UIResource&#xA;@version 1.14 12/19/03&#xA;@author Hans Muller&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546768_166892_10223"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_8784_17662" isSubstitutable="true" general="_9_5_f720368_1110473546581_23258_7009"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_639436_17661" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_166892_10223" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_743821_10265" name="TableHeaderUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_902404_11728" body="Pluggable look and feel interface for JTableHeader.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546768_743821_10265"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_140819_17687" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_121840_10275" name="TreeUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_202745_11738" body="Pluggable look and feel interface for JTree.&#xA;&#xA;@version 1.24 12/19/03&#xA;@author Rob Davis&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_121840_10275"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_52661_17692" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_650978_10239" name="MenuItemUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_108798_11702" body="Pluggable look and feel interface for JMenuItem.&#xA;&#xA;@version @(#)MenuItemUI.java&#x9;1.16 03/12/19&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546768_650978_10239"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_443409_17674" isSubstitutable="true" general="_9_5_f720368_1110473546768_866073_10203"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_21145_10245" name="PopupMenuUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_647315_11708" body="Pluggable look and feel interface for JPopupMenu.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546768_21145_10245"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_234138_17677" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_870469_10231" name="InternalFrameUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_332462_11694" body="Pluggable look and feel interface for JInternalFrame.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546768_870469_10231"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_560758_17670" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548268_689293_22606" name="multi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_188853_10187" name="MultiTableUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_476905_11444" body="A multiplexing UI used to combine &lt;code>TableUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.24 12/19/03 17:39:44&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_188853_10187"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_543414_17452" isSubstitutable="true" general="_9_5_f720368_1110473546768_286036_10267"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_163167_10181" name="MultiSplitPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_76602_11438" body="A multiplexing UI used to combine &lt;code>SplitPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.27 12/19/03 17:39:42&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_163167_10181"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_464580_17449" isSubstitutable="true" general="_9_5_f720368_1110473546768_148788_10261"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_678813_10147" name="MultiInternalFrameUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_562156_11404" body="A multiplexing UI used to combine &lt;code>InternalFrameUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.27 12/19/03 17:39:32&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_678813_10147"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_740629_17432" isSubstitutable="true" general="_9_5_f720368_1110473546768_870469_10231"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_105844_10179" name="MultiSpinnerUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_654762_11436" body="A multiplexing UI used to combine &lt;code>SpinnerUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.4 12/19/03 17:39:41&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_105844_10179"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_729373_17448" isSubstitutable="true" general="_9_5_f720368_1110473546768_345250_10259"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_95912_10191" name="MultiToolBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_244758_11448" body="A multiplexing UI used to combine &lt;code>ToolBarUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.28 12/19/03 17:39:45&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_95912_10191"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_274705_17454" isSubstitutable="true" general="_9_5_f720368_1110473546768_341955_10271"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_282892_10157" name="MultiMenuBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_451035_11414" body="A multiplexing UI used to combine &lt;code>MenuBarUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.28 12/19/03 17:39:34&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_282892_10157"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_409359_17437" isSubstitutable="true" general="_9_5_f720368_1110473546768_170631_10237"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_220820_10163" name="MultiPanelUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_558422_11420" body="A multiplexing UI used to combine &lt;code>PanelUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.12 12/19/03 17:39:36&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_220820_10163"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_170332_17440" isSubstitutable="true" general="_9_5_f720368_1110473546768_60659_10243"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_57400_10169" name="MultiRootPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_259300_11426" body="A multiplexing UI used to combine &lt;code>RootPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.5 12/19/03 17:39:38&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_57400_10169"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_532181_17443" isSubstitutable="true" general="_9_5_f720368_1110473546768_871270_10249"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_950366_10183" name="MultiTabbedPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_662544_11440" body="A multiplexing UI used to combine &lt;code>TabbedPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.28 12/19/03 17:39:42&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_950366_10183"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_40162_17450" isSubstitutable="true" general="_9_5_f720368_1110473546768_753437_10263"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_246249_10189" name="MultiTextUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_929351_11446" body="A multiplexing UI used to combine &lt;code>TextUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.34 12/19/03 17:39:44&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_246249_10189"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_385543_17453" isSubstitutable="true" general="_9_5_f720368_1110473546768_84892_10269"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_771113_10171" name="MultiScrollBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_225938_11428" body="A multiplexing UI used to combine &lt;code>ScrollBarUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:39&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_771113_10171"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_852437_17444" isSubstitutable="true" general="_9_5_f720368_1110473546768_401031_10251"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_488731_10173" name="MultiScrollPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_140922_11430" body="A multiplexing UI used to combine &lt;code>ScrollPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.27 12/19/03 17:39:39&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_488731_10173"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_333764_17445" isSubstitutable="true" general="_9_5_f720368_1110473546768_683694_10253"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_454903_10149" name="MultiLabelUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_999073_11406" body="A multiplexing UI used to combine &lt;code>LabelUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:32&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_454903_10149"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_634579_17433" isSubstitutable="true" general="_9_5_f720368_1110473546768_282123_10233"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_938280_10143" name="MultiDesktopPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_566322_11400" body="A multiplexing UI used to combine &lt;code>DesktopPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.24 12/19/03 17:39:31&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_938280_10143"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_863805_17430" isSubstitutable="true" general="_9_5_f720368_1110473546768_154367_10217"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_930547_10161" name="MultiOptionPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_243580_11418" body="A multiplexing UI used to combine &lt;code>OptionPaneUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.25 12/19/03 17:39:36&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_930547_10161"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_125111_17439" isSubstitutable="true" general="_9_5_f720368_1110473546768_718523_10241"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_904907_10167" name="MultiProgressBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_465295_11424" body="A multiplexing UI used to combine &lt;code>ProgressBarUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:37&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_904907_10167"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_467887_17442" isSubstitutable="true" general="_9_5_f720368_1110473546768_387223_10247"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_829639_10141" name="MultiDesktopIconUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_619002_11398" body="A multiplexing UI used to combine &lt;code>DesktopIconUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.24 12/19/03 17:39:30&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_829639_10141"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_610712_17429" isSubstitutable="true" general="_9_5_f720368_1110473546768_763316_10215"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_639486_10153" name="MultiLookAndFeel">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_995661_11410" body="&lt;p>A multiplexing look and feel that allows more than one UI&#xA;to be associated with a component at the same time.&#xA;The primary look and feel is called&#xA;the &lt;em>default&lt;/em> look and feel,&#xA;and the other look and feels are called &lt;em>auxiliary&lt;/em>.&#xA;&lt;p>&#xA;&#xA;For further information, see&#xA;&lt;a href=&quot;doc-files/multi_tsc.html&quot; target=&quot;_top&quot;>Using the&#xA;Multiplexing Look and Feel.&lt;/a>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see UIManager#addAuxiliaryLookAndFeel&#xA;@see javax.swing.plaf.multi&#xA;&#xA;@version 1.34 12/19/03&#xA;@author Willie Walker&#xA;" annotatedElement="_9_5_f720368_1110473546768_639486_10153"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_882111_17435" isSubstitutable="true" general="_9_5_f720368_1110473546799_286745_10815"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_303450_10197" name="MultiViewportUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_489843_11454" body="A multiplexing UI used to combine &lt;code>ViewportUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.11 12/19/03 17:39:47&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_303450_10197"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_367637_17457" isSubstitutable="true" general="_9_5_f720368_1110473546768_732615_10279"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_933536_10139" name="MultiComboBoxUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_980699_11396" body="A multiplexing UI used to combine &lt;code>ComboBoxUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.32 12/19/03 17:39:29&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_933536_10139"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_995433_17428" isSubstitutable="true" general="_9_5_f720368_1110473546768_820258_10209"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_766719_10145" name="MultiFileChooserUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_424017_11402" body="A multiplexing UI used to combine &lt;code>FileChooserUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:31&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_766719_10145"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_39806_17431" isSubstitutable="true" general="_9_5_f720368_1110473546768_774609_10221"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_925692_10175" name="MultiSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_932285_11432" body="A multiplexing UI used to combine &lt;code>SeparatorUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:40&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_925692_10175"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_777055_17446" isSubstitutable="true" general="_9_5_f720368_1110473546768_665989_10255"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_404800_10137" name="MultiColorChooserUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_206093_11394" body="A multiplexing UI used to combine &lt;code>ColorChooserUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.21 12/19/03 17:39:29&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_404800_10137"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_366117_17427" isSubstitutable="true" general="_9_5_f720368_1110473546768_850345_10205"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_124854_10155" name="MultiUIDefaults" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_906139_11412" body="We want the Multiplexing LookAndFeel to be quiet and fallback&#xA;gracefully if it cannot find a UI.  This class overrides the&#xA;getUIError method of UIDefaults, which is the method that&#xA;emits error messages when it cannot find a UI class in the&#xA;LAF.&#xA;" annotatedElement="_9_5_f720368_1110473546768_124854_10155"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_4306_17436" isSubstitutable="true" general="_9_5_f720368_1110473546799_957974_10885"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_341959_10135" name="MultiButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_632048_11392" body="A multiplexing UI used to combine &lt;code>ButtonUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.27 12/19/03 17:39:28&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_341959_10135"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_911570_17426" isSubstitutable="true" general="_9_5_f720368_1110473546768_866073_10203"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_894638_10193" name="MultiToolTipUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_79350_11450" body="A multiplexing UI used to combine &lt;code>ToolTipUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:45&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_894638_10193"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_311580_17455" isSubstitutable="true" general="_9_5_f720368_1110473546768_948919_10273"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_198460_10195" name="MultiTreeUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_61081_11452" body="A multiplexing UI used to combine &lt;code>TreeUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.32 12/19/03 17:39:46&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_198460_10195"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_460006_17456" isSubstitutable="true" general="_9_5_f720368_1110473546768_121840_10275"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_950945_10165" name="MultiPopupMenuUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_975_11422" body="A multiplexing UI used to combine &lt;code>PopupMenuUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.28 12/19/03 17:39:37&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_950945_10165"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_460498_17441" isSubstitutable="true" general="_9_5_f720368_1110473546768_21145_10245"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_977058_10177" name="MultiSliderUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_69988_11434" body="A multiplexing UI used to combine &lt;code>SliderUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.26 12/19/03 17:39:40&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_977058_10177"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_391298_17447" isSubstitutable="true" general="_9_5_f720368_1110473546768_601118_10257"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_905330_10159" name="MultiMenuItemUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_377998_11416" body="A multiplexing UI used to combine &lt;code>MenuItemUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.28 12/19/03 17:39:35&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_905330_10159"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_356710_17438" isSubstitutable="true" general="_9_5_f720368_1110473546768_650978_10239"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_433336_10185" name="MultiTableHeaderUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317242_54194_11442" body="A multiplexing UI used to combine &lt;code>TableHeaderUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.25 12/19/03 17:39:43&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_433336_10185"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_619469_17451" isSubstitutable="true" general="_9_5_f720368_1110473546768_743821_10265"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_629216_10151" name="MultiListUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317232_788172_11408" body="A multiplexing UI used to combine &lt;code>ListUI&lt;/code>s.&#xA;&#xA;&lt;p>This file was automatically generated by AutoMulti.&#xA;&#xA;@version 1.27 12/19/03 17:39:33&#xA;@author  Otto Multey&#xA;" annotatedElement="_9_5_f720368_1110473546768_629216_10151"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_208654_17434" isSubstitutable="true" general="_9_5_f720368_1110473546768_195635_10235"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_4587_10225" name="IconUIResource" clientDependency="_10_5_622020d_1132928323762_269384_17665 _10_5_622020d_1132928323762_27018_17663 _10_5_622020d_1132928323762_494518_17664">
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_27018_17663" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473546768_4587_10225" contract="_9_5_f720368_1110473546784_576188_10693"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_494518_17664" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_4587_10225" contract="_9_5_f720368_1110473546768_203610_10277"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_269384_17665" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_4587_10225" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_866073_10203" name="ButtonUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317332_866832_11670" body="Pluggable look and feel interface for JButton.&#xA;&#xA;@version 1.20 04/02/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546768_866073_10203"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_943048_17649" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_84892_10269" name="TextUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_269078_11732" body="Text editor user interface&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.32 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_84892_10269"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_325113_17689" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_401031_10251" name="ScrollBarUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_309989_11714" body="Pluggable look and feel interface for JScrollBar.&#xA;&#xA;@version 1.12 03/12/19&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546768_401031_10251"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_332156_17680" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_753437_10263" name="TabbedPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_523258_11726" body="Pluggable look and feel interface for JTabbedPane.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Dave Moore&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546768_753437_10263"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_30208_17686" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_601118_10257" name="SliderUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_837665_11720" body="Pluggable look and feel interface for JSlider.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546768_601118_10257"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_779579_17683" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548128_866256_21129" name="basic">
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_411693_10049" name="ComboPopup" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_181833_11240" body="The interface which defines the methods required for the implementation of the popup&#xA;portion of a combo box.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_411693_10049"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_352653_9981" name="BasicMenuBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317122_997532_11058" body="A default L&amp;F implementation of MenuBarUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.80 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_352653_9981"/>
                <generalization xmi:id="_10_5_622020d_1132928323471_806790_16958" isSubstitutable="true" general="_9_5_f720368_1110473546768_170631_10237"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_76430_11055" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323471_411627_16960 _10_5_622020d_1132928323471_912056_16959">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_912056_16959" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317122_76430_11055" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_411627_16960" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_10_5_622020d_1132928317122_76430_11055" contract="_9_5_f720368_1110473546565_136951_6555"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_757628_11056" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_755917_10041" name="BasicTransferable" visibility="package" clientDependency="_10_5_622020d_1132928323561_741977_17152 _10_5_622020d_1132928323561_803039_17153">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_131847_11210" body="A transferable implementation for the default data transfer of some Swing&#xA;components.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.9 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_755917_10041"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323561_741977_17152" name="" supplier="_9_5_f720368_1110473546549_574486_6475" client="_9_5_f720368_1110473546753_755917_10041" contract="_9_5_f720368_1110473546549_574486_6475"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323561_803039_17153" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546753_755917_10041" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_258542_9979" name="BasicLookAndFeel" clientDependency="_10_5_622020d_1132928323471_848012_16952" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317122_950494_11054" body="Implements the a standard base LookAndFeel class from which&#xA;standard desktop LookAndFeel classes (JLF, Mac, Windows, etc.)&#xA;can be derived.  This class cannot be instantiated directly,&#xA;however the UI classes &quot;Basic&quot; defines can be.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.238 03/05/04&#xA;@author unattributed&#xA;" annotatedElement="_9_5_f720368_1110473546753_258542_9979"/>
                <generalization xmi:id="_10_5_622020d_1132928323471_805629_16953" isSubstitutable="true" general="_9_5_f720368_1110473546799_286745_10815"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323471_848012_16952" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_258542_9979" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_939076_21371" name="AudioAction" visibility="private" clientDependency="_10_5_622020d_1132928323471_608805_16954">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_881294_11050" body="Pass the name String to the super constructor. This is used&#xA;later to identify the Action and decide whether to play it or&#xA;not. Store the resource String. I is used to get the audio&#xA;resource. In this case, the resource is an audio file.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548159_939076_21371"/>
                  <generalization xmi:id="_10_5_622020d_1132928323471_5926_16955" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_608805_16954" name="" supplier="_9_5_f720368_1110473546737_92398_9735" client="_9_5_f720368_1110473548159_939076_21371" contract="_9_5_f720368_1110473546737_92398_9735"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_687896_11051" name="PopupInvocationHelper" visibility="package" clientDependency="_10_5_622020d_1132928323471_247806_16956 _10_5_622020d_1132928323471_111056_16957">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_781767_11052" body="This class contains listener that watches for all the mouse&#xA;events that can possibly invoke popup on the component&#xA;" annotatedElement="_10_5_622020d_1132928317112_687896_11051"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_247806_16956" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_10_5_622020d_1132928317112_687896_11051" contract="_9_5_f720368_1110473546565_967678_6541"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_111056_16957" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_10_5_622020d_1132928317112_687896_11051" contract="_9_5_f720368_1110473546690_3186_8507"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_83199_10047" name="CenterLayout" visibility="package" clientDependency="_10_5_622020d_1132928323561_414918_17192 _10_5_622020d_1132928323561_304432_17191">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_175262_11238" body="Center-positioning layout manager.&#xA;@version 1.12 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_83199_10047"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323561_304432_17191" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546753_83199_10047" contract="_9_5_f720368_1110473546581_587570_7065"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323561_414918_17192" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_83199_10047" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_773753_9989" name="BasicPanelUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_105264_11081" body="BasicPanel implementation&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_773753_9989"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_844822_16983" isSubstitutable="true" general="_9_5_f720368_1110473546768_60659_10243"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_737886_10017" name="BasicSplitPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317152_177054_11158" body="A Basic L&amp;F implementation of the SplitPaneUI.&#xA;&#xA;@version 1.80 05/18/04&#xA;@author Scott Violet&#xA;@author Steve Wilson&#xA;@author Ralph Kar&#xA;" annotatedElement="_9_5_f720368_1110473546753_737886_10017"/>
                <generalization xmi:id="_10_5_622020d_1132928323541_313590_17060" isSubstitutable="true" general="_9_5_f720368_1110473546768_148788_10261"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_436785_21519" name="PropertyHandler" clientDependency="_10_5_622020d_1132928323541_642916_17061">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_666117_11146" body="Implementation of the PropertyChangeListener&#xA;that the JSplitPane UI uses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_436785_21519"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_642916_17061" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548159_436785_21519" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_571594_21521" name="FocusHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_482373_11147" body="Implementation of the FocusListener that the JSplitPane UI uses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_571594_21521"/>
                  <generalization xmi:id="_10_5_622020d_1132928323541_319164_17062" isSubstitutable="true" general="_9_5_f720368_1110473546565_999857_6557"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_712559_21523" name="KeyboardUpLeftHandler" clientDependency="_10_5_622020d_1132928323541_577242_17063">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_782712_11148" body="Implementation of an ActionListener that the JSplitPane UI uses for&#xA;handling specific key presses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_712559_21523"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_577242_17063" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_712559_21523" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_276583_21527" name="KeyboardDownRightHandler" clientDependency="_10_5_622020d_1132928323541_725121_17064">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_260180_11149" body="Implementation of an ActionListener that the JSplitPane UI uses for&#xA;handling specific key presses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_276583_21527"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_725121_17064" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_276583_21527" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_151881_21531" name="KeyboardHomeHandler" clientDependency="_10_5_622020d_1132928323541_106582_17065">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_267382_11150" body="Implementation of an ActionListener that the JSplitPane UI uses for&#xA;handling specific key presses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_151881_21531"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_106582_17065" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_151881_21531" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_13722_21535" name="KeyboardEndHandler" clientDependency="_10_5_622020d_1132928323541_716973_17066">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_373865_11151" body="Implementation of an ActionListener that the JSplitPane UI uses for&#xA;handling specific key presses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_13722_21535"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_716973_17066" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_13722_21535" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_88282_21539" name="KeyboardResizeToggleHandler" clientDependency="_10_5_622020d_1132928323541_360203_17067">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_531887_11152" body="Implementation of an ActionListener that the JSplitPane UI uses for&#xA;handling specific key presses.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicSplitPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_88282_21539"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_360203_17067" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_88282_21539" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_605976_21549" name="BasicHorizontalLayoutManager" clientDependency="_10_5_622020d_1132928323541_981174_17068">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_389009_11153" body="LayoutManager for JSplitPanes that have an orientation of&#xA;HORIZONTAL_SPLIT.&#xA;" annotatedElement="_9_5_f720368_1110473548159_605976_21549"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_981174_17068" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473548159_605976_21549" contract="_9_5_f720368_1110473546581_384048_7067"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_402650_21551" name="BasicVerticalLayoutManager">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_921015_11154" body="LayoutManager used for JSplitPanes with an orientation of&#xA;VERTICAL_SPLIT.&#xA;&lt;p>&#xA;" annotatedElement="_9_5_f720368_1110473548159_402650_21551"/>
                  <generalization xmi:id="_10_5_622020d_1132928323541_733873_17069" isSubstitutable="true" general="_9_5_f720368_1110473548159_605976_21549"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_201281_11155" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323541_996522_17071 _10_5_622020d_1132928323541_688119_17070">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_688119_17070" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317152_201281_11155" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_996522_17071" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317152_201281_11155" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_536663_11156" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_662116_10031" name="BasicTextUI" clientDependency="_10_5_622020d_1132928323551_825428_17117" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_803570_11197" body="&lt;p>&#xA;Basis of a text components look-and-feel.  This provides the&#xA;basic editor view and controller services that may be useful&#xA;when creating a look-and-feel for an extension of&#xA;&lt;code>JTextComponent&lt;/code>.&#xA;&lt;p>&#xA;Most state is held in the associated &lt;code>JTextComponent&lt;/code>&#xA;as bound properties, and the UI installs default values for the&#xA;various properties.  This default will install something for&#xA;all of the properties.  Typically, a LAF implementation will&#xA;do more however.  At a minimum, a LAF would generally install&#xA;key bindings.&#xA;&lt;p>&#xA;This class also provides some concurrency support if the&#xA;&lt;code>Document&lt;/code> associated with the JTextComponent is a subclass of&#xA;&lt;code>AbstractDocument&lt;/code>.  Access to the View (or View hierarchy) is&#xA;serialized between any thread mutating the model and the Swing&#xA;event thread (which is expected to render, do model/view coordinate&#xA;translation, etc).  &lt;em>Any access to the root view should first&#xA;acquire a read-lock on the AbstractDocument and release that lock&#xA;in a finally block.&lt;/em>&#xA;&lt;p>&#xA;An important method to define is the {@link #getPropertyPrefix} method&#xA;which is used as the basis of the keys used to fetch defaults&#xA;from the UIManager.  The string should reflect the type of&#xA;TextUI (eg. TextField, TextArea, etc) without the particular&#xA;LAF part of the name (eg Metal, Motif, etc).&#xA;&lt;p>&#xA;To build a view of the model, one of the following strategies&#xA;can be employed.&#xA;&lt;ol>&#xA;&lt;li>&#xA;One strategy is to simply redefine the&#xA;ViewFactory interface in the UI.  By default, this UI itself acts&#xA;as the factory for View implementations.  This is useful&#xA;for simple factories.  To do this reimplement the&#xA;{@link #create} method.&#xA;&lt;li>&#xA;A common strategy for creating more complex types of documents&#xA;is to have the EditorKit implementation return a factory.  Since&#xA;the EditorKit ties all of the pieces necessary to maintain a type&#xA;of document, the factory is typically an important part of that&#xA;and should be produced by the EditorKit implementation.&#xA;&lt;li>&#xA;A less common way to create more complex types is to have&#xA;the UI implementation create a.&#xA;separate object for the factory.  To do this, the&#xA;{@link #createViewFactory} method should be reimplemented to&#xA;return some factory.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.103 05/26/04&#xA;" annotatedElement="_9_5_f720368_1110473546753_662116_10031"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_259557_17118" isSubstitutable="true" general="_9_5_f720368_1110473546768_84892_10269"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323551_825428_17117" name="" supplier="_9_5_f720368_1110473546784_659253_10549" client="_9_5_f720368_1110473546753_662116_10031" contract="_9_5_f720368_1110473546784_659253_10549"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_960648_21643" name="BasicCaret" clientDependency="_10_5_622020d_1132928323551_52185_17119">
                  <generalization xmi:id="_10_5_622020d_1132928323551_356573_17120" isSubstitutable="true" general="_9_5_f720368_1110473546784_435224_10439"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_52185_17119" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_960648_21643" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_998611_21645" name="BasicHighlighter" clientDependency="_10_5_622020d_1132928323551_226160_17121">
                  <generalization xmi:id="_10_5_622020d_1132928323551_478265_17122" isSubstitutable="true" general="_9_5_f720368_1110473546784_119034_10447"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_226160_17121" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_998611_21645" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_698853_21647" name="RootView" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_798201_11189" body="Root view that acts as a gateway between the component&#xA;and the View hierarchy.&#xA;" annotatedElement="_9_5_f720368_1110473548174_698853_21647"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_854910_17123" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_403246_21649" name="UpdateHandler" visibility="package" clientDependency="_10_5_622020d_1132928323551_124185_17127 _10_5_622020d_1132928323551_403366_17125 _10_5_622020d_1132928323551_937393_17124 _10_5_622020d_1132928323551_813121_17126">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_195820_11190" body="Handles updates from various places.  If the model is changed,&#xA;this class unregisters as a listener to the old model and&#xA;registers with the new model.  If the document model changes,&#xA;the change is forwarded to the root view.  If the focus&#xA;accelerator changes, a new keystroke is registered to request&#xA;focus.&#xA;" annotatedElement="_9_5_f720368_1110473548174_403246_21649"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_937393_17124" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_403246_21649" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_403366_17125" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473548174_403246_21649" contract="_9_5_f720368_1110473546753_81876_9845"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_813121_17126" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473548174_403246_21649" contract="_9_5_f720368_1110473546581_384048_7067"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_124185_17127" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_403246_21649" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_935818_21651" name="TextActionWrapper" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_59311_11191" body="Wrapper for text actions to return isEnabled false in case editor is non editable&#xA;" annotatedElement="_9_5_f720368_1110473548174_935818_21651"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_95535_17128" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_179963_21653" name="FocusAction" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_436097_11192" body="Registered in the ActionMap.&#xA;" annotatedElement="_9_5_f720368_1110473548174_179963_21653"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_68926_17129" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_606746_21655" name="TextDragGestureRecognizer" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_914984_11193" body="Drag gesture recognizer for text components.&#xA;" annotatedElement="_9_5_f720368_1110473548174_606746_21655"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_316209_17130" isSubstitutable="true" general="_9_5_f720368_1110473546753_232356_9955"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_901670_21658" name="TextDropTargetListener" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_729494_11194" body="A DropTargetListener to extend the default Swing handling of drop operations&#xA;by moving the caret to the nearest location to the mouse pointer.&#xA;" annotatedElement="_9_5_f720368_1110473548174_901670_21658"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_759934_17131" isSubstitutable="true" general="_9_5_f720368_1110473546753_10232_9957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_506675_21661" name="TextTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323551_69422_17132">
                  <generalization xmi:id="_10_5_622020d_1132928323551_272791_17133" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_69422_17132" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_506675_21661" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_191430_21663" name="TextTransferable" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317162_514816_11195" body="A possible implementation of the Transferable interface&#xA;for text components.  For a JEditorPane with a rich set&#xA;of EditorKit implementations, conversions could be made&#xA;giving a wider set of formats.  This is implemented to&#xA;offer up only the active content type and text/plain&#xA;(if that is not the active format) since that can be&#xA;extracted from other formats.&#xA;" annotatedElement="_9_5_f720368_1110473548174_191430_21663"/>
                    <generalization xmi:id="_10_5_622020d_1132928323551_278163_17134" isSubstitutable="true" general="_9_5_f720368_1110473546753_755917_10041"/>
                  </nestedClassifier>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_232356_9955" name="BasicDragGestureRecognizer" visibility="package" clientDependency="_10_5_622020d_1132928323451_667432_16852 _10_5_622020d_1132928323451_197313_16851">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_438444_10994" body="Default drag gesture recognition for drag operations performed by classses&#xA;that have a &lt;code>dragEnabled&lt;/code> property.  The gesture for a drag in&#xA;this package is a mouse press over a selection followed by some movement&#xA;by enough pixels to keep it from being treated as a click.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.7 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_232356_9955"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_197313_16851" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546753_232356_9955" contract="_9_5_f720368_1110473546565_486724_6593"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_667432_16852" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546753_232356_9955" contract="_9_5_f720368_1110473546565_341038_6597"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_642510_10005" name="BasicScrollBarUI" clientDependency="_10_5_622020d_1132928323481_680696_17009 _10_5_622020d_1132928323481_875530_17008">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_833331_11113" body="Implementation of ScrollBarUI for the Basic Look and Feel&#xA;&#xA;@version 1.83 01/09/04&#xA;@author Rich Schiavi&#xA;@author David Kloba&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_642510_10005"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_573267_17010" isSubstitutable="true" general="_9_5_f720368_1110473546768_401031_10251"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323481_875530_17008" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546753_642510_10005" contract="_9_5_f720368_1110473546581_587570_7065"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323481_680696_17009" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546753_642510_10005" contract="_9_5_f720368_1110473546799_869308_10869"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_509668_21447" name="ModelListener" visibility="protected" clientDependency="_10_5_622020d_1132928323481_625498_17011">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_147422_11105" body="A listener to listen for model changes.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548159_509668_21447"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_625498_17011" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_509668_21447" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_190395_21449" name="TrackListener" visibility="protected" clientDependency="_10_5_622020d_1132928323481_575825_17012">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_48006_11106" body="Track mouse drags.&#xA;" annotatedElement="_9_5_f720368_1110473548159_190395_21449"/>
                  <generalization xmi:id="_10_5_622020d_1132928323481_382446_17013" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_575825_17012" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473548159_190395_21449" contract="_9_5_f720368_1110473546565_341038_6597"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_515599_21451" name="ArrowButtonListener" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_740665_11107" body="Listener for cursor keys.&#xA;" annotatedElement="_9_5_f720368_1110473548159_515599_21451"/>
                  <generalization xmi:id="_10_5_622020d_1132928323481_51801_17014" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_141907_21453" name="ScrollListener" visibility="protected" clientDependency="_10_5_622020d_1132928323481_650245_17015">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_366225_11108" body="Listener for scrolling events initiated in the&#xA;&lt;code>ScrollPane&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_141907_21453"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_650245_17015" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_141907_21453" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_286925_21455" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323481_181175_17016">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_181175_17016" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548159_286925_21455" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_332290_11109" name="Actions" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_715502_11110" body="Used for scrolling the scrollbar.&#xA;" annotatedElement="_10_5_622020d_1132928317132_332290_11109"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_44138_11111" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323481_830737_17019 _10_5_622020d_1132928323481_198129_17018">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_198129_17018" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317132_44138_11111" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_830737_17019" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317132_44138_11111" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_393073_9959" name="BasicEditorPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_791113_10999" body="Provides the look and feel for a JEditorPane.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.32 07/23/04&#xA;" annotatedElement="_9_5_f720368_1110473546753_393073_9959"/>
                <generalization xmi:id="_10_5_622020d_1132928323451_234596_16856" isSubstitutable="true" general="_9_5_f720368_1110473546753_662116_10031"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317102_138110_10997" name="StyleSheetUIResource" visibility="package" clientDependency="_10_5_622020d_1132928323451_133098_16857">
                  <generalization xmi:id="_10_5_622020d_1132928323451_602082_16858" isSubstitutable="true" general="_9_5_f720368_1110473546784_716541_10393"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_133098_16857" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317102_138110_10997" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_587690_10029" name="BasicTextPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_513074_11188" body="Provides the look and feel for a styled text editor.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.69 07/23/04&#xA;" annotatedElement="_9_5_f720368_1110473546753_587690_10029"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_742619_17116" isSubstitutable="true" general="_9_5_f720368_1110473546753_393073_9959"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_678264_9963" name="BasicFormattedTextFieldUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_854775_11010" body="Provides the look and feel implementation for&#xA;&lt;code>JFormattedTextField&lt;/code>.&#xA;&#xA;@version 1.4 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_678264_9963"/>
                <generalization xmi:id="_10_5_622020d_1132928323451_176284_16876" isSubstitutable="true" general="_9_5_f720368_1110473546753_580925_10027"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_8340_9983" name="BasicMenuItemUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317122_905515_11062" body="BasicMenuItem implementation&#xA;&#xA;@version 1.128 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;@author Fredrik Lagerblad&#xA;" annotatedElement="_9_5_f720368_1110473546753_8340_9983"/>
                <generalization xmi:id="_10_5_622020d_1132928323471_268670_16962" isSubstitutable="true" general="_9_5_f720368_1110473546768_650978_10239"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_961045_21380" name="MouseInputHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323471_120528_16963">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_120528_16963" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548159_961045_21380" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_907217_11059" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_180161_11060" name="Handler" visibility="package" clientDependency="_10_5_622020d_1132928323471_418450_16967 _10_5_622020d_1132928323471_872964_16966 _10_5_622020d_1132928323471_779047_16965">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_779047_16965" name="" supplier="_9_5_f720368_1110473546753_973142_9869" client="_10_5_622020d_1132928317122_180161_11060" contract="_9_5_f720368_1110473546753_973142_9869"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_872964_16966" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_10_5_622020d_1132928317122_180161_11060" contract="_9_5_f720368_1110473546753_606883_9881"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_418450_16967" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317122_180161_11060" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_883008_10007" name="BasicScrollPaneUI" clientDependency="_10_5_622020d_1132928323481_333730_17020">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_234233_11121" body="A default L&amp;F implementation of ScrollPaneUI.&#xA;&#xA;@version 1.70 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_883008_10007"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_647516_17021" isSubstitutable="true" general="_9_5_f720368_1110473546768_683694_10253"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323481_333730_17020" name="" supplier="_9_5_f720368_1110473546799_950352_10843" client="_9_5_f720368_1110473546753_883008_10007" contract="_9_5_f720368_1110473546799_950352_10843"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_659096_21460" name="ViewportChangeHandler" clientDependency="_10_5_622020d_1132928323481_718501_17022">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_981893_11114" body="Listener for viewport events.&#xA;" annotatedElement="_9_5_f720368_1110473548159_659096_21460"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_718501_17022" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_659096_21460" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_974840_21462" name="HSBChangeListener" clientDependency="_10_5_622020d_1132928323481_339947_17023">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_802567_11115" body="Horizontal scrollbar listener.&#xA;" annotatedElement="_9_5_f720368_1110473548159_974840_21462"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_339947_17023" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_974840_21462" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_434950_21464" name="VSBChangeListener" clientDependency="_10_5_622020d_1132928323481_552324_17024">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_245462_11116" body="Vertical scrollbar listener.&#xA;" annotatedElement="_9_5_f720368_1110473548159_434950_21464"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_552324_17024" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_434950_21464" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_724399_21468" name="MouseWheelHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323481_71209_17025">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_984507_11117" body="MouseWheelHandler is an inner class which implements the&#xA;MouseWheelListener interface.  MouseWheelHandler responds to&#xA;MouseWheelEvents by scrolling the JScrollPane appropriately.&#xA;If the scroll pane's&#xA;&lt;code>isWheelScrollingEnabled&lt;/code>&#xA;method returns false, no scrolling occurs.&#xA;&#xA;@see javax.swing.JScrollPane#isWheelScrollingEnabled&#xA;@see #createMouseWheelListener&#xA;@see java.awt.event.MouseWheelListener&#xA;@see java.awt.event.MouseWheelEvent&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548159_724399_21468"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_71209_17025" name="" supplier="_9_5_f720368_1110473546565_462020_6601" client="_9_5_f720368_1110473548159_724399_21468" contract="_9_5_f720368_1110473546565_462020_6601"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_446078_21470" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323481_547368_17026">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_547368_17026" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548159_446078_21470" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317142_642715_11118" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317142_247303_11119" name="Handler" visibility="package" clientDependency="_10_5_622020d_1132928323491_119970_17028 _10_5_622020d_1132928323491_792756_17029 _10_5_622020d_1132928323491_261599_17030">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323491_119970_17028" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317142_247303_11119" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323491_792756_17029" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317142_247303_11119" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323491_261599_17030" name="" supplier="_9_5_f720368_1110473546565_462020_6601" client="_10_5_622020d_1132928317142_247303_11119" contract="_9_5_f720368_1110473546565_462020_6601"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_38738_9985" name="BasicMenuUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317122_620756_11068" body="A default L&amp;F implementation of MenuUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.158 02/26/04&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_38738_9985"/>
                <generalization xmi:id="_10_5_622020d_1132928323471_500805_16968" isSubstitutable="true" general="_9_5_f720368_1110473546753_8340_9983"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_679898_16162" name="MouseInputHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323471_744317_16970">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_105677_11064" body="Instantiated and used by a menu item to handle the current menu selection&#xA;from mouse events. A MouseInputHandler processes and forwards all mouse events&#xA;to a shared instance of the MenuSelectionManager.&#xA;&lt;p>&#xA;This class is protected so that it can be subclassed by other look and&#xA;feels to implement their own mouse handling behavior. All overridden&#xA;methods should call the parent methods so that the menu selection&#xA;is correct.&#xA;&#xA;@see javax.swing.MenuSelectionManager&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473547237_679898_16162"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_744317_16970" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473547237_679898_16162" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547206_131762_15863" name="ChangeHandler" clientDependency="_10_5_622020d_1132928323471_975692_16971">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_772888_11065" body="As of Java 2 platform 1.4, this previously undocumented class&#xA;is now obsolete. KeyBindings are now managed by the popup menu.&#xA;" annotatedElement="_9_5_f720368_1110473547206_131762_15863"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_975692_16971" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473547206_131762_15863" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_648509_11063" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_62776_11066" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323471_504706_16972">
                  <generalization xmi:id="_10_5_622020d_1132928323471_407214_16973" isSubstitutable="true" general="_10_5_622020d_1132928317122_180161_11060"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_504706_16972" name="" supplier="_9_5_f720368_1110473546753_423354_9875" client="_10_5_622020d_1132928317122_62776_11066" contract="_9_5_f720368_1110473546753_423354_9875"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_939063_9927" name="BasicArrowButton" clientDependency="_10_5_622020d_1132928323421_139083_16751">
                <ownedComment xmi:id="_10_5_622020d_1132928317042_799900_10930" body="JButton object that draws a scaled Arrow in one of the cardinal directions.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.26 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546753_939063_9927"/>
                <generalization xmi:id="_10_5_622020d_1132928323421_219859_16752" isSubstitutable="true" general="_9_5_f720368_1110473546784_766765_10705"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_139083_16751" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546753_939063_9927" contract="_9_5_f720368_1110473546799_869308_10869"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_10232_9957" name="BasicDropTargetListener" visibility="package" clientDependency="_10_5_622020d_1132928323451_264567_16854 _10_5_622020d_1132928323451_183846_16853 _10_5_622020d_1132928323451_345956_16855">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_82904_10996" body="The Swing DropTarget implementation supports multicast notification&#xA;to listeners, so this implementation is used as an additional&#xA;listener that extends the primary drop target functionality&#xA;(i.e. linkage to the TransferHandler) to include autoscroll and&#xA;establish an insertion point for the drop.  This is used by the ComponentUI&#xA;of components supporting a selection mechanism, which have a&#xA;way of indicating a location within their model.&#xA;&lt;p>&#xA;The autoscroll functionality is based upon the Swing scrolling mechanism&#xA;of the Scrollable interface.  The unit scroll increment is used to as&#xA;the scroll amount, and the scrolling is based upon JComponent.getVisibleRect&#xA;and JComponent.scrollRectToVisible.  The band of area around the visible&#xA;rectangle used to invoke autoscroll is based upon the unit scroll increment&#xA;as that is assumed to represent the last possible item in the visible region.&#xA;&lt;p>&#xA;The subclasses are expected to implement the following methods to manage the&#xA;insertion location via the components selection mechanism.&#xA;&lt;ul>&#xA;&lt;li>saveComponentState&#xA;&lt;li>restoreComponentState&#xA;&lt;li>restoreComponentStateForDrop&#xA;&lt;li>updateInsertionLocation&#xA;&lt;/ul>&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.10 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_10232_9957"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_183846_16853" name="" supplier="_9_5_f720368_1110473546565_62805_6525" client="_9_5_f720368_1110473546753_10232_9957" contract="_9_5_f720368_1110473546565_62805_6525"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_264567_16854" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546753_10232_9957" contract="_9_5_f720368_1110473546768_203610_10277"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_345956_16855" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473546753_10232_9957" contract="_9_5_f720368_1110473546565_106737_6535"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_461880_10015" name="BasicSplitPaneDivider" clientDependency="_10_5_622020d_1132928323541_730113_17053">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_298363_11145" body="Divider used by BasicSplitPaneUI. Subclassers may wish to override&#xA;paint to do something more interesting.&#xA;The border effect is drawn in BasicSplitPaneUI, so if you don't like&#xA;that border, reset it there.&#xA;To conditionally drag from certain areas subclass mousePressed and&#xA;call super when you wish the dragging to begin.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.52 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_461880_10015"/>
                <generalization xmi:id="_10_5_622020d_1132928323541_725510_17054" isSubstitutable="true" general="_9_5_f720368_1110473546581_715876_6975"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323541_730113_17053" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546753_461880_10015" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547221_839103_15882" name="MouseHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323541_530398_17055">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_554189_11139" body="MouseHandler is responsible for converting mouse events&#xA;(released, dragged...) into the appropriate DragController&#xA;methods.&#xA;&lt;p>&#xA;" annotatedElement="_9_5_f720368_1110473547221_839103_15882"/>
                  <generalization xmi:id="_10_5_622020d_1132928323541_859051_17056" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_530398_17055" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473547221_839103_15882" contract="_9_5_f720368_1110473546565_341038_6597"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_998802_21510" name="DragController" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_882380_11140" body="Handles the events during a dragging session for a&#xA;HORIZONTAL_SPLIT oriented split pane. This continually&#xA;messages &lt;code>dragDividerTo&lt;/code> and then when done messages&#xA;&lt;code>finishDraggingTo&lt;/code>. When an instance is created it should be&#xA;messaged with &lt;code>isValid&lt;/code> to insure that dragging can happen&#xA;(dragging won't be allowed if the two views can not be resized).&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548159_998802_21510"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_468950_21512" name="VerticalDragController" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_312619_11141" body="Handles the events during a dragging session for a&#xA;VERTICAL_SPLIT oriented split pane. This continually&#xA;messages &lt;code>dragDividerTo&lt;/code> and then when done messages&#xA;&lt;code>finishDraggingTo&lt;/code>. When an instance is created it should be&#xA;messaged with &lt;code>isValid&lt;/code> to insure that dragging can happen&#xA;(dragging won't be allowed if the two views can not be resized).&#xA;" annotatedElement="_9_5_f720368_1110473548159_468950_21512"/>
                  <generalization xmi:id="_10_5_622020d_1132928323541_768841_17057" isSubstitutable="true" general="_9_5_f720368_1110473548159_998802_21510"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_871003_21514" name="DividerLayout" visibility="protected" clientDependency="_10_5_622020d_1132928323541_607387_17058">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_404889_11142" body="Used to layout a &lt;code>BasicSplitPaneDivider&lt;/code>.&#xA;Layout for the divider&#xA;involves appropriately moving the left/right buttons around.&#xA;&lt;p>&#xA;" annotatedElement="_9_5_f720368_1110473548159_871003_21514"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_607387_17058" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548159_871003_21514" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_466463_21516" name="OneTouchActionHandler" visibility="private" clientDependency="_10_5_622020d_1132928323541_583633_17059">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_859694_11143" body="Listeners installed on the one touch expandable buttons.&#xA;" annotatedElement="_9_5_f720368_1110473548159_466463_21516"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_583633_17059" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_466463_21516" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_377186_9977" name="BasicListUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317112_63982_11049" body="A Windows L&amp;F implementation of ListUI.&#xA;&lt;p>&#xA;&#xA;@version 1.104 03/30/04&#xA;@author Hans Muller&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546753_377186_9977"/>
                <generalization xmi:id="_10_5_622020d_1132928323461_474056_16935" isSubstitutable="true" general="_9_5_f720368_1110473546768_195635_10235"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_777789_21327" name="MouseInputHandler" clientDependency="_10_5_622020d_1132928323461_794899_16936">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_67174_11039" body="Mouse input, and focus handling for JList.  An instance of this&#xA;class is added to the appropriate java.awt.Component lists&#xA;at installUI() time.  Note keyboard input is handled with JComponent&#xA;KeyboardActions, see installKeyboardActions().&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see #createMouseInputListener&#xA;@see #installKeyboardActions&#xA;@see #installUI&#xA;" annotatedElement="_9_5_f720368_1110473548143_777789_21327"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_794899_16936" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548143_777789_21327" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_904986_21329" name="FocusHandler" clientDependency="_10_5_622020d_1132928323461_683447_16937">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_952340_11040" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTableUI.&#xA;" annotatedElement="_9_5_f720368_1110473548143_904986_21329"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_683447_16937" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548143_904986_21329" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_486766_21331" name="ListSelectionHandler" clientDependency="_10_5_622020d_1132928323461_74106_16938">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_306028_11041" body="The ListSelectionListener that's added to the JLists selection&#xA;model at installUI time, and whenever the JList.selectionModel property&#xA;changes.  When the selection changes we repaint the affected rows.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see #createListSelectionListener&#xA;@see #getCellBounds&#xA;@see #installUI&#xA;" annotatedElement="_9_5_f720368_1110473548143_486766_21331"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_74106_16938" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548143_486766_21331" contract="_9_5_f720368_1110473546753_43790_9865"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_69341_21333" name="ListDataHandler" clientDependency="_10_5_622020d_1132928323461_112131_16939">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_998152_11042" body="The ListDataListener that's added to the JLists model at&#xA;installUI time, and whenever the JList.model property changes.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JList#getModel&#xA;@see #maybeUpdateLayoutState&#xA;@see #createListDataListener&#xA;@see #installUI&#xA;" annotatedElement="_9_5_f720368_1110473548143_69341_21333"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_112131_16939" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_9_5_f720368_1110473548143_69341_21333" contract="_9_5_f720368_1110473546753_268063_9861"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_640554_21335" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323461_611205_16940">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_379216_11043" body="The PropertyChangeListener that's added to the JList at&#xA;installUI time.  When the value of a JList property that&#xA;affects layout changes, we set a bit in updateLayoutStateNeeded.&#xA;If the JLists model changes we additionally remove our listeners&#xA;from the old model.  Likewise for the JList selectionModel.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see #maybeUpdateLayoutState&#xA;@see #createPropertyChangeListener&#xA;@see #installUI&#xA;" annotatedElement="_9_5_f720368_1110473548143_640554_21335"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_611205_16940" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548143_640554_21335" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_53613_21363" name="ListDragGestureRecognizer" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_380358_11046" body="Drag gesture recognizer for JList components&#xA;" annotatedElement="_9_5_f720368_1110473548159_53613_21363"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_469454_16948" isSubstitutable="true" general="_9_5_f720368_1110473546753_232356_9955"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_472163_21366" name="ListDropTargetListener" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_304718_11047" body="A DropTargetListener to extend the default Swing handling of drop operations&#xA;by moving the list selection to the nearest location to the mouse pointer.&#xA;Also adds autoscroll.&#xA;" annotatedElement="_9_5_f720368_1110473548159_472163_21366"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_226289_16949" isSubstitutable="true" general="_9_5_f720368_1110473546753_10232_9957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_959828_21368" name="ListTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323461_903745_16950">
                  <generalization xmi:id="_10_5_622020d_1132928323471_510172_16951" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_903745_16950" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548159_959828_21368" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_673543_11044" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_356714_11045" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323461_18167_16946 _10_5_622020d_1132928323461_28861_16943 _10_5_622020d_1132928323461_149919_16942 _10_5_622020d_1132928323461_411014_16944 _10_5_622020d_1132928323461_185136_16945 _10_5_622020d_1132928323461_522431_16947">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_149919_16942" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_28861_16943" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546565_361131_6587"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_411014_16944" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546753_268063_9861"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_185136_16945" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546753_43790_9865"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_18167_16946" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546753_606883_9881"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_522431_16947" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317112_356714_11045" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_279633_9987" name="BasicOptionPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_278843_11079" body="Provides the basic look and feel for a &lt;code>JOptionPane&lt;/code>.&#xA;&lt;code>BasicMessagePaneUI&lt;/code> provides a means to place an icon,&#xA;message and buttons into a &lt;code>Container&lt;/code>.&#xA;Generally, the layout will look like:&lt;p>&#xA;&lt;pre>&#xA;------------------&#xA;| i | message    |&#xA;| c | message    |&#xA;| o | message    |&#xA;| n | message    |&#xA;------------------&#xA;|     buttons    |&#xA;|________________|&#xA;&lt;/pre>&#xA;icon is an instance of &lt;code>Icon&lt;/code> that is wrapped inside a&#xA;&lt;code>JLabel&lt;/code>.  The message is an opaque object and is tested&#xA;for the following: if the message is a &lt;code>Component&lt;/code> it is&#xA;added to the &lt;code>Container&lt;/code>, if it is an &lt;code>Icon&lt;/code>&#xA;it is wrapped inside a &lt;code>JLabel&lt;/code> and added to the&#xA;&lt;code>Container&lt;/code> otherwise it is wrapped inside a &lt;code>JLabel&lt;/code>.&#xA;&lt;p>&#xA;The above layout is used when the option pane's&#xA;&lt;code>ComponentOrientation&lt;/code> property is horizontal, left-to-right.&#xA;The layout will be adjusted appropriately for other orientations.&#xA;&lt;p>&#xA;The &lt;code>Container&lt;/code>, message, icon, and buttons are all&#xA;determined from abstract methods.&#xA;&#xA;@version 1.58 12/19/03&#xA;@author James Gosling&#xA;@author Scott Violet&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546753_279633_9987"/>
                <generalization xmi:id="_10_5_622020d_1132928323471_889793_16974" isSubstitutable="true" general="_9_5_f720368_1110473546768_718523_10241"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_602338_21396" name="ButtonAreaLayout" clientDependency="_10_5_622020d_1132928323471_255675_16975">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_92439_11069" body="&lt;code>ButtonAreaLayout&lt;/code> behaves in a similar manner to&#xA;&lt;code>FlowLayout&lt;/code>. It lays out all components from left to&#xA;right. If &lt;code>syncAllWidths&lt;/code> is true, the widths of each&#xA;component will be set to the largest preferred size width.&#xA;&#xA;This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicOptionPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_602338_21396"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_255675_16975" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548159_602338_21396" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_817161_21399" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323471_565845_16976">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_811492_11070" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicOptionPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_817161_21399"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_565845_16976" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548159_817161_21399" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_627136_21401" name="ButtonActionListener" clientDependency="_10_5_622020d_1132928323471_885103_16977">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_921620_11071" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicOptionPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_627136_21401"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_885103_16977" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_627136_21401" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_822675_21407" name="MultiplexingTextField" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_360455_11073" body="A JTextField that allows you to specify an array of KeyStrokes that&#xA;that will have their bindings processed regardless of whether or&#xA;not they are registered on the JTextField. This is used as we really&#xA;want the ActionListener to be notified so that we can push the&#xA;change to the JOptionPane, but we also want additional bindings&#xA;(those of the JRootPane) to be processed as well.&#xA;" annotatedElement="_9_5_f720368_1110473548159_822675_21407"/>
                  <generalization xmi:id="_10_5_622020d_1132928323471_2146_16981" isSubstitutable="true" general="_9_5_f720368_1110473546799_269096_10781"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_384251_11072" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323471_257726_16978 _10_5_622020d_1132928323471_660820_16980 _10_5_622020d_1132928323471_35160_16979">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_257726_16978" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317122_384251_11072" contract="_9_5_f720368_1110473546565_106737_6535"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_35160_16979" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317122_384251_11072" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323471_660820_16980" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317122_384251_11072" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_150397_11074" name="Actions" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_490380_11075" body="Registered in the ActionMap. Sets the value of the option pane&#xA;to &lt;code>JOptionPane.CLOSED_OPTION&lt;/code>.&#xA;" annotatedElement="_10_5_622020d_1132928317122_150397_11074"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317122_86494_11076" name="ButtonFactory" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317122_327230_11077" body="This class is used to create the default buttons. This indirection is&#xA;used so that addButtonComponents can tell which Buttons were created&#xA;by us vs subclassers or from the JOptionPane itself.&#xA;" annotatedElement="_10_5_622020d_1132928317122_86494_11076"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_323534_9975" name="BasicLabelUI" clientDependency="_10_5_622020d_1132928323461_123367_16932">
                <ownedComment xmi:id="_10_5_622020d_1132928317112_508411_11038" body="A Windows L&amp;F implementation of LabelUI.  This implementation&#xA;is completely static, i.e. there's only one UIView implementation&#xA;that's shared by all JLabel objects.&#xA;&#xA;@version 1.84 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_323534_9975"/>
                <generalization xmi:id="_10_5_622020d_1132928323461_397876_16933" isSubstitutable="true" general="_9_5_f720368_1110473546768_282123_10233"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323461_123367_16932" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546753_323534_9975" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_416162_11036" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_967267_9949" name="BasicDesktopIconUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317092_784126_10984" body="Basic L&amp;F for a minimized window on a desktop.&#xA;&#xA;@version 1.35 12/19/03&#xA;@author David Kloba&#xA;@author Steve Wilson&#xA;@author Rich Schiavi&#xA;" annotatedElement="_9_5_f720368_1110473546753_967267_9949"/>
                <generalization xmi:id="_10_5_622020d_1132928323441_100847_16835" isSubstitutable="true" general="_9_5_f720368_1110473546768_763316_10215"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_691179_21225" name="MouseInputHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_2907_10982" body="Listens for mouse movements and acts on them.&#xA;&#xA;This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_691179_21225"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_359681_16836" isSubstitutable="true" general="_9_5_f720368_1110473546753_537494_9879"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_694845_10019" name="BasicTabbedPaneUI" clientDependency="_10_5_622020d_1132928323541_576828_17073">
                <ownedComment xmi:id="_10_5_622020d_1132928317152_463058_11167" body="A Basic L&amp;F implementation of TabbedPaneUI.&#xA;&#xA;@version 1.87 06/08/99&#xA;@author Amy Fowler&#xA;@author Philip Milne&#xA;@author Steve Wilson&#xA;@author Tom Santos&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546753_694845_10019"/>
                <generalization xmi:id="_10_5_622020d_1132928323541_965865_17074" isSubstitutable="true" general="_9_5_f720368_1110473546768_753437_10263"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323541_576828_17073" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546753_694845_10019" contract="_9_5_f720368_1110473546799_869308_10869"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_444230_21581" name="TabbedPaneLayout" clientDependency="_10_5_622020d_1132928323541_453796_17076">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_6387_11160" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_444230_21581"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_453796_17076" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548174_444230_21581" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_631309_21583" name="TabbedPaneScrollLayout" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323541_655600_17077" isSubstitutable="true" general="_9_5_f720368_1110473548174_444230_21581"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_431932_21584" name="ScrollableTabSupport" visibility="private" clientDependency="_10_5_622020d_1132928323541_984736_17078 _10_5_622020d_1132928323541_759316_17079">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_984736_17078" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548174_431932_21584" contract="_9_5_f720368_1110473546565_106737_6535"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_759316_17079" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548174_431932_21584" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_485442_21585" name="ScrollableTabViewport" visibility="private" clientDependency="_10_5_622020d_1132928323541_277503_17080">
                  <generalization xmi:id="_10_5_622020d_1132928323541_284188_17081" isSubstitutable="true" general="_9_5_f720368_1110473546799_135285_10793"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_277503_17080" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_485442_21585" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_168062_21586" name="ScrollableTabPanel" visibility="private" clientDependency="_10_5_622020d_1132928323541_617172_17082">
                  <generalization xmi:id="_10_5_622020d_1132928323541_169029_17083" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_617172_17082" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_168062_21586" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_627275_21587" name="ScrollableTabButton" visibility="private" clientDependency="_10_5_622020d_1132928323541_153829_17084 _10_5_622020d_1132928323541_658300_17085">
                  <generalization xmi:id="_10_5_622020d_1132928323541_531800_17086" isSubstitutable="true" general="_9_5_f720368_1110473546753_939063_9927"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_153829_17084" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_627275_21587" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_658300_17085" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473548174_627275_21587" contract="_9_5_f720368_1110473546799_869308_10869"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_270777_21588" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323541_227242_17093">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_814103_11162" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_270777_21588"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_227242_17093" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_270777_21588" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_356113_21590" name="TabSelectionHandler" clientDependency="_10_5_622020d_1132928323551_693427_17094">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_994327_11163" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_356113_21590"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_693427_17094" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548174_356113_21590" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_98031_21592" name="MouseHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_524532_11164" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_98031_21592"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_789772_17095" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_580755_21594" name="FocusHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_894738_11165" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_580755_21594"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_399687_17096" isSubstitutable="true" general="_9_5_f720368_1110473546565_999857_6557"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_703656_11159" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_801982_11161" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323541_176963_17092 _10_5_622020d_1132928323541_960304_17091 _10_5_622020d_1132928323541_836017_17089 _10_5_622020d_1132928323541_397195_17088 _10_5_622020d_1132928323541_344260_17090 _10_5_622020d_1132928323541_358824_17087">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_358824_17087" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_397195_17088" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546565_136951_6555"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_836017_17089" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_344260_17090" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_960304_17091" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546565_341038_6597"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_176963_17092" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317152_801982_11161" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_248678_10009" name="BasicSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_28694_11123" body="A Basic L&amp;F implementation of SeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.24 12/19/03&#xA;@author Georges Saab&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546753_248678_10009"/>
                <generalization xmi:id="_10_5_622020d_1132928323491_324147_17031" isSubstitutable="true" general="_9_5_f720368_1110473546768_665989_10255"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_988960_10051" name="DefaultMenuLayout" clientDependency="_10_5_622020d_1132928323561_445965_17193">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_863424_11242" body="The default layout manager for Popup menus and menubars.  This&#xA;class is an extension of BoxLayout which adds the UIResource tag&#xA;so that plauggable L&amp;Fs can distinguish it from user-installed&#xA;layout managers on menus.&#xA;&#xA;@version 1.8 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_988960_10051"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_45895_17194" isSubstitutable="true" general="_9_5_f720368_1110473546784_390035_10635"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323561_445965_17193" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546753_988960_10051" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_640827_9939" name="BasicColorChooserUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317082_308197_10950" body="Provides the basic look and feel for a JColorChooser.&#xA;&lt;p>&#xA;@version 1.46 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_640827_9939"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_14850_16783" isSubstitutable="true" general="_9_5_f720368_1110473546768_850345_10205"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_953047_21166" name="PropertyHandler" clientDependency="_10_5_622020d_1132928323431_562306_16787">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_849962_10948" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548128_953047_21166"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_562306_16787" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548128_953047_21166" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_226664_21168" name="ColorTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323431_316710_16788">
                  <generalization xmi:id="_10_5_622020d_1132928323431_558903_16789" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_316710_16788" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_226664_21168" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317082_885381_10947" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323431_88705_16785 _10_5_622020d_1132928323431_887389_16786 _10_5_622020d_1132928323431_53583_16784">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_53583_16784" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317082_885381_10947" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_88705_16785" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317082_885381_10947" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_887389_16786" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317082_885381_10947" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_590820_10037" name="BasicToolBarUI" clientDependency="_10_5_622020d_1132928323551_486737_17137">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_657514_11206" body="A Basic L&amp;F implementation of ToolBarUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&lt;p>&#xA;&#xA;@version 1.96 05/18/04&#xA;@author Georges Saab&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546753_590820_10037"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_140026_17138" isSubstitutable="true" general="_9_5_f720368_1110473546768_341955_10271"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323551_486737_17137" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546753_590820_10037" contract="_9_5_f720368_1110473546799_869308_10869"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_399873_21679" name="FrameListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323561_519818_17144" isSubstitutable="true" general="_9_5_f720368_1110473546565_558736_6611"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_373996_21680" name="ToolBarContListener" visibility="protected" clientDependency="_10_5_622020d_1132928323561_895284_17145">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_895284_17145" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_9_5_f720368_1110473548174_373996_21680" contract="_9_5_f720368_1110473546565_136951_6555"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_58240_21681" name="ToolBarFocusListener" visibility="protected" clientDependency="_10_5_622020d_1132928323561_998914_17146">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_998914_17146" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548174_58240_21681" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_343700_21682" name="PropertyListener" visibility="protected" clientDependency="_10_5_622020d_1132928323561_158660_17147">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_158660_17147" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_343700_21682" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_546123_21683" name="DockingListener" clientDependency="_10_5_622020d_1132928323561_851034_17148">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_601511_11204" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicToolBarUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_546123_21683"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_851034_17148" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548174_546123_21683" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_624014_21685" name="DragWindow" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323561_799716_17149" isSubstitutable="true" general="_9_5_f720368_1110473546596_890326_7145"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317162_844512_11202" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317162_698948_11203" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323561_816609_17143 _10_5_622020d_1132928323551_328905_17142 _10_5_622020d_1132928323551_708631_17140 _10_5_622020d_1132928323551_821316_17141">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_708631_17140" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_10_5_622020d_1132928317162_698948_11203" contract="_9_5_f720368_1110473546565_136951_6555"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_821316_17141" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317162_698948_11203" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_328905_17142" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_10_5_622020d_1132928317162_698948_11203" contract="_9_5_f720368_1110473546753_606883_9881"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_816609_17143" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317162_698948_11203" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_812331_10025" name="BasicTextAreaUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317152_23371_11183" body="Provides the look and feel for a plain text editor.  In this&#xA;implementation the default UI is extended to act as a simple&#xA;view factory.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.68 01/23/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_812331_10025"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_709626_17111" isSubstitutable="true" general="_9_5_f720368_1110473546753_662116_10031"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_724480_21631" name="PlainParagraph" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_955554_11181" body="Paragraph for representing plain-text lines that support&#xA;bidirectional text.&#xA;" annotatedElement="_9_5_f720368_1110473548174_724480_21631"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_441882_17112" isSubstitutable="true" general="_9_5_f720368_1110473546784_837851_10501"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_289003_21634" name="LogicalView" visibility="package">
                    <ownedComment xmi:id="_10_5_622020d_1132928317152_276232_11180" body="This class can be used to represent a logical view for&#xA;a flow.  It keeps the children updated to reflect the state&#xA;of the model, gives the logical child views access to the&#xA;view hierarchy, and calculates a preferred span.  It doesn't&#xA;do any rendering, layout, or model/view translation.&#xA;" annotatedElement="_9_5_f720368_1110473548174_289003_21634"/>
                    <generalization xmi:id="_10_5_622020d_1132928323551_999059_17113" isSubstitutable="true" general="_9_5_f720368_1110473546784_235862_10435"/>
                  </nestedClassifier>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_725908_9931" name="BasicButtonListener" clientDependency="_10_5_622020d_1132928323421_360739_16771 _10_5_622020d_1132928323421_460066_16769 _10_5_622020d_1132928323421_255177_16772 _10_5_622020d_1132928323421_28350_16770 _10_5_622020d_1132928323421_328511_16773">
                <ownedComment xmi:id="_10_5_622020d_1132928317042_368218_10940" body="Button Listener&#xA;&#xA;@version 1.63 01/19/04&#xA;@author Jeff Dinkins&#xA;@author Arnaud Weber (keyboard UI support)&#xA;" annotatedElement="_9_5_f720368_1110473546753_725908_9931"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_460066_16769" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473546753_725908_9931" contract="_9_5_f720368_1110473546565_486724_6593"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_28350_16770" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473546753_725908_9931" contract="_9_5_f720368_1110473546565_341038_6597"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_360739_16771" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473546753_725908_9931" contract="_9_5_f720368_1110473546565_10343_6561"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_255177_16772" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473546753_725908_9931" contract="_9_5_f720368_1110473546753_937925_9841"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323421_328511_16773" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546753_725908_9931" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317042_371030_10937" name="Actions" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317042_183034_10938" body="Actions for Buttons. Two type of action are supported:&#xA;pressed: Moves the button to a pressed state&#xA;released: Disarms the button.&#xA;" annotatedElement="_10_5_622020d_1132928317042_371030_10937"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_580925_10027" name="BasicTextFieldUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_400230_11186" body="Basis of a look and feel for a JTextField.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.95 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_580925_10027"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_242110_17114" isSubstitutable="true" general="_9_5_f720368_1110473546753_662116_10031"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_134229_21638" name="I18nFieldView" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_84017_11184" body="A field view that support bidirectional text via the&#xA;support provided by ParagraphView.&#xA;" annotatedElement="_9_5_f720368_1110473548174_134229_21638"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_396929_17115" isSubstitutable="true" general="_9_5_f720368_1110473546784_837851_10501"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_237464_9991" name="BasicPasswordFieldUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_22633_11083" body="Provides the Windows look and feel for a password field.&#xA;The only difference from the standard text field is that&#xA;the view of the text is simply a string of the echo&#xA;character as specified in JPasswordField, rather than the&#xA;real text contained in the field.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.30 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_237464_9991"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_208697_16984" isSubstitutable="true" general="_9_5_f720368_1110473546753_580925_10027"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_346211_9971" name="BasicInternalFrameTitlePane">
                <ownedComment xmi:id="_10_5_622020d_1132928317112_297756_11031" body="The class that manages a basic title bar&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.41 01/18/01&#xA;@author David Kloba&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_346211_9971"/>
                <generalization xmi:id="_10_5_622020d_1132928323461_752651_16904" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_258238_16148" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323461_841632_16907">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_129257_11021" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473547237_258238_16148"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_841632_16907" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473547237_258238_16148" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_241035_16146" name="TitlePaneLayout" clientDependency="_10_5_622020d_1132928323461_693879_16908">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_837449_11022" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473547237_241035_16146"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_693879_16908" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473547237_241035_16146" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_749443_21297" name="CloseAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_105996_11023" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_749443_21297"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_434312_16909" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_29109_21299" name="MaximizeAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_450550_11024" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_29109_21299"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_302999_16910" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_80077_21301" name="IconifyAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_401487_11025" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_80077_21301"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_3775_16911" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_150772_21303" name="RestoreAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_169230_11026" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_150772_21303"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_681180_16912" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_242667_21305" name="MoveAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_348127_11027" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_242667_21305"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_418184_16913" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_554824_21307" name="ShowSystemMenuAction" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323461_657230_16914" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_271716_21308" name="SizeAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_566416_11028" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_271716_21308"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_529653_16915" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_290284_21310" name="SystemMenuBar">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_517381_11029" body="This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_290284_21310"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_500435_16916" isSubstitutable="true" general="_9_5_f720368_1110473546799_513545_10743"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_286233_21312" name="NoFocusButton" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323461_17296_16917" isSubstitutable="true" general="_9_5_f720368_1110473546784_766765_10705"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_677105_11020" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323461_82973_16905 _10_5_622020d_1132928323461_622376_16906">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_82973_16905" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317112_677105_11020" contract="_9_5_f720368_1110473546581_587570_7065"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_622376_16906" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317112_677105_11020" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_727496_10045" name="BasicViewportUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_615996_11236" body="BasicViewport implementation&#xA;&#xA;@version 1.1 05/01/98&#xA;@author Rich Schiavi&#xA;" annotatedElement="_9_5_f720368_1110473546753_727496_10045"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_158133_17190" isSubstitutable="true" general="_9_5_f720368_1110473546768_732615_10279"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_490751_10039" name="BasicToolTipUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_356869_11208" body="Standard tool tip L&amp;F.&#xA;&lt;p>&#xA;&#xA;@version 1.41 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546753_490751_10039"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_58289_17150" isSubstitutable="true" general="_9_5_f720368_1110473546768_948919_10273"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_97912_21687" name="PropertyChangeHandler" visibility="private" clientDependency="_10_5_622020d_1132928323561_637371_17151">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_637371_17151" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_97912_21687" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_229752_9933" name="BasicButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317052_421489_10942" body="BasicButton implementation&#xA;&#xA;@version 1.112 01/19/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_229752_9933"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_858662_16780" isSubstitutable="true" general="_9_5_f720368_1110473546768_866073_10203"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_960372_10023" name="BasicTableUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317152_121986_11179" body="BasicTableUI implementation&#xA;&#xA;@version 1.140 06/14/04&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546753_960372_10023"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_638618_17099" isSubstitutable="true" general="_9_5_f720368_1110473546768_286036_10267"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_606259_21614" name="KeyHandler" clientDependency="_10_5_622020d_1132928323551_155843_17101">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_349514_11172" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTableUI.&#xA;&lt;p>As of Java 2 platform v1.3 this class is no longer used.&#xA;Instead &lt;code>JTable&lt;/code>&#xA;overrides &lt;code>processKeyBinding&lt;/code> to dispatch the event to&#xA;the current &lt;code>TableCellEditor&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548174_606259_21614"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_155843_17101" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_9_5_f720368_1110473548174_606259_21614" contract="_9_5_f720368_1110473546565_361131_6587"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_641057_21616" name="FocusHandler" clientDependency="_10_5_622020d_1132928323551_641065_17102">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_403372_11173" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTableUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_641057_21616"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_641065_17102" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548174_641057_21616" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_208974_21618" name="MouseInputHandler" clientDependency="_10_5_622020d_1132928323551_917537_17103">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_99726_11174" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTableUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_208974_21618"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_917537_17103" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548174_208974_21618" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_223343_21620" name="TableDragGestureRecognizer" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_14062_11176" body="Drag gesture recognizer for JTable components&#xA;" annotatedElement="_9_5_f720368_1110473548174_223343_21620"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_371657_17107" isSubstitutable="true" general="_9_5_f720368_1110473546753_232356_9955"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_498608_21623" name="TableDropTargetListener" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_348609_11177" body="A DropTargetListener to extend the default Swing handling of drop operations&#xA;by moving the tree selection to the nearest location to the mouse pointer.&#xA;Also adds autoscroll capability.&#xA;" annotatedElement="_9_5_f720368_1110473548174_498608_21623"/>
                  <generalization xmi:id="_10_5_622020d_1132928323551_903528_17108" isSubstitutable="true" general="_9_5_f720368_1110473546753_10232_9957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_574948_21626" name="TableTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323551_964514_17109">
                  <generalization xmi:id="_10_5_622020d_1132928323551_580965_17110" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_964514_17109" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_574948_21626" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_721804_11171" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317152_859271_11175" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323551_313075_17104 _10_5_622020d_1132928323551_568461_17105 _10_5_622020d_1132928323551_497199_17106">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_313075_17104" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317152_859271_11175" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_568461_17105" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_10_5_622020d_1132928317152_859271_11175" contract="_9_5_f720368_1110473546753_606883_9881"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_497199_17106" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317152_859271_11175" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_475612_9997" name="BasicProgressBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_28523_11097" body="A Basic L&amp;F implementation of ProgressBarUI.&#xA;&#xA;@version 1.68 03/11/04&#xA;@author Michael C. Albers&#xA;@author Kathy Walrath&#xA;" annotatedElement="_9_5_f720368_1110473546753_475612_9997"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_206358_16996" isSubstitutable="true" general="_9_5_f720368_1110473546768_387223_10247"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_204424_21433" name="Animator" visibility="private" clientDependency="_10_5_622020d_1132928323481_913192_16997">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_515333_11093" body="Implements an animation thread that invokes repaint&#xA;at a fixed rate.  If ADJUSTTIMER is true, this thread&#xA;will continuously adjust the repaint interval to&#xA;try to make the actual time between repaints match&#xA;the requested rate.&#xA;" annotatedElement="_9_5_f720368_1110473548159_204424_21433"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_913192_16997" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_204424_21433" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_280369_21437" name="ChangeHandler" clientDependency="_10_5_622020d_1132928323481_759212_16998">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_929317_11094" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicProgressBarUI.&#xA;" annotatedElement="_9_5_f720368_1110473548159_280369_21437"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_759212_16998" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_280369_21437" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_454402_11095" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323481_398919_17001 _10_5_622020d_1132928323481_272002_17000 _10_5_622020d_1132928323481_981694_16999">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_981694_16999" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317132_454402_11095" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_272002_17000" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317132_454402_11095" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_398919_17001" name="" supplier="_9_5_f720368_1110473546565_895193_6569" client="_10_5_622020d_1132928317132_454402_11095" contract="_9_5_f720368_1110473546565_895193_6569"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_330916_9965" name="BasicGraphicsUtils"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_783488_10035" name="BasicToolBarSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_114704_11201" body="A Basic L&amp;F implementation of ToolBarSeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&lt;p>&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546753_783488_10035"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_958428_17136" isSubstitutable="true" general="_9_5_f720368_1110473546753_248678_10009"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_112295_9947" name="BasicComboPopup" clientDependency="_10_5_622020d_1132928323441_106894_16816">
                <ownedComment xmi:id="_10_5_622020d_1132928317092_597714_10981" body="This is a basic implementation of the &lt;code>ComboPopup&lt;/code> interface.&#xA;&#xA;This class represents the ui for the popup portion of the combo box.&#xA;&lt;p>&#xA;All event handling is handled by listener classes created with the&#xA;&lt;code>createxxxListener()&lt;/code> methods and internal classes.&#xA;You can change the behavior of this class by overriding the&#xA;&lt;code>createxxxListener()&lt;/code> methods and supplying your own&#xA;event listeners or subclassing from the ones supplied in this class.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.78 03/05/04&#xA;@author Tom Santos&#xA;@author Mark Davidson&#xA;" annotatedElement="_9_5_f720368_1110473546753_112295_9947"/>
                <generalization xmi:id="_10_5_622020d_1132928323441_606298_16817" isSubstitutable="true" general="_9_5_f720368_1110473546799_993159_10753"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323441_106894_16816" name="" supplier="_9_5_f720368_1110473546753_411693_10049" client="_9_5_f720368_1110473546753_112295_9947" contract="_9_5_f720368_1110473546753_411693_10049"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_765939_21207" name="InvocationMouseHandler" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_442849_10969" body="A listener to be registered upon the combo box&#xA;(&lt;em>not&lt;/em> its popup menu)&#xA;to handle mouse events&#xA;that affect the state of the popup menu.&#xA;The main purpose of this listener is to make the popup menu&#xA;appear and disappear.&#xA;This listener also helps&#xA;with click-and-drag scenarios by setting the selection if the mouse was&#xA;released over the list during a drag.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;We recommend that you &lt;em>not&lt;/em>&#xA;create subclasses of this class.&#xA;If you absolutely must create a subclass,&#xA;be sure to invoke the superclass&#xA;version of each method.&#xA;&#xA;@see BasicComboPopup#createMouseListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_765939_21207"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_631724_16820" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_850711_21209" name="InvocationMouseMotionHandler" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_949812_10970" body="This listener watches for dragging and updates the current selection in the&#xA;list if it is dragging over the list.&#xA;" annotatedElement="_9_5_f720368_1110473548143_850711_21209"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_726497_16821" isSubstitutable="true" general="_9_5_f720368_1110473546565_766151_6595"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547206_542652_15800" name="InvocationKeyHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_836275_10971" body="As of Java 2 platform v 1.4, this class is now obsolete and is only included for&#xA;backwards API compatibility. Do not instantiate or subclass.&#xA;&lt;p>&#xA;All the functionality of this class has been included in&#xA;BasicComboBoxUI ActionMap/InputMap methods.&#xA;" annotatedElement="_9_5_f720368_1110473547206_542652_15800"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_935197_16822" isSubstitutable="true" general="_9_5_f720368_1110473546565_24749_6583"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_741471_21212" name="ListSelectionHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323441_976286_16823">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_48944_10972" body="As of Java 2 platform v 1.4, this class is now obsolete, doesn't do anything, and&#xA;is only included for backwards API compatibility. Do not call or&#xA;override.&#xA;" annotatedElement="_9_5_f720368_1110473548143_741471_21212"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_976286_16823" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548143_741471_21212" contract="_9_5_f720368_1110473546753_43790_9865"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_471176_21214" name="ListDataHandler" clientDependency="_10_5_622020d_1132928323441_118407_16824">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_139573_10973" body="As of 1.4, this class is now obsolete, doesn't do anything, and&#xA;is only included for backwards API compatibility. Do not call or&#xA;override.&#xA;&lt;p>&#xA;The functionality has been migrated into &lt;code>ItemHandler&lt;/code>.&#xA;&#xA;@see #createItemListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_471176_21214"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_118407_16824" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_9_5_f720368_1110473548143_471176_21214" contract="_9_5_f720368_1110473546753_268063_9861"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_102286_21216" name="ListMouseHandler" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_735438_10974" body="This listener hides the popup when the mouse is released in the list.&#xA;" annotatedElement="_9_5_f720368_1110473548143_102286_21216"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_921061_16825" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_499237_21218" name="ListMouseMotionHandler" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_98347_10975" body="This listener changes the selected item as you move the mouse over the list.&#xA;The selection change is not committed to the model, this is for user feedback only.&#xA;" annotatedElement="_9_5_f720368_1110473548143_499237_21218"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_219251_16826" isSubstitutable="true" general="_9_5_f720368_1110473546565_766151_6595"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_570069_21220" name="ItemHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323441_220621_16827">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_849062_10976" body="This listener watches for changes to the selection in the&#xA;combo box.&#xA;" annotatedElement="_9_5_f720368_1110473548143_570069_21220"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_220621_16827" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473548143_570069_21220" contract="_9_5_f720368_1110473546565_919591_6581"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_37710_21222" name="PropertyChangeHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323441_395061_16828">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_236517_10977" body="This listener watches for bound properties that have changed in the&#xA;combo box.&#xA;&lt;p>&#xA;Subclasses which wish to listen to combo box property changes should&#xA;call the superclass methods to ensure that the combo popup correctly&#xA;handles property changes.&#xA;&#xA;@see #createPropertyChangeListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_37710_21222"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_395061_16828" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548143_37710_21222" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_850997_10968" name="EmptyListModelClass" visibility="private" clientDependency="_10_5_622020d_1132928323441_581505_16818 _10_5_622020d_1132928323441_446312_16819">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_581505_16818" name="" supplier="_9_5_f720368_1110473546799_933232_10811" client="_10_5_622020d_1132928317092_850997_10968" contract="_9_5_f720368_1110473546799_933232_10811"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_446312_16819" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928317092_850997_10968" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_747567_10978" name="AutoScrollActionHandler" visibility="private" clientDependency="_10_5_622020d_1132928323441_137935_16829">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_137935_16829" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317092_747567_10978" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_674333_10979" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323441_702725_16834 _10_5_622020d_1132928323441_439593_16830 _10_5_622020d_1132928323441_461436_16831 _10_5_622020d_1132928323441_304942_16833 _10_5_622020d_1132928323441_70381_16832">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_439593_16830" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_10_5_622020d_1132928317092_674333_10979" contract="_9_5_f720368_1110473546565_919591_6581"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_461436_16831" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317092_674333_10979" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_70381_16832" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_10_5_622020d_1132928317092_674333_10979" contract="_9_5_f720368_1110473546565_341038_6597"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_304942_16833" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317092_674333_10979" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_702725_16834" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928317092_674333_10979" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_899145_9953" name="BasicDirectoryModel" clientDependency="_10_5_622020d_1132928323451_772478_16847">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_201770_10992" body="Basic implementation of a file list.&#xA;&#xA;@version %i% %g%&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_899145_9953"/>
                <generalization xmi:id="_10_5_622020d_1132928323451_621197_16848" isSubstitutable="true" general="_9_5_f720368_1110473546784_136098_10617"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_772478_16847" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546753_899145_9953" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_580585_21238" name="LoadFilesThread" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323451_604628_16849" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_503423_21239" name="DoChangeContents" visibility="package" clientDependency="_10_5_622020d_1132928323451_456577_16850">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_456577_16850" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548143_503423_21239" contract="_9_5_f720368_1110473546612_953158_7669"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_425573_9995" name="BasicPopupMenuUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_431564_11092" body="A Windows L&amp;F implementation of PopupMenuUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.119 04/16/04&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_425573_9995"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_183766_16986" isSubstitutable="true" general="_9_5_f720368_1110473546768_21145_10245"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_504972_21417" name="MouseGrabber" visibility="private" clientDependency="_10_5_622020d_1132928323481_883672_16990 _10_5_622020d_1132928323481_304322_16992 _10_5_622020d_1132928323481_976655_16991 _10_5_622020d_1132928323481_425624_16993">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_883672_16990" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_504972_21417" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_976655_16991" name="" supplier="_9_5_f720368_1110473546565_967678_6541" client="_9_5_f720368_1110473548159_504972_21417" contract="_9_5_f720368_1110473546565_967678_6541"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_304322_16992" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473548159_504972_21417" contract="_9_5_f720368_1110473546565_824053_6549"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_425624_16993" name="" supplier="_9_5_f720368_1110473546565_348855_6617" client="_9_5_f720368_1110473548159_504972_21417" contract="_9_5_f720368_1110473546565_348855_6617"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_708144_21419" name="BasicPopupMenuListener" visibility="private" clientDependency="_10_5_622020d_1132928323481_549650_16987">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_755036_11086" body="This Listener fires the Action that provides the correct auditory&#xA;feedback.&#xA;&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548159_708144_21419"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_549650_16987" name="" supplier="_9_5_f720368_1110473546753_519706_9885" client="_9_5_f720368_1110473548159_708144_21419" contract="_9_5_f720368_1110473546753_519706_9885"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_856242_21429" name="MenuKeyboardHelper" visibility="private" clientDependency="_10_5_622020d_1132928323481_194999_16994 _10_5_622020d_1132928323481_467138_16995">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_245598_11090" body="This helper is added to MenuSelectionManager as a ChangeListener to&#xA;listen to menu selection changes. When a menu is activated, it passes&#xA;focus to its parent JRootPane, and installs an ActionMap/InputMap pair&#xA;on that JRootPane. Those maps are necessary in order for menu&#xA;navigation to work. When menu is being deactivated, it restores focus&#xA;to the component that has had it before menu activation, and uninstalls&#xA;the maps.&#xA;This helper is also installed as a KeyListener on root pane when menu&#xA;is active. It forwards key events to MenuSelectionManager for mnemonic&#xA;keys handling.&#xA;" annotatedElement="_9_5_f720368_1110473548159_856242_21429"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_194999_16994" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_856242_21429" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_467138_16995" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_9_5_f720368_1110473548159_856242_21429" contract="_9_5_f720368_1110473546565_361131_6587"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_101163_11087" name="BasicMenuKeyListener" visibility="private" clientDependency="_10_5_622020d_1132928323481_512488_16988">
                  <ownedComment xmi:id="_10_5_622020d_1132928317132_507915_11088" body="Handles mnemonic for children JMenuItems.&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928317132_101163_11087"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323481_512488_16988" name="" supplier="_9_5_f720368_1110473546753_423354_9875" client="_10_5_622020d_1132928317132_101163_11087" contract="_9_5_f720368_1110473546753_423354_9875"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_7949_11089" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_170401_9951" name="BasicDesktopPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317092_808930_10990" body="Basic L&amp;F for a desktop.&#xA;&#xA;@version 1.55 05/18/04&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_170401_9951"/>
                <generalization xmi:id="_10_5_622020d_1132928323441_919763_16837" isSubstitutable="true" general="_9_5_f720368_1110473546768_154367_10217"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_600531_21228" name="OpenAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323441_842447_16842" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_813479_21229" name="CloseAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323441_167204_16843" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_61522_21231" name="MinimizeAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323441_295364_16844" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_838914_21232" name="MaximizeAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323441_857317_16845" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_880885_21233" name="NavigateAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323441_827077_16846" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_13040_10985" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323441_190809_16838">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_190809_16838" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317092_13040_10985" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_661232_10986" name="BasicDesktopManager" visibility="private" clientDependency="_10_5_622020d_1132928323441_444407_16839">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_149499_10987" body="The default DesktopManager installed by the UI.&#xA;" annotatedElement="_10_5_622020d_1132928317092_661232_10986"/>
                  <generalization xmi:id="_10_5_622020d_1132928323441_638469_16840" isSubstitutable="true" general="_9_5_f720368_1110473546784_142565_10667"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_444407_16839" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317092_661232_10986" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_248450_10988" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_958773_11243" name="LazyActionMap" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_187498_11245" body="An ActionMap that populates its contents as necessary. The&#xA;contents are populated by invoking the &lt;code>loadActionMap&lt;/code>&#xA;method on the passed in Object.&#xA;&#xA;@version 1.5, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317172_958773_11243"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_432260_17195" isSubstitutable="true" general="_9_5_f720368_1110473546768_147025_10199"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_467399_9935" name="BasicCheckBoxMenuItemUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317052_193894_10944" body="BasicCheckboxMenuItem implementation&#xA;&#xA;@version 1.53 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_467399_9935"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_342111_16781" isSubstitutable="true" general="_9_5_f720368_1110473546753_8340_9983"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_123715_10013" name="BasicSpinnerUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_575062_11138" body="The default Spinner UI delegate.&#xA;&#xA;@version 1.22 12/19/03&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546753_123715_10013"/>
                <generalization xmi:id="_10_5_622020d_1132928323531_632985_17046" isSubstitutable="true" general="_9_5_f720368_1110473546768_345250_10259"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_606679_21499" name="ArrowButtonHandler" visibility="private" clientDependency="_10_5_622020d_1132928323531_594676_17047 _10_5_622020d_1132928323531_954726_17048 _10_5_622020d_1132928323541_903889_17049">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_24098_11135" body="A handler for spinner arrow button mouse and action events.  When&#xA;a left mouse pressed event occurs we look up the (enabled) spinner&#xA;that's the source of the event and start the autorepeat timer.  The&#xA;timer fires action events until any button is released at which&#xA;point the timer is stopped and the reference to the spinner cleared.&#xA;The timer doesn't start until after a 300ms delay, so often the&#xA;source of the initial (and final) action event is just the button&#xA;logic for mouse released - which means that we're relying on the fact&#xA;that our mouse listener runs after the buttons mouse listener.&#xA;&lt;p>&#xA;Note that one instance of this handler is shared by all slider previous&#xA;arrow buttons and likewise for all of the next buttons,&#xA;so it doesn't have any state that persists beyond the limits&#xA;of a single button pressed/released gesture.&#xA;" annotatedElement="_9_5_f720368_1110473548159_606679_21499"/>
                  <generalization xmi:id="_10_5_622020d_1132928323541_601599_17050" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_594676_17047" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548159_606679_21499" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_954726_17048" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_9_5_f720368_1110473548159_606679_21499" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_903889_17049" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548159_606679_21499" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317142_104843_11136" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323541_831579_17052 _10_5_622020d_1132928323541_411580_17051">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_411580_17051" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317142_104843_11136" contract="_9_5_f720368_1110473546581_587570_7065"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323541_831579_17052" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317142_104843_11136" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_804981_9969" name="BasicIconFactory" clientDependency="_10_5_622020d_1132928323451_565870_16881">
                <ownedComment xmi:id="_10_5_622020d_1132928317112_338589_11019" body="Factory object that can vend Icons appropriate for the basic L &amp; F.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.27 12/19/03&#xA;@author David Kloba&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_804981_9969"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323451_565870_16881" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_804981_9969" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_48143_21278" name="EmptyFrameIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_350209_16882 _10_5_622020d_1132928323451_621975_16883">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_350209_16882" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_48143_21278" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_621975_16883" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_48143_21278" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_858314_21280" name="CheckBoxIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_531923_16884 _10_5_622020d_1132928323451_80573_16885">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_531923_16884" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_858314_21280" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_80573_16885" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_858314_21280" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_893005_21282" name="RadioButtonIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_816134_16886 _10_5_622020d_1132928323451_967355_16887 _10_5_622020d_1132928323451_837143_16888">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_816134_16886" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_893005_21282" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_967355_16887" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_893005_21282" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_837143_16888" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_893005_21282" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_100890_21284" name="CheckBoxMenuItemIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_588050_16891 _10_5_622020d_1132928323451_88842_16890 _10_5_622020d_1132928323451_297493_16889">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_297493_16889" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_100890_21284" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_88842_16890" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_100890_21284" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_588050_16891" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_100890_21284" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_535802_21286" name="RadioButtonMenuItemIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_409273_16893 _10_5_622020d_1132928323451_197037_16892 _10_5_622020d_1132928323451_390890_16894">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_197037_16892" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_535802_21286" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_409273_16893" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_535802_21286" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_390890_16894" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_535802_21286" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_263932_21288" name="MenuItemCheckIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_402444_16897 _10_5_622020d_1132928323451_687734_16896 _10_5_622020d_1132928323451_924105_16895">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_924105_16895" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_263932_21288" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_687734_16896" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_263932_21288" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_402444_16897" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_263932_21288" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_519085_21290" name="MenuItemArrowIcon" visibility="private" clientDependency="_10_5_622020d_1132928323451_405791_16899 _10_5_622020d_1132928323451_374814_16898 _10_5_622020d_1132928323451_150377_16900">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_374814_16898" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_519085_21290" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_405791_16899" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_519085_21290" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_150377_16900" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_519085_21290" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_472687_21292" name="MenuArrowIcon" visibility="private" clientDependency="_10_5_622020d_1132928323461_954299_16901 _10_5_622020d_1132928323461_986786_16902 _10_5_622020d_1132928323461_262936_16903">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_954299_16901" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548143_472687_21292" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_986786_16902" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_472687_21292" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_262936_16903" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548143_472687_21292" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_920667_9973" name="BasicInternalFrameUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317112_916889_11035" body="A basic L&amp;F implementation of JInternalFrame.&#xA;&#xA;@version 1.118 05/18/04&#xA;@author David Kloba&#xA;@author Rich Schiavi&#xA;" annotatedElement="_9_5_f720368_1110473546753_920667_9973"/>
                <generalization xmi:id="_10_5_622020d_1132928323461_78128_16918" isSubstitutable="true" general="_9_5_f720368_1110473546768_870469_10231"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_540908_21314" name="InternalFramePropertyChangeListener" clientDependency="_10_5_622020d_1132928323461_569739_16919">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_569739_16919" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548143_540908_21314" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_254600_21315" name="InternalFrameLayout" clientDependency="_10_5_622020d_1132928323461_733357_16920">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_733357_16920" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548143_254600_21315" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_931541_21316" name="BorderListener" visibility="protected" clientDependency="_10_5_622020d_1132928323461_983109_16921">
                  <ownedComment xmi:id="_10_5_622020d_1132928317112_354254_11032" body="Listens for border adjustments.&#xA;" annotatedElement="_9_5_f720368_1110473548143_931541_21316"/>
                  <generalization xmi:id="_10_5_622020d_1132928323461_545850_16922" isSubstitutable="true" general="_9_5_f720368_1110473546753_537494_9879"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_983109_16921" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473548143_931541_21316" contract="_9_5_f720368_1110473546799_869308_10869"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_311998_21318" name="ComponentHandler" visibility="protected" clientDependency="_10_5_622020d_1132928323461_99092_16923">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_99092_16923" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_9_5_f720368_1110473548143_311998_21318" contract="_9_5_f720368_1110473546565_824053_6549"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_583648_21319" name="GlassPaneDispatcher" visibility="protected" clientDependency="_10_5_622020d_1132928323461_430777_16924">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_430777_16924" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548143_583648_21319" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_740953_21320" name="BasicInternalFrameListener" visibility="protected" clientDependency="_10_5_622020d_1132928323461_306363_16925">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_306363_16925" name="" supplier="_9_5_f720368_1110473546753_971546_9857" client="_9_5_f720368_1110473548143_740953_21320" contract="_9_5_f720368_1110473546753_971546_9857"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317112_595105_11033" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323461_16249_16927 _10_5_622020d_1132928323461_998204_16931 _10_5_622020d_1132928323461_303778_16929 _10_5_622020d_1132928323461_360891_16930 _10_5_622020d_1132928323461_342241_16928 _10_5_622020d_1132928323461_254258_16926">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_254258_16926" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546565_824053_6549"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_16249_16927" name="" supplier="_9_5_f720368_1110473546753_971546_9857" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546753_971546_9857"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_342241_16928" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546581_587570_7065"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_303778_16929" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546753_606883_9881"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_360891_16930" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323461_998204_16931" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_10_5_622020d_1132928317112_595105_11033" contract="_9_5_f720368_1110473546799_869308_10869"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_913171_10001" name="BasicRadioButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_871648_11101" body="RadioButtonUI implementation for BasicRadioButtonUI&#xA;&#xA;@version 1.69 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_913171_10001"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_918407_17003" isSubstitutable="true" general="_9_5_f720368_1110473546753_487580_10033"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_978391_9961" name="BasicFileChooserUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_58526_11008" body="Basic L&amp;F implementation of a FileChooser.&#xA;&#xA;@version %i% %g%&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_978391_9961"/>
                <generalization xmi:id="_10_5_622020d_1132928323451_738545_16859" isSubstitutable="true" general="_9_5_f720368_1110473546768_774609_10221"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_693540_21244" name="DoubleClickListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323451_247683_16862" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_681014_21245" name="SelectionListener" visibility="protected" clientDependency="_10_5_622020d_1132928323451_651482_16863">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_651482_16863" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473548143_681014_21245" contract="_9_5_f720368_1110473546753_43790_9865"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_947535_16105" name="NewFolderAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_823863_11001" body="Creates a new folder.&#xA;" annotatedElement="_9_5_f720368_1110473547237_947535_16105"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_365395_16864" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_281522_21247" name="GoHomeAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_565727_11002" body="Acts on the &quot;home&quot; key event or equivalent event.&#xA;" annotatedElement="_9_5_f720368_1110473548143_281522_21247"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_904186_16865" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_830048_21249" name="ChangeToParentDirectoryAction" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323451_210757_16866" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_461880_21250" name="ApproveSelectionAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_773109_11003" body="Responds to an Open or Save request&#xA;" annotatedElement="_9_5_f720368_1110473548143_461880_21250"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_95452_16867" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_381877_21252" name="GlobFilter" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323451_441973_16868" isSubstitutable="true" general="_9_5_f720368_1110473546753_204526_9915"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_71864_21253" name="CancelSelectionAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_154346_11004" body="Responds to a cancel request.&#xA;" annotatedElement="_9_5_f720368_1110473548143_71864_21253"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_4340_16869" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_594355_21255" name="UpdateAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_782468_11005" body="Rescans the files in the current directory&#xA;" annotatedElement="_9_5_f720368_1110473548143_594355_21255"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_118655_16870" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_207528_21257" name="AcceptAllFileFilter" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323451_728012_16871" isSubstitutable="true" general="_9_5_f720368_1110473546753_204526_9915"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_480540_16118" name="BasicFileView" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323451_911673_16872" isSubstitutable="true" general="_9_5_f720368_1110473546753_439743_9925"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_343716_21258" name="FileTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323451_813949_16873">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_46588_11006" body="Data transfer support for the file chooser.  Since files are currently presented&#xA;as a list, the list support is reused with the added flavor of DataFlavor.javaFileListFlavor&#xA;" annotatedElement="_9_5_f720368_1110473548143_343716_21258"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_321493_16874" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_813949_16873" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_343716_21258" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_255164_21261" name="FileTransferable" visibility="package">
                    <generalization xmi:id="_10_5_622020d_1132928323451_329961_16875" isSubstitutable="true" general="_9_5_f720368_1110473546753_755917_10041"/>
                  </nestedClassifier>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317102_825230_11000" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323451_410161_16860 _10_5_622020d_1132928323451_753323_16861">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_410161_16860" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317102_825230_11000" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323451_753323_16861" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_10_5_622020d_1132928317102_825230_11000" contract="_9_5_f720368_1110473546753_43790_9865"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_582706_9967" name="BasicHTML">
                <ownedComment xmi:id="_10_5_622020d_1132928317102_112648_11017" body="Support for providing html views for the swing components.&#xA;This translates a simple html string to a javax.swing.text.View&#xA;implementation that can render the html and provide the necessary&#xA;layout semantics.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.22 07/23/04&#xA;" annotatedElement="_9_5_f720368_1110473546753_582706_9967"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_876827_21265" name="BasicEditorKit" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_578231_11012" body="The views produced for the ComponentUI implementations aren't&#xA;going to be edited and don't need full html support.  This kit&#xA;alters the HTMLEditorKit to try and trim things down a bit.&#xA;It does the following:&#xA;&lt;ul>&#xA;&lt;li>It doesn't produce Views for things like comments,&#xA;head, title, unknown tags, etc.&#xA;&lt;li>It installs a different set of css settings from the default&#xA;provided by HTMLEditorKit.&#xA;&lt;/ul>&#xA;" annotatedElement="_9_5_f720368_1110473548143_876827_21265"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_375228_16877" isSubstitutable="true" general="_9_5_f720368_1110473546768_503665_10357"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_914686_21268" name="BasicHTMLViewFactory" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_110972_11013" body="BasicHTMLViewFactory extends HTMLFactory to force images to be loaded&#xA;synchronously.&#xA;" annotatedElement="_9_5_f720368_1110473548143_914686_21268"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_122841_16878" isSubstitutable="true" general="_9_5_f720368_1110473548190_988284_21861"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_161850_21271" name="BasicDocument" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_981775_11014" body="The subclass of HTMLDocument that is used as the model. getForeground&#xA;is overridden to return the foreground property from the Component this&#xA;was created for.&#xA;" annotatedElement="_9_5_f720368_1110473548143_161850_21271"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_788129_16879" isSubstitutable="true" general="_9_5_f720368_1110473546768_420899_10355"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_266220_21274" name="Renderer" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317102_408237_11015" body="Root text view that acts as an HTML renderer.&#xA;" annotatedElement="_9_5_f720368_1110473548143_266220_21274"/>
                  <generalization xmi:id="_10_5_622020d_1132928323451_589882_16880" isSubstitutable="true" general="_9_5_f720368_1110473546784_975109_10547"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_316126_9945" name="BasicComboBoxUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317092_288214_10967" body="Basic UI implementation for JComboBox.&#xA;&lt;p>&#xA;The combo box is a compound component which means that it is an agregate of&#xA;many simpler components. This class creates and manages the listeners&#xA;on the combo box and the combo box model. These listeners update the user&#xA;interface in response to changes in the properties and state of the combo box.&#xA;&lt;p>&#xA;All event handling is handled by listener classes created with the&#xA;&lt;code>createxxxListener()&lt;/code> methods and internal classes.&#xA;You can change the behavior of this class by overriding the&#xA;&lt;code>createxxxListener()&lt;/code> methods and supplying your own&#xA;event listeners or subclassing from the ones supplied in this class.&#xA;&lt;p>&#xA;For adding specific actions,&#xA;overide &lt;code>installKeyboardActions&lt;/code> to add actions in response to&#xA;KeyStroke bindings. See the article &lt;a href=&quot;http://java.sun.com/products/jfc/tsc/special_report/kestrel/keybindings.html&quot;>Keyboard Bindings in Swing&lt;/a>&#xA;at &lt;a href=&quot;http://java.sun.com/products/jfc/tsc&quot;>&lt;em>The Swing Connection&lt;/em>&lt;/a>.&#xA;&#xA;@version 1.170 12/19/03&#xA;@author Arnaud Weber&#xA;@author Tom Santos&#xA;@author Mark Davidson&#xA;" annotatedElement="_9_5_f720368_1110473546753_316126_9945"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_977862_16800" isSubstitutable="true" general="_9_5_f720368_1110473546768_820258_10209"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_13972_21180" name="KeyHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_804629_10957" body="This listener checks to see if the key event isn't a navigation key.  If&#xA;it finds a key event that wasn't a navigation key it dispatches it to&#xA;JComboBox.selectWithKeyChar() so that it can do type-ahead.&#xA;&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_13972_21180"/>
                  <generalization xmi:id="_10_5_622020d_1132928323431_340098_16801" isSubstitutable="true" general="_9_5_f720368_1110473546565_24749_6583"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_201248_21182" name="FocusHandler" clientDependency="_10_5_622020d_1132928323431_804938_16802">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_815101_10958" body="This listener hides the popup when the focus is lost.  It also repaints&#xA;when focus is gained or lost.&#xA;&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548143_201248_21182"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_804938_16802" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548143_201248_21182" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_98878_21184" name="ListDataHandler" clientDependency="_10_5_622020d_1132928323431_822097_16803">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_419492_10959" body="This listener watches for changes in the&#xA;&lt;code>ComboBoxModel&lt;/code>.&#xA;&lt;p>&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;&#xA;@see #createListDataListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_98878_21184"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_822097_16803" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_9_5_f720368_1110473548143_98878_21184" contract="_9_5_f720368_1110473546753_268063_9861"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_535867_21186" name="ItemHandler" clientDependency="_10_5_622020d_1132928323441_877974_16804">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_565408_10960" body="This listener watches for changes to the selection in the&#xA;combo box.&#xA;&lt;p>&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;&#xA;@see #createItemListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_535867_21186"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_877974_16804" name="" supplier="_9_5_f720368_1110473546565_919591_6581" client="_9_5_f720368_1110473548143_535867_21186" contract="_9_5_f720368_1110473546565_919591_6581"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_602978_21188" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323441_582404_16805">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_783398_10961" body="This listener watches for bound properties that have changed in the&#xA;combo box.&#xA;&lt;p>&#xA;Subclasses which wish to listen to combo box property changes should&#xA;call the superclass methods to ensure that the combo box ui correctly&#xA;handles property changes.&#xA;&lt;p>&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;&#xA;@see #createPropertyChangeListener&#xA;" annotatedElement="_9_5_f720368_1110473548143_602978_21188"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_582404_16805" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548143_602978_21188" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547206_777065_15802" name="ComboBoxLayoutManager" clientDependency="_10_5_622020d_1132928323441_455726_16806">
                  <ownedComment xmi:id="_10_5_622020d_1132928317092_648577_10962" body="This layout manager handles the 'standard' layout of combo boxes.  It puts&#xA;the arrow button to the right and the editor to the left.  If there is no&#xA;editor it still keeps the arrow button to the right.&#xA;&#xA;This public inner class should be treated as protected.&#xA;Instantiate it only within subclasses of&#xA;&lt;code>BasicComboBoxUI&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473547206_777065_15802"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_455726_16806" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473547206_777065_15802" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_882319_10963" name="Actions" visibility="private"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_724831_10964" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323441_390229_16811 _10_5_622020d_1132928323441_268081_16808 _10_5_622020d_1132928323441_979228_16809 _10_5_622020d_1132928323441_218869_16810 _10_5_622020d_1132928323441_959851_16812 _10_5_622020d_1132928323441_556131_16813">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_268081_16808" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546565_106737_6535"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_979228_16809" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_218869_16810" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546565_361131_6587"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_390229_16811" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546581_587570_7065"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_959851_16812" name="" supplier="_9_5_f720368_1110473546753_268063_9861" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546753_268063_9861"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_556131_16813" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317092_724831_10964" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317092_506503_10965" name="DefaultKeySelectionManager" visibility="package" clientDependency="_10_5_622020d_1132928323441_121429_16815 _10_5_622020d_1132928323441_919930_16814">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_919930_16814" name="" supplier="_9_5_f720368_1110473548424_8714_24119" client="_10_5_622020d_1132928317092_506503_10965" contract="_9_5_f720368_1110473548424_8714_24119"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323441_121429_16815" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317092_506503_10965" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_460976_10011" name="BasicSliderUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317142_254569_11134" body="A Basic L&amp;F implementation of SliderUI.&#xA;&#xA;@version 1.100 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_460976_10011"/>
                <generalization xmi:id="_10_5_622020d_1132928323491_809716_17032" isSubstitutable="true" general="_9_5_f720368_1110473546768_601118_10257"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_548958_21482" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323491_819513_17033">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323491_819513_17033" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548159_548958_21482" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_425028_21483" name="ChangeHandler" clientDependency="_10_5_622020d_1132928323531_865630_17038">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_81921_11125" body="Data model listener.&#xA;&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_425028_21483"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_865630_17038" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548159_425028_21483" contract="_9_5_f720368_1110473546753_937925_9841"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_664097_21485" name="TrackListener">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_234974_11126" body="Track mouse movements.&#xA;&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_664097_21485"/>
                  <generalization xmi:id="_10_5_622020d_1132928323531_600566_17039" isSubstitutable="true" general="_9_5_f720368_1110473546753_537494_9879"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_857864_21487" name="ScrollListener" clientDependency="_10_5_622020d_1132928323531_936173_17040">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_51230_11127" body="Scroll-event listener.&#xA;&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_857864_21487"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_936173_17040" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548159_857864_21487" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_781697_21489" name="ComponentHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_727475_11128" body="Listener for resizing events.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_781697_21489"/>
                  <generalization xmi:id="_10_5_622020d_1132928323531_278167_17041" isSubstitutable="true" general="_9_5_f720368_1110473546565_259160_6545"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_369712_21491" name="FocusHandler" clientDependency="_10_5_622020d_1132928323531_973281_17042">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_658055_11129" body="Focus-change listener.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_369712_21491"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_973281_17042" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548159_369712_21491" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_871619_21493" name="ActionScroller">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_893760_11130" body="As of Java 2 platform v1.3 this undocumented class is no longer used.&#xA;The recommended approach to creating bindings is to use a&#xA;combination of an &lt;code>ActionMap&lt;/code>, to contain the action,&#xA;and an &lt;code>InputMap&lt;/code> to contain the mapping from KeyStroke&#xA;to action description. The InputMap is is usually described in the&#xA;LookAndFeel tables.&#xA;&lt;p>&#xA;Please refer to the key bindings specification for further details.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;Foo>.&#xA;" annotatedElement="_9_5_f720368_1110473548159_871619_21493"/>
                  <generalization xmi:id="_10_5_622020d_1132928323531_513947_17043" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_960179_21495" name="SharedActionScroller" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317142_715303_11131" body="A static version of the above.&#xA;" annotatedElement="_9_5_f720368_1110473548159_960179_21495"/>
                  <generalization xmi:id="_10_5_622020d_1132928323531_199316_17044" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317142_480091_11124" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323501_709671_17034 _10_5_622020d_1132928323531_9618_17037 _10_5_622020d_1132928323531_192567_17036 _10_5_622020d_1132928323531_555768_17035">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323501_709671_17034" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_10_5_622020d_1132928317142_480091_11124" contract="_9_5_f720368_1110473546753_937925_9841"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_555768_17035" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_10_5_622020d_1132928317142_480091_11124" contract="_9_5_f720368_1110473546565_824053_6549"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_192567_17036" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317142_480091_11124" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323531_9618_17037" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317142_480091_11124" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317142_298386_11132" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_487580_10033" name="BasicToggleButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317162_565147_11199" body="BasicToggleButton implementation&#xA;&lt;p>&#xA;&#xA;@version 1.58 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_487580_10033"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_551938_17135" isSubstitutable="true" general="_9_5_f720368_1110473546753_229752_9933"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_909975_9943" name="BasicComboBoxRenderer" clientDependency="_10_5_622020d_1132928323431_256084_16795 _10_5_622020d_1132928323431_921389_16796">
                <ownedComment xmi:id="_10_5_622020d_1132928317082_216365_10956" body="ComboBox renderer&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_909975_9943"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_585251_16797" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323431_256084_16795" name="" supplier="_9_5_f720368_1110473546799_692124_10809" client="_9_5_f720368_1110473546753_909975_9943" contract="_9_5_f720368_1110473546799_692124_10809"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323431_921389_16796" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_909975_9943" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_309227_21176" name="UIResource" clientDependency="_10_5_622020d_1132928323431_133307_16798">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_995082_10954" body="A subclass of BasicComboBoxRenderer that implements UIResource.&#xA;BasicComboBoxRenderer doesn't implement UIResource&#xA;directly so that applications can safely override the&#xA;cellRenderer property with BasicListCellRenderer subclasses.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548143_309227_21176"/>
                  <generalization xmi:id="_10_5_622020d_1132928323431_980426_16799" isSubstitutable="true" general="_9_5_f720368_1110473546753_909975_9943"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_133307_16798" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548143_309227_21176" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_951213_9993" name="BasicPopupMenuSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_593058_11085" body="A Basic L&amp;F implementation of PopupMenuSeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546753_951213_9993"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_389466_16985" isSubstitutable="true" general="_9_5_f720368_1110473546753_248678_10009"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_915422_10043" name="BasicTreeUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_47107_11234" body="The basic L&amp;F for a hierarchical data structure.&#xA;&lt;p>&#xA;&#xA;@version 1.172 05/27/04&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_915422_10043"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_794226_17154" isSubstitutable="true" general="_9_5_f720368_1110473546768_121840_10275"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_628645_21691" name="TreeExpansionHandler" clientDependency="_10_5_622020d_1132928323561_420096_17155">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_246950_11211" body="Updates the TreeState in response to nodes expanding/collapsing.&#xA;" annotatedElement="_9_5_f720368_1110473548174_628645_21691"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_420096_17155" name="" supplier="_9_5_f720368_1110473546753_790074_9899" client="_9_5_f720368_1110473548174_628645_21691" contract="_9_5_f720368_1110473546753_790074_9899"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_213545_21693" name="ComponentHandler" clientDependency="_10_5_622020d_1132928323561_738844_17156">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_396285_11212" body="Updates the preferred size when scrolling (if necessary).&#xA;" annotatedElement="_9_5_f720368_1110473548174_213545_21693"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_928640_17157" isSubstitutable="true" general="_9_5_f720368_1110473546565_259160_6545"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_738844_17156" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_9_5_f720368_1110473548174_213545_21693" contract="_9_5_f720368_1110473546565_106737_6535"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_591993_21695" name="TreeModelHandler" clientDependency="_10_5_622020d_1132928323561_868913_17158">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_168949_11213" body="Forwards all TreeModel events to the TreeState.&#xA;" annotatedElement="_9_5_f720368_1110473548174_591993_21695"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_868913_17158" name="" supplier="_9_5_f720368_1110473546753_680224_9903" client="_9_5_f720368_1110473548174_591993_21695" contract="_9_5_f720368_1110473546753_680224_9903"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_523634_21697" name="TreeSelectionHandler" clientDependency="_10_5_622020d_1132928323561_302867_17159">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_269381_11214" body="Listens for changes in the selection model and updates the display&#xA;accordingly.&#xA;" annotatedElement="_9_5_f720368_1110473548174_523634_21697"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_302867_17159" name="" supplier="_9_5_f720368_1110473546753_512408_9907" client="_9_5_f720368_1110473548174_523634_21697" contract="_9_5_f720368_1110473546753_512408_9907"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_568125_21699" name="CellEditorHandler" clientDependency="_10_5_622020d_1132928323561_315787_17160">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_563447_11215" body="Listener responsible for getting cell editing events and updating&#xA;the tree accordingly.&#xA;" annotatedElement="_9_5_f720368_1110473548174_568125_21699"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_315787_17160" name="" supplier="_9_5_f720368_1110473546753_610396_9837" client="_9_5_f720368_1110473548174_568125_21699" contract="_9_5_f720368_1110473546753_610396_9837"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_945177_21701" name="KeyHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317162_122575_11216" body="This is used to get mutliple key down events to appropriately generate&#xA;events.&#xA;" annotatedElement="_9_5_f720368_1110473548174_945177_21701"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_303249_17161" isSubstitutable="true" general="_9_5_f720368_1110473546565_24749_6583"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_545901_21703" name="FocusHandler" clientDependency="_10_5_622020d_1132928323561_453392_17162">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_588278_11217" body="Repaints the lead selection row when focus is lost/gained.&#xA;" annotatedElement="_9_5_f720368_1110473548174_545901_21703"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_453392_17162" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473548174_545901_21703" contract="_9_5_f720368_1110473546565_10343_6561"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_515961_21705" name="NodeDimensionsHandler">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_170516_11218" body="Class responsible for getting size of node, method is forwarded&#xA;to BasicTreeUI method. X location does not include insets, that is&#xA;handled in getPathBounds.&#xA;" annotatedElement="_9_5_f720368_1110473548174_515961_21705"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_632625_17163" isSubstitutable="true" general="_9_5_f720368_1110473547190_992916_15611"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_39615_21707" name="MouseHandler" clientDependency="_10_5_622020d_1132928323561_316885_17164">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_44444_11219" body="TreeMouseListener is responsible for updating the selection&#xA;based on mouse events.&#xA;" annotatedElement="_9_5_f720368_1110473548174_39615_21707"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_222183_17165" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_316885_17164" name="" supplier="_9_5_f720368_1110473546565_341038_6597" client="_9_5_f720368_1110473548174_39615_21707" contract="_9_5_f720368_1110473546565_341038_6597"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_701386_21709" name="PropertyChangeHandler" clientDependency="_10_5_622020d_1132928323561_790288_17166">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_921401_11220" body="PropertyChangeListener for the tree. Updates the appropriate&#xA;varaible, or TreeState, based on what changes.&#xA;" annotatedElement="_9_5_f720368_1110473548174_701386_21709"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_790288_17166" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_701386_21709" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_199284_21711" name="SelectionModelPropertyChangeHandler" clientDependency="_10_5_622020d_1132928323561_173627_17167">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_249888_11221" body="Listener on the TreeSelectionModel, resets the row selection if&#xA;any of the properties of the model change.&#xA;" annotatedElement="_9_5_f720368_1110473548174_199284_21711"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_173627_17167" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548174_199284_21711" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_856111_21713" name="TreeTraverseAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_857272_11222" body="&lt;code>TreeTraverseAction&lt;/code> is the action used for left/right keys.&#xA;Will toggle the expandedness of a node, as well as potentially&#xA;incrementing the selection.&#xA;" annotatedElement="_9_5_f720368_1110473548174_856111_21713"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_608632_17168" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_715023_21715" name="TreePageAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_852898_11223" body="TreePageAction handles page up and page down events.&#xA;" annotatedElement="_9_5_f720368_1110473548174_715023_21715"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_206625_17169" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_238950_21719" name="TreeIncrementAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_91520_11224" body="TreeIncrementAction is used to handle up/down actions.  Selection&#xA;is moved up or down based on direction.&#xA;" annotatedElement="_9_5_f720368_1110473548174_238950_21719"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_532123_17170" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_697737_21721" name="TreeHomeAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_485650_11225" body="TreeHomeAction is used to handle end/home actions.&#xA;Scrolls either the first or last cell to be visible based on&#xA;direction.&#xA;" annotatedElement="_9_5_f720368_1110473548174_697737_21721"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_900711_17171" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_252119_21723" name="TreeToggleAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_324806_11226" body="For the first selected row expandedness will be toggled.&#xA;" annotatedElement="_9_5_f720368_1110473548174_252119_21723"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_829188_17172" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_492142_21728" name="TreeCancelEditingAction">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_810877_11227" body="ActionListener that invokes cancelEditing when action performed.&#xA;" annotatedElement="_9_5_f720368_1110473548174_492142_21728"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_938471_17173" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_395646_21738" name="MouseInputHandler" clientDependency="_10_5_622020d_1132928323561_788838_17174">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_333542_11228" body="MouseInputHandler handles passing all mouse events,&#xA;including mouse motion events, until the mouse is released to&#xA;the destination it is constructed with. It is assumed all the&#xA;events are currently target at source.&#xA;" annotatedElement="_9_5_f720368_1110473548174_395646_21738"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_828106_17175" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_788838_17174" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548174_395646_21738" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_26589_21740" name="TreeDragGestureRecognizer" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_410873_11229" body="Drag gesture recognizer for JTree components&#xA;" annotatedElement="_9_5_f720368_1110473548174_26589_21740"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_848188_17176" isSubstitutable="true" general="_9_5_f720368_1110473546753_232356_9955"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_417353_21743" name="TreeDropTargetListener" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_634104_11230" body="A DropTargetListener to extend the default Swing handling of drop operations&#xA;by moving the tree selection to the nearest location to the mouse pointer.&#xA;Also adds autoscroll capability.&#xA;" annotatedElement="_9_5_f720368_1110473548174_417353_21743"/>
                  <generalization xmi:id="_10_5_622020d_1132928323561_849865_17177" isSubstitutable="true" general="_9_5_f720368_1110473546753_10232_9957"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_536745_21746" name="TreeTransferHandler" visibility="package" clientDependency="_10_5_622020d_1132928323561_889679_17179 _10_5_622020d_1132928323561_936306_17178">
                  <generalization xmi:id="_10_5_622020d_1132928323561_309710_17180" isSubstitutable="true" general="_9_5_f720368_1110473546799_717489_10883"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_936306_17178" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548174_536745_21746" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_889679_17179" name="" supplier="_9_5_f720368_1110473546706_796139_8845" client="_9_5_f720368_1110473548174_536745_21746" contract="_9_5_f720368_1110473546706_796139_8845"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_116771_11231" name="Handler" visibility="private" clientDependency="_10_5_622020d_1132928323561_317418_17181 _10_5_622020d_1132928323561_887045_17182 _10_5_622020d_1132928323561_574991_17183 _10_5_622020d_1132928323561_421024_17184 _10_5_622020d_1132928323561_865178_17185 _10_5_622020d_1132928323561_704993_17186 _10_5_622020d_1132928323561_495280_17187 _10_5_622020d_1132928323561_971042_17188">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_317418_17181" name="" supplier="_9_5_f720368_1110473546753_610396_9837" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546753_610396_9837"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_887045_17182" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546565_10343_6561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_574991_17183" name="" supplier="_9_5_f720368_1110473546565_361131_6587" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546565_361131_6587"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_421024_17184" name="" supplier="_9_5_f720368_1110473546565_486724_6593" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546565_486724_6593"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_865178_17185" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546596_119404_7313"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_704993_17186" name="" supplier="_9_5_f720368_1110473546753_790074_9899" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546753_790074_9899"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_495280_17187" name="" supplier="_9_5_f720368_1110473546753_680224_9903" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546753_680224_9903"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323561_971042_17188" name="" supplier="_9_5_f720368_1110473546753_512408_9907" client="_10_5_622020d_1132928317172_116771_11231" contract="_9_5_f720368_1110473546753_512408_9907"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_294043_11232" name="Actions" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_367560_9929" name="BasicBorders">
                <ownedComment xmi:id="_10_5_622020d_1132928317042_153417_10936" body="Factory object that can vend Borders appropriate for the basic L &amp; F.&#xA;@version 1.33 12/19/03&#xA;@author Georges Saab&#xA;@author Amy Fowler&#xA;" annotatedElement="_9_5_f720368_1110473546753_367560_9929"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_549945_21132" name="RolloverButtonBorder">
                  <ownedComment xmi:id="_10_5_622020d_1132928317042_679083_10931" body="Special thin border for rollover toolbar buttons.&#xA;" annotatedElement="_9_5_f720368_1110473548128_549945_21132"/>
                  <generalization xmi:id="_10_5_622020d_1132928323421_616249_16753" isSubstitutable="true" general="_9_5_f720368_1110473548128_44650_21138"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_982950_21135" name="RolloverMarginBorder" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317042_90616_10932" body="A border which is like a Margin border but it will only honor the margin&#xA;if the margin has been explicitly set by the developer.&#xA;&#xA;Note: This is identical to the package private class&#xA;MetalBorders.RolloverMarginBorder and should probably be consolidated.&#xA;" annotatedElement="_9_5_f720368_1110473548128_982950_21135"/>
                  <generalization xmi:id="_10_5_622020d_1132928323421_655376_16754" isSubstitutable="true" general="_9_5_f720368_1110473546753_470937_9787"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_44650_21138" name="ButtonBorder" clientDependency="_10_5_622020d_1132928323421_201281_16755">
                  <generalization xmi:id="_10_5_622020d_1132928323421_577350_16756" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_201281_16755" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_44650_21138" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_35262_21140" name="ToggleButtonBorder">
                  <generalization xmi:id="_10_5_622020d_1132928323421_51767_16757" isSubstitutable="true" general="_9_5_f720368_1110473548128_44650_21138"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_738265_21142" name="RadioButtonBorder">
                  <generalization xmi:id="_10_5_622020d_1132928323421_246583_16758" isSubstitutable="true" general="_9_5_f720368_1110473548128_44650_21138"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_229549_21144" name="MenuBarBorder" clientDependency="_10_5_622020d_1132928323421_536439_16759">
                  <generalization xmi:id="_10_5_622020d_1132928323421_541096_16760" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_536439_16759" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_229549_21144" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_644758_21146" name="MarginBorder" clientDependency="_10_5_622020d_1132928323421_291209_16761">
                  <generalization xmi:id="_10_5_622020d_1132928323421_891162_16762" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_291209_16761" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_644758_21146" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_478122_21148" name="FieldBorder" clientDependency="_10_5_622020d_1132928323421_15964_16763">
                  <generalization xmi:id="_10_5_622020d_1132928323421_436926_16764" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_15964_16763" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_478122_21148" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_967847_21150" name="SplitPaneDividerBorder" visibility="package" clientDependency="_10_5_622020d_1132928323421_265016_16766 _10_5_622020d_1132928323421_346971_16765">
                  <ownedComment xmi:id="_10_5_622020d_1132928317042_565595_10933" body="Draws the border around the divider in a splitpane&#xA;(when BasicSplitPaneUI is used). To get the appropriate effect, this&#xA;needs to be used with a SplitPaneBorder.&#xA;" annotatedElement="_9_5_f720368_1110473548128_967847_21150"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_346971_16765" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473548128_967847_21150" contract="_9_5_f720368_1110473546753_503884_9783"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_265016_16766" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_967847_21150" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_46227_21153" name="SplitPaneBorder" clientDependency="_10_5_622020d_1132928323421_695171_16768 _10_5_622020d_1132928323421_564532_16767">
                  <ownedComment xmi:id="_10_5_622020d_1132928317042_294732_10934" body="Draws the border around the splitpane. To work correctly you shoudl&#xA;also install a border on the divider (property SplitPaneDivider.border).&#xA;" annotatedElement="_9_5_f720368_1110473548128_46227_21153"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_564532_16767" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473548128_46227_21153" contract="_9_5_f720368_1110473546753_503884_9783"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323421_695171_16768" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548128_46227_21153" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_802819_10003" name="BasicRootPaneUI" clientDependency="_10_5_622020d_1132928323481_155818_17004">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_424874_11104" body="Basic implementation of RootPaneUI, there is one shared between all&#xA;JRootPane instances.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_802819_10003"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_257849_17005" isSubstitutable="true" general="_9_5_f720368_1110473546768_871270_10249"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323481_155818_17004" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546753_802819_10003" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548159_481770_21444" name="RootPaneInputMap" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323481_118132_17007" isSubstitutable="true" general="_9_5_f720368_1110473546768_107840_10211"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317132_286068_11102" name="Actions" visibility="package"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_32111_9941" name="BasicComboBoxEditor" clientDependency="_10_5_622020d_1132928323431_235030_16790 _10_5_622020d_1132928323431_935614_16791">
                <ownedComment xmi:id="_10_5_622020d_1132928317082_40827_10953" body="The default editor for editable combo boxes. The editor is implemented as a JTextField.&#xA;&#xA;@version 1.26 12/19/03&#xA;@author Arnaud Weber&#xA;@author Mark Davidson&#xA;" annotatedElement="_9_5_f720368_1110473546753_32111_9941"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323431_235030_16790" name="" supplier="_9_5_f720368_1110473546784_456404_10645" client="_9_5_f720368_1110473546753_32111_9941" contract="_9_5_f720368_1110473546784_456404_10645"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323431_935614_16791" name="" supplier="_9_5_f720368_1110473546565_10343_6561" client="_9_5_f720368_1110473546753_32111_9941" contract="_9_5_f720368_1110473546565_10343_6561"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548143_986937_21171" name="BorderlessTextField" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323431_63384_16792" isSubstitutable="true" general="_9_5_f720368_1110473546799_269096_10781"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473547237_690497_16088" name="UIResource" clientDependency="_10_5_622020d_1132928323431_427422_16793">
                  <ownedComment xmi:id="_10_5_622020d_1132928317082_497334_10951" body="A subclass of BasicComboBoxEditor that implements UIResource.&#xA;BasicComboBoxEditor doesn't implement UIResource&#xA;directly so that applications can safely override the&#xA;cellRenderer property with BasicListCellRenderer subclasses.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473547237_690497_16088"/>
                  <generalization xmi:id="_10_5_622020d_1132928323431_592439_16794" isSubstitutable="true" general="_9_5_f720368_1110473546753_32111_9941"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323431_427422_16793" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473547237_690497_16088" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_327955_10021" name="BasicTableHeaderUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317152_397023_11170" body="BasicTableHeaderUI implementation&#xA;&#xA;@version 1.63 12/19/03&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546753_327955_10021"/>
                <generalization xmi:id="_10_5_622020d_1132928323551_974546_17097" isSubstitutable="true" general="_9_5_f720368_1110473546768_743821_10265"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548174_350030_21598" name="MouseInputHandler" clientDependency="_10_5_622020d_1132928323551_869024_17098">
                  <ownedComment xmi:id="_10_5_622020d_1132928317152_407988_11168" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of BasicTableUI.&#xA;" annotatedElement="_9_5_f720368_1110473548174_350030_21598"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323551_869024_17098" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548174_350030_21598" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_778488_9937" name="BasicCheckBoxUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317082_333840_10946" body="CheckboxUI implementation for BasicCheckboxUI&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.37 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_778488_9937"/>
                <generalization xmi:id="_10_5_622020d_1132928323431_284994_16782" isSubstitutable="true" general="_9_5_f720368_1110473546753_913171_10001"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_297953_9999" name="BasicRadioButtonMenuItemUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317132_383173_11099" body="BasicRadioButtonMenuItem implementation&#xA;&#xA;@version 1.45 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546753_297953_9999"/>
                <generalization xmi:id="_10_5_622020d_1132928323481_65237_17002" isSubstitutable="true" general="_9_5_f720368_1110473546753_8340_9983"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_170631_10237" name="MenuBarUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_346438_11700" body="Pluggable look and feel interface for JMenuBar.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546768_170631_10237"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_842396_17673" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_774609_10221" name="FileChooserUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317382_622436_11686" body="Pluggable look and feel interface for &lt;code>JFileChooser&lt;/code>.&#xA;&#xA;@version 1.19 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546768_774609_10221"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_395820_17660" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_345250_10259" name="SpinnerUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_115001_11722" body="Pluggable look and feel interface for JSpinner&#xA;&#xA;@version 1.5 12/19/03&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546768_345250_10259"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_126619_17684" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_948919_10273" name="ToolTipUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_272277_11736" body="Pluggable look and feel interface for JToolTip.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546768_948919_10273"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_664958_17691" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_718523_10241" name="OptionPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_647095_11704" body="Pluggable look and feel interface for JOptionPane.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_718523_10241"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_177845_17675" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_683694_10253" name="ScrollPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_852867_11716" body="Pluggable look and feel interface for JScrollPane.&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546768_683694_10253"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_914465_17681" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_107840_10211" name="ComponentInputMapUIResource" clientDependency="_10_5_622020d_1132928323762_431366_17654">
              <ownedComment xmi:id="_10_5_622020d_1132928317342_73033_11677" body="A subclass of javax.swing.ComponentInputMap that implements UIResource.&#xA;UI classes which provide a ComponentInputMap should use this class.&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_107840_10211"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_137224_17655" isSubstitutable="true" general="_9_5_f720368_1110473546784_277405_10649"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_431366_17654" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_107840_10211" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_904888_10201" name="BorderUIResource" clientDependency="_10_5_622020d_1132928323751_673313_17634 _10_5_622020d_1132928323751_148174_17632 _10_5_622020d_1132928323751_763387_17633">
              <interfaceRealization xmi:id="_10_5_622020d_1132928323751_148174_17632" name="" supplier="_9_5_f720368_1110473546753_503884_9783" client="_9_5_f720368_1110473546768_904888_10201" contract="_9_5_f720368_1110473546753_503884_9783"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323751_763387_17633" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_904888_10201" contract="_9_5_f720368_1110473546768_203610_10277"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323751_673313_17634" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_904888_10201" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_132949_22672" name="CompoundBorderUIResource" clientDependency="_10_5_622020d_1132928323751_741640_17635">
                <generalization xmi:id="_10_5_622020d_1132928323751_352027_17636" isSubstitutable="true" general="_9_5_f720368_1110473546753_622019_9785"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_741640_17635" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_132949_22672" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_340890_22674" name="EmptyBorderUIResource" clientDependency="_10_5_622020d_1132928323751_120431_17637">
                <generalization xmi:id="_10_5_622020d_1132928323751_696551_17638" isSubstitutable="true" general="_9_5_f720368_1110473546753_470937_9787"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_120431_17637" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_340890_22674" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_63467_22676" name="LineBorderUIResource" clientDependency="_10_5_622020d_1132928323751_384598_17639">
                <generalization xmi:id="_10_5_622020d_1132928323751_302363_17640" isSubstitutable="true" general="_9_5_f720368_1110473546753_808477_9791"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_384598_17639" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_63467_22676" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_661169_22678" name="BevelBorderUIResource" clientDependency="_10_5_622020d_1132928323751_554830_17641">
                <generalization xmi:id="_10_5_622020d_1132928323751_783693_17642" isSubstitutable="true" general="_9_5_f720368_1110473546753_977975_9781"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_554830_17641" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_661169_22678" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_561420_22680" name="EtchedBorderUIResource" clientDependency="_10_5_622020d_1132928323751_512548_17643">
                <generalization xmi:id="_10_5_622020d_1132928323762_508900_17644" isSubstitutable="true" general="_9_5_f720368_1110473546753_608365_9789"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_512548_17643" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_561420_22680" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_673530_22682" name="MatteBorderUIResource" clientDependency="_10_5_622020d_1132928323762_861860_17645">
                <generalization xmi:id="_10_5_622020d_1132928323762_272137_17646" isSubstitutable="true" general="_9_5_f720368_1110473546753_732527_9793"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323762_861860_17645" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_673530_22682" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548268_737340_22684" name="TitledBorderUIResource" clientDependency="_10_5_622020d_1132928323762_285022_17647">
                <generalization xmi:id="_10_5_622020d_1132928323762_202598_17648" isSubstitutable="true" general="_9_5_f720368_1110473546753_665119_9797"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323762_285022_17647" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548268_737340_22684" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_195635_10235" name="ListUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_800801_11698" body="The JList pluggable look and feel delegate.  This interface adds&#xA;methods that allow the JList component to map locations, e.g. mouse&#xA;coordinates, to list cells and from cell indices to the bounds of&#xA;the cell.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546768_195635_10235"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_717234_17672" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_387223_10247" name="ProgressBarUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_496591_11710" body="Pluggable look and feel interface for JProgressBar.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Rob Davis&#xA;" annotatedElement="_9_5_f720368_1110473546768_387223_10247"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_92897_17678" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_763316_10215" name="DesktopIconUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317342_424795_11681" body="Pluggable look and feel interface for JDesktopIcon.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546768_763316_10215"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_248124_17656" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928317242_121531_11455" name="synth">
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_570299_11600" name="SynthSeparatorUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_196377_17572">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_594715_11602" body="A Synth L&amp;F implementation of SeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Shannon Hickey&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317302_570299_11600"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_424595_17574" isSubstitutable="true" general="_9_5_f720368_1110473546768_665989_10255"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_196377_17572" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317302_570299_11600" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_466871_11493" name="SynthColorChooserUI" visibility="package" clientDependency="_10_5_622020d_1132928323711_981389_17487">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_902295_11495" body="Synth's ColorChooserUI.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_10_5_622020d_1132928317262_466871_11493"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_394072_17489" isSubstitutable="true" general="_9_5_f720368_1110473546753_640827_9939"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323711_981389_17487" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317262_466871_11493" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_185172_11575" name="SynthPasswordFieldUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_987085_11577" body="Provides the Synth look and feel for a password field.&#xA;The only difference from the standard text field is that&#xA;the view of the text is simply a string of the echo&#xA;character as specified in JPasswordField, rather than the&#xA;real text contained in the field.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.7 03/19/04&#xA;" annotatedElement="_10_5_622020d_1132928317292_185172_11575"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_875350_17553" isSubstitutable="true" general="_10_5_622020d_1132928317322_242114_11641"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_553711_11465" name="ImagePainter" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_834574_11467" body="ImagePainter fills in the specified region using an Image. The Image&#xA;is split into 9 segments: north, north east, east, south east, south,&#xA;south west, west, north west and the center. The corners are defined&#xA;by way of an insets, and the remaining regions are either tiled or&#xA;scaled to fit.&#xA;&#xA;@version 1.8, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317252_553711_11465"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_450972_17461" isSubstitutable="true" general="_10_5_622020d_1132928317292_862209_11564"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_294643_11596" name="SynthScrollPaneUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_396006_17567">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_113003_11599" body="Synth's ScrollPaneUI.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317302_294643_11596"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_208521_17569" isSubstitutable="true" general="_9_5_f720368_1110473546753_883008_10007"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_396006_17567" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317302_294643_11596" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_464507_11597" name="ViewportBorder" visibility="private" clientDependency="_10_5_622020d_1132928323731_826382_17570">
                  <generalization xmi:id="_10_5_622020d_1132928323731_58607_17571" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323731_826382_17570" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317302_464507_11597" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_971689_11515" name="SynthDesktopIconUI" visibility="package" clientDependency="_10_5_622020d_1132928323721_208475_17504 _10_5_622020d_1132928323721_829777_17505">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_816515_11517" body="Synth L&amp;F for a minimized window on a desktop.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317272_971689_11515"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_722045_17506" isSubstitutable="true" general="_9_5_f720368_1110473546753_967267_9949"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323721_208475_17504" name="" supplier="_9_5_f720368_1110473546565_106737_6535" client="_10_5_622020d_1132928317272_971689_11515" contract="_9_5_f720368_1110473546565_106737_6535"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323721_829777_17505" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317272_971689_11515" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_371300_11462" name="DefaultSynthStyleFactory" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_785115_11464" body="Factory used for obtaining styles. Supports associating a style based on&#xA;the name of the component as returned by &lt;code>Component.getName()&lt;/code>,&#xA;and the &lt;code>Region&lt;/code> associated with the &lt;code>JComponent&lt;/code>.&#xA;Lookup is done using regular expressions.&#xA;&#xA;@version 1.6, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317252_371300_11462"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_932622_17460" isSubstitutable="true" general="_10_5_622020d_1132928317312_392026_11622"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_378967_11608" name="SynthSpinnerUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_710132_17579">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_6304_11612" body="Synth's SpinnerUI.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author Hans Muller&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317312_378967_11608"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_229871_17581" isSubstitutable="true" general="_9_5_f720368_1110473546753_123715_10013"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_710132_17579" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317312_378967_11608" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_929290_11609" name="SpinnerLayout" visibility="private" clientDependency="_10_5_622020d_1132928323741_509290_17582 _10_5_622020d_1132928323741_856997_17583">
                  <ownedComment xmi:id="_10_5_622020d_1132928317312_236906_11610" body="A simple layout manager for the editor and the next/previous buttons.&#xA;See the SynthSpinnerUI javadoc for more information about exactly&#xA;how the components are arranged.&#xA;" annotatedElement="_10_5_622020d_1132928317312_929290_11609"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_509290_17582" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317312_929290_11609" contract="_9_5_f720368_1110473546581_587570_7065"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_856997_17583" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317312_929290_11609" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_59056_11534" name="SynthInternalFrameTitlePane" visibility="package" clientDependency="_10_5_622020d_1132928323721_938688_17520">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_812161_11538" body="The class that manages a synth title bar&#xA;&#xA;@version 1.21 04/16/04&#xA;@author David Kloba&#xA;@author Joshua Outwater&#xA;@author Steve Wilson&#xA;" annotatedElement="_10_5_622020d_1132928317282_59056_11534"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_655020_17521" isSubstitutable="true" general="_9_5_f720368_1110473546753_346211_9971"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323721_938688_17520" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317282_59056_11534" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_512048_11535" name="JPopupMenuUIResource" visibility="private" clientDependency="_10_5_622020d_1132928323721_548482_17522">
                  <generalization xmi:id="_10_5_622020d_1132928323721_438085_17523" isSubstitutable="true" general="_9_5_f720368_1110473546799_993159_10753"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_548482_17522" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317282_512048_11535" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_418888_11536" name="SynthTitlePaneLayout" visibility="package" clientDependency="_10_5_622020d_1132928323721_236793_17524">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_236793_17524" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317282_418888_11536" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_728409_11629" name="SynthTableHeaderUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_922450_17593">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_671049_11632" body="SynthTableHeaderUI implementation&#xA;&#xA;@version 1.14, 12/19/03&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;" annotatedElement="_10_5_622020d_1132928317322_728409_11629"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_416534_17595" isSubstitutable="true" general="_9_5_f720368_1110473546753_327955_10021"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_922450_17593" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317322_728409_11629" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_884771_11630" name="HeaderRenderer" visibility="private" clientDependency="_10_5_622020d_1132928323741_954782_17596">
                  <generalization xmi:id="_10_5_622020d_1132928323741_13857_17597" isSubstitutable="true" general="_9_5_f720368_1110473546768_857784_10283"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_954782_17596" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317322_884771_11630" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_794503_11603" name="SynthSliderUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_868026_17575">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_332985_11607" body="Synth's SliderUI.&#xA;&#xA;@version 1.21, 12/19/03&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317302_794503_11603"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_340240_17577" isSubstitutable="true" general="_9_5_f720368_1110473546753_460976_10011"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_868026_17575" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317302_794503_11603" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_936050_11604" name="SynthTrackListener" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317312_787375_11605" body="Track mouse movements.&#xA;" annotatedElement="_10_5_622020d_1132928317312_936050_11604"/>
                  <generalization xmi:id="_10_5_622020d_1132928323741_186925_17578" isSubstitutable="true" general="_9_5_f720368_1110473548159_664097_21485"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_371015_11481" name="SynthBorder" visibility="package" clientDependency="_10_5_622020d_1132928323701_493860_17477">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_638168_11483" body="SynthBorder is a border that delegates to a Painter. The Insets&#xA;are determined at construction time.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317262_371015_11481"/>
                <generalization xmi:id="_10_5_622020d_1132928323701_535985_17478" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323701_493860_17477" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317262_371015_11481" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_205479_11529" name="SynthGraphicsUtils">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_809256_11533" body="Wrapper for primitive graphics calls.&#xA;&#xA;@version 1.16, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317272_205479_11529"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_220720_11530" name="SynthIconWrapper" visibility="private" clientDependency="_10_5_622020d_1132928323721_234329_17518">
                  <ownedComment xmi:id="_10_5_622020d_1132928317272_396077_11531" body="Wraps a SynthIcon around the Icon interface, forwarding calls to&#xA;the SynthIcon with a given SynthContext.&#xA;" annotatedElement="_10_5_622020d_1132928317272_220720_11530"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_234329_17518" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_10_5_622020d_1132928317272_220720_11530" contract="_9_5_f720368_1110473546784_576188_10693"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_886989_11633" name="SynthTableUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_669244_17599">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_26077_11637" body="SynthTableUI implementation&#xA;&#xA;@version 1.17, 07/23/04&#xA;@author Philip Milne&#xA;" annotatedElement="_10_5_622020d_1132928317322_886989_11633"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_188098_17600" isSubstitutable="true" general="_9_5_f720368_1110473546753_960372_10023"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_669244_17599" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317322_886989_11633" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_633749_11634" name="SynthBooleanTableCellRenderer" visibility="private" clientDependency="_10_5_622020d_1132928323741_992956_17601">
                  <generalization xmi:id="_10_5_622020d_1132928323741_317740_17602" isSubstitutable="true" general="_9_5_f720368_1110473546784_586216_10707"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_992956_17601" name="" supplier="_9_5_f720368_1110473546768_3233_10293" client="_10_5_622020d_1132928317322_633749_11634" contract="_9_5_f720368_1110473546768_3233_10293"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_855498_11635" name="SynthTableCellRenderer" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323741_2771_17603" isSubstitutable="true" general="_9_5_f720368_1110473546768_857784_10283"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_638547_11477" name="SynthArrowButton" visibility="package" clientDependency="_10_5_622020d_1132928323701_393511_17473 _10_5_622020d_1132928323701_605201_17474">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_656647_11480" body="JButton object that draws a scaled Arrow in one of the cardinal directions.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317252_638547_11477"/>
                <generalization xmi:id="_10_5_622020d_1132928323701_232717_17475" isSubstitutable="true" general="_9_5_f720368_1110473546784_766765_10705"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323701_393511_17473" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_10_5_622020d_1132928317252_638547_11477" contract="_9_5_f720368_1110473546799_869308_10869"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323701_605201_17474" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317252_638547_11477" contract="_9_5_f720368_1110473546768_203610_10277"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_409548_11478" name="SynthArrowButtonUI" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323701_704992_17476" isSubstitutable="true" general="_10_5_622020d_1132928317262_621539_11484"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_563204_11654" name="SynthToolTipUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_333792_17614">
                <ownedComment xmi:id="_10_5_622020d_1132928317332_112242_11656" body="Synth's ToolTipUI.&#xA;&#xA;@version 1.9, 12/19/03&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317332_563204_11654"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_598954_17616" isSubstitutable="true" general="_9_5_f720368_1110473546753_490751_10039"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_333792_17614" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317332_563204_11654" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_526342_11613" name="SynthSplitPaneDivider" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_701615_11615" body="Synth's SplitPaneDivider.&#xA;&#xA;@version 1.7, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317312_526342_11613"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_801390_17584" isSubstitutable="true" general="_9_5_f720368_1110473546753_461880_10015"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_242114_11641" name="SynthTextFieldUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_566776_11643" body="Basis of a look and feel for a JTextField in the Synth&#xA;look and feel.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.10 06/24/04&#xA;" annotatedElement="_10_5_622020d_1132928317322_242114_11641"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_451579_17607" isSubstitutable="true" general="_9_5_f720368_1110473546753_580925_10027"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_317466_11581" name="SynthProgressBarUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_964713_17558">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_269009_11583" body="Synth's ProgressBarUI.&#xA;&#xA;@version 1.23, 04/02/04&#xA;@author Joshua Outwater&#xA;" annotatedElement="_10_5_622020d_1132928317302_317466_11581"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_502070_17559" isSubstitutable="true" general="_9_5_f720368_1110473546753_475612_9997"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_964713_17558" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317302_317466_11581" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_504435_11663" name="SynthViewportUI" visibility="package" clientDependency="_10_5_622020d_1132928323751_844792_17627">
                <ownedComment xmi:id="_10_5_622020d_1132928317332_44829_11665" body="Synth's ViewportUI.&#xA;&#xA;@version 1.11, 12/19/03&#xA;" annotatedElement="_10_5_622020d_1132928317332_504435_11663"/>
                <generalization xmi:id="_10_5_622020d_1132928323751_275242_17629" isSubstitutable="true" general="_9_5_f720368_1110473546768_732615_10279"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323751_844792_17627" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317332_504435_11663" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_862958_11593" name="SynthScrollBarUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_355296_17564">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_476140_11595" body="Synth's ScrollBarUI.&#xA;&#xA;@version 1.28, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317302_862958_11593"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_60624_17566" isSubstitutable="true" general="_9_5_f720368_1110473546753_642510_10005"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_355296_17564" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317302_862958_11593" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_577931_11503" name="SynthComboPopup" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_222128_11505" body="Synth's ComboPopup.&#xA;&#xA;@version 1.7, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317262_577931_11503"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_412448_17498" isSubstitutable="true" general="_9_5_f720368_1110473546753_112295_9947"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_203918_11584" name="SynthRadioButtonMenuItemUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_693357_11586" body="Synth's RadioButtonMenuItemUI.&#xA;&#xA;@version 1.5, 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_10_5_622020d_1132928317302_203918_11584"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_587449_17560" isSubstitutable="true" general="_10_5_622020d_1132928317282_829371_11555"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928317262_167549_11506" name="SynthConstants" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_962114_11508" body="Constants used by Synth. Not all Components support all states. A&#xA;Component will at least be in one of the primary states. That is, the&#xA;return value from &lt;code>SynthContext.getComponentState()&lt;/code> will at&#xA;least be one of &lt;code>ENABLED&lt;/code>, &lt;code>MOUSE_OVER&lt;/code>,&#xA;&lt;code>PRESSED&lt;/code> or &lt;code>DISABLED&lt;/code>, and may also contain&#xA;&lt;code>FOCUSED&lt;/code>, &lt;code>SELECTED&lt;/code> or &lt;code>DEFAULT&lt;/code>.&#xA;&#xA;@version 1.7, 12/19/03&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928317262_167549_11506"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_490563_11561" name="SynthOptionPaneUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_980865_17544">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_672371_11563" body="Synth's OptionPaneUI.&#xA;&#xA;@version 1.14, 12/19/03&#xA;@author James Gosling&#xA;@author Scott Violet&#xA;@author Amy Fowler&#xA;" annotatedElement="_10_5_622020d_1132928317292_490563_11561"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_631261_17546" isSubstitutable="true" general="_9_5_f720368_1110473546753_279633_9987"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_980865_17544" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317292_490563_11561" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317242_291775_11456" name="ColorType">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_83650_11458" body="A typesafe enumeration of colors that can be fetched from a style.&#xA;&lt;p>&#xA;Each &lt;code>SynthStyle&lt;/code> has a set of &lt;code>ColorType&lt;/code>s that&#xA;are accessed by way of the&#xA;{@link SynthStyle#getColor(SynthContext, ColorType)} method.&#xA;&lt;code>SynthStyle&lt;/code>'s &lt;code>installDefaults&lt;/code> will install&#xA;the &lt;code>FOREGROUND&lt;/code> color&#xA;as the foreground of&#xA;the Component, and the &lt;code>BACKGROUND&lt;/code> color to the background of&#xA;the component (assuming that you have not explicitly specified a&#xA;foreground and background color). Some components&#xA;support more color based properties, for&#xA;example &lt;code>JList&lt;/code> has the property&#xA;&lt;code>selectionForeground&lt;/code> which will be mapped to&#xA;&lt;code>FOREGROUND&lt;/code> with a component state of&#xA;&lt;code>SynthConstants.SELECTED&lt;/code>.&#xA;&lt;p>&#xA;The following example shows a custom &lt;code>SynthStyle&lt;/code> that returns&#xA;a red Color for the &lt;code>DISABLED&lt;/code> state, otherwise a black color.&#xA;&lt;pre>&#xA;class MyStyle extends SynthStyle {&#xA;private Color disabledColor = new ColorUIResource(Color.RED);&#xA;private Color color = new ColorUIResource(Color.BLACK);&#xA;protected Color getColorForState(SynthContext context, ColorType type){&#xA;if (context.getComponentState() == SynthConstants.DISABLED) {&#xA;return disabledColor;&#xA;}&#xA;return color;&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@version 1.11, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317242_291775_11456"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_919674_11647" name="SynthToggleButtonUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_168297_11649" body="Synth's ToggleButtonUI.&#xA;&lt;p>&#xA;@version 1.6, 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_10_5_622020d_1132928317322_919674_11647"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_394774_17609" isSubstitutable="true" general="_10_5_622020d_1132928317262_621539_11484"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_532186_11509" name="SynthContext">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_956541_11511" body="An immutable transient object containing contextual information about&#xA;a &lt;code>Region&lt;/code>. A &lt;code>SynthContext&lt;/code> should only be&#xA;considered valid for the duration&#xA;of the method it is passed to. In other words you should not cache&#xA;a &lt;code>SynthContext&lt;/code> that is passed to you and expect it to&#xA;remain valid.&#xA;&#xA;@version 1.9, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317272_532186_11509"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_16757_11490" name="SynthCheckBoxUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_267109_11492" body="Synth's CheckBoxUI.&#xA;&#xA;@version 1.6, 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_10_5_622020d_1132928317262_16757_11490"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_631846_17486" isSubstitutable="true" general="_10_5_622020d_1132928317302_521320_11587"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_769642_11474" name="Region">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_616140_11476" body="A distinct rendering area of a Swing component.  A component may&#xA;support one or more regions.  Specific component regions are defined&#xA;by the typesafe enumeration in this class.&#xA;&lt;p>&#xA;Regions are typically used as a way to identify the &lt;code>Component&lt;/code>s&#xA;and areas a particular style is to apply to. Synth's file format allows you&#xA;to bind styles based on the name of a &lt;code>Region&lt;/code>.&#xA;The name is derived from the field name of the constant:&#xA;&lt;ol>&#xA;&lt;li>Map all characters to lowercase.&#xA;&lt;li>Map the first character to uppercase.&#xA;&lt;li>Map the first character after underscores to uppercase.&#xA;&lt;li>Remove all underscores.&#xA;&lt;/ol>&#xA;For example, to identify the &lt;code>SPLIT_PANE&lt;/code>&#xA;&lt;code>Region&lt;/code> you would use &lt;code>SplitPane&lt;/code>.&#xA;The following shows a custom &lt;code>SynthStyleFactory&lt;/code>&#xA;that returns a specific style for split panes:&#xA;&lt;pre>&#xA;public SynthStyle getStyle(JComponent c, Region id) {&#xA;if (id == Region.SPLIT_PANE) {&#xA;return splitPaneStyle;&#xA;}&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;The following &lt;a href=&quot;doc-files/synthFileFormat.html&quot;>xml&lt;/a>&#xA;accomplishes the same thing:&#xA;&lt;pre>&#xA;&lt;style id=&quot;splitPaneStyle&quot;>&#xA;...&#xA;&lt;/style>&#xA;&lt;bind style=&quot;splitPaneStyle&quot; type=&quot;region&quot; key=&quot;SplitPane&quot;/>&#xA;&lt;/pre>&#xA;&#xA;@version 1.30, 02/19/04&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317252_769642_11474"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_585792_11567" name="SynthPanelUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_779871_17547">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_756481_11569" body="Synth's PanelUI.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_10_5_622020d_1132928317292_585792_11567"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_98980_17549" isSubstitutable="true" general="_9_5_f720368_1110473546753_773753_9989"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_779871_17547" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317292_585792_11567" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_233799_11644" name="SynthTextPaneUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_525667_11646" body="Provides the look and feel for a styled text editor in the&#xA;Synth look and feel.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.8 12/19/03&#xA;" annotatedElement="_10_5_622020d_1132928317322_233799_11644"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_284876_17608" isSubstitutable="true" general="_10_5_622020d_1132928317272_917805_11523"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_943186_11619" name="SynthStyle" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_569160_11621" body="&lt;code>SynthStyle&lt;/code> is a set of style properties.&#xA;Each &lt;code>SynthUI&lt;/code> references at least one&#xA;&lt;code>SynthStyle&lt;/code> that is obtained using a&#xA;&lt;code>SynthStyleFactory&lt;/code>. You typically don't need to interact with&#xA;this class directly, rather you will load a&#xA;&lt;a href=&quot;doc-files/synthFileFormat.html&quot;>Synth File Format file&lt;/a> into&#xA;&lt;code>SynthLookAndFeel&lt;/code> that will create a set of SynthStyles.&#xA;&#xA;@see SynthLookAndFeel&#xA;@see SynthStyleFactory&#xA;&#xA;@version 1.23, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317312_943186_11619"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_475844_11549" name="SynthLookAndFeel">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_709149_11551" body="SynthLookAndFeel provides the basis for creating a customized look and&#xA;feel. SynthLookAndFeel does not directly provide a look, all painting is&#xA;delegated.&#xA;You need to either provide a configuration file, by way of the&#xA;{@link #load} method, or provide your own {@link SynthStyleFactory}&#xA;to {@link #setStyleFactory}. Refer to the&#xA;&lt;a href=&quot;package-summary.html&quot;>package summary&lt;/a> for an example of&#xA;loading a file, and {@link javax.swing.plaf.synth.SynthStyleFactory} for&#xA;an example of providing your own &lt;code>SynthStyleFactory&lt;/code> to&#xA;&lt;code>setStyleFactory&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;This class implements {@link Serializable} as a side effect of it&#xA;extending {@link BasicLookAndFeel}. It is not intended to be serialized.&#xA;An attempt to serialize it will&#xA;result in {@link NotSerializableException}.&#xA;&#xA;@serial exclude&#xA;@version 1.45, 05/07/04&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317282_475844_11549"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_652593_17534" isSubstitutable="true" general="_9_5_f720368_1110473546753_258542_9979"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_336303_11650" name="SynthToolBarUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_177984_17610">
                <ownedComment xmi:id="_10_5_622020d_1132928317332_986493_11653" body="A Synth L&amp;F implementation of ToolBarUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&lt;p>&#xA;&#xA;@version 1.10, 12/19/03&#xA;@author Georges Saab&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_10_5_622020d_1132928317332_336303_11650"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_287189_17612" isSubstitutable="true" general="_9_5_f720368_1110473546753_590820_10037"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_177984_17610" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317332_336303_11650" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_129014_11651" name="SynthToolBarLayoutManager" visibility="package" clientDependency="_10_5_622020d_1132928323741_10773_17613">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_10773_17613" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_10_5_622020d_1132928317332_129014_11651" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_750135_11526" name="SynthFormattedTextFieldUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_173466_11528" body="Provides the look and feel implementation for&#xA;&lt;code>JFormattedTextField&lt;/code>.&#xA;&#xA;@version 1.5, 12/19/03&#xA;" annotatedElement="_10_5_622020d_1132928317272_750135_11526"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_360583_17517" isSubstitutable="true" general="_10_5_622020d_1132928317322_242114_11641"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_654622_11496" name="SynthComboBoxUI" visibility="package" clientDependency="_10_5_622020d_1132928323711_555503_17490">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_304504_11502" body="Synth's ComboBoxUI.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317262_654622_11496"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_436290_17492" isSubstitutable="true" general="_9_5_f720368_1110473546753_316126_9945"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323711_555503_17490" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317262_654622_11496" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_664445_11497" name="SynthComboBoxRenderer" visibility="private" clientDependency="_10_5_622020d_1132928323711_469100_17493 _10_5_622020d_1132928323711_883038_17494">
                  <ownedComment xmi:id="_10_5_622020d_1132928317262_450423_11498" body="From BasicComboBoxRenderer v 1.18.&#xA;" annotatedElement="_10_5_622020d_1132928317262_664445_11497"/>
                  <generalization xmi:id="_10_5_622020d_1132928323711_623736_17495" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323711_469100_17493" name="" supplier="_9_5_f720368_1110473546799_692124_10809" client="_10_5_622020d_1132928317262_664445_11497" contract="_9_5_f720368_1110473546799_692124_10809"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323711_883038_17494" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317262_664445_11497" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_426965_11499" name="SynthComboBoxEditor" visibility="private" clientDependency="_10_5_622020d_1132928323711_365807_17496 _10_5_622020d_1132928323711_151744_17497">
                  <ownedComment xmi:id="_10_5_622020d_1132928317262_859627_11500" body="From BasicCombBoxEditor v 1.24.&#xA;" annotatedElement="_10_5_622020d_1132928317262_426965_11499"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323711_365807_17496" name="" supplier="_9_5_f720368_1110473546784_456404_10645" client="_10_5_622020d_1132928317262_426965_11499" contract="_9_5_f720368_1110473546784_456404_10645"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323711_151744_17497" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317262_426965_11499" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_829371_11555" name="SynthMenuItemUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_828998_17538">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_966405_11557" body="Synth's MenuItemUI.&#xA;&#xA;@version 1.21, 06/24/04&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;@author Fredrik Lagerblad&#xA;" annotatedElement="_10_5_622020d_1132928317282_829371_11555"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_715662_17540" isSubstitutable="true" general="_9_5_f720368_1110473546753_8340_9983"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_828998_17538" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317282_829371_11555" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_703568_11512" name="SynthDefaultLookup" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_481688_11514" body="SynthDefaultLookup redirects all lookup calls to the SynthContext.&#xA;&#xA;@version 1.4 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317272_703568_11512"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_917805_11523" name="SynthEditorPaneUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_89938_11525" body="Provides the look and feel for a JEditorPane in the&#xA;Synth look and feel.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.8 07/23/04&#xA;" annotatedElement="_10_5_622020d_1132928317272_917805_11523"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_192988_17516" isSubstitutable="true" general="_9_5_f720368_1110473546753_393073_9959"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_240978_11545" name="SynthListUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_777905_17530">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_857861_11548" body="Synth's ListUI.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317282_240978_11545"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_264995_17532" isSubstitutable="true" general="_9_5_f720368_1110473546753_377186_9977"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_777905_17530" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317282_240978_11545" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_771227_11546" name="SynthListCellRenderer" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323731_119228_17533" isSubstitutable="true" general="_9_5_f720368_1110473548409_22231_24082"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_50156_11616" name="SynthSplitPaneUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_363613_17585">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_505604_11618" body="Synth's SplitPaneUI.&#xA;&#xA;@version 1.15, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317312_50156_11616"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_888186_17587" isSubstitutable="true" general="_9_5_f720368_1110473546753_737886_10017"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_363613_17585" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317312_50156_11616" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_862209_11564" name="SynthPainter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_192131_11566" body="&lt;code>SynthPainter&lt;/code> is used for painting portions of&#xA;&lt;code>JComponent&lt;/code>s. At a minimum each &lt;code>JComponent&lt;/code>&#xA;has two paint methods: one for the border and one for the background. Some&#xA;&lt;code>JComponent&lt;/code>s have more than one &lt;code>Region&lt;/code>, and as&#xA;a consequence more paint methods.&#xA;&lt;p>&#xA;Instances of &lt;code>SynthPainter&lt;/code> are obtained from the&#xA;{@link javax.swing.plaf.synth.SynthStyle#getPainter} method.&#xA;&lt;p>&#xA;You typically supply a &lt;code>SynthPainter&lt;/code> by way of Synth's&#xA;&lt;a href=&quot;doc-files/synthFileFormat.html&quot;>file&lt;/a> format. The following&#xA;example registers a painter for all &lt;code>JButton&lt;/code>s that will&#xA;render the image &lt;code>myImage.png&lt;/code>:&#xA;&lt;pre>&#xA;&lt;style id=&quot;buttonStyle&quot;>&#xA;&lt;imagePainter path=&quot;myImage.png&quot; sourceInsets=&quot;2 2 2 2&quot;&#xA;paintCenter=&quot;true&quot; stretch=&quot;true&quot;/>&#xA;&lt;insets top=&quot;2&quot; bottom=&quot;2&quot; left=&quot;2&quot; right=&quot;2&quot;/>&#xA;&lt;/style>&#xA;&lt;bind style=&quot;buttonStyle&quot; type=&quot;REGION&quot; key=&quot;button&quot;/>&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;code>SynthPainter&lt;/code> is abstract in so far as it does no painting,&#xA;all the methods&#xA;are empty. While none of these methods are typed to throw an exception,&#xA;subclasses can assume that valid arguments are passed in, and if not&#xA;they can throw a &lt;code>NullPointerException&lt;/code> or&#xA;&lt;code>IllegalArgumentException&lt;/code> in response to invalid arguments.&#xA;&#xA;@version 1.10, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317292_862209_11564"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_565213_11570" name="SynthParser" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_525945_11574" body="@version 1.15, 04/16/04&#xA;" annotatedElement="_10_5_622020d_1132928317292_565213_11570"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_182865_17550" isSubstitutable="true" general="_9_5_f720368_1110473546940_378985_13292"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_550877_11571" name="LazyImageIcon" visibility="private" clientDependency="_10_5_622020d_1132928323731_542832_17551">
                  <ownedComment xmi:id="_10_5_622020d_1132928317292_198906_11572" body="ImageIcon that lazily loads the image until needed.&#xA;" annotatedElement="_10_5_622020d_1132928317292_550877_11571"/>
                  <generalization xmi:id="_10_5_622020d_1132928323731_913346_17552" isSubstitutable="true" general="_9_5_f720368_1110473546784_667876_10695"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323731_542832_17551" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317292_550877_11571" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_998682_11518" name="SynthDesktopPaneUI" visibility="package" clientDependency="_10_5_622020d_1132928323721_668440_17507">
                <ownedComment xmi:id="_10_5_622020d_1132928317272_649295_11522" body="Synth L&amp;F for a desktop.&#xA;&#xA;@version 1.18, 12/19/03&#xA;@author Joshua Outwater&#xA;@author Steve Wilson&#xA;" annotatedElement="_10_5_622020d_1132928317272_998682_11518"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_385639_17509" isSubstitutable="true" general="_9_5_f720368_1110473546753_170401_9951"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323721_668440_17507" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317272_998682_11518" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_564805_11519" name="TaskBar" visibility="package" clientDependency="_10_5_622020d_1132928323721_957938_17510 _10_5_622020d_1132928323721_298876_17511">
                  <generalization xmi:id="_10_5_622020d_1132928323721_619963_17512" isSubstitutable="true" general="_9_5_f720368_1110473546799_368655_10749"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_957938_17510" name="" supplier="_9_5_f720368_1110473546565_824053_6549" client="_10_5_622020d_1132928317272_564805_11519" contract="_9_5_f720368_1110473546565_824053_6549"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_298876_17511" name="" supplier="_9_5_f720368_1110473546565_136951_6555" client="_10_5_622020d_1132928317272_564805_11519" contract="_9_5_f720368_1110473546565_136951_6555"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317272_861427_11520" name="SynthDesktopManager" visibility="package" clientDependency="_10_5_622020d_1132928323721_416045_17513">
                  <generalization xmi:id="_10_5_622020d_1132928323721_715866_17514" isSubstitutable="true" general="_9_5_f720368_1110473546784_142565_10667"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323721_416045_17513" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317272_861427_11520" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_708668_11657" name="SynthTreeUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_911459_17617">
                <ownedComment xmi:id="_10_5_622020d_1132928317332_130575_11662" body="Skinnable TreeUI.&#xA;&#xA;@version 1.23, 05/27/04&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317332_708668_11657"/>
                <generalization xmi:id="_10_5_622020d_1132928323751_126485_17619" isSubstitutable="true" general="_9_5_f720368_1110473546753_915422_10043"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_911459_17617" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317332_708668_11657" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_189066_11658" name="SynthTreeCellRenderer" visibility="private" clientDependency="_10_5_622020d_1132928323751_935194_17620">
                  <generalization xmi:id="_10_5_622020d_1132928323751_31322_17621" isSubstitutable="true" general="_9_5_f720368_1110473546784_465117_10561"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323751_935194_17620" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317332_189066_11658" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_908530_11659" name="SynthTreeCellEditor" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323751_620649_17622" isSubstitutable="true" general="_9_5_f720368_1110473546784_728270_10559"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317332_635511_11660" name="ExpandedIconWrapper" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_329712_11590" name="SynthRootPaneUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_788020_11592" body="Synth's RootPaneUI.&#xA;&#xA;@version 1.12, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317302_329712_11590"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_543587_17563" isSubstitutable="true" general="_9_5_f720368_1110473546753_802819_10003"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_621539_11484" name="SynthButtonUI" visibility="package" clientDependency="_10_5_622020d_1132928323701_527461_17479">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_580155_11486" body="Synth's ButtonUI implementation.&#xA;&#xA;@version 1.20, 04/16/04&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317262_621539_11484"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_25132_17484" isSubstitutable="true" general="_9_5_f720368_1110473546753_229752_9933"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323701_527461_17479" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317262_621539_11484" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_397123_11558" name="SynthMenuUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_404926_17541">
                <ownedComment xmi:id="_10_5_622020d_1132928317292_132816_11560" body="Synth's MenuUI.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_10_5_622020d_1132928317292_397123_11558"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_957759_17543" isSubstitutable="true" general="_9_5_f720368_1110473546753_38738_9985"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_404926_17541" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317292_397123_11558" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_540170_11625" name="SynthTabbedPaneUI" visibility="package" clientDependency="_10_5_622020d_1132928323741_549192_17589">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_394360_11628" body="Looks up 'selectedTabPadInsets' from the Style, which will be additional&#xA;insets for the selected tab.&#xA;" annotatedElement="_10_5_622020d_1132928317312_540170_11625"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_706169_17590" isSubstitutable="true" general="_9_5_f720368_1110473546753_694845_10019"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323741_549192_17589" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317312_540170_11625" contract="_9_5_f720368_1110473546596_119404_7313"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_713373_11626" name="SynthScrollableTabButton" visibility="private" clientDependency="_10_5_622020d_1132928323741_531630_17591">
                  <generalization xmi:id="_10_5_622020d_1132928323741_709072_17592" isSubstitutable="true" general="_10_5_622020d_1132928317252_638547_11477"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323741_531630_17591" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317322_713373_11626" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_123189_11539" name="SynthInternalFrameUI" visibility="package" clientDependency="_10_5_622020d_1132928323721_622017_17526">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_226847_11541" body="Synth's InternalFrameUI.&#xA;&#xA;@version 1.20 04/16/04&#xA;@author David Kloba&#xA;@author Joshua Outwater&#xA;@author Rich Schiavi&#xA;" annotatedElement="_10_5_622020d_1132928317282_123189_11539"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_327438_17527" isSubstitutable="true" general="_9_5_f720368_1110473546753_920667_9973"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323721_622017_17526" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317282_123189_11539" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_337472_11468" name="ParsedSynthStyle" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_198174_11473" body="ParsedSynthStyle are the SynthStyle's that SynthParser creates.&#xA;&#xA;@version 1.3, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317252_337472_11468"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_833447_11469" name="StateInfo" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_659830_11470" name="PainterInfo" visibility="package"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_493927_11471" name="DelegatingPainter" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323701_338064_17472" isSubstitutable="true" general="_10_5_622020d_1132928317292_862209_11564"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317312_392026_11622" name="SynthStyleFactory" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317312_414265_11624" body="Factory used for obtaining &lt;code>SynthStyle&lt;/code>s.  Each of the&#xA;Synth &lt;code>ComponentUI&lt;/code>s will call into the current&#xA;&lt;code>SynthStyleFactory&lt;/code> to obtain a &lt;code>SynthStyle&lt;/code>&#xA;for each of the distinct regions they have.&#xA;&lt;p>&#xA;The following example creates a custom &lt;code>SynthStyleFactory&lt;/code>&#xA;that returns a different style based on the &lt;code>Region&lt;/code>:&#xA;&lt;pre>&#xA;class MyStyleFactory extends SynthStyleFactory {&#xA;public SynthStyle getStyle(JComponent c, Region id) {&#xA;if (id == Region.BUTTON) {&#xA;return buttonStyle;&#xA;}&#xA;else if (id == Region.TREE) {&#xA;return treeStyle;&#xA;}&#xA;return defaultStyle;&#xA;}&#xA;}&#xA;SynthLookAndFeel laf = new SynthLookAndFeel();&#xA;UIManager.setLookAndFeel(laf);&#xA;SynthLookAndFeel.setStyleFactory(new MyStyleFactory());&#xA;&lt;/pre>&#xA;&#xA;@see SynthStyleFactory&#xA;@see SynthStyle&#xA;&#xA;@version 1.8, 12/19/03&#xA;@since 1.5&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317312_392026_11622"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317292_139549_11578" name="SynthPopupMenuUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_872404_17554">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_49997_11580" body="Synth's PopupMenuUI.&#xA;&#xA;@version 1.21, 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_10_5_622020d_1132928317292_139549_11578"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_813669_17556" isSubstitutable="true" general="_9_5_f720368_1110473546753_425573_9995"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_872404_17554" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317292_139549_11578" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_649251_11542" name="SynthLabelUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_574851_11544" body="Synth's LabelUI.&#xA;&#xA;@version 1.18, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317282_649251_11542"/>
                <generalization xmi:id="_10_5_622020d_1132928323721_398044_17529" isSubstitutable="true" general="_9_5_f720368_1110473546753_323534_9975"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317302_521320_11587" name="SynthRadioButtonUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317302_785402_11589" body="Synth's RadioButtonUI.&#xA;&#xA;@version 1.8, 04/16/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_10_5_622020d_1132928317302_521320_11587"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_970283_17561" isSubstitutable="true" general="_10_5_622020d_1132928317322_919674_11647"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317322_72468_11638" name="SynthTextAreaUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317322_63591_11640" body="Provides the look and feel for a plain text editor in the&#xA;Synth look and feel. In this implementation the default UI&#xA;is extended to act as a simple view factory.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.8 06/24/04&#xA;" annotatedElement="_10_5_622020d_1132928317322_72468_11638"/>
                <generalization xmi:id="_10_5_622020d_1132928323741_331777_17605" isSubstitutable="true" general="_9_5_f720368_1110473546753_812331_10025"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317262_317625_11487" name="SynthCheckBoxMenuItemUI" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317262_437174_11489" body="Synth's CheckBoxMenuItemUI.&#xA;&#xA;@version 1.7 12/19/03&#xA;@author Leif Samuelsson&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;" annotatedElement="_10_5_622020d_1132928317262_317625_11487"/>
                <generalization xmi:id="_10_5_622020d_1132928323711_301664_17485" isSubstitutable="true" general="_10_5_622020d_1132928317282_829371_11555"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317282_11246_11552" name="SynthMenuBarUI" visibility="package" clientDependency="_10_5_622020d_1132928323731_305632_17535">
                <ownedComment xmi:id="_10_5_622020d_1132928317282_458778_11554" body="Synth's MenuBarUI.&#xA;&#xA;@version 1.10, 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_10_5_622020d_1132928317282_11246_11552"/>
                <generalization xmi:id="_10_5_622020d_1132928323731_961477_17537" isSubstitutable="true" general="_9_5_f720368_1110473546753_352653_9981"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323731_305632_17535" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_10_5_622020d_1132928317282_11246_11552" contract="_9_5_f720368_1110473546596_119404_7313"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317252_523102_11459" name="DefaultMenuLayout" visibility="package" clientDependency="_10_5_622020d_1132928323691_274078_17458">
                <ownedComment xmi:id="_10_5_622020d_1132928317252_677701_11461" body="The default layout manager for Popup menus and menubars.  This&#xA;class is an extension of BoxLayout which adds the UIResource tag&#xA;so that plauggable L&amp;Fs can distinguish it from user-installed&#xA;layout managers on menus.&#xA;&#xA;Derived from javax.swing.plaf.basic.DefaultMenuLayout&#xA;&#xA;@version 1.7 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_10_5_622020d_1132928317252_523102_11459"/>
                <generalization xmi:id="_10_5_622020d_1132928323691_661661_17459" isSubstitutable="true" general="_9_5_f720368_1110473546784_390035_10635"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323691_274078_17458" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317252_523102_11459" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_701545_10229" name="InsetsUIResource" clientDependency="_10_5_622020d_1132928323762_981360_17668">
              <generalization xmi:id="_10_5_622020d_1132928323762_160101_17669" isSubstitutable="true" general="_9_5_f720368_1110473546581_424045_7051"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_981360_17668" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_701545_10229" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_871270_10249" name="RootPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_586126_11712" body="Pluggable look and feel interface for JRootPane.&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_871270_10249"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_849513_17679" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_341955_10271" name="ToolBarUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_821461_11734" body="Pluggable look and feel interface for JToolBar.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546768_341955_10271"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_14146_17690" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_734478_10219" name="DimensionUIResource" clientDependency="_10_5_622020d_1132928323762_381897_17658">
              <generalization xmi:id="_10_5_622020d_1132928323762_149616_17659" isSubstitutable="true" general="_9_5_f720368_1110473546581_940315_6989"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_381897_17658" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_734478_10219" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_203610_10277" name="UIResource" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_350014_11740" body="This interface is used to mark objects created by ComponentUI delegates.&#xA;The &lt;code>ComponentUI.installUI()&lt;/code> and&#xA;&lt;code>ComponentUI.uninstallUI()&lt;/code> methods can use this interface&#xA;to decide if a properties value has been overridden.  For example, the&#xA;JList cellRenderer property is initialized by BasicListUI.installUI(),&#xA;only if it's initial value is null:&#xA;&lt;pre>&#xA;if (list.getCellRenderer() == null) {&#xA;list.setCellRenderer((ListCellRenderer)(UIManager.get(&quot;List.cellRenderer&quot;)));&#xA;}&#xA;&lt;/pre>&#xA;At uninstallUI() time we reset the property to null if its value&#xA;is an instance of UIResource:&#xA;&lt;pre>&#xA;if (list.getCellRenderer() instanceof UIResource) {&#xA;list.setCellRenderer(null);&#xA;}&#xA;&lt;/pre>&#xA;This pattern applies to all properties except the java.awt.Component&#xA;properties font, foreground, and background.  If one of these&#xA;properties isn't initialized, or is explicitly set to null,&#xA;its container provides the value.  For this reason the&#xA;&lt;code>&quot;== null&quot;&lt;/code> is unreliable when installUI() is called&#xA;to dynamically change a components look and feel.  So at installUI()&#xA;time we check to see if the current value is a UIResource:&#xA;&lt;pre>&#xA;if (!(list.getFont() instanceof UIResource)) {&#xA;list.setFont(UIManager.getFont(&quot;List.font&quot;));&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@see ComponentUI&#xA;@version 1.10 12/19/03&#xA;@author Hans Muller&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548221_574138_22176" name="metal">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_741485_10059" name="BumpBuffer" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_948287_10105" name="MetalScrollButton">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_986275_11342" body="JButton object for Metal scrollbar arrows.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.15 08/28/98&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_948287_10105"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_86411_17392" isSubstitutable="true" general="_9_5_f720368_1110473546753_939063_9927"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_752886_10095" name="MetalPopupMenuSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_275187_11330" body="A Metal L&amp;F implementation of PopupMenuSeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&#xA;@version 1.8 12/19/03&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546768_752886_10095"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_895765_17384" isSubstitutable="true" general="_9_5_f720368_1110473546768_81036_10109"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_532022_10057" name="MetalBumps" visibility="package" clientDependency="_10_5_622020d_1132928323581_821284_17234">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_439205_11269" body="Implements the bumps used throughout the Metal Look and Feel.&#xA;&#xA;@version 1.25 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_532022_10057"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_821284_17234" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473546753_532022_10057" contract="_9_5_f720368_1110473546784_576188_10693"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_216172_10071" name="MetalComboBoxEditor">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_938005_11281" body="The default editor for Metal editable combo boxes&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.23 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_216172_10071"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_114657_17241" isSubstitutable="true" general="_9_5_f720368_1110473546753_32111_9941"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_857925_22240" name="EditorBorder" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323581_934690_17242" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_522850_22241" name="UIResource" clientDependency="_10_5_622020d_1132928323581_226999_17243">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_510973_11279" body="A subclass of BasicComboBoxEditor that implements UIResource.&#xA;BasicComboBoxEditor doesn't implement UIResource&#xA;directly so that applications can safely override the&#xA;cellRenderer property with BasicListCellRenderer subclasses.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548237_522850_22241"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_837737_17244" isSubstitutable="true" general="_9_5_f720368_1110473546753_216172_10071"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323581_226999_17243" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_522850_22241" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_45500_10069" name="MetalComboBoxButton">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_132549_11278" body="JButton subclass to help out MetalComboBoxUI&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see MetalComboBoxButton&#xA;@version 1.38 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_45500_10069"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_590493_17240" isSubstitutable="true" general="_9_5_f720368_1110473546784_766765_10705"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_950838_10121" name="MetalTheme" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_287116_11360" body="This abstract class acts as a generic way to describe the colors&#xA;used by Metal.  Subclasses of &lt;code>MetalTheme&lt;/code> can&#xA;be used to swap the colors in a Metal application.&#xA;&#xA;@version 1.27 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_950838_10121"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_8092_10097" name="MetalProgressBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_679448_11332" body="The Metal implementation of ProgressBarUI.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.26 12/19/03&#xA;@author Michael C. Albers&#xA;" annotatedElement="_9_5_f720368_1110473546768_8092_10097"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_534451_17385" isSubstitutable="true" general="_9_5_f720368_1110473546753_475612_9997"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_314159_10055" name="MetalBorders">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_763603_11267" body="Factory object that can vend Borders appropriate for the metal L &amp; F.&#xA;@author Steve Wilson&#xA;@version 1.39 04/16/04&#xA;" annotatedElement="_9_5_f720368_1110473546753_314159_10055"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_367168_22185" name="Flush3DBorder" clientDependency="_10_5_622020d_1132928323571_912720_17198">
                  <generalization xmi:id="_10_5_622020d_1132928323571_900867_17199" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_912720_17198" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_367168_22185" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_214849_22187" name="ButtonBorder" clientDependency="_10_5_622020d_1132928323571_783788_17200">
                  <generalization xmi:id="_10_5_622020d_1132928323571_893809_17201" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_783788_17200" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_214849_22187" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_556905_22189" name="InternalFrameBorder" clientDependency="_10_5_622020d_1132928323571_64782_17202">
                  <generalization xmi:id="_10_5_622020d_1132928323571_89598_17203" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_64782_17202" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_556905_22189" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_211796_22191" name="FrameBorder" visibility="package" clientDependency="_10_5_622020d_1132928323571_479344_17204">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_6206_11257" body="Border for a Frame.&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548221_211796_22191"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_105412_17205" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_479344_17204" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_211796_22191" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_84699_22194" name="DialogBorder" visibility="package" clientDependency="_10_5_622020d_1132928323571_643825_17206">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_973274_11258" body="Border for a Frame.&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548221_84699_22194"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_690081_17207" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_643825_17206" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_84699_22194" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_779555_22197" name="ErrorDialogBorder" visibility="package" clientDependency="_10_5_622020d_1132928323571_764150_17208">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_891504_11259" body="Border for an Error Dialog.&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548221_779555_22197"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_481931_17209" isSubstitutable="true" general="_9_5_f720368_1110473548221_84699_22194"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_764150_17208" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548221_779555_22197" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_420364_22200" name="QuestionDialogBorder" visibility="package" clientDependency="_10_5_622020d_1132928323571_880203_17210">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_468979_11260" body="Border for a QuestionDialog.  Also used for a JFileChooser and a&#xA;JColorChooser..&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548237_420364_22200"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_250052_17211" isSubstitutable="true" general="_9_5_f720368_1110473548221_84699_22194"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_880203_17210" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_420364_22200" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_562388_22203" name="WarningDialogBorder" visibility="package" clientDependency="_10_5_622020d_1132928323571_543431_17212">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_36056_11261" body="Border for a Warning Dialog.&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473548237_562388_22203"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_525984_17213" isSubstitutable="true" general="_9_5_f720368_1110473548221_84699_22194"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_543431_17212" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_562388_22203" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_879883_22206" name="PaletteBorder" clientDependency="_10_5_622020d_1132928323571_546644_17214">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_985289_11262" body="Border for a Palette.&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548237_879883_22206"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_643163_17215" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_546644_17214" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_879883_22206" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_570084_22209" name="OptionDialogBorder" clientDependency="_10_5_622020d_1132928323571_422014_17216">
                  <generalization xmi:id="_10_5_622020d_1132928323571_920274_17217" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_422014_17216" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_570084_22209" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_442256_22211" name="MenuBarBorder" clientDependency="_10_5_622020d_1132928323571_64919_17218">
                  <generalization xmi:id="_10_5_622020d_1132928323571_521688_17219" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_64919_17218" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_442256_22211" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_97990_22213" name="MenuItemBorder" clientDependency="_10_5_622020d_1132928323571_848576_17220">
                  <generalization xmi:id="_10_5_622020d_1132928323571_138653_17221" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_848576_17220" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_97990_22213" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_194855_22215" name="PopupMenuBorder" clientDependency="_10_5_622020d_1132928323571_679499_17222">
                  <generalization xmi:id="_10_5_622020d_1132928323571_310015_17223" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323571_679499_17222" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_194855_22215" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_125987_22217" name="RolloverButtonBorder">
                  <generalization xmi:id="_10_5_622020d_1132928323571_459107_17224" isSubstitutable="true" general="_9_5_f720368_1110473548221_214849_22187"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_913843_22219" name="RolloverMarginBorder" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_660597_11263" body="A border which is like a Margin border but it will only honor the margin&#xA;if the margin has been explicitly set by the developer.&#xA;&#xA;Note: This is identical to the package private class&#xA;BasicBorders.RolloverMarginBorder and should probably be consolidated.&#xA;" annotatedElement="_9_5_f720368_1110473548237_913843_22219"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_957363_17225" isSubstitutable="true" general="_9_5_f720368_1110473546753_470937_9787"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_242205_22222" name="ToolBarBorder" clientDependency="_10_5_622020d_1132928323581_579042_17227 _10_5_622020d_1132928323581_605472_17226">
                  <generalization xmi:id="_10_5_622020d_1132928323581_535141_17228" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323581_605472_17226" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_242205_22222" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323581_579042_17227" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473548237_242205_22222" contract="_9_5_f720368_1110473546799_869308_10869"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_233017_22224" name="TextFieldBorder">
                  <generalization xmi:id="_10_5_622020d_1132928323581_828157_17229" isSubstitutable="true" general="_9_5_f720368_1110473548221_367168_22185"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_130195_22226" name="ScrollPaneBorder" clientDependency="_10_5_622020d_1132928323581_82374_17230">
                  <generalization xmi:id="_10_5_622020d_1132928323581_705078_17231" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323581_82374_17230" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_130195_22226" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_793875_22228" name="ToggleButtonBorder">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_49035_11264" body="@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548237_793875_22228"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_657352_17232" isSubstitutable="true" general="_9_5_f720368_1110473548221_214849_22187"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_572966_22231" name="TableHeaderBorder">
                  <ownedComment xmi:id="_10_5_622020d_1132928317182_514939_11265" body="Border for a Table Header&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548237_572966_22231"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_904100_17233" isSubstitutable="true" general="_9_5_f720368_1110473546753_366126_9779"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_288903_10103" name="MetalScrollBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_234088_11340" body="Implementation of ScrollBarUI for the Metal Look and Feel&#xA;&lt;p>&#xA;&#xA;@version 1.21 08/26/98&#xA;@author Tom Santos&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_288903_10103"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_355880_17390" isSubstitutable="true" general="_9_5_f720368_1110473546753_642510_10005"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_525091_22365" name="ScrollBarListener" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323671_208473_17391" isSubstitutable="true" general="_9_5_f720368_1110473548159_286925_21455"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_775714_10101" name="MetalRootPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_801241_11338" body="Provides the metal look and feel implementation of &lt;code>RootPaneUI&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>MetalRootPaneUI&lt;/code> provides support for the&#xA;&lt;code>windowDecorationStyle&lt;/code> property of &lt;code>JRootPane&lt;/code>.&#xA;&lt;code>MetalRootPaneUI&lt;/code> does this by way of installing a custom&#xA;&lt;code>LayoutManager&lt;/code>, a private &lt;code>Component&lt;/code> to render&#xA;the appropriate widgets, and a private &lt;code>Border&lt;/code>. The&#xA;&lt;code>LayoutManager&lt;/code> is always installed, regardless of the value of&#xA;the &lt;code>windowDecorationStyle&lt;/code> property, but the&#xA;&lt;code>Border&lt;/code> and &lt;code>Component&lt;/code> are only installed/added if&#xA;the &lt;code>windowDecorationStyle&lt;/code> is other than&#xA;&lt;code>JRootPane.NONE&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 04/27/04&#xA;@author Terry Kellerman&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546768_775714_10101"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_21416_17387" isSubstitutable="true" general="_9_5_f720368_1110473546753_802819_10003"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_976628_22359" name="MetalRootLayout" visibility="private" clientDependency="_10_5_622020d_1132928323671_832635_17388">
                  <ownedComment xmi:id="_10_5_622020d_1132928317202_492611_11335" body="A custom layout manager that is responsible for the layout of&#xA;layeredPane, glassPane, menuBar and titlePane, if one has been&#xA;installed.&#xA;" annotatedElement="_9_5_f720368_1110473548237_976628_22359"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_832635_17388" name="" supplier="_9_5_f720368_1110473546581_384048_7067" client="_9_5_f720368_1110473548237_976628_22359" contract="_9_5_f720368_1110473546581_384048_7067"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_160951_22362" name="MouseInputHandler" visibility="private" clientDependency="_10_5_622020d_1132928323671_257651_17389">
                  <ownedComment xmi:id="_10_5_622020d_1132928317202_106011_11336" body="MouseInputHandler is responsible for handling resize/moving of&#xA;the Window. It sets the cursor directly on the Window when then&#xA;mouse moves over a hot spot.&#xA;" annotatedElement="_9_5_f720368_1110473548237_160951_22362"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_257651_17389" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473548237_160951_22362" contract="_9_5_f720368_1110473546753_606883_9881"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_183139_10083" name="MetalHighContrastTheme" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_603804_11305" body="A high contrast theme. This is used on Windows if the system property&#xA;awt.highContrast.on is true.&#xA;&#xA;@version @(#)MetalHighContrastTheme.java&#x9;1.4 03/12/19&#xA;@author Michael C. Albers&#xA;" annotatedElement="_9_5_f720368_1110473546768_183139_10083"/>
                <generalization xmi:id="_10_5_622020d_1132928323661_410896_17290" isSubstitutable="true" general="_9_5_f720368_1110473546753_449684_10053"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_839240_10127" name="MetalToolBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_719161_11373" body="A Metal Look and Feel implementation of ToolBarUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&lt;p>&#xA;&#xA;@version 1.39 12/19/03&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546768_839240_10127"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_577215_17413" isSubstitutable="true" general="_9_5_f720368_1110473546753_590820_10037"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_629093_22399" name="MetalContainerListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323681_357232_17414" isSubstitutable="true" general="_9_5_f720368_1110473548174_373996_21680"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_795549_22400" name="MetalRolloverListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323681_53578_17415" isSubstitutable="true" general="_9_5_f720368_1110473548174_343700_21682"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_836635_22401" name="MetalDockingListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323681_259789_17416" isSubstitutable="true" general="_9_5_f720368_1110473548174_546123_21683"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_871543_10067" name="MetalCheckBoxUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_228504_11276" body="CheckboxUI implementation for MetalCheckboxUI&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author Michael C. Albers&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473546753_871543_10067"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_617910_17239" isSubstitutable="true" general="_9_5_f720368_1110473546768_922714_10099"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_249962_10077" name="MetalDesktopIconUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_345056_11293" body="Metal desktop icon.&#xA;&#xA;@version 1.21 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_249962_10077"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_707398_17251" isSubstitutable="true" general="_9_5_f720368_1110473546753_967267_9949"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_800969_22253" name="TitleListener" visibility="package" clientDependency="_10_5_622020d_1132928323581_239999_17252">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323581_239999_17252" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548237_800969_22253" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_33327_10089" name="MetalInternalFrameUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_300459_11319" body="Metal implementation of JInternalFrame.&#xA;&lt;p>&#xA;&#xA;@version 1.30 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_33327_10089"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_577641_17377" isSubstitutable="true" general="_9_5_f720368_1110473546753_920667_9973"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_482090_22345" name="MetalPropertyChangeHandler" visibility="private" clientDependency="_10_5_622020d_1132928323671_407391_17378">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_407391_17378" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548237_482090_22345" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_85462_10065" name="MetalCheckBoxIcon" clientDependency="_10_5_622020d_1132928323581_831407_17236 _10_5_622020d_1132928323581_419426_17238 _10_5_622020d_1132928323581_619206_17237">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_667919_11274" body="CheckboxIcon implementation for OrganicCheckBoxUI&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_85462_10065"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_831407_17236" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473546753_85462_10065" contract="_9_5_f720368_1110473546784_576188_10693"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_619206_17237" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546753_85462_10065" contract="_9_5_f720368_1110473546768_203610_10277"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_419426_17238" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_85462_10065" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_63322_11246" name="CachedPainter" visibility="package" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317172_23420_11252" body="A base class used for icons or images that are expensive to paint.&#xA;A subclass will do the following:&#xA;&lt;ol>&#xA;&lt;li>Invoke &lt;code>paint&lt;/code> when you want to paint the image,&#xA;if you are implementing &lt;code>Icon&lt;/code> you'll invoke this from&#xA;&lt;code>paintIcon&lt;/code>.&#xA;The args argument is useful when additional state is needed.&#xA;&lt;li>Override &lt;code>paintToImage&lt;/code> to render the image.  The code that&#xA;lives here is equivalent to what previously would go in&#xA;&lt;code>paintIcon&lt;/code>, for an &lt;code>Icon&lt;/code>.&#xA;&lt;/ol>&#xA;&#xA;@version @(#)CachedPainter.java&#x9;1.2 04/02/15&#xA;" annotatedElement="_10_5_622020d_1132928317172_63322_11246"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_578432_11247" name="Cache" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_264223_11250" body="Cache is used to cache an image based on a set of arguments.&#xA;" annotatedElement="_10_5_622020d_1132928317172_578432_11247"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317172_80_11248" name="Entry" visibility="private">
                    <ownedComment xmi:id="_10_5_622020d_1132928317172_199721_11249" body="Caches set of arguments and Image.&#xA;" annotatedElement="_10_5_622020d_1132928317172_80_11248"/>
                  </nestedClassifier>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_991150_10061" name="MetalButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_857423_11272" body="MetalButtonUI implementation&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.37 04/02/04&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_991150_10061"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_561562_17235" isSubstitutable="true" general="_9_5_f720368_1110473546753_229752_9933"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_459199_10125" name="MetalToggleButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_43136_11371" body="MetalToggleButton implementation&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.28 04/02/04&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546768_459199_10125"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_49202_17412" isSubstitutable="true" general="_9_5_f720368_1110473546753_487580_10033"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_887905_10091" name="MetalLabelUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_452424_11321" body="A Windows L&amp;F implementation of LabelUI.  This implementation&#xA;is completely static, i.e. there's only one UIView implementation&#xA;that's shared by all JLabel objects.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546768_887905_10091"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_286714_17379" isSubstitutable="true" general="_9_5_f720368_1110473546753_323534_9975"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_648073_11386" name="OceanTheme">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_109438_11390" body="This class provides an updated look for applications using&#xA;&lt;code>MetalLookAndFeel&lt;code>. The designers of the Metal&#xA;Look and Feel strive to keep the default look up to date,&#xA;possibly through the use of new themes in the future.&#xA;Therefore, developers should only use this class directly&#xA;when they wish to customize the &quot;Ocean&quot; look, or force&#xA;it to be the current theme, regardless of future updates.&#xA;&#xA;@version 1.13 03/17/04&#xA;@since 1.5&#xA;@see MetalLookAndFeel#setCurrentTheme&#xA;" annotatedElement="_10_5_622020d_1132928317222_648073_11386"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_758292_17423" isSubstitutable="true" general="_9_5_f720368_1110473546753_449684_10053"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_40330_11387" name="COIcon" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323681_660175_17424" isSubstitutable="true" general="_9_5_f720368_1110473546768_4587_10225"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_82823_11388" name="IFIcon" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323681_785115_17425" isSubstitutable="true" general="_9_5_f720368_1110473546768_4587_10225"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_703919_10119" name="MetalTextFieldUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_181242_11358" body="Basis of a look and feel for a JTextField.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author  Steve Wilson&#xA;@version 1.15 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546768_703919_10119"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_604124_17402" isSubstitutable="true" general="_9_5_f720368_1110473546753_580925_10027"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_402386_10081" name="MetalFontDesktopProperty" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_416045_11303" body="DesktopProperty that only uses font height in configuring font. This&#xA;is only used on Windows.&#xA;&#xA;@version @(#)MetalFontDesktopProperty.java&#x9;1.4 03/12/19&#xA;" annotatedElement="_9_5_f720368_1110473546768_402386_10081"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_150722_10107" name="MetalScrollPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_120670_11344" body="A Metal L&amp;F implementation of ScrollPaneUI.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.19 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_150722_10107"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_390761_17393" isSubstitutable="true" general="_9_5_f720368_1110473546753_883008_10007"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_514376_10117" name="MetalTabbedPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_663055_11356" body="The Metal subclass of BasicTabbedPaneUI.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.19 08/28/98&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546768_514376_10117"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_323882_17400" isSubstitutable="true" general="_9_5_f720368_1110473546753_694845_10019"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_103445_22376" name="TabbedPaneLayout">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_42376_11354" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of MetalTabbedPaneUI.&#xA;" annotatedElement="_9_5_f720368_1110473548253_103445_22376"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_583572_17401" isSubstitutable="true" general="_9_5_f720368_1110473548174_444230_21581"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_53115_10111" name="MetalSliderUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_492567_11348" body="A Java L&amp;F implementation of SliderUI.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.34 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546768_53115_10111"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_271952_17395" isSubstitutable="true" general="_9_5_f720368_1110473546753_460976_10011"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_922123_22370" name="MetalPropertyListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323671_439443_17396" isSubstitutable="true" general="_9_5_f720368_1110473548159_548958_21482"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_391339_10073" name="MetalComboBoxIcon" clientDependency="_10_5_622020d_1132928323581_477228_17245 _10_5_622020d_1132928323581_961903_17246">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_975335_11283" body="This utility class draws the horizontal bars which indicate a MetalComboBox&#xA;&#xA;@see MetalComboBoxUI&#xA;@version 1.13 12/19/03&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_391339_10073"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_477228_17245" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473546753_391339_10073" contract="_9_5_f720368_1110473546784_576188_10693"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323581_961903_17246" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_391339_10073" contract="_9_5_f720368_1110473546612_364919_7481"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_777046_10131" name="MetalTreeUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_598408_11378" body="The metal look and feel implementation of &lt;code>TreeUI&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>MetalTreeUI&lt;/code> allows for configuring how to&#xA;visually render the spacing and delineation between nodes. The following&#xA;hints are supported:&#xA;&#xA;&lt;table summary=&quot;Descriptions of supported hints: Angled, Horizontal, and None&quot;>&#xA;&lt;tr>&#xA;&lt;th>&lt;p align=&quot;left&quot;>Angled&lt;/p>&lt;/th>&#xA;&lt;td>A line is drawn connecting the child to the parent. For handling&#xA;of the root node refer to&#xA;{@link javax.swing.JTree#setRootVisible} and&#xA;{@link javax.swing.JTree#setShowsRootHandles}.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th>&lt;p align=&quot;left&quot;>Horizontal&lt;/p>&lt;/th>&#xA;&lt;td>A horizontal line is drawn dividing the children of the root node.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;th>&lt;p align=&quot;left&quot;>None&lt;/p>&lt;/th>&#xA;&lt;td>Do not draw any visual indication between nodes.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>&#xA;As it is typically impratical to obtain the &lt;code>TreeUI&lt;/code> from&#xA;the &lt;code>JTree&lt;/code> and cast to an instance of &lt;code>MetalTreeUI&lt;/code>&#xA;you enable this property via the client property&#xA;&lt;code>JTree.lineStyle&lt;/code>. For example, to switch to&#xA;&lt;code>Horizontal&lt;/code> style you would do:&#xA;&lt;code>tree.putClientProperty(&quot;JTree.lineStyle&quot;, &quot;Horizontal&quot;);&lt;/code>&#xA;&lt;p>&#xA;The default is &lt;code>Angled&lt;/code>.&#xA;&#xA;@version 1.23 12/19/03&#xA;@author Tom Santos&#xA;@author Steve Wilson (value add stuff)&#xA;" annotatedElement="_9_5_f720368_1110473546768_777046_10131"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_226457_17418" isSubstitutable="true" general="_9_5_f720368_1110473546753_915422_10043"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_413258_22404" name="LineListener" visibility="package" clientDependency="_10_5_622020d_1132928323681_944665_17419">
                  <ownedComment xmi:id="_10_5_622020d_1132928317222_111902_11376" body="This class listens for changes in line style" annotatedElement="_9_5_f720368_1110473548253_413258_22404"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323681_944665_17419" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548253_413258_22404" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_181995_10063" name="MetalButtonListener" visibility="package"/>
              <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317202_849979_11326" name="MetalMenuBarUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_67247_11328" body="Metal implementation of &lt;code>MenuBarUI&lt;/code>. This class is responsible&#xA;for providing the metal look and feel for &lt;code>JMenuBar&lt;/code>s.&#xA;&#xA;@version 1.5 12/19/03&#xA;@see javax.swing.plaf.MenuBarUI&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928317202_849979_11326"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_646613_17383" isSubstitutable="true" general="_9_5_f720368_1110473546753_352653_9981"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_395657_10115" name="MetalSplitPaneUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_608252_11353" body="Metal split pane.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.10 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_395657_10115"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_124389_17399" isSubstitutable="true" general="_9_5_f720368_1110473546753_737886_10017"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_470237_10075" name="MetalComboBoxUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_725931_11291" body="Metal UI for JComboBox&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see MetalComboBoxEditor&#xA;@see MetalComboBoxButton&#xA;@version 1.49 05/18/04&#xA;@author Tom Santos&#xA;" annotatedElement="_9_5_f720368_1110473546753_470237_10075"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_71302_17247" isSubstitutable="true" general="_9_5_f720368_1110473546753_316126_9945"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_319791_22246" name="MetalPropertyChangeListener">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_230020_11284" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;FooUI>.&#xA;" annotatedElement="_9_5_f720368_1110473548237_319791_22246"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_481774_17248" isSubstitutable="true" general="_9_5_f720368_1110473548143_602978_21188"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_694207_22248" name="MetalComboBoxLayoutManager">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_164176_11285" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;FooUI>.&#xA;" annotatedElement="_9_5_f720368_1110473548237_694207_22248"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_709609_17249" isSubstitutable="true" general="_9_5_f720368_1110473547206_777065_15802"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_21834_22250" name="MetalComboPopup">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_192239_11289" body="This inner class is marked &quot;public&quot; due to a compiler bug.&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of &lt;FooUI>.&#xA;&#xA;This class is now obsolete and doesn't do anything and&#xA;is only included for backwards API compatibility. Do not call or&#xA;override.&#xA;&#xA;@deprecated As of Java 2 platform v1.4.&#xA;" annotatedElement="_9_5_f720368_1110473548237_21834_22250"/>
                  <generalization xmi:id="_10_5_622020d_1132928323581_233332_17250" isSubstitutable="true" general="_9_5_f720368_1110473546753_112295_9947"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_449684_10053" name="DefaultMetalTheme">
                <ownedComment xmi:id="_10_5_622020d_1132928317182_771023_11256" body="This class describes the default Metal Theme.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.27 03/03/04&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546753_449684_10053"/>
                <generalization xmi:id="_10_5_622020d_1132928323561_745054_17196" isSubstitutable="true" general="_9_5_f720368_1110473546768_950838_10121"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_576452_22178" name="FontDelegate" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_751073_11253" body="FontDelegates add an extra level of indirection to obtaining fonts.&#xA;" annotatedElement="_9_5_f720368_1110473548221_576452_22178"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548221_374701_22181" name="WindowsFontDelegate" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317172_143187_11254" body="The WindowsFontDelegate uses DesktopProperties to obtain fonts.&#xA;" annotatedElement="_9_5_f720368_1110473548221_374701_22181"/>
                  <generalization xmi:id="_10_5_622020d_1132928323571_399851_17197" isSubstitutable="true" general="_9_5_f720368_1110473548221_576452_22178"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_950180_10093" name="MetalLookAndFeel">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_601321_11325" body="Implements the Java look and feel (codename: Metal).&#xA;&lt;p>&#xA;By default metal uses bold fonts for many controls.  To make all&#xA;controls (with the exception of the internal frame title bars and&#xA;client decorated frame title bars) use plain fonts you can do either of&#xA;the following:&#xA;&lt;ul>&#xA;&lt;li>Set the system property &lt;code>swing.boldMetal&lt;/code> to&#xA;&lt;code>false&lt;/code>.  For example,&#xA;&lt;code>java&amp;nbsp;-Dswing.boldMetal=false&amp;nbsp;MyApp&lt;/code>.&#xA;&lt;li>Set the defaults property &lt;code>swing.boldMetal&lt;/code> to&#xA;&lt;code>Boolean.FALSE&lt;/code>.  For example:&#xA;&lt;code>UIManager.put(&quot;swing.boldMetal&quot;,&amp;nbsp;Boolean.FALSE);&lt;/code>&#xA;&lt;/ul>&#xA;The defaults property &lt;code>swing.boldMetal&lt;/code>, if set,&#xA;takes precendence over the system property of the same name. After&#xA;setting this defaults property you need to re-install the&#xA;&lt;code>MetalLookAndFeel&lt;/code>, as well as update the UI&#xA;of any previously created widgets. Otherwise the results are undefined.&#xA;These lines of code show you how to accomplish this:&#xA;&lt;pre>&#xA;turn off bold fonts&#xA;UIManager.put(&quot;swing.boldMetal&quot;, Boolean.FALSE);&#xA;&#xA;re-install the Metal Look and Feel&#xA;UIManager.setLookAndFeel(new MetalLookAndFeel());&#xA;&#xA;only needed to update existing widgets&#xA;SwingUtilities.updateComponentTreeUI(rootComponent);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version @(#)MetalLookAndFeel.java&#x9;1.182 04/04/02&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_950180_10093"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_634134_17380" isSubstitutable="true" general="_9_5_f720368_1110473546753_258542_9979"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_748477_22349" name="MetalLazyValue" visibility="private" clientDependency="_10_5_622020d_1132928323671_158104_17381">
                  <ownedComment xmi:id="_10_5_622020d_1132928317202_42129_11322" body="MetalLazyValue is a slimmed down version of &lt;code>ProxyLaxyValue&lt;/code>.&#xA;The code is duplicate so that it can get at the package private&#xA;classes in metal.&#xA;" annotatedElement="_9_5_f720368_1110473548237_748477_22349"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_158104_17381" name="" supplier="_9_5_f720368_1110473547143_528360_15205" client="_9_5_f720368_1110473548237_748477_22349" contract="_9_5_f720368_1110473547143_528360_15205"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_426598_22352" name="FontActiveValue" visibility="private" clientDependency="_10_5_622020d_1132928323671_256524_17382">
                  <ownedComment xmi:id="_10_5_622020d_1132928317202_978984_11323" body="FontActiveValue redirects to the appropriate metal theme method.&#xA;" annotatedElement="_9_5_f720368_1110473548237_426598_22352"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_256524_17382" name="" supplier="_9_5_f720368_1110473547221_287093_16067" client="_9_5_f720368_1110473548237_426598_22352" contract="_9_5_f720368_1110473547221_287093_16067"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_122057_10129" name="MetalToolTipUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_588707_11375" body="A Metal L&amp;F extension of BasicToolTipUI.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.28 12/19/03&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_122057_10129"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_118053_17417" isSubstitutable="true" general="_9_5_f720368_1110473546753_490751_10039"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_183573_10087" name="MetalInternalFrameTitlePane">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_425439_11317" body="Class that manages a JLF title bar&#xA;@version 1.57 03/17/04&#xA;@author Steve Wilson&#xA;@author Brian Beck&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546768_183573_10087"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_820436_17374" isSubstitutable="true" general="_9_5_f720368_1110473546753_346211_9971"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_525773_22342" name="MetalPropertyChangeHandler" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323671_259465_17375" isSubstitutable="true" general="_9_5_f720368_1110473547237_258238_16148"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_429154_22343" name="MetalTitlePaneLayout" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323671_523340_17376" isSubstitutable="true" general="_9_5_f720368_1110473547237_241035_16146"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_33738_10123" name="MetalTitlePane" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_369284_11369" body="Class that manages a JLF awt.Window-descendant class's title bar.&#xA;&lt;p>&#xA;This class assumes it will be created with a particular window&#xA;decoration style, and that if the style changes, a new one will&#xA;be created.&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Terry Kellerman&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546768_33738_10123"/>
                <generalization xmi:id="_10_5_622020d_1132928323681_233644_17403" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_377120_22381" name="CloseAction" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_225151_11361" body="Actions used to &lt;code>close&lt;/code> the &lt;code>Window&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548253_377120_22381"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_556290_17404" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_475318_22383" name="IconifyAction" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_455679_11362" body="Actions used to &lt;code>iconfiy&lt;/code> the &lt;code>Frame&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548253_475318_22383"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_131053_17405" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_71645_22385" name="RestoreAction" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_218146_11363" body="Actions used to &lt;code>restore&lt;/code> the &lt;code>Frame&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548253_71645_22385"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_481984_17406" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_215840_22387" name="MaximizeAction" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_249459_11364" body="Actions used to &lt;code>restore&lt;/code> the &lt;code>Frame&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548253_215840_22387"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_589336_17407" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_691234_22389" name="SystemMenuBar" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_829933_11365" body="Class responsible for drawing the system menu. Looks up the&#xA;image to draw from the Frame associated with the&#xA;&lt;code>JRootPane&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548253_691234_22389"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_577552_17408" isSubstitutable="true" general="_9_5_f720368_1110473546799_513545_10743"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_379060_22391" name="TitlePaneLayout" visibility="private" clientDependency="_10_5_622020d_1132928323681_541865_17409">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323681_541865_17409" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548253_379060_22391" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_383354_22393" name="PropertyChangeHandler" visibility="private" clientDependency="_10_5_622020d_1132928323681_625790_17410">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_410899_11366" body="PropertyChangeListener installed on the Window. Updates the necessary&#xA;state as the state of the Window changes.&#xA;" annotatedElement="_9_5_f720368_1110473548253_383354_22393"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323681_625790_17410" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548253_383354_22393" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_377164_22395" name="WindowHandler" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_853472_11367" body="WindowListener installed on the Window, updates the state as necessary.&#xA;" annotatedElement="_9_5_f720368_1110473548253_377164_22395"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_282552_17411" isSubstitutable="true" general="_9_5_f720368_1110473546565_558736_6611"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_922714_10099" name="MetalRadioButtonUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_516749_11334" body="RadioButtonUI implementation for MetalRadioButtonUI&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.29 12/19/03&#xA;@author Michael C. Albers (Metal modifications)&#xA;@author Jeff Dinkins (original BasicRadioButtonCode)&#xA;" annotatedElement="_9_5_f720368_1110473546768_922714_10099"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_944272_17386" isSubstitutable="true" general="_9_5_f720368_1110473546753_913171_10001"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_572534_10085" name="MetalIconFactory" clientDependency="_10_5_622020d_1132928323661_433249_17291">
                <ownedComment xmi:id="_10_5_622020d_1132928317202_706197_11315" body="Factory object that vends &lt;code>Icon&lt;/code>s for&#xA;the Java&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup> look and feel (Metal).&#xA;These icons are used extensively in Metal via the defaults mechanism.&#xA;While other look and feels often use GIFs for icons, creating icons&#xA;in code facilitates switching to other themes.&#xA;&#xA;&lt;p>&#xA;Each method in this class returns&#xA;either an &lt;code>Icon&lt;/code> or &lt;code>null&lt;/code>,&#xA;where &lt;code>null&lt;/code> implies that there is no default icon.&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.60 02/15/04&#xA;@author Michael C. Albers&#xA;" annotatedElement="_9_5_f720368_1110473546768_572534_10085"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323661_433249_17291" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_572534_10085" contract="_9_5_f720368_1110473546612_364919_7481"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_229254_22278" name="FileChooserDetailViewIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_617760_17293 _10_5_622020d_1132928323661_512534_17294 _10_5_622020d_1132928323661_256530_17292">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_256530_17292" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_229254_22278" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_617760_17293" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_229254_22278" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_512534_17294" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_229254_22278" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_905091_22280" name="FileChooserHomeFolderIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_498584_17295 _10_5_622020d_1132928323661_747417_17296 _10_5_622020d_1132928323661_414383_17297">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_498584_17295" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_905091_22280" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_747417_17296" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_905091_22280" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_414383_17297" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_905091_22280" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_614296_22282" name="FileChooserListViewIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_179750_17298 _10_5_622020d_1132928323661_95923_17300 _10_5_622020d_1132928323661_263943_17299">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_179750_17298" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_614296_22282" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_263943_17299" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_614296_22282" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_95923_17300" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_614296_22282" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_19321_22284" name="FileChooserNewFolderIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_115590_17302 _10_5_622020d_1132928323661_747766_17301 _10_5_622020d_1132928323661_57438_17303">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_747766_17301" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_19321_22284" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_115590_17302" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_19321_22284" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_57438_17303" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_19321_22284" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_951587_22286" name="FileChooserUpFolderIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_855730_17304 _10_5_622020d_1132928323661_716493_17305 _10_5_622020d_1132928323661_938508_17306">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_855730_17304" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_951587_22286" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_716493_17305" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_951587_22286" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_938508_17306" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_951587_22286" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_228952_22288" name="PaletteCloseIcon" clientDependency="_10_5_622020d_1132928323661_403621_17308 _10_5_622020d_1132928323661_45793_17309 _10_5_622020d_1132928323661_980495_17307">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_100393_11306" body="Defines an icon for Palette close&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548237_228952_22288"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_980495_17307" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_228952_22288" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_403621_17308" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_228952_22288" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_45793_17309" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_228952_22288" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_226328_22291" name="InternalFrameCloseIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_734372_17311 _10_5_622020d_1132928323661_822008_17310 _10_5_622020d_1132928323661_304681_17312">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_822008_17310" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_226328_22291" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_734372_17311" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_226328_22291" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_304681_17312" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_226328_22291" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_527956_22293" name="InternalFrameAltMaximizeIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_88694_17314 _10_5_622020d_1132928323661_963513_17315 _10_5_622020d_1132928323661_520532_17313">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_520532_17313" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_527956_22293" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_88694_17314" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_527956_22293" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_963513_17315" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_527956_22293" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_312768_22295" name="InternalFrameDefaultMenuIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_33165_17316 _10_5_622020d_1132928323661_293926_17317 _10_5_622020d_1132928323661_633776_17318">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_33165_17316" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_312768_22295" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_293926_17317" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_312768_22295" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_633776_17318" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_312768_22295" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_769076_22297" name="InternalFrameMaximizeIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_666752_17320 _10_5_622020d_1132928323661_72063_17319 _10_5_622020d_1132928323661_259285_17321">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_72063_17319" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_769076_22297" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_666752_17320" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_769076_22297" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_259285_17321" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_769076_22297" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_970426_22299" name="InternalFrameMinimizeIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_55676_17324 _10_5_622020d_1132928323661_296207_17322 _10_5_622020d_1132928323661_502093_17323">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_296207_17322" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_970426_22299" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_502093_17323" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_970426_22299" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_55676_17324" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_970426_22299" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_122040_22301" name="CheckBoxIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_70076_17326 _10_5_622020d_1132928323661_969906_17325 _10_5_622020d_1132928323661_275583_17327">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_969906_17325" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_122040_22301" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_70076_17326" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_122040_22301" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_275583_17327" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_122040_22301" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_228679_22303" name="RadioButtonIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_171366_17329 _10_5_622020d_1132928323661_883267_17328 _10_5_622020d_1132928323661_354516_17330">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_883267_17328" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_228679_22303" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_171366_17329" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_228679_22303" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_354516_17330" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_228679_22303" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_718753_22305" name="TreeComputerIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_196905_17331 _10_5_622020d_1132928323661_980729_17332 _10_5_622020d_1132928323661_870808_17333">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_196905_17331" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_718753_22305" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_980729_17332" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_718753_22305" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_870808_17333" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_718753_22305" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_460193_22307" name="TreeHardDriveIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_277328_17334 _10_5_622020d_1132928323661_488557_17335 _10_5_622020d_1132928323661_236514_17336">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_277328_17334" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_460193_22307" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_488557_17335" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_460193_22307" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_236514_17336" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_460193_22307" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_930120_22309" name="TreeFloppyDriveIcon" visibility="private" clientDependency="_10_5_622020d_1132928323661_790096_17339 _10_5_622020d_1132928323661_495660_17338 _10_5_622020d_1132928323661_9401_17337">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_9401_17337" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_930120_22309" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_495660_17338" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_930120_22309" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_790096_17339" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_930120_22309" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_350633_22311" name="ImageCacher" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_840938_11307" body="Utility class for caching icon images.  This is necessary because&#xA;we need a new image whenever we are rendering into a new&#xA;GraphicsConfiguration, but we do not want to keep recreating icon&#xA;images for GC's that we have already seen (for example,&#xA;dragging a window back and forth between monitors on a multimon&#xA;system, or drawing an icon to different Components that have different&#xA;GC's).&#xA;So now whenever we create a new icon image for a given GC, we&#xA;cache that image with the GC for later retrieval.&#xA;" annotatedElement="_9_5_f720368_1110473548237_350633_22311"/>
                  <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_418036_22314" name="ImageGcPair" visibility="package"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_135307_22315" name="FolderIcon16" clientDependency="_10_5_622020d_1132928323661_449450_17340 _10_5_622020d_1132928323661_227025_17341">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_573392_11308" body="&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548237_135307_22315"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_449450_17340" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_135307_22315" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_227025_17341" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_135307_22315" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_634185_22318" name="TreeFolderIcon">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_238532_11309" body="&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548237_634185_22318"/>
                  <generalization xmi:id="_10_5_622020d_1132928323661_776510_17342" isSubstitutable="true" general="_9_5_f720368_1110473548237_135307_22315"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_714192_22321" name="FileIcon16" clientDependency="_10_5_622020d_1132928323661_388723_17343 _10_5_622020d_1132928323661_514801_17344">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_355054_11310" body="&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548237_714192_22321"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_388723_17343" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_714192_22321" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323661_514801_17344" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_714192_22321" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_858404_22324" name="TreeLeafIcon">
                  <generalization xmi:id="_10_5_622020d_1132928323661_912337_17345" isSubstitutable="true" general="_9_5_f720368_1110473548237_714192_22321"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_348540_22326" name="TreeControlIcon" clientDependency="_10_5_622020d_1132928323671_269671_17347 _10_5_622020d_1132928323671_90482_17346">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_553631_11311" body="&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548237_348540_22326"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_90482_17346" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_348540_22326" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_269671_17347" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_348540_22326" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_247830_22329" name="MenuArrowIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_914143_17350 _10_5_622020d_1132928323671_403756_17348 _10_5_622020d_1132928323671_716690_17349">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_403756_17348" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_247830_22329" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_716690_17349" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_247830_22329" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_914143_17350" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_247830_22329" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_158121_22331" name="MenuItemArrowIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_75547_17351 _10_5_622020d_1132928323671_499349_17352 _10_5_622020d_1132928323671_977031_17353">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_75547_17351" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_158121_22331" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_499349_17352" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_158121_22331" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_977031_17353" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_158121_22331" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_819596_22333" name="CheckBoxMenuItemIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_985631_17356 _10_5_622020d_1132928323671_929476_17354 _10_5_622020d_1132928323671_345998_17355">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_929476_17354" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_819596_22333" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_345998_17355" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_819596_22333" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_985631_17356" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_819596_22333" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_583845_22335" name="RadioButtonMenuItemIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_40712_17357 _10_5_622020d_1132928323671_333364_17358 _10_5_622020d_1132928323671_472539_17359">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_40712_17357" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_583845_22335" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_333364_17358" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_583845_22335" contract="_9_5_f720368_1110473546768_203610_10277"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_472539_17359" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_583845_22335" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_595434_22337" name="VerticalSliderThumbIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_314270_17361 _10_5_622020d_1132928323671_525680_17362 _10_5_622020d_1132928323671_151931_17360">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_151931_17360" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_595434_22337" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_314270_17361" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_595434_22337" contract="_9_5_f720368_1110473546612_364919_7481"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_525680_17362" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_595434_22337" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_196661_22339" name="HorizontalSliderThumbIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_648114_17363 _10_5_622020d_1132928323671_670351_17364 _10_5_622020d_1132928323671_968581_17365">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_648114_17363" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_196661_22339" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_670351_17364" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548237_196661_22339" contract="_9_5_f720368_1110473546612_364919_7481"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_968581_17365" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548237_196661_22339" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317192_790245_11312" name="OceanVerticalSliderThumbIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_31484_17366 _10_5_622020d_1132928323671_716948_17367 _10_5_622020d_1132928323671_132161_17368">
                  <generalization xmi:id="_10_5_622020d_1132928323671_624391_17369" isSubstitutable="true" general="_10_5_622020d_1132928317172_63322_11246"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_31484_17366" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_10_5_622020d_1132928317192_790245_11312" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_716948_17367" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928317192_790245_11312" contract="_9_5_f720368_1110473546612_364919_7481"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_132161_17368" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317192_790245_11312" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317202_433950_11313" name="OceanHorizontalSliderThumbIcon" visibility="private" clientDependency="_10_5_622020d_1132928323671_387565_17372 _10_5_622020d_1132928323671_131001_17370 _10_5_622020d_1132928323671_237457_17371">
                  <generalization xmi:id="_10_5_622020d_1132928323671_15084_17373" isSubstitutable="true" general="_10_5_622020d_1132928317172_63322_11246"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_131001_17370" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_10_5_622020d_1132928317202_433950_11313" contract="_9_5_f720368_1110473546784_576188_10693"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_237457_17371" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928317202_433950_11313" contract="_9_5_f720368_1110473546612_364919_7481"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323671_387565_17372" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_10_5_622020d_1132928317202_433950_11313" contract="_9_5_f720368_1110473546768_203610_10277"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_675610_10113" name="MetalSplitPaneDivider" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_577757_11351" body="Metal's split pane divider&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.21 12/19/03&#xA;@author Steve Wilson&#xA;@author Ralph kar&#xA;" annotatedElement="_9_5_f720368_1110473546768_675610_10113"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_86279_17397" isSubstitutable="true" general="_9_5_f720368_1110473546753_461880_10015"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548253_568990_22372" name="MetalDividerLayout" clientDependency="_10_5_622020d_1132928323681_662032_17398">
                  <ownedComment xmi:id="_10_5_622020d_1132928317212_483408_11349" body="Used to layout a MetalSplitPaneDivider. Layout for the divider&#xA;involves appropriately moving the left/right buttons around.&#xA;&lt;p>&#xA;This class should be treated as a &quot;protected&quot; inner class.&#xA;Instantiate it only within subclasses of MetalSplitPaneDivider.&#xA;" annotatedElement="_9_5_f720368_1110473548253_568990_22372"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323681_662032_17398" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548253_568990_22372" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_816389_10079" name="MetalFileChooserUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317192_933514_11301" body="Metal L&amp;F implementation of a FileChooser.&#xA;&#xA;@version 1.83 03/30/04&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_816389_10079"/>
                <generalization xmi:id="_10_5_622020d_1132928323581_587692_17253" isSubstitutable="true" general="_9_5_f720368_1110473546753_978391_9961"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_356160_22258" name="SingleClickListener" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323651_855518_17276" isSubstitutable="true" general="_9_5_f720368_1110473546565_107028_6589"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_645027_22260" name="FileRenderer" visibility="protected">
                  <generalization xmi:id="_10_5_622020d_1132928323651_870489_17277" isSubstitutable="true" general="_9_5_f720368_1110473546784_198990_10675"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_407783_22261" name="DirectoryComboBoxRenderer" visibility="package">
                  <generalization xmi:id="_10_5_622020d_1132928323651_713861_17278" isSubstitutable="true" general="_9_5_f720368_1110473546784_198990_10675"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_575654_22262" name="IndentIcon" visibility="package" clientDependency="_10_5_622020d_1132928323651_923913_17279">
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323651_923913_17279" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473548237_575654_22262" contract="_9_5_f720368_1110473546784_576188_10693"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_702494_22263" name="DirectoryComboBoxModel" visibility="protected" clientDependency="_10_5_622020d_1132928323651_843515_17280">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_262155_11295" body="Data model for a type-face selection combo-box.&#xA;" annotatedElement="_9_5_f720368_1110473548237_702494_22263"/>
                  <generalization xmi:id="_10_5_622020d_1132928323651_482464_17281" isSubstitutable="true" general="_9_5_f720368_1110473546784_136098_10617"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323651_843515_17280" name="" supplier="_9_5_f720368_1110473546784_592945_10647" client="_9_5_f720368_1110473548237_702494_22263" contract="_9_5_f720368_1110473546784_592945_10647"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_653324_22265" name="FilterComboBoxRenderer">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_507691_11296" body="Render different type sizes and styles.&#xA;" annotatedElement="_9_5_f720368_1110473548237_653324_22265"/>
                  <generalization xmi:id="_10_5_622020d_1132928323651_388019_17282" isSubstitutable="true" general="_9_5_f720368_1110473546784_198990_10675"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_736454_22267" name="FilterComboBoxModel" visibility="protected" clientDependency="_10_5_622020d_1132928323651_442376_17283 _10_5_622020d_1132928323651_746932_17284">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_199069_11297" body="Data model for a type-face selection combo-box.&#xA;" annotatedElement="_9_5_f720368_1110473548237_736454_22267"/>
                  <generalization xmi:id="_10_5_622020d_1132928323651_275806_17285" isSubstitutable="true" general="_9_5_f720368_1110473546784_136098_10617"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323651_442376_17283" name="" supplier="_9_5_f720368_1110473546784_592945_10647" client="_9_5_f720368_1110473548237_736454_22267" contract="_9_5_f720368_1110473546784_592945_10647"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323651_746932_17284" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548237_736454_22267" contract="_9_5_f720368_1110473546596_119404_7313"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_313743_22269" name="DirectoryComboBoxAction" visibility="protected">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_783431_11298" body="Acts when DirectoryComboBox has changed the selected item.&#xA;" annotatedElement="_9_5_f720368_1110473548237_313743_22269"/>
                  <generalization xmi:id="_10_5_622020d_1132928323651_238859_17286" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_543968_22271" name="ButtonAreaLayout" visibility="private" clientDependency="_10_5_622020d_1132928323651_498100_17287">
                  <ownedComment xmi:id="_10_5_622020d_1132928317192_265579_11299" body="&lt;code>ButtonAreaLayout&lt;/code> behaves in a similar manner to&#xA;&lt;code>FlowLayout&lt;/code>. It lays out all components from left to&#xA;right, flushed right. The widths of all components will be set&#xA;to the largest preferred size width.&#xA;" annotatedElement="_9_5_f720368_1110473548237_543968_22271"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323651_498100_17287" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473548237_543968_22271" contract="_9_5_f720368_1110473546581_587570_7065"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548237_556549_22274" name="AlignedLabel" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323661_118002_17288" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317192_164282_11294" name="MetalFileChooserUIAccessor" visibility="private"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_892427_10133" name="MetalUtils" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317222_863754_11385" body="This is a dumping ground for random stuff we want to use in several places.&#xA;&#xA;@version 1.35 02/15/04&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_892427_10133"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_797144_11379" name="GradientPainter" visibility="private">
                  <generalization xmi:id="_10_5_622020d_1132928323681_428741_17420" isSubstitutable="true" general="_10_5_622020d_1132928317172_63322_11246"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_210581_11380" name="OceanDisabledButtonImageFilter" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317222_487409_11381" body="Used to create a disabled Icon with the ocean look.&#xA;" annotatedElement="_10_5_622020d_1132928317222_210581_11380"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_133707_17421" isSubstitutable="true" general="_9_5_f720368_1110473546581_815313_6831"/>
                </nestedClassifier>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928317222_961305_11382" name="OceanToolBarImageFilter" visibility="private">
                  <ownedComment xmi:id="_10_5_622020d_1132928317222_416109_11383" body="Used to create the rollover icons with the ocean look.&#xA;" annotatedElement="_10_5_622020d_1132928317222_961305_11382"/>
                  <generalization xmi:id="_10_5_622020d_1132928323681_86096_17422" isSubstitutable="true" general="_9_5_f720368_1110473546581_815313_6831"/>
                </nestedClassifier>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_81036_10109" name="MetalSeparatorUI">
                <ownedComment xmi:id="_10_5_622020d_1132928317212_637924_11346" body="A Metal L&amp;F implementation of SeparatorUI.  This implementation&#xA;is a &quot;combined&quot; view/controller.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546768_81036_10109"/>
                <generalization xmi:id="_10_5_622020d_1132928323671_63622_17394" isSubstitutable="true" general="_9_5_f720368_1110473546753_248678_10009"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_583723_10207" name="ColorUIResource" clientDependency="_10_5_622020d_1132928323762_795076_17651">
              <generalization xmi:id="_10_5_622020d_1132928323762_521731_17652" isSubstitutable="true" general="_9_5_f720368_1110473546581_525736_6961"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_795076_17651" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_583723_10207" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_154367_10217" name="DesktopPaneUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317342_245204_11683" body="Pluggable look and feel interface for JDesktopPane.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546768_154367_10217"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_129514_17657" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_850345_10205" name="ColorChooserUI" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317332_687486_11672" body="Pluggable look and feel interface for JColorChooser.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Amy Fowler&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546768_850345_10205"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_633088_17650" isSubstitutable="true" general="_9_5_f720368_1110473546768_475119_10213"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_274450_10227" name="InputMapUIResource" clientDependency="_10_5_622020d_1132928323762_343514_17666">
              <ownedComment xmi:id="_10_5_622020d_1132928317392_670046_11691" body="A subclass of javax.swing.InputMap that implements UIResource.&#xA;UI classes which provide a InputMap should use this class.&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546768_274450_10227"/>
              <generalization xmi:id="_10_5_622020d_1132928323762_220890_17667" isSubstitutable="true" general="_9_5_f720368_1110473546784_409896_10697"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323762_343514_17666" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473546768_274450_10227" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_160555_10807" name="LegacyGlueFocusTraversalPolicy" visibility="package" clientDependency="_10_5_622020d_1132928324152_177066_18619" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_385906_12584" body="A FocusTraversalPolicy which provides support for legacy applications which&#xA;handle focus traversal via JComponent.setNextFocusableComponent or by&#xA;installing a custom DefaultFocusManager. If a specific traversal has not&#xA;been hard coded, then that traversal is provided either by the custom&#xA;DefaultFocusManager, or by a wrapped FocusTraversalPolicy instance.&#xA;&#xA;@version 1.6, 12/19/03&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546799_160555_10807"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_952289_18620" isSubstitutable="true" general="_9_5_f720368_1110473546581_371419_7007"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_177066_18619" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_160555_10807" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_873578_10609" name="AbstractAction" clientDependency="_10_5_622020d_1132928323902_381086_18188 _10_5_622020d_1132928323902_169456_18186 _10_5_622020d_1132928323902_86124_18187" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_152717_12276" body="This class provides default implementations for the JFC &lt;code>Action&lt;/code>&#xA;interface. Standard behaviors like the get and set methods for&#xA;&lt;code>Action&lt;/code> object properties (icon, text, and enabled) are defined&#xA;here. The developer need only subclass this abstract class and&#xA;define the &lt;code>actionPerformed&lt;/code> method.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.51 12/19/03&#xA;@author Georges Saab&#xA;@see Action&#xA;" annotatedElement="_9_5_f720368_1110473546784_873578_10609"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_169456_18186" name="" supplier="_9_5_f720368_1110473546784_436758_10621" client="_9_5_f720368_1110473546784_873578_10609" contract="_9_5_f720368_1110473546784_436758_10621"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_86124_18187" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546784_873578_10609" contract="_9_5_f720368_1110473546612_888397_7587"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323902_381086_18188" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_873578_10609" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_112798_10779" name="JTextArea">
            <ownedComment xmi:id="_10_5_622020d_1132928318133_927441_12541" body="A &lt;code>JTextArea&lt;/code> is a multi-line area that displays plain text.&#xA;It is intended to be a lightweight component that provides source&#xA;compatibility with the &lt;code>java.awt.TextArea&lt;/code> class where it can&#xA;reasonably do so.&#xA;You can find information and examples of using all the text components in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/text.html&quot;>Using Text Components&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;This component has capabilities not found in the&#xA;&lt;code>java.awt.TextArea&lt;/code> class.  The superclass should be&#xA;consulted for additional capabilities.&#xA;Alternative multi-line text classes with&#xA;more capabilities are &lt;code>JTextPane&lt;/code> and &lt;code>JEditorPane&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>java.awt.TextArea&lt;/code> internally handles scrolling.&#xA;&lt;code>JTextArea&lt;/code> is different in that it doesn't manage scrolling,&#xA;but implements the swing &lt;code>Scrollable&lt;/code> interface.  This allows it&#xA;to be placed inside a &lt;code>JScrollPane&lt;/code> if scrolling&#xA;behavior is desired, and used directly if scrolling is not desired.&#xA;&lt;p>&#xA;The &lt;code>java.awt.TextArea&lt;/code> has the ability to do line wrapping.&#xA;This was controlled by the horizontal scrolling policy.  Since&#xA;scrolling is not done by &lt;code>JTextArea&lt;/code> directly, backward&#xA;compatibility must be provided another way.  &lt;code>JTextArea&lt;/code> has&#xA;a bound property for line wrapping that controls whether or&#xA;not it will wrap lines.  By default, the line wrapping property&#xA;is set to false (not wrapped).&#xA;&lt;p>&#xA;&lt;code>java.awt.TextArea&lt;/code> has two properties &lt;code>rows&lt;/code>&#xA;and &lt;code>columns&lt;/code> that are used to determine the preferred size.&#xA;&lt;code>JTextArea&lt;/code> uses these properties to indicate the&#xA;preferred size of the viewport when placed inside a &lt;code>JScrollPane&lt;/code>&#xA;to match the functionality provided by &lt;code>java.awt.TextArea&lt;/code>.&#xA;&lt;code>JTextArea&lt;/code> has a preferred size of what is needed to&#xA;display all of the text, so that it functions properly inside of&#xA;a &lt;code>JScrollPane&lt;/code>.  If the value for &lt;code>rows&lt;/code>&#xA;or &lt;code>columns&lt;/code> is equal to zero,&#xA;the preferred size along that axis is used for&#xA;the viewport preferred size along the same axis.&#xA;&lt;p>&#xA;The &lt;code>java.awt.TextArea&lt;/code> could be monitored for changes by adding&#xA;a &lt;code>TextListener&lt;/code> for &lt;code>TextEvent&lt;/code>s.&#xA;In the &lt;code>JTextComponent&lt;/code> based&#xA;components, changes are broadcasted from the model via a&#xA;&lt;code>DocumentEvent&lt;/code> to &lt;code>DocumentListeners&lt;/code>.&#xA;The &lt;code>DocumentEvent&lt;/code> gives&#xA;the location of the change and the kind of change if desired.&#xA;The code fragment might look something like:&#xA;&lt;pre>&#xA;DocumentListener myListener = ??;&#xA;JTextArea myArea = ??;&#xA;myArea.getDocument().addDocumentListener(myListener);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Newlines&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;For a discussion on how newlines are handled, see&#xA;&lt;a href=&quot;text/DefaultEditorKit.html&quot;>DefaultEditorKit&lt;/a>.&#xA;&lt;/dl>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A multi-line area that displays plain text.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.92 12/19/03&#xA;@see JTextPane&#xA;@see JEditorPane&#xA;" annotatedElement="_9_5_f720368_1110473546799_112798_10779"/>
            <generalization xmi:id="_10_5_622020d_1132928324142_772972_18560" isSubstitutable="true" general="_9_5_f720368_1110473546784_616890_10483"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_588344_24343" name="AccessibleJTextArea" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318123_307951_12539" body="This class implements accessibility support for the&#xA;&lt;code>JTextArea&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to text area user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_588344_24343"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_704928_18561" isSubstitutable="true" general="_9_5_f720368_1110473548362_214589_23541"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548284_171973_22785" name="table">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_446711_10289" name="JTableHeader" clientDependency="_10_5_622020d_1132928323772_575803_17707 _10_5_622020d_1132928323772_959418_17708">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_309700_11755" body="This is the object which manages the header of the &lt;code>JTable&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.66 12/19/03&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;@see javax.swing.JTable&#xA;" annotatedElement="_9_5_f720368_1110473546768_446711_10289"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_727600_17709" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_575803_17707" name="" supplier="_9_5_f720368_1110473546753_977241_9891" client="_9_5_f720368_1110473546768_446711_10289" contract="_9_5_f720368_1110473546753_977241_9891"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_959418_17708" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546768_446711_10289" contract="_9_5_f720368_1110473546706_827345_8951"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_729942_22794" name="UIResourceTableCellRenderer" visibility="private" clientDependency="_10_5_622020d_1132928323772_624677_17710">
                <generalization xmi:id="_10_5_622020d_1132928323772_417197_17711" isSubstitutable="true" general="_9_5_f720368_1110473546768_857784_10283"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323772_624677_17710" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548284_729942_22794" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_56980_22796" name="AccessibleJTableHeader" visibility="protected">
                <ownedComment xmi:id="_10_5_622020d_1132928317412_550369_11753" body="This class implements accessibility support for the&#xA;&lt;code>JTableHeader&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to table header user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548284_56980_22796"/>
                <generalization xmi:id="_10_5_622020d_1132928323782_703593_17712" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_143034_22798" name="AccessibleJTableHeaderEntry" visibility="protected" clientDependency="_10_5_622020d_1132928323782_963135_17713 _10_5_622020d_1132928323782_755803_17714">
                  <ownedComment xmi:id="_10_5_622020d_1132928317412_944992_11752" body="This class provides an implementation of the Java Accessibility&#xA;API appropropriate for JTableHeader entries.&#xA;" annotatedElement="_9_5_f720368_1110473548284_143034_22798"/>
                  <generalization xmi:id="_10_5_622020d_1132928323782_719277_17715" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_963135_17713" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473548284_143034_22798" contract="_9_5_f720368_1110473546706_827345_8951"/>
                  <interfaceRealization xmi:id="_10_5_622020d_1132928323782_755803_17714" name="" supplier="_9_5_f720368_1110473546706_824207_8957" client="_9_5_f720368_1110473548284_143034_22798" contract="_9_5_f720368_1110473546706_824207_8957"/>
                </nestedClassifier>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_857784_10283" name="DefaultTableCellRenderer" clientDependency="_10_5_622020d_1132928323772_407799_17696 _10_5_622020d_1132928323772_85899_17697">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_633178_11747" body="The standard class for rendering (displaying) individual cells&#xA;in a &lt;code>JTable&lt;/code>.&#xA;&lt;p>&#xA;&#xA;&lt;strong>&lt;a name=&quot;override&quot;>Implementation Note:&lt;/a>&lt;/strong>&#xA;This class inherits from &lt;code>JLabel&lt;/code>, a standard component class.&#xA;However &lt;code>JTable&lt;/code> employs a unique mechanism for rendering&#xA;its cells and therefore requires some slightly modified behavior&#xA;from its cell renderer.&#xA;The table class defines a single cell renderer and uses it as a&#xA;as a rubber-stamp for rendering all cells in the table;&#xA;it renders the first cell,&#xA;changes the contents of that cell renderer,&#xA;shifts the origin to the new location, re-draws it, and so on.&#xA;The standard &lt;code>JLabel&lt;/code> component was not&#xA;designed to be used this way and we want to avoid&#xA;triggering a &lt;code>revalidate&lt;/code> each time the&#xA;cell is drawn. This would greatly decrease performance because the&#xA;&lt;code>revalidate&lt;/code> message would be&#xA;passed up the hierarchy of the container to determine whether any other&#xA;components would be affected.&#xA;As the renderer is only parented for the lifetime of a painting operation&#xA;we similarly want to avoid the overhead associated with walking the&#xA;hierarchy for painting operations.&#xA;So this class&#xA;overrides the &lt;code>validate&lt;/code>, &lt;code>invalidate&lt;/code>,&#xA;&lt;code>revalidate&lt;/code>, &lt;code>repaint&lt;/code>, and&#xA;&lt;code>firePropertyChange&lt;/code> methods to be&#xA;no-ops and override the &lt;code>isOpaque&lt;/code> method solely to improve&#xA;performance.  If you write your own renderer,&#xA;please keep this performance consideration in mind.&#xA;&lt;p>&#xA;&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.38 03/05/04&#xA;@author Philip Milne&#xA;@see JTable&#xA;" annotatedElement="_9_5_f720368_1110473546768_857784_10283"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_422406_17698" isSubstitutable="true" general="_9_5_f720368_1110473546799_684315_10735"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_407799_17696" name="" supplier="_9_5_f720368_1110473546768_3233_10293" client="_9_5_f720368_1110473546768_857784_10283" contract="_9_5_f720368_1110473546768_3233_10293"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_85899_17697" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_857784_10283" contract="_9_5_f720368_1110473546612_364919_7481"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548284_673354_22788" name="UIResource" clientDependency="_10_5_622020d_1132928323772_713591_17699">
                <ownedComment xmi:id="_10_5_622020d_1132928317402_644261_11745" body="A subclass of &lt;code>DefaultTableCellRenderer&lt;/code> that&#xA;implements &lt;code>UIResource&lt;/code>.&#xA;&lt;code>DefaultTableCellRenderer&lt;/code> doesn't implement&#xA;&lt;code>UIResource&lt;/code>&#xA;directly so that applications can safely override the&#xA;&lt;code>cellRenderer&lt;/code> property with&#xA;&lt;code>DefaultTableCellRenderer&lt;/code> subclasses.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548284_673354_22788"/>
                <generalization xmi:id="_10_5_622020d_1132928323772_247541_17700" isSubstitutable="true" general="_9_5_f720368_1110473546768_857784_10283"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928323772_713591_17699" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548284_673354_22788" contract="_9_5_f720368_1110473546768_203610_10277"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_843331_10295" name="TableColumn" clientDependency="_10_5_622020d_1132928323782_72853_17717">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_339857_11761" body="A &lt;code>TableColumn&lt;/code> represents all the attributes of a column in a&#xA;&lt;code>JTable&lt;/code>, such as width, resizibility, minimum and maximum width.&#xA;In addition, the &lt;code>TableColumn&lt;/code> provides slots for a renderer and&#xA;an editor that can be used to display and edit the values in this column.&#xA;&lt;p>&#xA;It is also possible to specify renderers and editors on a per type basis&#xA;rather than a per column basis - see the&#xA;&lt;code>setDefaultRenderer&lt;/code> method in the &lt;code>JTable&lt;/code> class.&#xA;This default mechanism is only used when the renderer (or&#xA;editor) in the &lt;code>TableColumn&lt;/code> is &lt;code>null&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>TableColumn&lt;/code> stores the link between the columns in the&#xA;&lt;code>JTable&lt;/code> and the columns in the &lt;code>TableModel&lt;/code>.&#xA;The &lt;code>modelIndex&lt;/code> is the column in the&#xA;&lt;code>TableModel&lt;/code>, which will be queried for the data values for the&#xA;cells in this column. As the column moves around in the view this&#xA;&lt;code>modelIndex&lt;/code> does not change.&#xA;&lt;p>&#xA;&lt;b>Note:&lt;/b> Some implementations may assume that all&#xA;&lt;code>TableColumnModel&lt;/code>s are unique, therefore we would&#xA;recommend that the same &lt;code>TableColumn&lt;/code> instance&#xA;not be added more than once to a &lt;code>TableColumnModel&lt;/code>.&#xA;To show &lt;code>TableColumn&lt;/code>s with the same column of&#xA;data from the model, create a new instance with the same&#xA;&lt;code>modelIndex&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.60 05/18/04&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;@see javax.swing.table.TableColumnModel&#xA;&#xA;@see javax.swing.table.DefaultTableColumnModel&#xA;@see javax.swing.table.JTableHeader#getDefaultRenderer()&#xA;@see JTable#getDefaultRenderer(Class)&#xA;@see JTable#getDefaultEditor(Class)&#xA;@see JTable#getCellRenderer(int, int)&#xA;@see JTable#getCellEditor(int, int)&#xA;" annotatedElement="_9_5_f720368_1110473546768_843331_10295"/>
              <generalization xmi:id="_10_5_622020d_1132928323782_947461_17718" isSubstitutable="true" general="_9_5_f720368_1110473546612_117118_7661"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323782_72853_17717" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_843331_10295" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_363398_10287" name="DefaultTableModel" clientDependency="_10_5_622020d_1132928323772_525005_17705">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_4261_11751" body="This is an implementation of &lt;code>TableModel&lt;/code> that&#xA;uses a &lt;code>Vector&lt;/code> of &lt;code>Vectors&lt;/code> to store the&#xA;cell value objects.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.39 12/19/03&#xA;@author Philip Milne&#xA;&#xA;@see TableModel&#xA;@see #getDataVector&#xA;" annotatedElement="_9_5_f720368_1110473546768_363398_10287"/>
              <generalization xmi:id="_10_5_622020d_1132928323772_982576_17706" isSubstitutable="true" general="_9_5_f720368_1110473546768_908230_10281"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_525005_17705" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_363398_10287" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_601206_10291" name="TableCellEditor" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_278230_11757" body="This interface defines the method any object that would like to be&#xA;an editor of values for components such as &lt;code>JListBox&lt;/code>,&#xA;&lt;code>JComboBox&lt;/code>, &lt;code>JTree&lt;/code>, or &lt;code>JTable&lt;/code>&#xA;needs to implement.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546768_601206_10291"/>
              <generalization xmi:id="_10_5_622020d_1132928323782_786816_17716" isSubstitutable="true" general="_9_5_f720368_1110473546784_515358_10641"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_198337_10297" name="TableColumnModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_633117_11763" body="Defines the requirements for a table column model object suitable for&#xA;use with &lt;code>JTable&lt;/code>.&#xA;&#xA;@version 1.25 05/05/04&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;@see DefaultTableColumnModel&#xA;" annotatedElement="_9_5_f720368_1110473546768_198337_10297"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_219647_10285" name="DefaultTableColumnModel" clientDependency="_10_5_622020d_1132928323772_202862_17703 _10_5_622020d_1132928323772_513417_17704 _10_5_622020d_1132928323772_20034_17701 _10_5_622020d_1132928323772_218685_17702">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_9771_11749" body="The standard column-handler for a &lt;code>JTable&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.48 05/05/04&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;@see JTable&#xA;" annotatedElement="_9_5_f720368_1110473546768_219647_10285"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_20034_17701" name="" supplier="_9_5_f720368_1110473546768_198337_10297" client="_9_5_f720368_1110473546768_219647_10285" contract="_9_5_f720368_1110473546768_198337_10297"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_218685_17702" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473546768_219647_10285" contract="_9_5_f720368_1110473546596_119404_7313"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_202862_17703" name="" supplier="_9_5_f720368_1110473546753_43790_9865" client="_9_5_f720368_1110473546768_219647_10285" contract="_9_5_f720368_1110473546753_43790_9865"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_513417_17704" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_219647_10285" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_236941_10299" name="TableModel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_9166_11765" body="The &lt;code>TableModel&lt;/code> interface specifies the methods the&#xA;&lt;code>JTable&lt;/code> will use to interrogate a tabular data model. &lt;p>&#xA;&#xA;The &lt;code>JTable&lt;/code> can be set up to display any data&#xA;model which implements the&#xA;&lt;code>TableModel&lt;/code> interface with a couple of lines of code:  &lt;p>&#xA;&lt;pre>&#xA;TableModel myData = new MyTableModel();&#xA;JTable table = new JTable(myData);&#xA;&lt;/pre>&lt;p>&#xA;&#xA;For further documentation, see &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data&quot;>Creating a Table Model&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;@version 1.26 05/05/04&#xA;@author Philip Milne&#xA;@see JTable&#xA;" annotatedElement="_9_5_f720368_1110473546768_236941_10299"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546768_3233_10293" name="TableCellRenderer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317412_580151_11759" body="This interface defines the method required by any object that&#xA;would like to be a renderer for cells in a &lt;code>JTable&lt;/code>.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546768_3233_10293"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546768_908230_10281" name="AbstractTableModel" clientDependency="_10_5_622020d_1132928323772_246390_17694 _10_5_622020d_1132928323772_728079_17695" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317402_564219_11744" body="This abstract class provides default implementations for most of&#xA;the methods in the &lt;code>TableModel&lt;/code> interface. It takes care of&#xA;the management of listeners and provides some conveniences for generating&#xA;&lt;code>TableModelEvents&lt;/code> and dispatching them to the listeners.&#xA;To create a concrete &lt;code>TableModel&lt;/code> as a subclass of&#xA;&lt;code>AbstractTableModel&lt;/code> you need only provide implementations&#xA;for the following three methods:&#xA;&#xA;&lt;pre>&#xA;public int getRowCount();&#xA;public int getColumnCount();&#xA;public Object getValueAt(int row, int column);&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.41 05/05/04&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546768_908230_10281"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_246390_17694" name="" supplier="_9_5_f720368_1110473546768_236941_10299" client="_9_5_f720368_1110473546768_908230_10281" contract="_9_5_f720368_1110473546768_236941_10299"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323772_728079_17695" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546768_908230_10281" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_692124_10809" name="ListCellRenderer" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_109913_12586" body="Identifies components that can be used as &quot;rubber stamps&quot; to paint&#xA;the cells in a JList.  For example, to use a JLabel as a&#xA;ListCellRenderer, you would write something like this:&#xA;&lt;pre>&#xA;class MyCellRenderer extends JLabel implements ListCellRenderer {&#xA;public MyCellRenderer() {&#xA;setOpaque(true);&#xA;}&#xA;public Component getListCellRendererComponent(&#xA;JList list,&#xA;Object value,&#xA;int index,&#xA;boolean isSelected,&#xA;boolean cellHasFocus)&#xA;{&#xA;setText(value.toString());&#xA;setBackground(isSelected ? Color.red : Color.white);&#xA;setForeground(isSelected ? Color.white : Color.black);&#xA;return this;&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&#xA;@see JList&#xA;@see DefaultListCellRenderer&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_692124_10809"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_487453_10741" name="JMenu" clientDependency="_10_5_622020d_1132928324102_540001_18399 _10_5_622020d_1132928324102_705234_18400">
            <ownedComment xmi:id="_10_5_622020d_1132928318013_20934_12455" body="An implementation of a menu -- a popup window containing&#xA;&lt;code>JMenuItem&lt;/code>s that&#xA;is displayed when the user selects an item on the &lt;code>JMenuBar&lt;/code>.&#xA;In addition to &lt;code>JMenuItem&lt;/code>s, a &lt;code>JMenu&lt;/code> can&#xA;also contain &lt;code>JSeparator&lt;/code>s.&#xA;&lt;p>&#xA;In essence, a menu is a button with an associated &lt;code>JPopupMenu&lt;/code>.&#xA;When the &quot;button&quot; is pressed, the &lt;code>JPopupMenu&lt;/code> appears. If the&#xA;&quot;button&quot; is on the &lt;code>JMenuBar&lt;/code>, the menu is a top-level window.&#xA;If the &quot;button&quot; is another menu item, then the &lt;code>JPopupMenu&lt;/code> is&#xA;&quot;pull-right&quot; menu.&#xA;&lt;p>&#xA;For information and examples of using menus see&#xA;&lt;a href=&quot;http://java.sun.com/doc/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A popup window containing menu items displayed in a menu bar.&#xA;&#xA;@version 1.172 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;@see JMenuItem&#xA;@see JSeparator&#xA;@see JMenuBar&#xA;@see JPopupMenu&#xA;" annotatedElement="_9_5_f720368_1110473546799_487453_10741"/>
            <generalization xmi:id="_10_5_622020d_1132928324102_858144_18401" isSubstitutable="true" general="_9_5_f720368_1110473546799_458064_10745"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_540001_18399" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_487453_10741" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324102_705234_18400" name="" supplier="_9_5_f720368_1110473546799_252355_10817" client="_9_5_f720368_1110473546799_487453_10741" contract="_9_5_f720368_1110473546799_252355_10817"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_967187_24213" name="ActionChangedListener" visibility="private" clientDependency="_10_5_622020d_1132928324102_103018_18402">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_103018_18402" name="" supplier="_9_5_f720368_1110473546596_119404_7313" client="_9_5_f720368_1110473548440_967187_24213" contract="_9_5_f720368_1110473546596_119404_7313"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_621112_24214" name="MenuChangeListener" visibility="package" clientDependency="_10_5_622020d_1132928324112_987301_18403 _10_5_622020d_1132928324112_440316_18404">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_987301_18403" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548440_621112_24214" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_440316_18404" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_621112_24214" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_930097_24215" name="WinListener" visibility="protected" clientDependency="_10_5_622020d_1132928324112_756071_18405">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_579504_12452" body="A listener class that watches for a popup window closing.&#xA;When the popup is closing, the listener deselects the menu.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_930097_24215"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_832637_18406" isSubstitutable="true" general="_9_5_f720368_1110473546565_558736_6611"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_756071_18405" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548440_930097_24215" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_951145_24217" name="AccessibleJMenu" visibility="protected" clientDependency="_10_5_622020d_1132928324112_519286_18407">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_987664_12453" body="This class implements accessibility support for the&#xA;&lt;code>JMenu&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_951145_24217"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_169715_18408" isSubstitutable="true" general="_9_5_f720368_1110473548440_178605_24225"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_519286_18407" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548440_951145_24217" contract="_9_5_f720368_1110473546706_797948_8983"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_892299_10861" name="SpinnerModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318224_679982_12647" body="A model for a potentially unbounded sequence of object values.  This model&#xA;is similar to &lt;code>ListModel&lt;/code> however there are some important differences:&#xA;&lt;ul>&#xA;&lt;li> The number of sequence elements isn't neccessarily bounded.&#xA;&lt;li> The model doesn't support indexed random access to sequence elements.&#xA;Only three sequence values are accessible at a time: current, next and&#xA;previous.&#xA;&lt;li> The current sequence element, can be set.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;A &lt;code>SpinnerModel&lt;/code> has three properties, only the first is read/write.&#xA;&lt;dl>&#xA;&lt;dt>&lt;code>value&lt;/code>&#xA;&lt;dd>The current element of the sequence.&#xA;&#xA;&lt;dt>&lt;code>nextValue&lt;/code>&#xA;&lt;dd>The following element or null if &lt;code>value&lt;/code> is the&#xA;last element of the sequence.&#xA;&#xA;&lt;dt>&lt;code>previousValue&lt;/code>&#xA;&lt;dd>The preceeding element or null if &lt;code>value&lt;/code> is the&#xA;first element of the sequence.&#xA;&lt;/dl>&#xA;When the the &lt;code>value&lt;/code> property changes,&#xA;&lt;code>ChangeListeners&lt;/code> are notified.  &lt;code>SpinnerModel&lt;/code> may&#xA;choose to notify the &lt;code>ChangeListeners&lt;/code> under other circumstances.&#xA;&#xA;@see JSpinner&#xA;@see AbstractSpinnerModel&#xA;@see SpinnerListModel&#xA;@see SpinnerNumberModel&#xA;@see SpinnerDateModel&#xA;&#xA;@version 1.6 12/19/03&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_892299_10861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_312489_10871" name="SwingGraphics" visibility="package"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_927874_10877" name="Timer" clientDependency="_10_5_622020d_1132928324172_29872_18681">
            <ownedComment xmi:id="_10_5_622020d_1132928318274_114349_12677" body="Fires one or more action events after a specified delay.&#xA;For example, an animation object can use a &lt;code>Timer&lt;/code>&#xA;as the trigger for drawing its frames.&#xA;&#xA;&lt;p>&#xA;&#xA;Setting up a timer&#xA;involves creating a &lt;code>Timer&lt;/code> object,&#xA;registering one or more action listeners on it,&#xA;and starting the timer using&#xA;the &lt;code>start&lt;/code> method.&#xA;For example,&#xA;the following code creates and starts a timer&#xA;that fires an action event once per second&#xA;(as specified by the first argument to the &lt;code>Timer&lt;/code> constructor).&#xA;The second argument to the &lt;code>Timer&lt;/code> constructor&#xA;specifies a listener to receive the timer's action events.&#xA;&#xA;&lt;pre>&#xA;int delay = 1000; //milliseconds&#xA;ActionListener taskPerformer = new ActionListener() {&#xA;public void actionPerformed(ActionEvent evt) {&#xA;&lt;em>//...Perform a task...&lt;/em>&#xA;}&#xA;};&#xA;new Timer(delay, taskPerformer).start();&lt;/pre>&#xA;&#xA;&lt;p>&#xA;Each &lt;code>Timer&lt;/code>&#xA;has one or more action listeners&#xA;and a &lt;em>delay&lt;/em>&#xA;(the time between action events).&#xA;When&#xA;&lt;em>delay&lt;/em> milliseconds have passed, the &lt;code>Timer&lt;/code>&#xA;fires an action event to its listeners.&#xA;By default, this cycle repeats until&#xA;the &lt;code>stop&lt;/code> method is called.&#xA;If you want the timer to fire only once,&#xA;invoke &lt;code>setRepeats(false)&lt;/code> on the timer.&#xA;To make the delay before the first action event&#xA;different from the delay between events,&#xA;use the &lt;code>setInitialDelay&lt;/code> method.&#xA;&#xA;&lt;p>&#xA;Although all &lt;code>Timer&lt;/code>s perform their waiting&#xA;using a single, shared thread&#xA;(created by the first &lt;code>Timer&lt;/code> object that executes),&#xA;the action event handlers for &lt;code>Timer&lt;/code>s&#xA;execute on another thread -- the event-dispatching thread.&#xA;This means that the action handlers for &lt;code>Timer&lt;/code>s&#xA;can safely perform operations on Swing components.&#xA;However, it also means that the handlers must execute quickly&#xA;to keep the GUI responsive.&#xA;&#xA;&lt;p>&#xA;In v 1.3, another &lt;code>Timer&lt;/code> class was added&#xA;to the Java platform: &lt;code>java.util.Timer&lt;/code>.&#xA;Both it and &lt;code>javax.swing.Timer&lt;/code>&#xA;provide the same basic functionality,&#xA;but &lt;code>java.util.Timer&lt;/code>&#xA;is more general and has more features.&#xA;The &lt;code>javax.swing.Timer&lt;/code> has two features&#xA;that can make it a little easier to use with GUIs.&#xA;First, its event handling metaphor is familiar to GUI programmers&#xA;and can make dealing with the event-dispatching thread&#xA;a bit simpler.&#xA;Second, its&#xA;automatic thread sharing means that you don't have to&#xA;take special steps to avoid spawning&#xA;too many threads.&#xA;Instead, your timer uses the same thread&#xA;used to make cursors blink,&#xA;tool tips appear,&#xA;and so on.&#xA;&#xA;&lt;p>&#xA;You can find further documentation&#xA;and several examples of using timers by visiting&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/timer.html&quot;&#xA;target = &quot;_top&quot;>How to Use Timers&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;For more examples and help in choosing between&#xA;this &lt;code>Timer&lt;/code> class and&#xA;&lt;code>java.util.Timer&lt;/code>,&#xA;see&#xA;&lt;a href=&quot;http://java.sun.com/products/jfc/tsc/articles/timer/&quot;&#xA;target=&quot;_top&quot;>Using Timers in Swing Applications&lt;/a>,&#xA;an article in &lt;em>The Swing Connection.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see java.util.Timer &lt;code>java.util.Timer&lt;/code>&#xA;&#xA;&#xA;@version 1.45 05/05/04&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546799_927874_10877"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_29872_18681" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_927874_10877" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_129074_24501" name="DoPostEvent" visibility="package" clientDependency="_10_5_622020d_1132928324172_438985_18682 _10_5_622020d_1132928324172_502601_18683">
              <ownedComment xmi:id="_10_5_622020d_1132928318274_601481_12675" body="DoPostEvent is a runnable class that fires actionEvents to&#xA;the listeners on the EventDispatchThread, via invokeLater.&#xA;@see #post&#xA;" annotatedElement="_9_5_f720368_1110473548487_129074_24501"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_438985_18682" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548487_129074_24501" contract="_9_5_f720368_1110473546612_953158_7669"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_502601_18683" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548487_129074_24501" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_717489_10883" name="TransferHandler" clientDependency="_10_5_622020d_1132928324182_348072_18692">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_859694_12686" body="This class is used to handle the transfer of a &lt;code>Transferable&lt;/code>&#xA;to and from Swing components.  The &lt;code>Transferable&lt;/code> is used to&#xA;represent data that is exchanged via a cut, copy, or paste&#xA;to/from a clipboard.  It is also used in drag-and-drop operations&#xA;to represent a drag from a component, and a drop to a component.&#xA;Swing provides functionality that automatically supports cut, copy,&#xA;and paste keyboard bindings that use the functionality provided by&#xA;an implementation of this class.  Swing also provides functionality&#xA;that automatically supports drag and drop that uses the functionality&#xA;provided by an implementation of this class.  The Swing developer can&#xA;concentrate on specifying the semantics of a transfer primarily by setting&#xA;the &lt;code>transferHandler&lt;/code> property on a Swing component.&#xA;&lt;p>&#xA;This class is implemented to provide a default behavior of transferring&#xA;a component property simply by specifying the name of the property in&#xA;the constructor.  For example, to transfer the foreground color from&#xA;one component to another either via the clipboard or a drag and drop operation&#xA;a &lt;code>TransferHandler&lt;/code> can be constructed with the string &quot;foreground&quot;.  The&#xA;built in support will use the color returned by &lt;code>getForeground&lt;/code> as the source&#xA;of the transfer, and &lt;code>setForeground&lt;/code> for the target of a transfer.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/dnd.html&quot;>&#xA;How to Use Drag and Drop and Data Transfer&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, for more information.&#xA;&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.29 06/02/04&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_717489_10883"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324182_348072_18692" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_717489_10883" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_314675_24510" name="PropertyTransferable" visibility="package" clientDependency="_10_5_622020d_1132928324182_333214_18693">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_333214_18693" name="" supplier="_9_5_f720368_1110473546549_574486_6475" client="_9_5_f720368_1110473548487_314675_24510" contract="_9_5_f720368_1110473546549_574486_6475"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_522698_24512" name="SwingDropTarget" visibility="package" clientDependency="_10_5_622020d_1132928324182_879144_18694">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_648179_12683" body="This is the default drop target for drag and drop operations if&#xA;one isn't provided by the developer.  &lt;code>DropTarget&lt;/code>&#xA;only supports one &lt;code>DropTargetListener&lt;/code> and doesn't&#xA;function properly if it isn't set.&#xA;This class sets the one listener as the linkage of drop handling&#xA;to the &lt;code>TransferHandler&lt;/code>, and adds support for&#xA;additional listeners which some of the &lt;code>ComponentUI&lt;/code>&#xA;implementations install to manipulate a drop insertion location.&#xA;" annotatedElement="_9_5_f720368_1110473548487_522698_24512"/>
              <generalization xmi:id="_10_5_622020d_1132928324182_22163_18695" isSubstitutable="true" general="_9_5_f720368_1110473546565_113103_6513"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_879144_18694" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548487_522698_24512" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_583600_24515" name="DropHandler" visibility="private" clientDependency="_10_5_622020d_1132928324182_932229_18697 _10_5_622020d_1132928324182_254829_18696">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_254829_18696" name="" supplier="_9_5_f720368_1110473546565_62805_6525" client="_9_5_f720368_1110473548487_583600_24515" contract="_9_5_f720368_1110473546565_62805_6525"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_932229_18697" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548487_583600_24515" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_37044_24517" name="DragHandler" visibility="private" clientDependency="_10_5_622020d_1132928324182_870704_18699 _10_5_622020d_1132928324182_458743_18698">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_121372_12684" body="This is the default drag handler for drag and drop operations that&#xA;use the &lt;code>TransferHandler&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548487_37044_24517"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_458743_18698" name="" supplier="_9_5_f720368_1110473546549_432249_6493" client="_9_5_f720368_1110473548487_37044_24517" contract="_9_5_f720368_1110473546549_432249_6493"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_870704_18699" name="" supplier="_9_5_f720368_1110473546565_10050_6509" client="_9_5_f720368_1110473548487_37044_24517" contract="_9_5_f720368_1110473546565_10050_6509"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_206001_24520" name="SwingDragGestureRecognizer" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324182_424570_18700" isSubstitutable="true" general="_9_5_f720368_1110473546549_271466_6495"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_207765_24522" name="TransferAction" visibility="package" clientDependency="_10_5_622020d_1132928324182_126894_18701">
              <generalization xmi:id="_10_5_622020d_1132928324182_451373_18702" isSubstitutable="true" general="_9_5_f720368_1110473546784_873578_10609"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_126894_18701" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548487_207765_24522" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_18542_10805" name="SwingDefaultFocusTraversalPolicy" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928324152_810378_18618" isSubstitutable="true" general="_9_5_f720368_1110473546581_3616_6983"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_277405_10649" name="ComponentInputMap">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_639351_12325" body="A &lt;code>ComponentInputMap&lt;/code> is an &lt;code>InputMap&lt;/code>&#xA;associated with a particular &lt;code>JComponent&lt;/code>.&#xA;The component is automatically notified whenever&#xA;the &lt;code>ComponentInputMap&lt;/code> changes.&#xA;&lt;code>ComponentInputMap&lt;/code>s are used for&#xA;&lt;code>WHEN_IN_FOCUSED_WINDOW&lt;/code> bindings.&#xA;&#xA;@version 1.9 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546784_277405_10649"/>
            <generalization xmi:id="_10_5_622020d_1132928323952_542818_18236" isSubstitutable="true" general="_9_5_f720368_1110473546784_409896_10697"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_775237_10865" name="Spring" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318224_585440_12654" body="An instance of the &lt;code>Spring&lt;/code> class holds three properties that&#xA;characterize its behavior: the &lt;em>minimum&lt;/em>, &lt;em>preferred&lt;/em>, and&#xA;&lt;em>maximum&lt;/em> values. Each of these properties may be involved in&#xA;defining its fourth, &lt;em>value&lt;/em>, property based on a series of rules.&#xA;&lt;p>&#xA;An instance of the &lt;code>Spring&lt;/code> class can be visualized as a&#xA;mechanical spring that provides a corrective force as the spring is compressed&#xA;or stretched away from its preferred value. This force is modelled&#xA;as linear function of the distance from the preferred value, but with&#xA;two different constants -- one for the compressional force and one for the&#xA;tensional one. Those constants are specified by the minimum and maximum&#xA;values of the spring such that a spring at its minimum value produces an&#xA;equal and opposite force to that which is created when it is at its&#xA;maximum value. The difference between the &lt;em>preferred&lt;/em> and&#xA;&lt;em>minimum&lt;/em> values, therefore, represents the ease with which the&#xA;spring can be compressed and the difference between its &lt;em>maximum&lt;/em>&#xA;and &lt;em>preferred&lt;/em> values, indicates the ease with which the&#xA;&lt;code>Spring&lt;/code> can be extended.&#xA;See the {@link #sum} method for details.&#xA;&#xA;&lt;p>&#xA;By defining simple arithmetic operations on &lt;code>Spring&lt;/code>s,&#xA;the behavior of a collection of &lt;code>Spring&lt;/code>s&#xA;can be reduced to that of an ordinary (non-compound) &lt;code>Spring&lt;/code>. We define&#xA;the &quot;+&quot;, &quot;-&quot;, &lt;em>max&lt;/em>, and &lt;em>min&lt;/em> operators on&#xA;&lt;code>Spring&lt;/code>s so that, in each case, the result is a &lt;code>Spring&lt;/code>&#xA;whose characteristics bear a useful mathematical relationship to its constituent&#xA;springs.&#xA;&#xA;&lt;p>&#xA;A &lt;code>Spring&lt;/code> can be treated as a pair of intervals&#xA;with a single common point: the preferred value.&#xA;The following rules define some of the&#xA;arithmetic operators that can be applied to intervals&#xA;(&lt;code>[a, b]&lt;/code> refers to the interval&#xA;from &lt;code>a&lt;/code>&#xA;to &lt;code>b&lt;/code>,&#xA;where &lt;code>a &lt;= b&lt;/code>).&#xA;&lt;p>&#xA;&lt;pre>&#xA;[a1, b1] + [a2, b2] = [a1 + a2, b1 + b2]&#xA;&#xA;-[a, b] = [-b, -a]&#xA;&#xA;max([a1, b1], [a2, b2]) = [max(a1, a2), max(b1, b2)]&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&#xA;If we denote &lt;code>Spring&lt;/code>s as &lt;code>[a, b, c]&lt;/code>,&#xA;where &lt;code>a &lt;= b &lt;= c&lt;/code>, we can define the same&#xA;arithmetic operators on &lt;code>Spring&lt;/code>s:&#xA;&lt;p>&#xA;&lt;pre>&#xA;[a1, b1, c1] + [a2, b2, c2] = [a1 + a2, b1 + b2, c1 + c2]&#xA;&#xA;-[a, b, c] = [-c, -b, -a]&#xA;&#xA;max([a1, b1, c1], [a2, b2, c2]) = [max(a1, a2), max(b1, b2), max(c1, c2)]&#xA;&lt;/pre>&#xA;&lt;p>&#xA;With both intervals and &lt;code>Spring&lt;/code>s we can define &quot;-&quot; and &lt;em>min&lt;/em>&#xA;in terms of negation:&#xA;&lt;p>&#xA;&lt;pre>&#xA;X - Y = X + (-Y)&#xA;&#xA;min(X, Y) = -max(-X, -Y)&#xA;&lt;/pre>&#xA;&lt;p>&#xA;For the static methods in this class that embody the arithmetic&#xA;operators, we do not actually perform the operation in question as&#xA;that would snapshot the values of the properties of the method's arguments&#xA;at the time the static method is called. Instead, the static methods&#xA;create a new &lt;code>Spring&lt;/code> instance containing references to&#xA;the method's arguments so that the characteristics of the new spring track the&#xA;potentially changing characteristics of the springs from which it&#xA;was made. This is a little like the idea of a &lt;em>lazy value&lt;/em>&#xA;in a functional language.&#xA;&lt;p>&#xA;If you are implementing a &lt;code>SpringLayout&lt;/code> you&#xA;can find further information and examples in&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/layout/spring.html&quot;>How to Use SpringLayout&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see SpringLayout&#xA;@see SpringLayout.Constraints&#xA;&#xA;@version 1.9 12/19/03&#xA;@author &#x9;Philip Milne&#xA;@since       1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_775237_10865"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_463660_24454" name="AbstractSpring" visibility="package" isAbstract="true">
              <generalization xmi:id="_10_5_622020d_1132928324172_253638_18660" isSubstitutable="true" general="_9_5_f720368_1110473546799_775237_10865"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_519855_24456" name="StaticSpring" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_380005_18661" isSubstitutable="true" general="_9_5_f720368_1110473548471_463660_24454"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_149641_24458" name="NegativeSpring" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_548545_18662" isSubstitutable="true" general="_9_5_f720368_1110473546799_775237_10865"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_444515_24460" name="CompoundSpring" visibility="package" isAbstract="true">
              <generalization xmi:id="_10_5_622020d_1132928324172_487040_18666" isSubstitutable="true" general="_9_5_f720368_1110473548471_519855_24456"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_645318_24462" name="SumSpring" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_283238_18667" isSubstitutable="true" general="_9_5_f720368_1110473548471_444515_24460"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_499668_24464" name="MaxSpring" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_625882_18668" isSubstitutable="true" general="_9_5_f720368_1110473548471_444515_24460"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318224_389308_12650" name="ScaleSpring" visibility="private">
              <generalization xmi:id="_10_5_622020d_1132928324172_325017_18663" isSubstitutable="true" general="_9_5_f720368_1110473546799_775237_10865"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318224_36345_12651" name="WidthSpring" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324172_714261_18664" isSubstitutable="true" general="_9_5_f720368_1110473548471_463660_24454"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318224_540431_12652" name="HeightSpring" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324172_867910_18665" isSubstitutable="true" general="_9_5_f720368_1110473548471_463660_24454"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_752936_10851" name="SizeSequence">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_424662_12638" body="A &lt;code>SizeSequence&lt;/code> object&#xA;efficiently maintains an ordered list&#xA;of sizes and corresponding positions.&#xA;One situation for which &lt;code>SizeSequence&lt;/code>&#xA;might be appropriate is in a component&#xA;that displays multiple rows of unequal size.&#xA;In this case, a single &lt;code>SizeSequence&lt;/code>&#xA;object could be used to track the heights&#xA;and Y positions of all rows.&#xA;&lt;p>&#xA;Another example would be a multi-column component,&#xA;such as a &lt;code>JTable&lt;/code>,&#xA;in which the column sizes are not all equal.&#xA;The &lt;code>JTable&lt;/code> might use a single&#xA;&lt;code>SizeSequence&lt;/code> object&#xA;to store the widths and X positions of all the columns.&#xA;The &lt;code>JTable&lt;/code> could then use the&#xA;&lt;code>SizeSequence&lt;/code> object&#xA;to find the column corresponding to a certain position.&#xA;The &lt;code>JTable&lt;/code> could update the&#xA;&lt;code>SizeSequence&lt;/code> object&#xA;whenever one or more column sizes changed.&#xA;&#xA;&lt;p>&#xA;The following figure shows the relationship between size and position data&#xA;for a multi-column component.&#xA;&lt;p>&#xA;&lt;center>&#xA;&lt;img src=&quot;doc-files/SizeSequence-1.gif&quot; width=384 height = 100&#xA;alt=&quot;The first item begins at position 0, the second at the position equal&#xA;to the size of the previous item, and so on.&quot;>&#xA;&lt;/center>&#xA;&lt;p>&#xA;In the figure, the first index (0) corresponds to the first column,&#xA;the second index (1) to the second column, and so on.&#xA;The first column's position starts at 0,&#xA;and the column occupies &lt;em>size&lt;sub>0&lt;/sub>&lt;/em> pixels,&#xA;where &lt;em>size&lt;sub>0&lt;/sub>&lt;/em> is the value returned by&#xA;&lt;code>getSize(0)&lt;/code>.&#xA;Thus, the first column ends at &lt;em>size&lt;sub>0&lt;/sub>&lt;/em> - 1.&#xA;The second column then begins at&#xA;the position &lt;em>size&lt;sub>0&lt;/sub>&lt;/em>&#xA;and occupies &lt;em>size&lt;sub>1&lt;/sub>&lt;/em> (&lt;code>getSize(1)&lt;/code>) pixels.&#xA;&lt;p>&#xA;Note that a &lt;code>SizeSequence&lt;/code> object simply represents intervals&#xA;along an axis.&#xA;In our examples, the intervals represent height or width in pixels.&#xA;However, any other unit of measure (for example, time in days)&#xA;could be just as valid.&#xA;&#xA;&lt;p>&#xA;&#xA;&lt;h4>Implementation Notes&lt;/h4>&#xA;&#xA;Normally when storing the size and position of entries,&#xA;one would choose between&#xA;storing the sizes or storing their positions&#xA;instead. The two common operations that are needed during&#xA;rendering are: &lt;code>getIndex(position)&lt;/code>&#xA;and &lt;code>setSize(index, size)&lt;/code>.&#xA;Whichever choice of internal format is made one of these&#xA;operations is costly when the number of entries becomes large.&#xA;If sizes are stored, finding the index of the entry&#xA;that encloses a particular position is linear in the&#xA;number of entries. If positions are stored instead, setting&#xA;the size of an entry at a particular index requires updating&#xA;the positions of the affected entries, which is also a linear&#xA;calculation.&#xA;&lt;p>&#xA;Like the above techniques this class holds an array of N integers&#xA;internally but uses a hybrid encoding, which is halfway&#xA;between the size-based and positional-based approaches.&#xA;The result is a data structure that takes the same space to store&#xA;the information but can perform most operations in Log(N) time&#xA;instead of O(N), where N is the number of entries in the list.&#xA;&lt;p>&#xA;Two operations that remain O(N) in the number of entries are&#xA;the &lt;code>insertEntries&lt;/code>&#xA;and &lt;code>removeEntries&lt;/code> methods, both&#xA;of which are implemented by converting the internal array to&#xA;a set of integer sizes, copying it into the new array, and then&#xA;reforming the hybrid representation in place.&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546799_752936_10851"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_766828_10725" name="JEditorPane">
            <ownedComment xmi:id="_10_5_622020d_1132928317913_938527_12421" body="A text component to edit various kinds of content.&#xA;You can find how-to information and examples of using editor panes in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/text.html&quot;>Using Text Components&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;This component uses implementations of the&#xA;&lt;code>EditorKit&lt;/code> to accomplish its behavior. It effectively&#xA;morphs into the proper kind of text editor for the kind&#xA;of content it is given.  The content type that editor is bound&#xA;to at any given time is determined by the &lt;code>EditorKit&lt;/code> currently&#xA;installed.  If the content is set to a new URL, its type is used&#xA;to determine the &lt;code>EditorKit&lt;/code> that should be used to&#xA;load the content.&#xA;&lt;p>&#xA;By default, the following types of content are known:&#xA;&lt;dl>&#xA;&lt;dt>&lt;b>text/plain&lt;/b>&#xA;&lt;dd>Plain text, which is the default the type given isn't&#xA;recognized.  The kit used in this case is an extension of&#xA;&lt;code>DefaultEditorKit&lt;/code> that produces a wrapped plain text view.&#xA;&lt;dt>&lt;b>text/html&lt;/b>&#xA;&lt;dd>HTML text.  The kit used in this case is the class&#xA;&lt;code>javax.swing.text.html.HTMLEditorKit&lt;/code>&#xA;which provides HTML 3.2 support.&#xA;&lt;dt>&lt;b>text/rtf&lt;/b>&#xA;&lt;dd>RTF text.  The kit used in this case is the class&#xA;&lt;code>javax.swing.text.rtf.RTFEditorKit&lt;/code>&#xA;which provides a limited support of the Rich Text Format.&#xA;&lt;/dl>&#xA;&lt;p>&#xA;There are several ways to load content into this component.&#xA;&lt;ol>&#xA;&lt;li>&#xA;The &lt;a href=&quot;#setText&quot;>setText&lt;/a> method can be used to initialize&#xA;the component from a string.  In this case the current&#xA;&lt;code>EditorKit&lt;/code> will be used, and the content type will be&#xA;expected to be of this type.&#xA;&lt;li>&#xA;The &lt;a href=&quot;#read&quot;>read&lt;/a> method can be used to initialize the&#xA;component from a &lt;code>Reader&lt;/code>.  Note that if the content type is HTML,&#xA;relative references (e.g. for things like images) can't be resolved&#xA;unless the &lt;base> tag is used or the &lt;em>Base&lt;/em> property&#xA;on &lt;code>HTMLDocument&lt;/code> is set.&#xA;In this case the current &lt;code>EditorKit&lt;/code> will be used,&#xA;and the content type will be expected to be of this type.&#xA;&lt;li>&#xA;The &lt;a href=&quot;#setPage&quot;>setPage&lt;/a> method can be used to initialize&#xA;the component from a URL.  In this case, the content type will be&#xA;determined from the URL, and the registered &lt;code>EditorKit&lt;/code>&#xA;for that content type will be set.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;Some kinds of content may provide hyperlink support by generating&#xA;hyperlink events.  The HTML &lt;code>EditorKit&lt;/code> will generate&#xA;hyperlink events if the &lt;code>JEditorPane&lt;/code> is &lt;em>not editable&lt;/em>&#xA;(&lt;code>JEditorPane.setEditable(false);&lt;/code> has been called).&#xA;If HTML frames are embedded in the document, the typical response would be&#xA;to change a portion of the current document.  The following code&#xA;fragment is a possible hyperlink listener implementation, that treats&#xA;HTML frame events specially, and simply displays any other activated&#xA;hyperlinks.&#xA;&lt;code>&lt;pre>&#xA;&amp;nbsp;    class Hyperactive implements HyperlinkListener {&#xA;&amp;nbsp;&#xA;&amp;nbsp;        public void hyperlinkUpdate(HyperlinkEvent e) {&#xA;&amp;nbsp;&#x9;          if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {&#xA;&amp;nbsp;&#x9;&#x9;      JEditorPane pane = (JEditorPane) e.getSource();&#xA;&amp;nbsp;&#x9;&#x9;      if (e instanceof HTMLFrameHyperlinkEvent) {&#xA;&amp;nbsp;&#x9;&#x9;          HTMLFrameHyperlinkEvent  evt = (HTMLFrameHyperlinkEvent)e;&#xA;&amp;nbsp;&#x9;&#x9;          HTMLDocument doc = (HTMLDocument)pane.getDocument();&#xA;&amp;nbsp;&#x9;&#x9;          doc.processHTMLFrameHyperlinkEvent(evt);&#xA;&amp;nbsp;&#x9;&#x9;      } else {&#xA;&amp;nbsp;&#x9;&#x9;          try {&#xA;&amp;nbsp;&#x9;&#x9;&#x9;      pane.setPage(e.getURL());&#xA;&amp;nbsp;&#x9;&#x9;          } catch (Throwable t) {&#xA;&amp;nbsp;&#x9;&#x9;&#x9;      t.printStackTrace();&#xA;&amp;nbsp;&#x9;&#x9;          }&#xA;&amp;nbsp;&#x9;&#x9;      }&#xA;&amp;nbsp;&#x9;          }&#xA;&amp;nbsp;&#x9;      }&#xA;&amp;nbsp;    }&#xA;&lt;/pre>&lt;/code>&#xA;&lt;p>&#xA;For information on customizing how &lt;b>text/html&lt;/b> is rendered please see&#xA;{@link #W3C_LENGTH_UNITS} and {@link #HONOR_DISPLAY_PROPERTIES}&#xA;&lt;p>&#xA;Culturally dependent information in some documents is handled through&#xA;a mechanism called character encoding.  Character encoding is an&#xA;unambiguous mapping of the members of a character set (letters, ideographs,&#xA;digits, symbols, or control functions) to specific numeric code values. It&#xA;represents the way the file is stored. Example character encodings are&#xA;ISO-8859-1, ISO-8859-5, Shift-jis, Euc-jp, and UTF-8. When the file is&#xA;passed to an user agent (&lt;code>JEditorPane&lt;/code>) it is converted to&#xA;the document character set (ISO-10646 aka Unicode).&#xA;&lt;p>&#xA;There are multiple ways to get a character set mapping to happen&#xA;with &lt;code>JEditorPane&lt;/code>.&#xA;&lt;ol>&#xA;&lt;li>&#xA;One way is to specify the character set as a parameter of the MIME&#xA;type.  This will be established by a call to the&#xA;&lt;a href=&quot;#setContentType&quot;>setContentType&lt;/a> method.  If the content&#xA;is loaded by the &lt;a href=&quot;#setPage&quot;>setPage&lt;/a> method the content&#xA;type will have been set according to the specification of the URL.&#xA;It the file is loaded directly, the content type would be expected to&#xA;have been set prior to loading.&#xA;&lt;li>&#xA;Another way the character set can be specified is in the document itself.&#xA;This requires reading the document prior to determining the character set&#xA;that is desired.  To handle this, it is expected that the&#xA;&lt;code>EditorKit&lt;/code>.read operation throw a&#xA;&lt;code>ChangedCharSetException&lt;/code> which will&#xA;be caught.  The read is then restarted with a new Reader that uses&#xA;the character set specified in the &lt;code>ChangedCharSetException&lt;/code>&#xA;(which is an &lt;code>IOException&lt;/code>).&#xA;&lt;/ol>&#xA;&lt;p>&#xA;&lt;dt>&lt;b>&lt;font size=+1>Newlines&lt;/font>&lt;/b>&#xA;&lt;dd>&#xA;For a discussion on how newlines are handled, see&#xA;&lt;a href=&quot;text/DefaultEditorKit.html&quot;>DefaultEditorKit&lt;/a>.&#xA;&lt;/dl>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A text component to edit various types of content.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.125 07/23/04&#xA;" annotatedElement="_9_5_f720368_1110473546799_766828_10725"/>
            <generalization xmi:id="_10_5_622020d_1132928324092_787436_18336" isSubstitutable="true" general="_9_5_f720368_1110473546784_616890_10483"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_924004_24148" name="PageLoader" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317903_71180_12414" body="Thread to load a stream into the text document model.&#xA;" annotatedElement="_9_5_f720368_1110473548424_924004_24148"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_508146_18337" isSubstitutable="true" general="_9_5_f720368_1110473546612_126551_7703"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_933462_24150" name="PageStream" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324092_212327_18338" isSubstitutable="true" general="_9_5_f720368_1110473546596_356876_7407"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_779616_24152" name="AccessibleJEditorPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317903_83037_12415" body="This class implements accessibility support for the&#xA;&lt;code>JEditorPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to editor pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_779616_24152"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_838252_18339" isSubstitutable="true" general="_9_5_f720368_1110473548362_214589_23541"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_143079_24154" name="AccessibleJEditorPaneHTML" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317903_185583_12416" body="This class provides support for &lt;code>AccessibleHypertext&lt;/code>,&#xA;and is used in instances where the &lt;code>EditorKit&lt;/code>&#xA;installed in this &lt;code>JEditorPane&lt;/code> is an instance of&#xA;&lt;code>HTMLEditorKit&lt;/code>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_143079_24154"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_553959_18340" isSubstitutable="true" general="_9_5_f720368_1110473548424_779616_24152"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_58250_24156" name="JEditorPaneAccessibleHypertextSupport" visibility="protected" clientDependency="_10_5_622020d_1132928324092_496707_18341">
              <ownedComment xmi:id="_10_5_622020d_1132928317903_490333_12417" body="What's returned by&#xA;&lt;code>AccessibleJEditorPaneHTML.getAccessibleText&lt;/code>.&#xA;&#xA;Provides support for &lt;code>AccessibleHypertext&lt;/code> in case&#xA;there is an HTML document being displayed in this&#xA;&lt;code>JEditorPane&lt;/code>.&#xA;&#xA;" annotatedElement="_9_5_f720368_1110473548424_58250_24156"/>
              <generalization xmi:id="_10_5_622020d_1132928324092_263986_18342" isSubstitutable="true" general="_9_5_f720368_1110473548424_779616_24152"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_496707_18341" name="" supplier="_9_5_f720368_1110473546706_688082_8969" client="_9_5_f720368_1110473548424_58250_24156" contract="_9_5_f720368_1110473546706_688082_8969"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_312881_24158" name="HTMLLink">
                <generalization xmi:id="_10_5_622020d_1132928324092_901093_18343" isSubstitutable="true" general="_9_5_f720368_1110473546706_919532_8967"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_489645_24159" name="LinkVector" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928324092_485413_18344" isSubstitutable="true" general="_9_5_f720368_1110473546706_971153_8947"/>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_487126_24160" name="PlainEditorKit" visibility="package" clientDependency="_10_5_622020d_1132928324092_665989_18345">
              <generalization xmi:id="_10_5_622020d_1132928324092_890902_18346" isSubstitutable="true" general="_9_5_f720368_1110473546784_732622_10441"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_665989_18345" name="" supplier="_9_5_f720368_1110473546784_659253_10549" client="_9_5_f720368_1110473548424_487126_24160" contract="_9_5_f720368_1110473546784_659253_10549"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_731070_24162" name="PlainParagraph" visibility="package">
                <ownedComment xmi:id="_10_5_622020d_1132928317903_237792_12419" body="Paragraph for representing plain-text lines that support&#xA;bidirectional text.&#xA;" annotatedElement="_9_5_f720368_1110473548424_731070_24162"/>
                <generalization xmi:id="_10_5_622020d_1132928324092_907857_18347" isSubstitutable="true" general="_9_5_f720368_1110473546784_837851_10501"/>
                <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_227464_24165" name="LogicalView" visibility="package">
                  <ownedComment xmi:id="_10_5_622020d_1132928317903_754668_12418" body="This class can be used to represent a logical view for&#xA;a flow.  It keeps the children updated to reflect the state&#xA;of the model, gives the logical child views access to the&#xA;view hierarchy, and calculates a preferred span.  It doesn't&#xA;do any rendering, layout, or model/view translation.&#xA;" annotatedElement="_9_5_f720368_1110473548424_227464_24165"/>
                  <generalization xmi:id="_10_5_622020d_1132928324092_151253_18348" isSubstitutable="true" general="_9_5_f720368_1110473546784_235862_10435"/>
                </nestedClassifier>
              </nestedClassifier>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_421049_24168" name="HeaderParser" visibility="package"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_631278_10887" name="UIManager" clientDependency="_10_5_622020d_1132928324182_681194_18706">
            <ownedComment xmi:id="_10_5_622020d_1132928318284_790915_12696" body="This class keeps track of the current look and feel and its&#xA;defaults.&#xA;The default look and feel class is chosen in the following manner:&#xA;&lt;ol>&#xA;&lt;li>If the system property &lt;code>swing.defaultlaf&lt;/code> is&#xA;non-null, use it as the default look and feel class name.&#xA;&lt;li>If the {@link java.util.Properties} file &lt;code>swing.properties&lt;/code>&#xA;exists and contains the key &lt;code>swing.defaultlaf&lt;/code>,&#xA;use its value as default look and feel class name. The location of&#xA;&lt;code>swing.properties&lt;/code> may vary depending upon the&#xA;implementation of the Java platform. In Sun's implementation&#xA;this will reside in&#xA;&lt;code>&amp;java.home>/lib/swing.properties&lt;/code>. Refer to&#xA;the release notes of the implementation you are using for&#xA;further details.&#xA;&lt;li>Otherwise use the Java look and feel.&#xA;&lt;/ol>&#xA;&lt;p>&#xA;We manage three levels of defaults: user defaults, look&#xA;and feel defaults, system defaults.  A call to &lt;code>UIManager.get&lt;/code>&#xA;checks all three levels in order and returns the first non-&lt;code>null&lt;/code>&#xA;value for a key, if any.  A call to &lt;code>UIManager.put&lt;/code> just&#xA;affects the user defaults.  Note that a call to&#xA;&lt;code>setLookAndFeel&lt;/code> doesn't affect the user defaults, it just&#xA;replaces the middle defaults &quot;level&quot;.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see javax.swing.plaf.metal&#xA;&#xA;@version 1.115 12/19/03&#xA;@author Thomas Ball&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_631278_10887"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324182_681194_18706" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_631278_10887" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_339867_24534" name="LAFState" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_637773_12693" body="This class defines the state managed by the &lt;code>UIManager&lt;/code>.  For&#xA;Swing applications the fields in this class could just as well&#xA;be static members of &lt;code>UIManager&lt;/code> however we give them&#xA;&quot;AppContext&quot;&#xA;scope instead so that applets (and potentially multiple lightweight&#xA;applications running in a single VM) have their own state. For example,&#xA;an applet can alter its look and feel, see &lt;code>setLookAndFeel&lt;/code>.&#xA;Doing so has no affect on other applets (or the browser).&#xA;" annotatedElement="_9_5_f720368_1110473548487_339867_24534"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548487_325263_24537" name="LookAndFeelInfo">
              <ownedComment xmi:id="_10_5_622020d_1132928318284_225419_12694" body="Provides a little information about an installed&#xA;&lt;code>LookAndFeel&lt;/code> for the sake of configuring a menu or&#xA;for initial application set up.&#xA;&#xA;@see UIManager#getInstalledLookAndFeels&#xA;@see LookAndFeel&#xA;" annotatedElement="_9_5_f720368_1110473548487_325263_24537"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_422382_10849" name="SizeRequirements" clientDependency="_10_5_622020d_1132928324172_182352_18651">
            <ownedComment xmi:id="_10_5_622020d_1132928318214_773882_12636" body="For the convenience of layout managers,&#xA;calculates information about the size and position of components.&#xA;All size and position calculation methods are class methods&#xA;that take arrays of SizeRequirements as arguments.&#xA;The SizeRequirements class supports two types of layout:&#xA;&#xA;&lt;blockquote>&#xA;&lt;dl>&#xA;&lt;dt> tiled&#xA;&lt;dd> The components are placed end-to-end,&#xA;starting either at coordinate 0 (the leftmost or topmost position)&#xA;or at the coordinate representing the end of the allocated span&#xA;(the rightmost or bottommost position).&#xA;&#xA;&lt;dt> aligned&#xA;&lt;dd> The components are aligned as specified&#xA;by each component's X or Y alignment value.&#xA;&lt;/dl>&#xA;&lt;/blockquote>&#xA;&#xA;&lt;p>&#xA;&#xA;Each SizeRequirements object contains information&#xA;about either the width (and X alignment)&#xA;or height (and Y alignment)&#xA;of a single component or a group of components:&#xA;&#xA;&lt;blockquote>&#xA;&lt;dl>&#xA;&lt;dt> &lt;code>minimum&lt;/code>&#xA;&lt;dd> The smallest reasonable width/height of the component&#xA;or component group, in pixels.&#xA;&#xA;&lt;dt> &lt;code>preferred&lt;/code>&#xA;&lt;dd> The natural width/height of the component&#xA;or component group, in pixels.&#xA;&#xA;&lt;dt> &lt;code>maximum&lt;/code>&#xA;&lt;dd> The largest reasonable width/height of the component&#xA;or component group, in pixels.&#xA;&#xA;&lt;dt> &lt;code>alignment&lt;/code>&#xA;&lt;dd> The X/Y alignment of the component&#xA;or component group.&#xA;&lt;/dl>&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see Component#getMinimumSize&#xA;@see Component#getPreferredSize&#xA;@see Component#getMaximumSize&#xA;@see Component#getAlignmentX&#xA;@see Component#getAlignmentY&#xA;&#xA;@version 1.32 12/19/03&#xA;@author Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546799_422382_10849"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_182352_18651" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_422382_10849" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_576188_10693" name="Icon" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_491405_12368" body="A small fixed size picture, typically used to decorate components.&#xA;&#xA;@see ImageIcon&#xA;" annotatedElement="_9_5_f720368_1110473546784_576188_10693"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_135285_10793" name="JViewport" clientDependency="_10_5_622020d_1132928324152_296453_18604">
            <ownedComment xmi:id="_10_5_622020d_1132928318183_167468_12569" body="The &quot;viewport&quot; or &quot;porthole&quot; through which you see the underlying&#xA;information. When you scroll, what moves is the viewport. It is like&#xA;peering through a camera's viewfinder. Moving the viewfinder upwards&#xA;brings new things into view at the top of the picture and loses&#xA;things that were at the bottom.&#xA;&lt;p>&#xA;By default, &lt;code>JViewport&lt;/code> is opaque. To change this, use the&#xA;&lt;code>setOpaque&lt;/code> method.&#xA;&lt;p>&#xA;&lt;b>NOTE:&lt;/b>We have implemented a faster scrolling algorithm that&#xA;does not require a buffer to draw in. The algorithm works as follows:&#xA;&lt;ol>&lt;li>The view and parent view and checked to see if they are&#xA;&lt;code>JComponents&lt;/code>,&#xA;if they aren't, stop and repaint the whole viewport.&#xA;&lt;li>If the viewport is obscured by an ancestor, stop and repaint the whole&#xA;viewport.&#xA;&lt;li>Compute the region that will become visible, if it is as big as&#xA;the viewport, stop and repaint the whole view region.&#xA;&lt;li>Obtain the ancestor &lt;code>Window&lt;/code>'s graphics and&#xA;do a &lt;code>copyArea&lt;/code> on the scrolled region.&#xA;&lt;li>Message the view to repaint the newly visible region.&#xA;&lt;li>The next time paint is invoked on the viewport, if the clip region&#xA;is smaller than the viewport size a timer is kicked off to repaint the&#xA;whole region.&#xA;&lt;/ol>&#xA;In general this approach is much faster. Compared to the backing store&#xA;approach this avoids the overhead of maintaining an offscreen buffer and&#xA;having to do two &lt;code>copyArea&lt;/code>s.&#xA;Compared to the non backing store case this&#xA;approach will greatly reduce the painted region.&#xA;&lt;p>&#xA;This approach can cause slower times than the backing store approach&#xA;when the viewport is obscured by another window, or partially offscreen.&#xA;When another window&#xA;obscures the viewport the copyArea will copy garbage and a&#xA;paint event will be generated by the system to inform us we need to&#xA;paint the newly exposed region. The only way to handle this is to&#xA;repaint the whole viewport, which can cause slower performance than the&#xA;backing store case. In most applications very rarely will the user be&#xA;scrolling while the viewport is obscured by another window or offscreen,&#xA;so this optimization is usually worth the performance hit when obscured.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.114 05/18/04&#xA;@author Hans Muller&#xA;@author Philip Milne&#xA;@see JScrollPane&#xA;" annotatedElement="_9_5_f720368_1110473546799_135285_10793"/>
            <generalization xmi:id="_10_5_622020d_1132928324152_118846_18605" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_296453_18604" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_135285_10793" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_163980_24384" name="ViewListener" visibility="protected" clientDependency="_10_5_622020d_1132928324152_880380_18606">
              <ownedComment xmi:id="_10_5_622020d_1132928318183_118667_12566" body="A listener for the view.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548471_163980_24384"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_220734_18607" isSubstitutable="true" general="_9_5_f720368_1110473546565_259160_6545"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324152_880380_18606" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548471_163980_24384" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_53783_24386" name="AccessibleJViewport" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318183_377851_12567" body="This class implements accessibility support for the&#xA;&lt;code>JViewport&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to viewport user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548471_53783_24386"/>
              <generalization xmi:id="_10_5_622020d_1132928324152_446261_18608" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_984499_10845" name="ScrollPaneLayout" clientDependency="_10_5_622020d_1132928324172_626120_18646 _10_5_622020d_1132928324172_452868_18647 _10_5_622020d_1132928324172_467616_18648">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_513226_12632" body="The layout manager used by &lt;code>JScrollPane&lt;/code>.&#xA;&lt;code>JScrollPaneLayout&lt;/code> is&#xA;responsible for nine components: a viewport, two scrollbars,&#xA;a row header, a column header, and four &quot;corner&quot; components.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JScrollPane&#xA;@see JViewport&#xA;&#xA;@version 1.60 05/18/04&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546799_984499_10845"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_626120_18646" name="" supplier="_9_5_f720368_1110473546581_587570_7065" client="_9_5_f720368_1110473546799_984499_10845" contract="_9_5_f720368_1110473546581_587570_7065"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_452868_18647" name="" supplier="_9_5_f720368_1110473546799_950352_10843" client="_9_5_f720368_1110473546799_984499_10845" contract="_9_5_f720368_1110473546799_950352_10843"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_467616_18648" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_984499_10845" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_939684_24442" name="UIResource" clientDependency="_10_5_622020d_1132928324172_564441_18649">
              <ownedComment xmi:id="_10_5_622020d_1132928318204_97064_12630" body="The UI resource version of &lt;code>ScrollPaneLayout&lt;/code>.&#xA;" annotatedElement="_9_5_f720368_1110473548471_939684_24442"/>
              <generalization xmi:id="_10_5_622020d_1132928324172_106163_18650" isSubstitutable="true" general="_9_5_f720368_1110473546799_984499_10845"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324172_564441_18649" name="" supplier="_9_5_f720368_1110473546768_203610_10277" client="_9_5_f720368_1110473548471_939684_24442" contract="_9_5_f720368_1110473546768_203610_10277"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_142565_10667" name="DefaultDesktopManager" clientDependency="_10_5_622020d_1132928323972_682301_18253 _10_5_622020d_1132928323972_626033_18254">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_661688_12344" body="This is an implementation of the &lt;code>DesktopManager&lt;/code>.&#xA;It currently implements the basic behaviors for managing&#xA;&lt;code>JInternalFrame&lt;/code>s in an arbitrary parent.&#xA;&lt;code>JInternalFrame&lt;/code>s that are not children of a&#xA;&lt;code>JDesktop&lt;/code> will use this component&#xA;to handle their desktop-like actions.&#xA;&lt;p>This class provides a policy for the various JInternalFrame methods,&#xA;it is not meant to be called directly rather the various JInternalFrame&#xA;methods will call into the DesktopManager.&lt;/p>&#xA;@see JDesktopPane&#xA;@see JInternalFrame&#xA;@version 1.52 12/19/03&#xA;@author David Kloba&#xA;@author Steve Wilson&#xA;" annotatedElement="_9_5_f720368_1110473546784_142565_10667"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_682301_18253" name="" supplier="_9_5_f720368_1110473546784_407743_10685" client="_9_5_f720368_1110473546784_142565_10667" contract="_9_5_f720368_1110473546784_407743_10685"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_626033_18254" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_142565_10667" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_896247_10767" name="JSeparator" clientDependency="_10_5_622020d_1132928324122_614732_18474 _10_5_622020d_1132928324122_314395_18475">
            <ownedComment xmi:id="_10_5_622020d_1132928318113_83102_12501" body="&lt;code>JSeparator&lt;/code> provides a general purpose component for&#xA;implementing divider lines - most commonly used as a divider&#xA;between menu items that breaks them up into logical groupings.&#xA;Instead of using &lt;code>JSeparator&lt;/code> directly,&#xA;you can use the &lt;code>JMenu&lt;/code> or &lt;code>JPopupMenu&lt;/code>&#xA;&lt;code>addSeparator&lt;/code> method to create and add a separator.&#xA;&lt;code>JSeparator&lt;/code>s may also be used elsewhere in a GUI&#xA;wherever a visual divider is useful.&#xA;&#xA;&lt;p>&#xA;&#xA;For more information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A divider between menu items.&#xA;&#xA;@version 1.50 12/19/03&#xA;@author Georges Saab&#xA;@author Jeff Shapiro&#xA;" annotatedElement="_9_5_f720368_1110473546799_896247_10767"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_53993_18476" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_614732_18474" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_896247_10767" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_314395_18475" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_896247_10767" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_383384_24271" name="AccessibleJSeparator" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318103_782603_12499" body="This class implements accessibility support for the&#xA;&lt;code>JSeparator&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to separator user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_383384_24271"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_860915_18477" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_586216_10707" name="JCheckBox" clientDependency="_10_5_622020d_1132928324062_723889_18287">
            <ownedComment xmi:id="_10_5_622020d_1132928317883_397020_12386" body="An implementation of a check box -- an item that can be selected or&#xA;deselected, and which displays its state to the user.&#xA;By convention, any number of check boxes in a group can be selected.&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html&quot;>How to Use Buttons, Check Boxes, and Radio Buttons&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for examples and information on using check boxes.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JRadioButton&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which can be selected or deselected.&#xA;&#xA;@version 1.73 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546784_586216_10707"/>
            <generalization xmi:id="_10_5_622020d_1132928324062_399160_18288" isSubstitutable="true" general="_9_5_f720368_1110473546799_602619_10785"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324062_723889_18287" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_586216_10707" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_337621_24106" name="AccessibleJCheckBox" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317863_836051_12384" body="This class implements accessibility support for the&#xA;&lt;code>JCheckBox&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to check box user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548424_337621_24106"/>
              <generalization xmi:id="_10_5_622020d_1132928324062_948883_18289" isSubstitutable="true" general="_9_5_f720368_1110473548456_973285_24356"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_497124_10813" name="ListSelectionModel" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_953401_12590" body="This interface represents the current state of the&#xA;selection for any of the components that display a&#xA;list of values with stable indices.  The selection is&#xA;modeled as a set of intervals, each interval represents&#xA;a contiguous range of selected list elements.&#xA;The methods for modifying the set of selected intervals&#xA;all take a pair of indices, index0 and index1, that represent&#xA;a closed interval, i.e. the interval includes both index0 and&#xA;index1.&#xA;&#xA;@version 1.21 12/19/03&#xA;@author Hans Muller&#xA;@author Philip Milne&#xA;@see DefaultListSelectionModel&#xA;" annotatedElement="_9_5_f720368_1110473546799_497124_10813"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_436758_10621" name="Action" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317823_895557_12291" body="The &lt;code>Action&lt;/code> interface provides a useful extension to the&#xA;&lt;code>ActionListener&lt;/code>&#xA;interface in cases where the same functionality may be accessed by&#xA;several controls.&#xA;&lt;p>&#xA;In addition to the &lt;code>actionPerformed&lt;/code> method defined by the&#xA;&lt;code>ActionListener&lt;/code> interface, this interface allows the&#xA;application to define, in a single place:&#xA;&lt;ul>&#xA;&lt;li>One or more text strings that describe the function. These strings&#xA;can be used, for example, to display the flyover text for a button&#xA;or to set the text in a menu item.&#xA;&lt;li>One or more icons that depict the function. These icons can be used&#xA;for the images in a menu control, or for composite entries in a more&#xA;sophisticated user interface.&#xA;&lt;li>The enabled/disabled state of the functionality. Instead of having&#xA;to separately disable the menu item and the toolbar button, the&#xA;application can disable the function that implements this interface.&#xA;All components which are registered as listeners for the state change&#xA;then know to disable event generation for that item and to modify the&#xA;display accordingly.&#xA;&lt;/ul>&#xA;Certain containers, including menus and tool bars, know how to add an&#xA;&lt;code>Action&lt;/code> object. When an &lt;code>Action&lt;/code> object is added&#xA;to such a container, the container:&#xA;&lt;ol type=&quot;a&quot;>&#xA;&lt;li>Creates a component that is appropriate for that container&#xA;(a tool bar creates a button component, for example).&#xA;&lt;li>Gets the appropriate property(s) from the &lt;code>Action&lt;/code> object to&#xA;customize the component (for example, the icon image and flyover text).&#xA;&lt;li>Checks the initial state of the &lt;code>Action&lt;/code> object to determine&#xA;if it is enabled or disabled, and renders the component in the&#xA;appropriate fashion.&#xA;&lt;li>Registers a listener with the &lt;code>Action&lt;/code> object so that is&#xA;notified of state changes. When the &lt;code>Action&lt;/code> object changes&#xA;from enabled to disabled,&#xA;or back, the container makes the appropriate revisions to the&#xA;event-generation mechanisms and renders the component accordingly.&#xA;&lt;/ol>&#xA;For example, both a menu item and a toolbar button could access a&#xA;&lt;code>Cut&lt;/code> action object. The text associated with the object is&#xA;specified as &quot;Cut&quot;, and an image depicting a pair of scissors is specified&#xA;as its icon. The &lt;code>Cut&lt;/code> action-object can then be added to a&#xA;menu and to a tool bar. Each container does the appropriate things with the&#xA;object, and invokes its &lt;code>actionPerformed&lt;/code> method when the&#xA;component associated with it is activated. The application can then disable&#xA;or enable the application object without worrying about what user-interface&#xA;components are connected to it.&#xA;&lt;p>&#xA;This interface can be added to an existing class or used to create an&#xA;adapter (typically, by subclassing &lt;code>AbstractAction&lt;/code>).&#xA;The &lt;code>Action&lt;/code> object&#xA;can then be added to multiple &lt;code>Action&lt;/code>-aware containers&#xA;and connected to &lt;code>Action&lt;/code>-capable&#xA;components. The GUI controls can then be activated or&#xA;deactivated all at once by invoking the &lt;code>Action&lt;/code> object's&#xA;&lt;code>setEnabled&lt;/code> method.&#xA;&lt;p>&#xA;Note that &lt;code>Action&lt;/code> implementations tend to be more expensive&#xA;in terms of storage than a typical &lt;code>ActionListener&lt;/code>,&#xA;which does not offer the benefits of centralized control of&#xA;functionality and broadcast of property changes.  For this reason,&#xA;you should take care to only use &lt;code>Action&lt;/code>s where their benefits&#xA;are desired, and use simple &lt;code>ActionListener&lt;/code>s elsewhere.&#xA;&#xA;@version 1.30 12/19/03&#xA;@author Georges Saab&#xA;@see AbstractAction&#xA;" annotatedElement="_9_5_f720368_1110473546784_436758_10621"/>
            <generalization xmi:id="_10_5_622020d_1132928323912_998759_18213" isSubstitutable="true" general="_9_5_f720368_1110473546565_106737_6535"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_941881_10691" name="GrayFilter">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_961809_12366" body="An image filter that &quot;disables&quot; an image by turning&#xA;it into a grayscale image, and brightening the pixels&#xA;in the image. Used by buttons to create an image for&#xA;a disabled button.&#xA;&#xA;@author      Jeff Dinkins&#xA;@author      Tom Ball&#xA;@author      Jim Graham&#xA;@version     1.15 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546784_941881_10691"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_15835_18271" isSubstitutable="true" general="_9_5_f720368_1110473546581_815313_6831"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_582024_10721" name="JDesktopPane" clientDependency="_10_5_622020d_1132928324072_243250_18327">
            <ownedComment xmi:id="_10_5_622020d_1132928317903_243027_12410" body="A container used to create a multiple-document interface or a virtual desktop.&#xA;You create &lt;code>JInternalFrame&lt;/code> objects and add them to the&#xA;&lt;code>JDesktopPane&lt;/code>. &lt;code>JDesktopPane&lt;/code> extends&#xA;&lt;code>JLayeredPane&lt;/code> to manage the potentially overlapping internal&#xA;frames. It also maintains a reference to an instance of&#xA;&lt;code>DesktopManager&lt;/code> that is set by the UI&#xA;class for the current look and feel (L&amp;F).  Note that &lt;code>JDesktopPane&lt;/code>&#xA;does not support borders.&#xA;&lt;p>&#xA;This class is normally used as the parent of &lt;code>JInternalFrames&lt;/code>&#xA;to provide a pluggable &lt;code>DesktopManager&lt;/code> object to the&#xA;&lt;code>JInternalFrames&lt;/code>. The &lt;code>installUI&lt;/code> of the&#xA;L&amp;F specific implementation is responsible for setting the&#xA;&lt;code>desktopManager&lt;/code> variable appropriately.&#xA;When the parent of a &lt;code>JInternalFrame&lt;/code> is a &lt;code>JDesktopPane&lt;/code>,&#xA;it should delegate most of its behavior to the &lt;code>desktopManager&lt;/code>&#xA;(closing, resizing, etc).&#xA;&lt;p>&#xA;For further documentation and examples see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html&quot;>How to Use Internal Frames&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see JInternalFrame&#xA;@see JInternalFrame.JDesktopIcon&#xA;@see DesktopManager&#xA;&#xA;@version 1.51 12/19/03&#xA;@author David Kloba&#xA;" annotatedElement="_9_5_f720368_1110473546784_582024_10721"/>
            <generalization xmi:id="_10_5_622020d_1132928324072_86797_18328" isSubstitutable="true" general="_9_5_f720368_1110473546799_11441_10737"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324072_243250_18327" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_582024_10721" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473128393_362311_4521" name="AccessibleJDesktopPane" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928317893_469533_12408" body="This class implements accessibility support for the&#xA;&lt;code>JDesktopPane&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to desktop pane user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473128393_362311_4521"/>
              <generalization xmi:id="_10_5_622020d_1132928537068_468957_19008" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_667876_10695" name="ImageIcon" clientDependency="_10_5_622020d_1132928323972_548492_18274 _10_5_622020d_1132928323972_915110_18272 _10_5_622020d_1132928323972_911187_18273">
            <ownedComment xmi:id="_10_5_622020d_1132928317853_206355_12371" body="An implementation of the Icon interface that paints Icons&#xA;from Images. Images that are created from a URL, filename or byte array&#xA;are preloaded using MediaTracker to monitor the loaded state&#xA;of the image.&#xA;&#xA;&lt;p>&#xA;For further information and examples of using image icons, see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/icon.html&quot;>How to Use Icons&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.53 12/19/03&#xA;@author Jeff Dinkins&#xA;@author Lynn Monsanto&#xA;" annotatedElement="_9_5_f720368_1110473546784_667876_10695"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_915110_18272" name="" supplier="_9_5_f720368_1110473546784_576188_10693" client="_9_5_f720368_1110473546784_667876_10695" contract="_9_5_f720368_1110473546784_576188_10693"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_911187_18273" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546784_667876_10695" contract="_9_5_f720368_1110473546612_364919_7481"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_548492_18274" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546784_667876_10695" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548409_120588_24094" name="AccessibleImageIcon" visibility="protected" clientDependency="_10_5_622020d_1132928323972_790714_18276 _10_5_622020d_1132928323972_540271_18275">
              <ownedComment xmi:id="_10_5_622020d_1132928317853_194566_12369" body="This class implements accessibility support for the&#xA;&lt;code>ImageIcon&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to image icon user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548409_120588_24094"/>
              <generalization xmi:id="_10_5_622020d_1132928323972_695168_18277" isSubstitutable="true" general="_9_5_f720368_1110473546706_746063_8959"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323972_540271_18275" name="" supplier="_9_5_f720368_1110473546706_812616_8971" client="_9_5_f720368_1110473548409_120588_24094" contract="_9_5_f720368_1110473546706_812616_8971"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323972_790714_18276" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548409_120588_24094" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546784_456404_10645" name="ComboBoxEditor" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317833_584137_12321" body="The editor component used for JComboBox components.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546784_456404_10645"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_993107_10757" name="JRadioButton" clientDependency="_10_5_622020d_1132928324122_814322_18447">
            <ownedComment xmi:id="_10_5_622020d_1132928318073_645463_12483" body="An implementation of a radio button -- an item that can be selected or&#xA;deselected, and which displays its state to the user.&#xA;Used with a {@link ButtonGroup} object to create a group of buttons&#xA;in which only one button at a time can be selected. (Create a ButtonGroup&#xA;object and use its &lt;code>add&lt;/code> method to include the JRadioButton objects&#xA;in the group.)&#xA;&lt;blockquote>&#xA;&lt;strong>Note:&lt;/strong>&#xA;The ButtonGroup object is a logical grouping -- not a physical grouping.&#xA;Tocreate a button panel, you should still create a {@link JPanel} or similar&#xA;container-object and add a {@link javax.swing.border.Border} to it to set it off from surrounding&#xA;components.&#xA;&lt;/blockquote>&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/button.html&quot;>How to Use Buttons, Check Boxes, and Radio Buttons&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em>&#xA;for further documentation.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which can display it's state as selected or deselected.&#xA;&#xA;@see ButtonGroup&#xA;@see JCheckBox&#xA;@version 1.74 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546799_993107_10757"/>
            <generalization xmi:id="_10_5_622020d_1132928324122_143550_18448" isSubstitutable="true" general="_9_5_f720368_1110473546799_602619_10785"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324122_814322_18447" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_993107_10757" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_602189_24248" name="AccessibleJRadioButton" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318073_728832_12481" body="This class implements accessibility support for the&#xA;&lt;code>JRadioButton&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to radio button&#xA;user-interface elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_602189_24248"/>
              <generalization xmi:id="_10_5_622020d_1132928324122_700159_18449" isSubstitutable="true" general="_9_5_f720368_1110473548456_973285_24356"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_269096_10781" name="JTextField" clientDependency="_10_5_622020d_1132928324142_841952_18562">
            <ownedComment xmi:id="_10_5_622020d_1132928318133_849756_12544" body="&lt;code>JTextField&lt;/code> is a lightweight component that allows the editing&#xA;of a single line of text.&#xA;For information on and examples of using text fields,&#xA;see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/textfield.html&quot;>How to Use Text Fields&lt;/a>&#xA;in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;&lt;p>&#xA;&lt;code>JTextField&lt;/code> is intended to be source-compatible&#xA;with &lt;code>java.awt.TextField&lt;/code> where it is reasonable to do so.  This&#xA;component has capabilities not found in the &lt;code>java.awt.TextField&lt;/code>&#xA;class.  The superclass should be consulted for additional capabilities.&#xA;&lt;p>&#xA;&lt;code>JTextField&lt;/code> has a method to establish the string used as the&#xA;command string for the action event that gets fired.  The&#xA;&lt;code>java.awt.TextField&lt;/code> used the text of the field as the command&#xA;string for the &lt;code>ActionEvent&lt;/code>.&#xA;&lt;code>JTextField&lt;/code> will use the command&#xA;string set with the &lt;code>setActionCommand&lt;/code> method if not &lt;code>null&lt;/code>,&#xA;otherwise it will use the text of the field as a compatibility with&#xA;&lt;code>java.awt.TextField&lt;/code>.&#xA;&lt;p>&#xA;The method &lt;code>setEchoChar&lt;/code> and &lt;code>getEchoChar&lt;/code>&#xA;are not provided directly to avoid a new implementation of a&#xA;pluggable look-and-feel inadvertently exposing password characters.&#xA;To provide password-like services a separate class &lt;code>JPasswordField&lt;/code>&#xA;extends &lt;code>JTextField&lt;/code> to provide this service with an independently&#xA;pluggable look-and-feel.&#xA;&lt;p>&#xA;The &lt;code>java.awt.TextField&lt;/code> could be monitored for changes by adding&#xA;a &lt;code>TextListener&lt;/code> for &lt;code>TextEvent&lt;/code>'s.&#xA;In the &lt;code>JTextComponent&lt;/code> based&#xA;components, changes are broadcasted from the model via a&#xA;&lt;code>DocumentEvent&lt;/code> to &lt;code>DocumentListeners&lt;/code>.&#xA;The &lt;code>DocumentEvent&lt;/code> gives&#xA;the location of the change and the kind of change if desired.&#xA;The code fragment might look something like:&#xA;&lt;pre>&lt;code>&#xA;&amp;nbsp;   DocumentListener myListener = ??;&#xA;&amp;nbsp;   JTextField myArea = ??;&#xA;&amp;nbsp;   myArea.getDocument().addDocumentListener(myListener);&#xA;&lt;/code>&lt;/pre>&#xA;&lt;p>&#xA;The horizontal alignment of &lt;code>JTextField&lt;/code> can be set to be left&#xA;justified, leading justified, centered, right justified or trailing justified.&#xA;Right/trailing justification is useful if the required size&#xA;of the field text is smaller than the size allocated to it.&#xA;This is determined by the &lt;code>setHorizontalAlignment&lt;/code>&#xA;and &lt;code>getHorizontalAlignment&lt;/code> methods.  The default&#xA;is to be leading justified.&#xA;&lt;p>&#xA;How the text field consumes VK_ENTER events depends&#xA;on whether the text field has any action listeners.&#xA;If so, then VK_ENTER results in the listeners&#xA;getting an ActionEvent,&#xA;and the VK_ENTER event is consumed.&#xA;This is compatible with how AWT text fields handle VK_ENTER events.&#xA;If the text field has no action listeners, then as of v 1.3 the VK_ENTER&#xA;event is not consumed.  Instead, the bindings of ancestor components&#xA;are processed, which enables the default button feature of&#xA;JFC/Swing to work.&#xA;&lt;p>&#xA;Customized fields can easily be created by extending the model and&#xA;changing the default model provided.  For example, the following piece&#xA;of code will create a field that holds only upper case characters.  It&#xA;will work even if text is pasted into from the clipboard or it is altered via&#xA;programmatic changes.&#xA;&lt;pre>&lt;code>&#xA;&amp;nbsp;public class UpperCaseField extends JTextField {&#xA;&amp;nbsp;&#xA;&amp;nbsp;    public UpperCaseField(int cols) {&#xA;&amp;nbsp;        super(cols);&#xA;&amp;nbsp;    }&#xA;&amp;nbsp;&#xA;&amp;nbsp;    protected Document createDefaultModel() {&#xA;&amp;nbsp;&#x9;      return new UpperCaseDocument();&#xA;&amp;nbsp;    }&#xA;&amp;nbsp;&#xA;&amp;nbsp;    static class UpperCaseDocument extends PlainDocument {&#xA;&amp;nbsp;&#xA;&amp;nbsp;        public void insertString(int offs, String str, AttributeSet a)&#xA;&amp;nbsp;&#x9;          throws BadLocationException {&#xA;&amp;nbsp;&#xA;&amp;nbsp;&#x9;          if (str == null) {&#xA;&amp;nbsp;&#x9;&#x9;      return;&#xA;&amp;nbsp;&#x9;          }&#xA;&amp;nbsp;&#x9;          char[] upper = str.toCharArray();&#xA;&amp;nbsp;&#x9;          for (int i = 0; i &lt; upper.length; i++) {&#xA;&amp;nbsp;&#x9;&#x9;      upper[i] = Character.toUpperCase(upper[i]);&#xA;&amp;nbsp;&#x9;          }&#xA;&amp;nbsp;&#x9;          super.insertString(offs, new String(upper), a);&#xA;&amp;nbsp;&#x9;      }&#xA;&amp;nbsp;    }&#xA;&amp;nbsp;}&#xA;&lt;/code>&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer false&#xA;description: A component which allows for the editing of a single line of text.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.90 12/19/03&#xA;@see #setActionCommand&#xA;@see JPasswordField&#xA;@see #addActionListener&#xA;" annotatedElement="_9_5_f720368_1110473546799_269096_10781"/>
            <generalization xmi:id="_10_5_622020d_1132928324142_655499_18563" isSubstitutable="true" general="_9_5_f720368_1110473546784_616890_10483"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324142_841952_18562" name="" supplier="_9_5_f720368_1110473546799_869308_10869" client="_9_5_f720368_1110473546799_269096_10781" contract="_9_5_f720368_1110473546799_869308_10869"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_276680_24346" name="NotifyAction" visibility="package">
              <generalization xmi:id="_10_5_622020d_1132928324142_22081_18564" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_216150_24348" name="ScrollRepainter" visibility="package" clientDependency="_10_5_622020d_1132928324142_811683_18566 _10_5_622020d_1132928324142_224295_18565">
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_224295_18565" name="" supplier="_9_5_f720368_1110473546753_937925_9841" client="_9_5_f720368_1110473548456_216150_24348" contract="_9_5_f720368_1110473546753_937925_9841"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324142_811683_18566" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548456_216150_24348" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548456_930568_24349" name="AccessibleJTextField" visibility="protected">
              <ownedComment xmi:id="_10_5_622020d_1132928318133_578388_12542" body="This class implements accessibility support for the&#xA;&lt;code>JTextField&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to text field user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548456_930568_24349"/>
              <generalization xmi:id="_10_5_622020d_1132928324142_119181_18567" isSubstitutable="true" general="_9_5_f720368_1110473548362_214589_23541"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548112_674241_21020" name="event">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_827683_9851" name="HyperlinkListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_822246_10854" body="HyperlinkListener&#xA;&#xA;@version 1.10 12/19/03&#xA;@author  Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546753_827683_9851"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_361428_16714" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_117844_9909" name="TreeWillExpandListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_443504_10912" body="The listener that's notified when a tree expands or collapses&#xA;a node.&#xA;For further information and examples see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treewillexpandlistener.html&quot;>How to Write a Tree-Will-Expand Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@version 1.9 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_117844_9909"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_6522_16744" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_769889_9831" name="AncestorListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_261844_10831" body="AncestorListener&#xA;&#xA;Interface to support notification when changes occur to a JComponent or one&#xA;of its ancestors.  These include movement and when the component becomes&#xA;visible or invisible, either by the setVisible() method or by being added&#xA;or removed from the component hierarchy.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546753_769889_9831"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_934769_16705" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_569742_9829" name="AncestorEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_999720_10829" body="An event reported to a child component that originated from an&#xA;ancestor in the component hierarchy.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.19 12/19/03&#xA;@author Dave Moore&#xA;" annotatedElement="_9_5_f720368_1110473546753_569742_9829"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_612317_16704" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_43790_9865" name="ListSelectionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_757022_10868" body="The listener that's notified when a lists selection value&#xA;changes.&#xA;&#xA;@see javax.swing.ListSelectionModel&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_43790_9865"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_650489_16721" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_610396_9837" name="CellEditorListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_99573_10837" body="CellEditorListener defines the interface for an object that listens&#xA;to changes in a CellEditor&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Alan Chung&#xA;" annotatedElement="_9_5_f720368_1110473546753_610396_9837"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_814229_16708" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_71228_9883" name="PopupMenuEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_560325_10886" body="PopupMenuEvent only contains the source of the event which is the JPoupMenu&#xA;sending the event&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_71228_9883"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_267972_16731" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_777601_9897" name="TreeExpansionEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_732478_10900" body="An event used to identify a single path in a tree.  The source&#xA;returned by &lt;b>getSource&lt;/b> will be an instance of JTree.&#xA;&lt;p>&#xA;For further documentation and examples see&#xA;the following sections in &lt;em>The Java Tutorial&lt;/em>:&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treeexpansionlistener.html&quot;>How to Write a Tree Expansion Listener&lt;/a> and&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treewillexpandlistener.html&quot;>How to Write a Tree-Will-Expand Listener&lt;/a>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@author Scott Violet&#xA;@version 1.20 12/19/03&#xA;" annotatedElement="_9_5_f720368_1110473546753_777601_9897"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_127178_16738" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_111782_9863" name="ListSelectionEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_408776_10866" body="An event that characterizes a change in the current&#xA;selection.  The change is limited to a row interval.&#xA;ListSelectionListeners will generally query the source of&#xA;the event for the new selected status of each potentially&#xA;changed row.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author Hans Muller&#xA;@author Ray Ryan&#xA;@see ListSelectionModel&#xA;" annotatedElement="_9_5_f720368_1110473546753_111782_9863"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_443455_16720" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_523507_9913" name="UndoableEditListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_1490_10916" body="Interface implemented by a class interested in hearing about&#xA;undoable operations.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546753_523507_9913"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_980012_16746" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_516227_9859" name="ListDataEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_122063_10862" body="Defines an event that encapsulates changes to a list.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_516227_9859"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_569600_16718" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_680224_9903" name="TreeModelListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_402934_10906" body="Defines the interface for an object that listens&#xA;to changes in a TreeModel.&#xA;For further information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treemodellistener.html&quot;>How to Write a Tree Model Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@version 1.17 12/19/03&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546753_680224_9903"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_143078_16741" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_750515_9877" name="MenuListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_435742_10880" body="Defines a listener for menu events.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_750515_9877"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_5209_16727" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_554871_9839" name="ChangeEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_50316_10839" body="ChangeEvent is used to notify interested parties that&#xA;state has changed in the event source.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_554871_9839"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_104183_16709" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_937925_9841" name="ChangeListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_115269_10841" body="Defines an object which listens for ChangeEvents.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Jeff Dinkins&#xA;" annotatedElement="_9_5_f720368_1110473546753_937925_9841"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_675329_16710" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_163872_9911" name="UndoableEditEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_17124_10914" body="An event indicating that an operation which can be undone has occurred.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author Ray Ryan&#xA;" annotatedElement="_9_5_f720368_1110473546753_163872_9911"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_921858_16745" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_508172_9887" name="SwingPropertyChangeSupport" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_3798_10890" body="This subclass of java.beans.PropertyChangeSupport is identical&#xA;in functionality -- it sacrifices thread-safety (not a Swing&#xA;concern) for reduce memory consumption, which helps performance&#xA;(both big Swing concerns).  Most of the overridden methods are&#xA;only necessary because all of PropertyChangeSupport's instance&#xA;data is private, without accessor methods.&#xA;&#xA;@version 1.20 12/19/03&#xA;@author unattributed&#xA;" annotatedElement="_9_5_f720368_1110473546753_508172_9887"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_161188_16733" isSubstitutable="true" general="_9_5_f720368_1110473546596_997088_7317"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_170674_9847" name="EventListenerList" clientDependency="_10_5_622020d_1132928323411_384973_16712">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_786059_10849" body="A class that holds a list of EventListeners.  A single instance&#xA;can be used to hold all listeners (of all types) for the instance&#xA;using the list.  It is the responsiblity of the class using the&#xA;EventListenerList to provide type-safe API (preferably conforming&#xA;to the JavaBeans spec) and methods which dispatch event notification&#xA;methods to appropriate Event Listeners on the list.&#xA;&#xA;The main benefits that this class provides are that it is relatively&#xA;cheap in the case of no listeners, and it provides serialization for&#xA;event-listener lists in a single place, as well as a degree of MT safety&#xA;(when used correctly).&#xA;&#xA;Usage example:&#xA;Say one is defining a class that sends out FooEvents, and one wants&#xA;to allow users of the class to register FooListeners and receive&#xA;notification when FooEvents occur.  The following should be added&#xA;to the class definition:&#xA;&lt;pre>&#xA;EventListenerList listenerList = new EventListenerList();&#xA;FooEvent fooEvent = null;&#xA;&#xA;public void addFooListener(FooListener l) {&#xA;listenerList.add(FooListener.class, l);&#xA;}&#xA;&#xA;public void removeFooListener(FooListener l) {&#xA;listenerList.remove(FooListener.class, l);&#xA;}&#xA;&#xA;&#xA;Notify all listeners that have registered interest for&#xA;notification on this event type.  The event instance&#xA;is lazily created using the parameters passed into&#xA;the fire method.&#xA;&#xA;protected void fireFooXXX() {&#xA;Guaranteed to return a non-null array&#xA;Object[] listeners = listenerList.getListenerList();&#xA;Process the listeners last to first, notifying&#xA;those that are interested in this event&#xA;for (int i = listeners.length-2; i>=0; i-=2) {&#xA;if (listeners[i]==FooListener.class) {&#xA;Lazily create the event:&#xA;if (fooEvent == null)&#xA;fooEvent = new FooEvent(this);&#xA;((FooListener)listeners[i+1]).fooXXX(fooEvent);&#xA;}&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;foo should be changed to the appropriate name, and fireFooXxx to the&#xA;appropriate method name.  One fire method should exist for each&#xA;notification method in the FooListener interface.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.36 05/05/04&#xA;@author Georges Saab&#xA;@author Hans Muller&#xA;@author James Gosling&#xA;" annotatedElement="_9_5_f720368_1110473546753_170674_9847"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323411_384973_16712" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546753_170674_9847" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_439555_9849" name="HyperlinkEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_505026_10852" body="HyperlinkEvent is used to notify interested parties that&#xA;something has happened with respect to a hypertext link.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.18 12/19/03&#xA;@author  Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546753_439555_9849"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_758709_16713" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_693841_21037" name="EventType" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317012_467208_10850" body="Defines the ENTERED, EXITED, and ACTIVATED event types, along&#xA;with their string representations, returned by toString().&#xA;" annotatedElement="_9_5_f720368_1110473548128_693841_21037"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_272690_9853" name="InternalFrameAdapter" clientDependency="_10_5_622020d_1132928323411_916072_16715" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_289965_10856" body="An abstract adapter class for receiving internal frame events.&#xA;The methods in this class are empty. This class exists as&#xA;convenience for creating listener objects, and is functionally&#xA;equivalent to the WindowAdapter class in the AWT.&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/internalframelistener.html&quot;>How to Write an Internal Frame Listener&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em> and&#xA;&lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>The Java Class Libraries (update)&lt;/a>&#xA;&#xA;@see InternalFrameEvent&#xA;@see InternalFrameListener&#xA;@see java.awt.event.WindowListener&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Thomas Ball&#xA;" annotatedElement="_9_5_f720368_1110473546753_272690_9853"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323411_916072_16715" name="" supplier="_9_5_f720368_1110473546753_971546_9857" client="_9_5_f720368_1110473546753_272690_9853" contract="_9_5_f720368_1110473546753_971546_9857"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_977241_9891" name="TableColumnModelListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_902599_10894" body="TableColumnModelListener defines the interface for an object that listens&#xA;to changes in a TableColumnModel.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Alan Chung&#xA;@see TableColumnModelEvent&#xA;" annotatedElement="_9_5_f720368_1110473546753_977241_9891"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_915662_16735" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_538099_9855" name="InternalFrameEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_109514_10858" body="An &lt;code>AWTEvent&lt;/code> that adds support for&#xA;&lt;code>JInternalFrame&lt;/code> objects as the event source.  This class has the&#xA;same event types as &lt;code>WindowEvent&lt;/code>,&#xA;although different IDs are used.&#xA;Help on handling internal frame events&#xA;is in&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/internalframelistener.html&quot; target=&quot;_top&quot;>How to Write an Internal Frame Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see java.awt.event.WindowEvent&#xA;@see java.awt.event.WindowListener&#xA;@see JInternalFrame&#xA;@see InternalFrameListener&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Thomas Ball&#xA;" annotatedElement="_9_5_f720368_1110473546753_538099_9855"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_416241_16716" isSubstitutable="true" general="_9_5_f720368_1110473546581_660844_6931"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_268063_9861" name="ListDataListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_976019_10864" body="ListDataListener&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Hans Muller&#xA;" annotatedElement="_9_5_f720368_1110473546753_268063_9861"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_428156_16719" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_971546_9857" name="InternalFrameListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_945020_10860" body="The listener interface for receiving internal frame events.&#xA;This class is functionally equivalent to the WindowListener class&#xA;in the AWT.&#xA;&lt;p>&#xA;See &lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/internalframelistener.html&quot;>How to Write an Internal Frame Listener&lt;/a>&#xA;in &lt;em>The Java Tutorial&lt;/em> and&#xA;&lt;a href=&quot;http://www.awl.com/cp/javaseries/jcl1_2.html&quot;>The Java Class Libraries (update)&lt;/a>&#xA;for further documentation.&#xA;&#xA;@see java.awt.event.WindowListener&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Thomas Ball&#xA;" annotatedElement="_9_5_f720368_1110473546753_971546_9857"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_672800_16717" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_295872_9871" name="MenuEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_865098_10874" body="MenuEvent is used to notify interested parties that&#xA;the menu which is the event source has been posted,&#xA;selected, or canceled.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;" annotatedElement="_9_5_f720368_1110473546753_295872_9871"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_277548_16724" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_33358_9895" name="TableModelListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_290756_10898" body="TableModelListener defines the interface for an object that listens&#xA;to changes in a TableModel.&#xA;&#xA;@version 1.15 12/19/03&#xA;@author Alan Chung&#xA;@see javax.swing.table.TableModel&#xA;" annotatedElement="_9_5_f720368_1110473546753_33358_9895"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_555879_16737" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_606883_9881" name="MouseInputListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_740797_10884" body="A listener implementing all the methods in both the MouseListener and&#xA;MouseMotionListener interfaces.&#xA;&#xA;@version 1.10 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546753_606883_9881"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_812528_16729" isSubstitutable="true" general="_9_5_f720368_1110473546565_486724_6593"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_51392_16730" isSubstitutable="true" general="_9_5_f720368_1110473546565_341038_6597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_81876_9845" name="DocumentListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_639416_10847" body="Interface for an observer to register to receive notifications&#xA;of changes to a text document.&#xA;&lt;p>&#xA;The default implementation of&#xA;the Document interface (AbstractDocument) supports asynchronous&#xA;mutations.  If this feature is used (i.e. mutations are made&#xA;from a thread other than the Swing event thread), the listeners&#xA;will be notified via the mutating thread.  &lt;em>This means that&#xA;if asynchronous updates are made, the implementation of this&#xA;interface must be threadsafe&lt;/em>!&#xA;&lt;p>&#xA;The DocumentEvent notification is based upon the JavaBeans&#xA;event model.  There is no guarantee about the order of delivery&#xA;to listeners, and all listeners must be notified prior to making&#xA;further mutations to the Document.  &lt;em>This means implementations&#xA;of the DocumentListener may not mutate the source of the event&#xA;(i.e. the associated Document)&lt;/em>.&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.14 12/19/03&#xA;@see javax.swing.text.Document&#xA;@see javax.swing.text.StyledDocument&#xA;@see DocumentEvent&#xA;" annotatedElement="_9_5_f720368_1110473546753_81876_9845"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_460729_16711" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_618448_9873" name="MenuKeyEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_605517_10876" body="MenuKeyEvent is used to notify interested parties that&#xA;the menu element has received a KeyEvent forwarded to it&#xA;in a menu tree.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_618448_9873"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_415458_16725" isSubstitutable="true" general="_9_5_f720368_1110473546565_377073_6585"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_419008_9833" name="CaretEvent" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_466855_10833" body="CaretEvent is used to notify interested parties that&#xA;the text caret has changed in the event source.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author  Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546753_419008_9833"/>
              <generalization xmi:id="_10_5_622020d_1132928323401_35417_16706" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_881060_9835" name="CaretListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317002_432125_10835" body="Listener for changes in the caret position of a text&#xA;component.&#xA;&#xA;@version 1.9 12/19/03&#xA;@author  Timothy Prinzing&#xA;" annotatedElement="_9_5_f720368_1110473546753_881060_9835"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_563226_16707" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_512408_9907" name="TreeSelectionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_635841_10910" body="The listener that's notified when the selection in a TreeSelectionModel&#xA;changes.&#xA;For more information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treeselectionlistener.html&quot;>How to Write a Tree Selection Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@see javax.swing.tree.TreeSelectionModel&#xA;@see javax.swing.JTree&#xA;&#xA;@version 1.14 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_512408_9907"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_213792_16743" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_423354_9875" name="MenuKeyListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_991632_10878" body="MenuKeyListener&#xA;&#xA;@version 1.9 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_423354_9875"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_758155_16726" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_27576_9867" name="MenuDragMouseEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_33911_10870" body="MenuDragMouseEvent is used to notify interested parties that&#xA;the menu element has received a MouseEvent forwarded to it&#xA;under drag conditions.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.13 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_27576_9867"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_96879_16722" isSubstitutable="true" general="_9_5_f720368_1110473546565_21246_6591"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_537494_9879" name="MouseInputAdapter" clientDependency="_10_5_622020d_1132928323411_684524_16728" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_313379_10882" body="The adapter which receives mouse events and mouse motion events.&#xA;The methods in this class are empty;  this class is provided as a&#xA;convenience for easily creating listeners by extending this class&#xA;and overriding only the methods of interest.&#xA;&#xA;@version 1.12 12/19/03&#xA;@author Philip Milne&#xA;" annotatedElement="_9_5_f720368_1110473546753_537494_9879"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323411_684524_16728" name="" supplier="_9_5_f720368_1110473546753_606883_9881" client="_9_5_f720368_1110473546753_537494_9879" contract="_9_5_f720368_1110473546753_606883_9881"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_358383_9901" name="TreeModelEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_663158_10904" body="Encapsulates information describing changes to a tree model, and&#xA;used to notify tree model listeners of the change.&#xA;For more information and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treemodellistener.html&quot;>How to Write a Tree Model Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.33 12/19/03&#xA;@author Rob Davis&#xA;@author Ray Ryan&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_358383_9901"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_954357_16740" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_416306_9893" name="TableModelEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_82577_10896" body="TableModelEvent is used to notify listeners that a table model&#xA;has changed. The model event describes changes to a TableModel&#xA;and all references to rows and columns are in the co-ordinate&#xA;system of the model.&#xA;Depending on the parameters used in the constructors, the TableModelevent&#xA;can be used to specify the following types of changes: &lt;p>&#xA;&#xA;&lt;pre>&#xA;TableModelEvent(source);              //  The data, ie. all rows changed&#xA;TableModelEvent(source, HEADER_ROW);  //  Structure change, reallocate TableColumns&#xA;TableModelEvent(source, 1);           //  Row 1 changed&#xA;TableModelEvent(source, 3, 6);        //  Rows 3 to 6 inclusive changed&#xA;TableModelEvent(source, 2, 2, 6);     //  Cell at (2, 6) changed&#xA;TableModelEvent(source, 3, 6, ALL_COLUMNS, INSERT); // Rows (3, 6) were inserted&#xA;TableModelEvent(source, 3, 6, ALL_COLUMNS, DELETE); // Rows (3, 6) were deleted&#xA;&lt;/pre>&#xA;&#xA;It is possible to use other combinations of the parameters, not all of them&#xA;are meaningful. By subclassing, you can add other information, for example:&#xA;whether the event WILL happen or DID happen. This makes the specification&#xA;of rows in DELETE events more useful but has not been included in&#xA;the swing package as the JTable only needs post-event notification.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.21 12/19/03&#xA;@author Alan Chung&#xA;@author Philip Milne&#xA;@see TableModel&#xA;" annotatedElement="_9_5_f720368_1110473546753_416306_9893"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_463955_16736" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_519706_9885" name="PopupMenuListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_222826_10888" body="A popup menu listener&#xA;&#xA;@version 1.9 12/19/03&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546753_519706_9885"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_550993_16732" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_790074_9899" name="TreeExpansionListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_58368_10902" body="The listener that's notified when a tree expands or collapses&#xA;a node.&#xA;For further documentation and examples see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/events/treeexpansionlistener.html&quot;>How to Write a Tree Expansion Listener&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_790074_9899"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_104695_16739" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_846132_9889" name="TableColumnModelEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_474357_10892" body="&lt;B>TableColumnModelEvent&lt;/B> is used to notify listeners that a table&#xA;column model has changed, such as a column was added, removed, or&#xA;moved.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.16 12/19/03&#xA;@author Alan Chung&#xA;@see TableColumnModelListener&#xA;" annotatedElement="_9_5_f720368_1110473546753_846132_9889"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_8189_16734" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_300618_9905" name="TreeSelectionEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928317032_723148_10908" body="An event that characterizes a change in the current&#xA;selection.  The change is based on any number of paths.&#xA;TreeSelectionListeners will generally query the source of&#xA;the event for the new selected status of each potentially&#xA;changed row.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@see TreeSelectionListener&#xA;@see javax.swing.tree.TreeSelectionModel&#xA;&#xA;@version 1.26 12/19/03&#xA;@author Scott Violet&#xA;" annotatedElement="_9_5_f720368_1110473546753_300618_9905"/>
              <generalization xmi:id="_10_5_622020d_1132928323421_499651_16742" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_973142_9869" name="MenuDragMouseListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317022_589028_10872" body="Defines a menu mouse-drag listener.&#xA;&#xA;@version 1.11 12/19/03&#xA;@author Georges Saab&#xA;" annotatedElement="_9_5_f720368_1110473546753_973142_9869"/>
              <generalization xmi:id="_10_5_622020d_1132928323411_191831_16723" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_760814_9843" name="DocumentEvent" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317012_517031_10845" body="Interface for document change notifications.  This provides&#xA;detailed information to Document observers about how the&#xA;Document changed.  It provides high level information such&#xA;as type of change and where it occurred, as well as the more&#xA;detailed structural changes (What Elements were inserted and&#xA;removed).&#xA;&#xA;@author  Timothy Prinzing&#xA;@version 1.23 12/19/03&#xA;@see javax.swing.text.Document&#xA;@see DocumentListener&#xA;" annotatedElement="_9_5_f720368_1110473546753_760814_9843"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548128_173337_21029" name="EventType" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317012_621868_10842" body="Enumeration for document event types&#xA;" annotatedElement="_9_5_f720368_1110473548128_173337_21029"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548128_875600_21032" name="ElementChange" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928317012_114424_10843" body="Describes changes made to a specific element.&#xA;" annotatedElement="_9_5_f720368_1110473548128_875600_21032"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318274_225284_12672" name="TablePrintable" visibility="package" clientDependency="_10_5_622020d_1132928324172_44474_18680">
            <ownedComment xmi:id="_10_5_622020d_1132928318274_492384_12674" body="An implementation of &lt;code>Printable&lt;/code> for printing&#xA;&lt;code>JTable&lt;/code>s.&#xA;&lt;p>&#xA;This implementation spreads table rows naturally in sequence&#xA;across multiple pages, fitting as many rows as possible per page.&#xA;The distribution of columns, on the other hand, is controlled by a&#xA;printing mode parameter passed to the constructor. When&#xA;&lt;code>JTable.PrintMode.NORMAL&lt;/code> is used, the implementation&#xA;handles columns in a similar manner to how it handles rows, spreading them&#xA;across multiple pages (in an order consistent with the table's&#xA;&lt;code>ComponentOrientation&lt;/code>).&#xA;When &lt;code>JTable.PrintMode.FIT_WIDTH&lt;/code> is given, the implementation&#xA;scales the output smaller if necessary, to ensure that all columns fit on&#xA;the page. (Note that width and height are scaled equally, ensuring that the&#xA;aspect ratio remains the same).&#xA;&lt;p>&#xA;The portion of table printed on each page is headed by the&#xA;appropriate section of the table's &lt;code>JTableHeader&lt;/code>.&#xA;&lt;p>&#xA;Header and footer text can be added to the output by providing&#xA;&lt;code>MessageFormat&lt;/code> instances to the constructor. The&#xA;printing code requests Strings from the formats by calling&#xA;their &lt;code>format&lt;/code> method with a single parameter:&#xA;an &lt;code>Object&lt;/code> array containing a single element of type&#xA;&lt;code>Integer&lt;/code>, representing the current page number.&#xA;&lt;p>&#xA;There are certain circumstances where this &lt;code>Printable&lt;code>&#xA;cannot fit items appropriately, resulting in clipped output.&#xA;These are:&#xA;&lt;ul>&#xA;&lt;li>In any mode, when the header or footer text is too wide to&#xA;fit completely in the printable area. The implementation&#xA;prints as much of the text as possible starting from the beginning,&#xA;as determined by the table's &lt;code>ComponentOrientation&lt;/code>.&#xA;&lt;li>In any mode, when a row is too tall to fit in the&#xA;printable area. The upper most portion of the row&#xA;is printed and no lower border is shown.&#xA;&lt;li>In &lt;code>JTable.PrintMode.NORMAL&lt;/code> when a column&#xA;is too wide to fit in the printable area. The center of the&#xA;column is printed and no left and right borders are shown.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;It is entirely valid for a developer to wrap this &lt;code>Printable&lt;/code>&#xA;inside another in order to create complex reports and documents. They may&#xA;even request that different pages be rendered into different sized&#xA;printable areas. The implementation was designed to handle this by&#xA;performing most of its calculations on the fly. However, providing different&#xA;sizes works best when &lt;code>JTable.PrintMode.FIT_WIDTH&lt;/code> is used, or&#xA;when only the printable width is changed between pages. This is because when&#xA;it is printing a set of rows in &lt;code>JTable.PrintMode.NORMAL&lt;/code> and the&#xA;implementation determines a need to distribute columns across pages,&#xA;it assumes that all of those rows will fit on each subsequent page needed&#xA;to fit the columns.&#xA;&lt;p>&#xA;It is the responsibility of the developer to ensure that the table is not&#xA;modified in any way after this &lt;code>Printable&lt;/code> is created (invalid&#xA;modifications include changes in: size, renderers, or underlying data).&#xA;The behavior of this &lt;code>Printable&lt;/code> is undefined if the table is&#xA;changed at any time after creation.&#xA;&#xA;@author  Shannon Hickey&#xA;@version 1.39 12/19/03&#xA;" annotatedElement="_10_5_622020d_1132928318274_225284_12672"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324172_44474_18680" name="" supplier="_9_5_f720368_1110473546581_449391_6909" client="_10_5_622020d_1132928318274_225284_12672" contract="_9_5_f720368_1110473546581_449391_6909"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_128706_10619" name="AbstractSpinnerModel" clientDependency="_10_5_622020d_1132928323912_701949_18212" isAbstract="true">
            <ownedComment xmi:id="_10_5_622020d_1132928317813_732171_12289" body="This class provides the ChangeListener part of the&#xA;SpinnerModel interface that should be suitable for most concrete SpinnerModel&#xA;implementations.  Subclasses must provide an implementation of the&#xA;minimum, maximum, and value properties and the getNextValue&#xA;and getPreviousValue methods.&#xA;&#xA;@see JSpinner&#xA;@see SpinnerModel&#xA;@see SpinnerListModel&#xA;@see SpinnerNumberModel&#xA;@see SpinnerDateModel&#xA;&#xA;@version 1.7 05/05/04&#xA;@author Hans Muller&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546784_128706_10619"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928323912_701949_18212" name="" supplier="_9_5_f720368_1110473546799_892299_10861" client="_9_5_f720368_1110473546784_128706_10619" contract="_9_5_f720368_1110473546799_892299_10861"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_513545_10743" name="JMenuBar" clientDependency="_10_5_622020d_1132928324112_209583_18410 _10_5_622020d_1132928324112_872542_18409">
            <ownedComment xmi:id="_10_5_622020d_1132928318013_517478_12458" body="An implementation of a menu bar. You add &lt;code>JMenu&lt;/code> objects to the&#xA;menu bar to construct a menu. When the user selects a &lt;code>JMenu&lt;/code>&#xA;object, its associated &lt;code>JPopupMenu&lt;/code> is displayed, allowing the&#xA;user to select one of the &lt;code>JMenuItems&lt;/code> on it.&#xA;&lt;p>&#xA;For information and examples of using menu bars see&#xA;&lt;a&#xA;href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html&quot;>How to Use Menus&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial.&lt;/em>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@beaninfo&#xA;attribute: isContainer true&#xA;description: A container for holding and displaying menus.&#xA;&#xA;@version 1.98 05/18/04&#xA;@author Georges Saab&#xA;@author David Karlton&#xA;@author Arnaud Weber&#xA;@see JMenu&#xA;@see JPopupMenu&#xA;@see JMenuItem&#xA;" annotatedElement="_9_5_f720368_1110473546799_513545_10743"/>
            <generalization xmi:id="_10_5_622020d_1132928324112_579611_18411" isSubstitutable="true" general="_9_5_f720368_1110473546784_185658_10719"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_872542_18409" name="" supplier="_9_5_f720368_1110473546706_827345_8951" client="_9_5_f720368_1110473546799_513545_10743" contract="_9_5_f720368_1110473546706_827345_8951"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324112_209583_18410" name="" supplier="_9_5_f720368_1110473546799_252355_10817" client="_9_5_f720368_1110473546799_513545_10743" contract="_9_5_f720368_1110473546799_252355_10817"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548440_884543_24220" name="AccessibleJMenuBar" visibility="protected" clientDependency="_10_5_622020d_1132928324112_55145_18412">
              <ownedComment xmi:id="_10_5_622020d_1132928318013_983531_12456" body="This class implements accessibility support for the&#xA;&lt;code>JMenuBar&lt;/code> class.  It provides an implementation of the&#xA;Java Accessibility API appropriate to menu bar user-interface&#xA;elements.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;" annotatedElement="_9_5_f720368_1110473548440_884543_24220"/>
              <generalization xmi:id="_10_5_622020d_1132928324112_695468_18413" isSubstitutable="true" general="_9_5_f720368_1110473548284_820453_22824"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324112_55145_18412" name="" supplier="_9_5_f720368_1110473546706_797948_8983" client="_9_5_f720368_1110473548440_884543_24220" contract="_9_5_f720368_1110473546706_797948_8983"/>
            </nestedClassifier>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_136159_10837" name="RepaintManager">
            <ownedComment xmi:id="_10_5_622020d_1132928318204_821278_12623" body="This class manages repaint requests, allowing the number&#xA;of repaints to be minimized, for example by collapsing multiple&#xA;requests into a single repaint for members of a component tree.&#xA;&#xA;@version 1.60 02/18/04&#xA;@author Arnaud Weber&#xA;" annotatedElement="_9_5_f720368_1110473546799_136159_10837"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548471_966225_24437" name="DoubleBufferInfo" visibility="private"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_652213_10673" name="CompareTabOrderComparator" visibility="package" clientDependency="_10_5_622020d_1132928323972_40131_18257" isLeaf="true">
            <interfaceRealization xmi:id="_10_5_622020d_1132928323972_40131_18257" name="" supplier="_9_5_f720368_1110473546706_796139_8845" client="_9_5_f720368_1110473546784_652213_10673" contract="_9_5_f720368_1110473546706_796139_8845"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546784_562971_10669" name="DefaultFocusManager">
            <ownedComment xmi:id="_10_5_622020d_1132928317843_378933_12346" body="This class has been obsoleted by the 1.4 focus APIs. While client code may&#xA;still use this class, developers are strongly encouraged to use&#xA;&lt;code>java.awt.KeyboardFocusManager&lt;/code> and&#xA;&lt;code>java.awt.DefaultKeyboardFocusManager&lt;/code> instead.&#xA;&lt;p>&#xA;Please see&#xA;&lt;a href=&quot;http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html&quot;>&#xA;How to Use the Focus Subsystem&lt;/a>,&#xA;a section in &lt;em>The Java Tutorial&lt;/em>, and the&#xA;&lt;a href=&quot;../../java/awt/doc-files/FocusSpec.html&quot;>Focus Specification&lt;/a>&#xA;for more information.&#xA;&#xA;@version 1.29, 12/19/03&#xA;@author Arnaud Weber&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546784_562971_10669"/>
            <generalization xmi:id="_10_5_622020d_1132928323972_556397_18255" isSubstitutable="true" general="_9_5_f720368_1110473546784_258524_10687"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_680200_10855" name="SwingContainerOrderFocusTraversalPolicy" visibility="package">
            <generalization xmi:id="_10_5_622020d_1132928324172_376752_18653" isSubstitutable="true" general="_9_5_f720368_1110473546581_886528_6979"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_27626_10801" name="LayoutComparator" visibility="package" clientDependency="_10_5_622020d_1132928324152_819815_18614 _10_5_622020d_1132928324152_241578_18615" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318194_633398_12579" body="Comparator which attempts to sort Components based on their size and&#xA;position. Code adapted from original javax.swing.DefaultFocusManager&#xA;implementation.&#xA;&#xA;@version 1.7, 02/05/04&#xA;@author David Mendenhall&#xA;" annotatedElement="_9_5_f720368_1110473546799_27626_10801"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_819815_18614" name="" supplier="_9_5_f720368_1110473546706_796139_8845" client="_9_5_f720368_1110473546799_27626_10801" contract="_9_5_f720368_1110473546706_796139_8845"/>
            <interfaceRealization xmi:id="_10_5_622020d_1132928324152_241578_18615" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546799_27626_10801" contract="_9_5_f720368_1110473546612_364919_7481"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_963491_10729" name="JFormattedTextField">
            <ownedComment xmi:id="_10_5_622020d_1132928317953_142176_12433" body="&lt;code>JFormattedTextField&lt;/code> extends &lt;code>JTextField&lt;/code> adding&#xA;support for formatting arbitrary values, as well as retrieving a particular&#xA;object once the user has edited the text. The following illustrates&#xA;configuring a &lt;code>JFormattedTextField&lt;/code> to edit dates:&#xA;&lt;pre>&#xA;JFormattedTextField ftf = new JFormattedTextField();&#xA;ftf.setValue(new Date());&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Once a &lt;code>JFormattedTextField&lt;/code> has been created, you can&#xA;listen for editing changes by way of adding&#xA;a &lt;code>PropertyChangeListener&lt;/code> and listening for&#xA;&lt;code>PropertyChangeEvent&lt;/code>s with the property name &lt;code>value&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>JFormattedTextField&lt;/code> allows&#xA;configuring what action should be taken when focus is lost. The possible&#xA;configurations are:&#xA;&lt;table summary=&quot;Possible JFormattedTextField configurations and their descriptions&quot;>&#xA;&lt;tr>&lt;th>&lt;p align=&quot;left&quot;>Value&lt;/p>&lt;/th>&lt;th>&lt;p align=&quot;left&quot;>Description&lt;/p>&lt;/th>&lt;/tr>&#xA;&lt;tr>&lt;td>JFormattedTextField.REVERT&#xA;&lt;td>Revert the display to match that of &lt;code>getValue&lt;/code>,&#xA;possibly losing the current edit.&#xA;&lt;tr>&lt;td>JFormattedTextField.COMMIT&#xA;&lt;td>Commits the current value. If the value being edited&#xA;isn't considered a legal value by the&#xA;&lt;code>AbstractFormatter&lt;/code> that is, a&#xA;&lt;code>ParseException&lt;/code> is thrown, then the value&#xA;will not change, and then edited value will persist.&#xA;&lt;tr>&lt;td>JFormattedTextField.COMMIT_OR_REVERT&#xA;&lt;td>Similar to &lt;code>COMMIT&lt;/code>, but if the value isn't&#xA;legal, behave like &lt;code>REVERT&lt;/code>.&#xA;&lt;tr>&lt;td>JFormattedTextField.PERSIST&#xA;&lt;td>Do nothing, don't obtain a new&#xA;&lt;code>AbstractFormatter&lt;/code>, and don't update the value.&#xA;&lt;/table>&#xA;The default is &lt;code>JFormattedTextField.COMMIT_OR_REVERT&lt;/code>,&#xA;refer to {@link #setFocusLostBehavior} for more information on this.&#xA;&lt;p>&#xA;&lt;code>JFormattedTextField&lt;/code> allows the focus to leave, even if&#xA;the currently edited value is invalid. To lock the focus down while the&#xA;&lt;code>JFormattedTextField&lt;/code> is an invalid edit state&#xA;you can attach an &lt;code>InputVerifier&lt;/code>. The following code snippet&#xA;shows a potential implementation of such an &lt;code>InputVerifier&lt;/code>:&#xA;&lt;pre>&#xA;public class FormattedTextFieldVerifier extends InputVerifier {&#xA;public boolean verify(JComponent input) {&#xA;if (input instanceof JFormattedTextField) {&#xA;JFormattedTextField ftf = (JFormattedTextField)input;&#xA;AbstractFormatter formatter = ftf.getFormatter();&#xA;if (formatter != null) {&#xA;String text = ftf.getText();&#xA;try {&#xA;formatter.stringToValue(text);&#xA;return true;&#xA;} catch (ParseException pe) {&#xA;return false;&#xA;}&#xA;}&#xA;}&#xA;return true;&#xA;}&#xA;public boolean shouldYieldFocus(JComponent input) {&#xA;return verify(input);&#xA;}&#xA;}&#xA;&lt;/pre>&#xA;&lt;p>&#xA;Alternatively, you could invoke &lt;code>commitEdit&lt;/code>, which would also&#xA;commit the value.&#xA;&lt;p>&#xA;&lt;code>JFormattedTextField&lt;/code> does not do the formatting it self,&#xA;rather formatting is done through an instance of&#xA;&lt;code>JFormattedTextField.AbstractFormatter&lt;/code> which is obtained from&#xA;an instance of &lt;code>JFormattedTextField.AbstractFormatterFactory&lt;/code>.&#xA;Instances of &lt;code>JFormattedTextField.AbstractFormatter&lt;/code> are&#xA;notified when they become active by way of the&#xA;&lt;code>install&lt;/code> method, at which point the&#xA;&lt;code>JFormattedTextField.AbstractFormatter&lt;/code> can install whatever&#xA;it needs to, typically a &lt;code>DocumentFilter&lt;/code>. Similarly when&#xA;&lt;code>JFormattedTextField&lt;/code> no longer&#xA;needs the &lt;code>AbstractFormatter&lt;/code>, it will invoke&#xA;&lt;code>uninstall&lt;/code>.&#xA;&lt;p>&#xA;&lt;code>JFormattedTextField&lt;/code> typically&#xA;queries the &lt;code>AbstractFormatterFactory&lt;/code> for an&#xA;&lt;code>AbstractFormat&lt;/code> when it gains or loses focus. Although this&#xA;can change based on the focus lost policy. If the focus lost&#xA;policy is &lt;code>JFormattedTextField.PERSIST&lt;/code>&#xA;and the &lt;code>JFormattedTextField&lt;/code> has been edited, the&#xA;&lt;code>AbstractFormatterFactory&lt;/code> will not be queried until the&#xA;value has been commited. Similarly if the focus lost policy is&#xA;&lt;code>JFormattedTextField.COMMIT&lt;/code> and an exception&#xA;is thrown from &lt;code>stringToValue&lt;/code>, the&#xA;&lt;code>AbstractFormatterFactory&lt;/code> will not be querired when focus is&#xA;lost or gained.&#xA;&lt;p>&#xA;&lt;code>JFormattedTextField.AbstractFormatter&lt;/code>&#xA;is also responsible for determining when values are commited to&#xA;the &lt;code>JFormattedTextField&lt;/code>. Some&#xA;&lt;code>JFormattedTextField.AbstractFormatter&lt;/code>s will make new values&#xA;available on every edit, and others will never commit the value. You can&#xA;force the current value to be obtained&#xA;from the current &lt;code>JFormattedTextField.AbstractFormatter&lt;/code>&#xA;by way of invoking &lt;code>commitEdit&lt;/code>. &lt;code>commitEdit&lt;/code> will&#xA;be invoked whenever return is pressed in the&#xA;&lt;code>JFormattedTextField&lt;/code>.&#xA;&lt;p>&#xA;If an &lt;code>AbstractFormatterFactory&lt;/code> has not been explicitly&#xA;set, one will be set based on the &lt;code>Class&lt;/code> of the value type after&#xA;&lt;code>setValue&lt;/code> has been invoked (assuming value is non-null).&#xA;For example, in the following code an appropriate&#xA;&lt;code>AbstractFormatterFactory&lt;/code> and &lt;code>AbstractFormatter&lt;/code>&#xA;will be created to handle formatting of numbers:&#xA;&lt;pre>&#xA;JFormattedTextField tf = new JFormattedTextField();&#xA;tf.setValue(new Number(100));&#xA;&lt;/pre>&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong> As the &lt;code>AbstractFormatter&lt;/code> will&#xA;typically install a &lt;code>DocumentFilter&lt;/code> on the&#xA;&lt;code>Document&lt;/code>, and a &lt;code>NavigationFilter&lt;/code> on the&#xA;&lt;code>JFormattedTextField&lt;/code> you should not install your own. If you do,&#xA;you are likely to see odd behavior in that the editing policy of the&#xA;&lt;code>AbstractFormatter&lt;/code> will not be enforced.&#xA;&lt;p>&#xA;&lt;strong>Warning:&lt;/strong>&#xA;Serialized objects of this class will not be compatible with&#xA;future Swing releases. The current serialization support is&#xA;appropriate for short term storage or RMI between applications running&#xA;the same version of Swing.  As of 1.4, support for long term storage&#xA;of all JavaBeans&lt;sup>&lt;font size=&quot;-2&quot;>TM&lt;/font>&lt;/sup>&#xA;has been added to the &lt;code>java.beans&lt;/code> package.&#xA;Please see {@link java.beans.XMLEncoder}.&#xA;&#xA;@version 1.22 12/19/03&#xA;@since 1.4&#xA;" annotatedElement="_9_5_f720368_1110473546799_963491_10729"/>
            <generalization xmi:id="_10_5_622020d_1132928324092_748001_18353" isSubstitutable="true" general="_9_5_f720368_1110473546799_269096_10781"/>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_167423_24174" name="FocusLostHandler" visibility="private" clientDependency="_10_5_622020d_1132928324092_134501_18355 _10_5_622020d_1132928324092_100127_18354">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_377158_12426" body="FOCUS_LOST behavior implementation&#xA;" annotatedElement="_9_5_f720368_1110473548424_167423_24174"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_100127_18354" name="" supplier="_9_5_f720368_1110473546612_953158_7669" client="_9_5_f720368_1110473548424_167423_24174" contract="_9_5_f720368_1110473546612_953158_7669"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_134501_18355" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_167423_24174" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_381007_23786" name="AbstractFormatterFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_440832_12427" body="Instances of &lt;code>AbstractFormatterFactory&lt;/code> are used by&#xA;&lt;code>JFormattedTextField&lt;/code> to obtain instances of&#xA;&lt;code>AbstractFormatter&lt;/code> which in turn are used to format values.&#xA;&lt;code>AbstractFormatterFactory&lt;/code> can return different&#xA;&lt;code>AbstractFormatter&lt;/code>s based on the state of the&#xA;&lt;code>JFormattedTextField&lt;/code>, perhaps returning different&#xA;&lt;code>AbstractFormatter&lt;/code>s when the&#xA;&lt;code>JFormattedTextField&lt;/code> has focus vs when it&#xA;doesn't have focus.&#xA;" annotatedElement="_9_5_f720368_1110473548378_381007_23786"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548378_844822_23779" name="AbstractFormatter" clientDependency="_10_5_622020d_1132928324092_490720_18356" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_331646_12428" body="Instances of &lt;code>AbstractFormatter&lt;/code> are used by&#xA;&lt;code>JFormattedTextField&lt;/code> to handle the conversion both&#xA;from an Object to a String, and back from a String to an Object.&#xA;&lt;code>AbstractFormatter&lt;/code>s can also enfore editing policies,&#xA;or navigation policies, or manipulate the&#xA;&lt;code>JFormattedTextField&lt;/code> in any way it sees fit to&#xA;enforce the desired policy.&#xA;&lt;p>&#xA;An &lt;code>AbstractFormatter&lt;/code> can only be active in&#xA;one &lt;code>JFormattedTextField&lt;/code> at a time.&#xA;&lt;code>JFormattedTextField&lt;/code> invokes&#xA;&lt;code>install&lt;/code> when it is ready to use it followed&#xA;by &lt;code>uninstall&lt;/code> when done. Subclasses&#xA;that wish to install additional state should override&#xA;&lt;code>install&lt;/code> and message super appropriately.&#xA;&lt;p>&#xA;Subclasses must override the conversion methods&#xA;&lt;code>stringToValue&lt;/code> and &lt;code>valueToString&lt;/code>. Optionally&#xA;they can override &lt;code>getActions&lt;/code>,&#xA;&lt;code>getNavigationFilter&lt;/code> and &lt;code>getDocumentFilter&lt;/code>&#xA;to restrict the &lt;code>JFormattedTextField&lt;/code> in a particular&#xA;way.&#xA;&lt;p>&#xA;Subclasses that allow the &lt;code>JFormattedTextField&lt;/code> to be in&#xA;a temporarily invalid state should invoke &lt;code>setEditValid&lt;/code>&#xA;at the appropriate times.&#xA;" annotatedElement="_9_5_f720368_1110473548378_844822_23779"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324092_490720_18356" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548378_844822_23779" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_615275_24180" name="CommitAction" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_998848_12429" body="Used to commit the edit. This extends JTextField.NotifyAction&#xA;so that &lt;code>isEnabled&lt;/code> is true while a JFormattedTextField&#xA;has focus, and extends &lt;code>actionPerformed&lt;/code> to invoke&#xA;commitEdit.&#xA;" annotatedElement="_9_5_f720368_1110473548424_615275_24180"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_118476_18357" isSubstitutable="true" general="_9_5_f720368_1110473548456_276680_24346"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_958343_24183" name="CancelAction" visibility="private">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_487387_12430" body="CancelAction will reset the value in the JFormattedTextField when&#xA;&lt;code>actionPerformed&lt;/code> is invoked. It will only be&#xA;enabled if the focused component is an instance of&#xA;JFormattedTextField.&#xA;" annotatedElement="_9_5_f720368_1110473548424_958343_24183"/>
              <generalization xmi:id="_10_5_622020d_1132928324102_101519_18358" isSubstitutable="true" general="_9_5_f720368_1110473546784_362837_10541"/>
            </nestedClassifier>
            <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548424_77498_24186" name="DocumentHandler" visibility="private" clientDependency="_10_5_622020d_1132928324102_954449_18359 _10_5_622020d_1132928324102_453709_18360">
              <ownedComment xmi:id="_10_5_622020d_1132928317913_227276_12431" body="Sets the dirty state as the document changes.&#xA;" annotatedElement="_9_5_f720368_1110473548424_77498_24186"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_954449_18359" name="" supplier="_9_5_f720368_1110473546753_81876_9845" client="_9_5_f720368_1110473548424_77498_24186" contract="_9_5_f720368_1110473546753_81876_9845"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324102_453709_18360" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473548424_77498_24186" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </nestedClassifier>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_194576_25100" name="crypto">
          <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473548065_611271_20721" name="SecretKey" isAbstract="true"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_924675_25031" name="xml">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_272557_25032" name="parsers">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_496719_10907" name="SAXParserFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_55493_12747" body="Defines a factory API that enables applications to configure and&#xA;obtain a SAX based parser to parse XML documents.&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.39 $, $Date: 2004/04/20 00:22:02 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_496719_10907"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_338315_10905" name="SAXParser" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_602763_12745" body="Defines the API that wraps an {@link org.xml.sax.XMLReader}&#xA;implementation class. In JAXP 1.0, this class wrapped the&#xA;{@link org.xml.sax.Parser} interface, however this interface was&#xA;replaced by the {@link org.xml.sax.XMLReader}. For ease&#xA;of transition, this class continues to support the same name&#xA;and interface as well as supporting new methods.&#xA;&#xA;An instance of this class can be obtained from the&#xA;{@link javax.xml.parsers.SAXParserFactory#newSAXParser()} method.&#xA;Once an instance of this class is obtained, XML can be parsed from&#xA;a variety of input sources. These input sources are InputStreams,&#xA;Files, URLs, and SAX InputSources.&lt;p>&#xA;&#xA;This static method creates a new factory instance based&#xA;on a system property setting or uses the platform default&#xA;if no property has been defined.&lt;p>&#xA;&#xA;The system property that controls which Factory implementation&#xA;to create is named &lt;code>&quot;javax.xml.parsers.SAXParserFactory&quot;&lt;/code>.&#xA;This property names a class that is a concrete subclass of this&#xA;abstract class. If no property is defined, a platform default&#xA;will be used.&lt;/p>&#xA;&#xA;As the content is parsed by the underlying parser, methods of the&#xA;given {@link org.xml.sax.HandlerBase} or the&#xA;{@link org.xml.sax.helpers.DefaultHandler} are called.&lt;p>&#xA;&#xA;Implementors of this class which wrap an underlaying implementation&#xA;can consider using the {@link org.xml.sax.helpers.ParserAdapter}&#xA;class to initially adapt their SAX1 impelemntation to work under&#xA;this revised class.&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.28.12.1.2.1 $, $Date: 2004/05/02 04:30:56 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_338315_10905"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_487679_10895" name="DocumentBuilder" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_276143_12735" body="Defines the API to obtain DOM Document instances from an XML&#xA;document. Using this class, an application programmer can obtain a&#xA;{@link Document} from XML.&lt;p>&#xA;&#xA;An instance of this class can be obtained from the&#xA;{@link DocumentBuilderFactory#newDocumentBuilder()} method. Once&#xA;an instance of this class is obtained, XML can be parsed from a&#xA;variety of input sources. These input sources are InputStreams,&#xA;Files, URLs, and SAX InputSources.&lt;p>&#xA;&#xA;Note that this class reuses several classes from the SAX API. This&#xA;does not require that the implementor of the underlying DOM&#xA;implementation use a SAX parser to parse XML document into a&#xA;&lt;code>Document&lt;/code>. It merely requires that the implementation&#xA;communicate with the application using these existing APIs.&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.25.14.1.2.1 $, $Date: 2004/06/28 18:23:44 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_487679_10895"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_293889_10901" name="FactoryFinder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_636065_12741" body="This class is duplicated for each JAXP subpackage so keep it in&#xA;sync.  It is package private.&#xA;&#xA;This code is designed to implement the JAXP 1.1 spec pluggability&#xA;feature and is designed to run on JDK version 1.1 and later including&#xA;JVMs that perform early linking like the Microsoft JVM in IE 5.  Note&#xA;however that it must be compiled on a JDK version 1.2 or later system&#xA;since it calls Thread#getContextClassLoader().  The code also runs both&#xA;as part of an unbundled jar file and when bundled as part of the JDK.&#xA;" annotatedElement="_9_5_f720368_1110473546799_293889_10901"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548581_65922_25037" name="ConfigurationError" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928324182_967403_18716" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_128958_10903" name="ParserConfigurationException">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_400085_12743" body="Indicates a serious configuration error.&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.2 $, $Date: 2003/12/06 00:21:41 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_128958_10903"/>
              <generalization xmi:id="_10_5_622020d_1132928324182_56698_18717" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_890295_10897" name="DocumentBuilderFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_458286_12737" body="Defines a factory API that enables applications to obtain a&#xA;parser that produces DOM object trees from XML documents.&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.39.16.1 $, $Date: 2004/07/17 00:22:03 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_890295_10897"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_43053_10899" name="FactoryConfigurationError">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_292929_12739" body="Thrown when a problem with configuration with the Parser Factories&#xA;exists. This error will typically be thrown when the class of a&#xA;parser factory specified in the system properties cannot be found&#xA;or instantiated.&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.2 $, $Date: 2003/12/06 00:21:42 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_43053_10899"/>
              <generalization xmi:id="_10_5_622020d_1132928324182_18762_18715" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318344_507299_12748" name="SecuritySupport" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318354_989881_12750" body="This class is duplicated for each JAXP subpackage so keep it in sync.&#xA;It is package private and therefore is not exposed as part of the JAXP&#xA;API.&#xA;&#xA;Security related methods that only work on J2SE 1.2 and newer.&#xA;" annotatedElement="_10_5_622020d_1132928318344_507299_12748"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928318284_723327_12703" name="datatype">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_964974_12724" name="XMLGregorianCalendar" clientDependency="_10_5_622020d_1132928324182_699554_18713" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_102061_12726" body="&lt;p>Representation for W3C XML Schema 1.0 date/time datatypes.&#xA;Specifically, these date/time datatypes are&#xA;&lt;a href=&quot;#DATETIME&quot;>&lt;code>dateTime&lt;/code>&lt;/a>,&#xA;&lt;a href=&quot;#TIME&quot;>&lt;code>time&lt;/code>&lt;/a>,&#xA;&lt;a href=&quot;#DATE&quot;>&lt;code>date&lt;/code>&lt;/a>,&#xA;&lt;a href=&quot;#GYEARMONTH&quot;>&lt;code>gYearMonth&lt;/code>&lt;/a>,&#xA;&lt;a href=&quot;#GMONTHDAY&quot;>&lt;code>gMonthDay&lt;/code>&lt;/a>,&#xA;&lt;a href=&quot;#GYEAR&quot;>&lt;code>gYear&lt;/code>&lt;/a>&#xA;&lt;a href=&quot;#GMONTH&quot;>&lt;code>gMonth&lt;/code>&lt;/a> and&#xA;&lt;a href=&quot;#GDAY&quot;>&lt;code>gDay&lt;/code>&lt;/a> defined in the XML Namespace&#xA;&lt;code>&quot;http://www.w3.org/2001/XMLSchema&quot;&lt;/code>.&#xA;These datatypes are normatively defined in&#xA;&lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#dateTime&quot;>W3C XML Schema 1.0 Part 2, Section 3.2.7-14&lt;/a>.&lt;/p>&#xA;&#xA;&lt;p>The table below defines the mapping between XML Schema 1.0&#xA;date/time datatype fields and this class' fields. It also summarizes&#xA;the value constraints for the date and time fields defined in&#xA;&lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#isoformats&quot;>W3C XML Schema 1.0 Part 2, Appendix D,&#xA;&lt;i>ISO 8601 Date and Time Formats&lt;/i>&lt;/a>.&lt;/p>&#xA;&#xA;&lt;a name=&quot;datetimefieldsmapping&quot;/>&#xA;&lt;table border=&quot;2&quot; rules=&quot;all&quot; cellpadding=&quot;2&quot;>&#xA;&lt;thead>&#xA;&lt;tr>&#xA;&lt;th align=&quot;center&quot; colspan=&quot;3&quot;>&#xA;Date/Time Datatype Field Mapping Between XML Schema 1.0 and Java Representation&#xA;&lt;/th>&#xA;&lt;/tr>&#xA;&lt;/thead>&#xA;&lt;tbody>&#xA;&lt;tr>&#xA;&lt;th>XML Schema 1.0&lt;br/>&#xA;datatype&lt;br/>&#xA;field&lt;/th>&#xA;&lt;th>Related&lt;br/>XMLGregorianCalendar&lt;br/>Accessor(s)&lt;/th>&#xA;&lt;th>Value Range&lt;/th>&#xA;&lt;/tr>&#xA;&lt;a name=&quot;datetimefield-year&quot;/>&#xA;&lt;tr>&#xA;&lt;td> year &lt;/td>&#xA;&lt;td> {@link #getYear()} + {@link #getEon()} or&lt;br/>&#xA;{@link #getEonAndYear}&#xA;&lt;/td>&#xA;&lt;td> &lt;code>getYear()&lt;/code> is a value between -(10^9-1) to (10^9)-1&#xA;or {@link DatatypeConstants#FIELD_UNDEFINED}.&lt;br/>&#xA;{@link #getEon()} is high order year value in billion of years.&lt;br/>&#xA;&lt;code>getEon()&lt;/code> has values greater than or equal to (10^9) or less than or equal to -(10^9).&#xA;A value of null indicates field is undefined.&lt;/br>&#xA;Given that &lt;a href=&quot;http://www.w3.org/2001/05/xmlschema-errata#e2-63&quot;>XML Schema 1.0 errata&lt;/a> states that the year zero&#xA;will be a valid lexical value in a future version of XML Schema,&#xA;this class allows the year field to be set to zero. Otherwise,&#xA;the year field value is handled exactly as described&#xA;in the errata and [ISO-8601-1988]. Note that W3C XML Schema 1.0&#xA;validation does not allow for the year field to have a value of zero.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;a name=&quot;datetimefield-month&quot;/>&#xA;&lt;tr>&#xA;&lt;td> month &lt;/td>&#xA;&lt;td> {@link #getMonth()} &lt;/td>&#xA;&lt;td> 1 to 12 or {@link DatatypeConstants#FIELD_UNDEFINED} &lt;/td>&#xA;&lt;/tr>&#xA;&lt;a name=&quot;datetimefield-day&quot;/>&#xA;&lt;tr>&#xA;&lt;td> day &lt;/td>&#xA;&lt;td> {@link #getDay()} &lt;/td>&#xA;&lt;td> Independent of month, max range is 1 to 31 or {@link DatatypeConstants#FIELD_UNDEFINED}.&lt;br/>&#xA;The normative value constraint stated relative to month&#xA;field's value is in &lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#isoformats&quot;>W3C XML Schema 1.0 Part 2, Appendix D&lt;/a>.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr id=&quot;datetimefield-hour&quot;>&#xA;&lt;td>hour&lt;/td>&#xA;&lt;td>{@link #getHour()}&lt;/td>&#xA;&lt;td>&#xA;0 to 24 or {@link DatatypeConstants#FIELD_UNDEFINED}.&#xA;For a value of 24, the minute and second field must be zero per&#xA;&lt;a href=&quot;http://www.w3.org/2001/05/xmlschema-errata#e2-45&quot;>XML Schema Errata&lt;/a>.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;a name=&quot;datetimefield-minute&quot;/>&#xA;&lt;tr>&#xA;&lt;td> minute &lt;/td>&#xA;&lt;td> {@link #getMinute()} &lt;/td>&#xA;&lt;td> 0 to 59 or {@link DatatypeConstants#FIELD_UNDEFINED} &lt;/td>&#xA;&lt;/tr>&#xA;&lt;a name=&quot;datetimefield-second&quot;/>&#xA;&lt;tr>&#xA;&lt;td>second&lt;/td>&#xA;&lt;td>&#xA;{@link #getSecond()} + {@link #getMillisecond()}/1000 or&lt;br/>&#xA;{@link #getSecond()} + {@link #getFractionalSecond()}&#xA;&lt;/td>&#xA;&lt;td>&#xA;{@link #getSecond()} from 0 to 60 or {@link DatatypeConstants#FIELD_UNDEFINED}.&lt;br/>&#xA;&lt;i>(Note: 60 only allowable for leap second.)&lt;/i>&lt;br/>&#xA;{@link #getFractionalSecond()} allows for infinite precision over the range from 0.0 to 1.0 when&#xA;the {@link #getSecond()} is defined.&lt;br/>&#xA;&lt;code>FractionalSecond&lt;/code> is optional and has a value of &lt;code>null&lt;/code> when it is undefined.&lt;br />&#xA;{@link #getMillisecond()} is the convenience&#xA;millisecond precision of value of {@link #getFractionalSecond()}.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr id=&quot;datetimefield-timezone&quot;>&#xA;&lt;td> timezone &lt;/td>&#xA;&lt;td> {@link #getTimezone()} &lt;/td>&#xA;&lt;td> Number of minutes or {@link DatatypeConstants#FIELD_UNDEFINED}.&#xA;Value range from -14 hours (-14 * 60 minutes) to 14 hours (14 * 60 minutes).&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/tbody>&#xA;&lt;/table>&#xA;&#xA;&lt;p>All maximum value space constraints listed for the fields in the table&#xA;above are checked by factory methods, @{link DatatypeFactory},&#xA;setter methods and parse methods of&#xA;this class. &lt;code>IllegalArgumentException&lt;/code> is thrown when a&#xA;parameter's value is outside the value constraint for the field or&#xA;if the composite&#xA;values constitute an invalid XMLGregorianCalendar instance (for example, if&#xA;the 31st of June is specified).&#xA;&lt;/p>&#xA;&#xA;&lt;p>The following operations are defined for this class:&#xA;&lt;ul>&#xA;&lt;li>accessors/mutators for independent date/time fields&lt;/li>&#xA;&lt;li>conversion between this class and W3C XML Schema 1.0 lexical representation,&#xA;{@link #toString()}, {@link DatatypeFactory#newXMLGregorianCalendar(String lexicalRepresentation)}&lt;/li>&#xA;&lt;li>conversion between this class and {@link GregorianCalendar},&#xA;{@link #toGregorianCalendar(java.util.TimeZone timezone, java.util.Locale aLocale, XMLGregorianCalendar defaults)},&#xA;{@link DatatypeFactory}&lt;/li>&#xA;&lt;li>partial order relation comparator method, {@link #compare(XMLGregorianCalendar xmlGregorianCalendar)}&lt;/li>&#xA;&lt;li>{@link #equals(Object)} defined relative to {@link #compare(XMLGregorianCalendar xmlGregorianCalendar)}.&lt;/li>&#xA;&lt;li>addition operation with {@link Duration}&#xA;instance as defined in &lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes&quot;>&#xA;W3C XML Schema 1.0 Part 2, Appendix E, &lt;i>Adding durations to dateTimes&lt;/i>&lt;/a>.&#xA;&lt;/li>&#xA;&lt;/ul>&#xA;&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Joseph.Fialli@Sun.com&quot;>Joseph Fialli&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.28.4.2.2.4.2.1.2.2.2.6 $, $Date: 2004/06/09 19:06:01 $&#xA;@see Duration&#xA;@see DatatypeFactory&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318294_964974_12724"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_699554_18713" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_10_5_622020d_1132928318294_964974_12724" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_890589_12707" name="DatatypeConstants" isLeaf="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318294_293963_12711" body="&lt;p>Utility class to contain basic Datatype values as constants.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.2.2.1 $, $Date: 2004/04/28 23:12:57 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318294_890589_12707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_470050_12708" name="Field" isLeaf="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318294_94805_12709" body="Type-safe enum class that represents six fields&#xA;of the {@link Duration} class.&#xA;" annotatedElement="_10_5_622020d_1132928318294_470050_12708"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_641940_12704" name="DatatypeConfigurationException">
              <ownedComment xmi:id="_10_5_622020d_1132928318294_903138_12706" body="&lt;p>Indicates a serious configuration error.&lt;/p>&#xA;&#xA;TODO: support all constructors&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.1 $, $Date: 2004/03/06 00:22:23 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318294_641940_12704"/>
              <generalization xmi:id="_10_5_622020d_1132928324182_325670_18710" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_771800_12715" name="Duration" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318294_376245_12717" body="&lt;p>Immutable representation of a time span as defined in&#xA;the W3C XML Schema 1.0 specification.&lt;/p>&#xA;&#xA;&lt;p>A Duration object represents a period of Gregorian time,&#xA;which consists of six fields (years, months, days, hours,&#xA;minutes, and seconds) plus a sign (+/-) field.&lt;/p>&#xA;&#xA;&lt;p>The first five fields have non-negative (>=0) integers or null&#xA;(which represents that the field is not set),&#xA;and the seconds field has a non-negative decimal or null.&#xA;A negative sign indicates a negative duration.&lt;/p>&#xA;&#xA;&lt;p>This class provides a number of methods that make it easy&#xA;to use for the duration datatype of XML Schema 1.0 with&#xA;the errata.&lt;/p>&#xA;&#xA;&lt;h2>Order relationship&lt;/h2>&#xA;&lt;p>Duration objects only have partial order, where two values A and B&#xA;maybe either:&lt;/p>&#xA;&lt;ol>&#xA;&lt;li>A&lt;B (A is shorter than B)&#xA;&lt;li>A>B (A is longer than B)&#xA;&lt;li>A==B   (A and B are of the same duration)&#xA;&lt;li>A&lt;>B (Comparison between A and B is indeterminate)&#xA;&lt;/ol>&#xA;&lt;p>For example, 30 days cannot be meaningfully compared to one month.&#xA;The {@link #compare(Duration duration)} method implements this&#xA;relationship.&lt;/p>&#xA;&#xA;&lt;p>See the {@link #isLongerThan(Duration)} method for details about&#xA;the order relationship among &lt;code>Duration&lt;/code> objects.&lt;/p>&#xA;&#xA;&lt;h2>Operations over Duration&lt;/h2>&#xA;&lt;p>This class provides a set of basic arithmetic operations, such&#xA;as addition, subtraction and multiplication.&#xA;Because durations don't have total order, an operation could&#xA;fail for some combinations of operations. For example, you cannot&#xA;subtract 15 days from 1 month. See the javadoc of those methods&#xA;for detailed conditions where this could happen.&lt;/p>&#xA;&#xA;&lt;p>Also, division of a duration by a number is not provided because&#xA;the &lt;code>Duration&lt;/code> class can only deal with finite precision&#xA;decimal numbers. For example, one cannot represent 1 sec divided by 3.&lt;/p>&#xA;&#xA;&lt;p>However, you could substitute a division by 3 with multiplying&#xA;by numbers such as 0.3 or 0.333.&lt;/p>&#xA;&#xA;&lt;h2>Range of allowed values&lt;/h2>&#xA;&lt;p>&#xA;Because some operations of &lt;code>Duration&lt;/code> rely on {@link Calendar}&#xA;even though {@link Duration} can hold very large or very small values,&#xA;some of the methods may not work correctly on such &lt;code>Duration&lt;/code>s.&#xA;The impacted methods document their dependency on {@link Calendar}.&#xA;&#xA;&#xA;@author &lt;a href=&quot;mailto:Joseph.Fialli@Sun.COM&quot;>Joseph Fialli&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.36.8.1.4.3 $, $Date: 2004/06/07 06:33:50 $&#xA;@see XMLGregorianCalendar#add(Duration)&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318294_771800_12715"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_118941_12718" name="FactoryFinder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318294_258951_12723" body="This class is duplicated for each JAXP subpackage so keep it in&#xA;sync.  It is package private.&#xA;&#xA;This code is designed to implement the JAXP 1.1 spec pluggability&#xA;feature and is designed to run on JDK version 1.1 and later including&#xA;JVMs that perform early linking like the Microsoft JVM in IE 5.  Note&#xA;however that it must be compiled on a JDK version 1.2 or later system&#xA;since it calls Thread#getContextClassLoader().  The code also runs both&#xA;as part of an unbundled jar file and when bundled as part of the JDK.&#xA;" annotatedElement="_10_5_622020d_1132928318294_118941_12718"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_532318_12719" name="ConfigurationError" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928324182_204516_18711" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
              </nestedClassifier>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_235868_12720" name="ClassLoaderFinder" visibility="private" isAbstract="true"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_276846_12721" name="ClassLoaderFinderConcrete" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928324182_486644_18712" isSubstitutable="true" general="_10_5_622020d_1132928318294_235868_12720"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318294_541714_12712" name="DatatypeFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318294_428819_12714" body="&lt;p>Factory that creates new &lt;code>javax.xml.datatype&lt;/code> &lt;code>Object&lt;/code>s that map XML to/from Java &lt;code>Object&lt;/code>s.&lt;/p>&#xA;&#xA;&lt;p id=&quot;DatatypeFactory.newInstance&quot;>{@link #newInstance()} is used to create a new &lt;code>DatatypeFactory&lt;/code>.&#xA;The following implementation resolution mechanisms are used in the following order:&lt;/p>&#xA;&lt;ol>&#xA;&lt;li>&#xA;If the system property specified by {@link #DATATYPEFACTORY_PROPERTY}, &quot;&lt;code>javax.xml.datatype.DatatypeFactory&lt;/code>&quot;,&#xA;exists, a class with the name of the property's value is instantiated.&#xA;Any Exception thrown during the instantiation process is wrapped as a {@link DatatypeConfigurationException}.&#xA;&lt;/li>&#xA;&lt;li>&#xA;If the file ${JAVA_HOME}/lib/jaxp.properties exists, it is loaded in a {@link java.util.Properties} &lt;code>Object&lt;/code>.&#xA;The &lt;code>Properties&lt;/code> &lt;code>Object &lt;/code> is then queried for the property as documented in the prior step&#xA;and processed as documented in the prior step.&#xA;&lt;/li>&#xA;&lt;li>&#xA;The services resolution mechanism is used, e.g. &lt;code>META-INF/services/java.xml.datatype.DatatypeFactory&lt;/code>.&#xA;Any Exception thrown during the instantiation process is wrapped as a {@link DatatypeConfigurationException}.&#xA;&lt;/li>&#xA;&lt;li>&#xA;The final mechanism is to attempt to instantiate the &lt;code>Class&lt;/code> specified by&#xA;{@link #DATATYPEFACTORY_IMPLEMENTATION_CLASS}, &quot;&lt;code>javax.xml.datatype.DatatypeFactoryImpl&lt;/code>&quot;.&#xA;Any Exception thrown during the instantiation process is wrapped as a {@link DatatypeConfigurationException}.&#xA;&lt;/li>&#xA;&lt;/ol>&#xA;&#xA;@author &lt;a href=&quot;mailto:Joseph.Fialli@Sun.COM&quot;>Joseph Fialli&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.1.6.2.4.3 $, $Date: 2004/06/18 08:40:14 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318294_541714_12712"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928318344_434765_12727" name="namespace">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318344_101324_12731" name="QName" clientDependency="_10_5_622020d_1132928324182_264488_18714">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_381171_12733" body="&lt;p>&lt;code>QName&lt;/code> represents a &lt;strong>qualified name&lt;/strong>&#xA;as defined in the XML specifications: &lt;a&#xA;href=&quot;http://www.w3.org/TR/xmlschema-2/#QName&quot;>XML Schema Part2:&#xA;Datatypes specification&lt;/a>, &lt;a&#xA;href=&quot;http://www.w3.org/TR/REC-xml-names/#ns-qualnames&quot;>Namespaces&#xA;in XML&lt;/a>, &lt;a&#xA;href=&quot;http://www.w3.org/XML/xml-names-19990114-errata&quot;>Namespaces&#xA;in XML Errata&lt;/a>.&lt;/p>&#xA;&#xA;&lt;p>The value of a &lt;code>QName&lt;/code> contains a &lt;strong>Namespace&#xA;URI&lt;/strong>, &lt;strong>local part&lt;/strong> and&#xA;&lt;strong>prefix&lt;/strong>.&lt;/p>&#xA;&#xA;&lt;p>The prefix is included in &lt;code>QName&lt;/code> to retain lexical&#xA;information &lt;strong>&lt;em>when present&lt;/em>&lt;/strong> in an {@link&#xA;javax.xml.transform.Source XML input source}. The prefix is&#xA;&lt;strong>&lt;em>NOT&lt;/em>&lt;/strong> used in {@link #equals(Object)&#xA;QName.equals(Object)} or to compute the {@link #hashCode()&#xA;QName.hashCode()}.  Equality and the hash code are defined using&#xA;&lt;strong>&lt;em>only&lt;/em>&lt;/strong> the Namespace URI and local part.&lt;/p>&#xA;&#xA;&lt;p>If not specified, the Namespace URI is set to {@link&#xA;javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI}.&#xA;If not specified, the prefix is set to {@link&#xA;javax.xml.XMLConstants#DEFAULT_NS_PREFIX&#xA;XMLConstants.DEFAULT_NS_PREFIX}.&lt;/p>&#xA;&#xA;&lt;p>&lt;code>QName&lt;/code> is immutable.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.10 $, $Date: 2004/02/09 23:41:21 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#QName&quot;>XML Schema Part2: Datatypes specification&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/REC-xml-names/#ns-qualnames&quot;>Namespaces in XML&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/XML/xml-names-19990114-errata&quot;>Namespaces in XML Errata&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318344_101324_12731"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324182_264488_18714" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928318344_101324_12731" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318344_843995_12728" name="NamespaceContext" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318344_715103_12730" body="&lt;p>Interface for read only XML Namespace context processing.&lt;/p>&#xA;&#xA;&lt;p>An XML Namespace has the properties:&lt;/p>&#xA;&lt;ul>&#xA;&lt;li>Namespace URI:&#xA;Namespace name expressed as a URI to which the prefix is bound&lt;/li>&#xA;&lt;li>prefix: syntactically, this is the part of the attribute name&#xA;following the &lt;code>XMLConstants.XMLNS_ATTRIBUTE&lt;/code>&#xA;(&quot;xmlns&quot;) in the Namespace declaration&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p> example: &lt;code>&lt;element xmlns:prefix=&quot;http://Namespace-name-URI&quot;>&lt;/code>&lt;/p>&#xA;&#xA;&lt;p>All &lt;code>get*(*)&lt;/code> methods operate in the current scope&#xA;for Namespace URI and prefix resolution.&lt;/p>&#xA;&#xA;&lt;p>Note that a Namespace URI can be bound to&#xA;&lt;strong>multiple&lt;/strong> prefixes in the current scope.  This can&#xA;occur when multiple &lt;code>XMLConstants.XMLNS_ATTRIBUTE&lt;/code>&#xA;(&quot;xmlns&quot;) Namespace declarations occur in the same Start-Tag and&#xA;refer to the same Namespace URI. e.g.&lt;br />&#xA;&lt;pre>&#xA;&lt;element xmlns:prefix1=&quot;http://Namespace-name-URI&quot;&#xA;xmlns:prefix2=&quot;http://Namespace-name-URI&quot;>&#xA;&lt;/pre>&#xA;This can also occur when the same Namespace URI is used in multiple&#xA;&lt;code>XMLConstants.XMLNS_ATTRIBUTE&lt;/code> (&quot;xmlns&quot;) Namespace&#xA;declarations in the logical parent element hierarchy.  e.g.&lt;br />&#xA;&lt;pre>&#xA;&lt;parent xmlns:prefix1=&quot;http://Namespace-name-URI&quot;>&#xA;&lt;child xmlns:prefix2=&quot;http://Namespace-name-URI&quot;>&#xA;...&#xA;&lt;/child>&#xA;&lt;/parent>&#xA;&lt;/pre>&lt;/p>&#xA;&#xA;&lt;p>A prefix can only be bound to a &lt;strong>single&lt;/strong>&#xA;Namespace URI in the current scope.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.4.16.1 $, $Date: 2004/06/28 18:20:38 $&#xA;@see javax.xml.XMLConstants javax.XMLConstants for declarations of common XML values&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xmlschema-2/#QName&quot;>XML Schema Part2: Datatypes&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/REC-xml-names/#ns-qualnames&quot;>Namespaces in XML&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/XML/xml-names-19990114-errata&quot;>Namespaces in XML Errata&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318344_843995_12728"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928318384_215100_12824" name="xpath">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318384_424727_12828" name="XPathConstants">
              <ownedComment xmi:id="_10_5_622020d_1132928318384_190303_12830" body="&lt;p>XPath constants.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Norman.Walsh@Sun.COM&quot;>Norman Walsh&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.COM&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.7.16.1 $, $Date: 2004/05/26 22:31:04 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xpath&quot;>XML Path Language (XPath) Version 1.0&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318384_424727_12828"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_405628_12846" name="XPathFactoryFinder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_447044_12850" body="Implementation of {@link XPathFactory#newInstance(String)}.&#xA;&#xA;@author &lt;a href=&quot;Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.2.8.1 $, $Date: 2004/05/07 00:34:05 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_405628_12846"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_149398_12847" name="SingleIterator" visibility="private" clientDependency="_10_5_622020d_1132928324192_965352_18739" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318394_324381_12848" body="Iterator that lazily computes one value and returns it." annotatedElement="_10_5_622020d_1132928318394_149398_12847"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324192_965352_18739" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_10_5_622020d_1132928318394_149398_12847" contract="_9_5_f720368_1110473546706_414385_8877"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318384_276326_12831" name="XPathException">
              <ownedComment xmi:id="_10_5_622020d_1132928318384_167402_12833" body="&lt;code>XPathException&lt;/code> represents a generic XPath exception.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.COM&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.14.12.2 $, $Date: 2004/06/15 00:07:08 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318384_276326_12831"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_551967_18736" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318404_737570_12860" name="XPathVariableResolver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318404_636249_12862" body="&lt;p>&lt;code>XPathVariableResolver&lt;/code> provides access to the set of user defined XPath variables.&lt;/p>&#xA;&#xA;&lt;p>The &lt;code>XPathVariableResolver&lt;/code> and the XPath evaluator must adhere to a contract that&#xA;cannot be directly enforced by the API.  Although variables may be mutable,&#xA;that is, an application may wish to evaluate the same XPath expression more&#xA;than once with different variable values, in the course of evaluating any&#xA;single XPath expression, a variable's value &lt;strong>&lt;em>must&lt;/em>&lt;/strong> be immutable.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.6 $, $Date: 2003/12/08 04:40:47 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318404_737570_12860"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_457823_12854" name="XPathFunctionException">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_293641_12856" body="&lt;code>XPathFunctionException&lt;/code> represents an error with an XPath function.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.3.12.1 $, $Date: 2004/06/15 00:05:02 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_457823_12854"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_785168_18740" isSubstitutable="true" general="_10_5_622020d_1132928318394_240202_12837"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_854539_12843" name="XPathFactoryConfigurationException">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_300994_12845" body="&lt;code>XPathFactoryConfigurationException&lt;/code> represents a configuration error in a &lt;code>XPathFactory&lt;/code> environment.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.6.12.1 $, $Date: 2004/06/15 00:05:02 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_854539_12843"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_273851_18738" isSubstitutable="true" general="_10_5_622020d_1132928318384_276326_12831"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318384_928814_12825" name="XPath" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318384_359716_12827" body="&lt;p>&lt;code>XPath&lt;/code> provides access to the XPath evaluation environment and expressions.&lt;/p>&#xA;&#xA;&lt;table id=&quot;XPath-evaluation&quot; border=&quot;1&quot; cellpadding=&quot;2&quot;>&#xA;&lt;thead>&#xA;&lt;tr>&#xA;&lt;th colspan=&quot;2&quot;>Evaluation of XPath Expressions.&lt;/th>&#xA;&lt;/tr>&#xA;&lt;/thead>&#xA;&lt;tbody>&#xA;&lt;tr>&#xA;&lt;td>context&lt;/td>&#xA;&lt;td>&#xA;If a request is made to evaluate the expression in the absence&#xA;of a context item, an empty document node will be used for the context.&#xA;For the purposes of evaluating XPath expressions, a DocumentFragment&#xA;is treated like a Document node.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>variables&lt;/td>&#xA;&lt;td>&#xA;If the expression contains a variable reference, its value will be found through the {@link XPathVariableResolver}&#xA;set with {@link #setXPathVariableResolver(XPathVariableResolver resolver)}.&#xA;An {@link XPathExpressionException} is raised if the variable resolver is undefined or&#xA;the resolver returns &lt;code>null&lt;/code> for the variable.&#xA;The value of a variable must be immutable through the course of any single evaluation.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>functions&lt;/td>&#xA;&lt;td>&#xA;If the expression contains a function reference, the function will be found through the {@link XPathFunctionResolver}&#xA;set with {@link #setXPathFunctionResolver(XPathFunctionResolver resolver)}.&#xA;An {@link XPathExpressionException} is raised if the function resolver is undefined or&#xA;the function resolver returns &lt;code>null&lt;/code> for the function.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>QNames&lt;/td>&#xA;&lt;td>&#xA;QNames in the expression are resolved against the XPath namespace context&#xA;set with {@link #setNamespaceContext(NamespaceContext nsContext)}.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>result&lt;/td>&#xA;&lt;td>&#xA;This result of evaluating an expression is converted to an instance of the desired return type.&#xA;Valid return types are defined in {@link XPathConstants}.&#xA;Conversion to the return type follows XPath conversion rules.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@author  &lt;a href=&quot;Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.12.14.2.2.3 $, $Date: 2004/07/01 17:49:22 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xpath&quot;>XML Path Language (XPath) Version 1.0&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318384_928814_12825"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318394_415865_12851" name="XPathFunction" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_904341_12853" body="&lt;p>&lt;code>XPathFunction&lt;/code> provides access to XPath functions.&lt;/p>&#xA;&#xA;&lt;p>Functions are identified by QName and arity in XPath.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.10 $, $Date: 2004/02/11 20:14:32 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_415865_12851"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318384_306720_12834" name="XPathExpression" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_628393_12836" body="&lt;p>&lt;code>XPathExpression&lt;/code> provides access to compiled XPath expressions.&lt;/p>&#xA;&#xA;&lt;table id=&quot;XPathExpression-evaluation&quot; border=&quot;1&quot; cellpadding=&quot;2&quot;>&#xA;&lt;thead>&#xA;&lt;tr>&#xA;&lt;th colspan=&quot;2&quot;>Evaluation of XPath Expressions.&lt;/th>&#xA;&lt;/tr>&#xA;&lt;/thead>&#xA;&lt;tbody>&#xA;&lt;tr>&#xA;&lt;td>context&lt;/td>&#xA;&lt;td>&#xA;If a request is made to evaluate the expression in the absence&#xA;of a context item, an empty document node will be used for the context.&#xA;For the purposes of evaluating XPath expressions, a DocumentFragment&#xA;is treated like a Document node.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>variables&lt;/td>&#xA;&lt;td>&#xA;If the expression contains a variable reference, its value will be found through the {@link XPathVariableResolver}.&#xA;An {@link XPathExpressionException} is raised if the variable resolver is undefined or&#xA;the resolver returns &lt;code>null&lt;/code> for the variable.&#xA;The value of a variable must be immutable through the course of any single evaluation.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>functions&lt;/td>&#xA;&lt;td>&#xA;If the expression contains a function reference, the function will be found through the {@link XPathFunctionResolver}.&#xA;An {@link XPathExpressionException} is raised if the function resolver is undefined or&#xA;the function resolver returns &lt;code>null&lt;/code> for the function.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>QNames&lt;/td>&#xA;&lt;td>&#xA;QNames in the expression are resolved against the XPath namespace context.&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>result&lt;/td>&#xA;&lt;td>&#xA;This result of evaluating an expression is converted to an instance of the desired return type.&#xA;Valid return types are defined in {@link XPathConstants}.&#xA;Conversion to the return type follows XPath conversion rules.&lt;/p>&#xA;&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.10.16.1 $, $Date: 2004/07/01 17:49:23 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xpath#section-Expressions&quot;>XML Path Language (XPath) Version 1.0, Expressions&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318384_306720_12834"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_959785_12840" name="XPathFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_575205_12842" body="&lt;p>An &lt;code>XPathFactory&lt;/code> instance can be used to create&#xA;{@link javax.xml.xpath.XPath} objects.&lt;/p>&#xA;&#xA;&lt;p>See {@link #newInstance(String uri)} for lookup mechanism.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.13.10.1 $, $Date: 2004/05/07 00:34:05 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_959785_12840"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318394_240202_12837" name="XPathExpressionException">
              <ownedComment xmi:id="_10_5_622020d_1132928318394_538715_12839" body="&lt;code>XPathExpressionException&lt;/code> represents an error in an XPath expression.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.3.12.1 $, $Date: 2004/06/15 00:05:01 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_240202_12837"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_488975_18737" isSubstitutable="true" general="_10_5_622020d_1132928318384_276326_12831"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928318394_553810_12857" name="XPathFunctionResolver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318404_479497_12859" body="&lt;p>&lt;code>XPathFunctionResolver&lt;/code> provides access to the set of user defined &lt;code>XPathFunction&lt;/code>s.&lt;/p>&#xA;&#xA;&lt;p>XPath functions are resolved by name and arity.&#xA;The resolver is not needed for XPath built-in functions and the resolver&#xA;&lt;strong>&lt;em>cannot&lt;/em>&lt;/strong> be used to override those functions.&lt;/p>&#xA;&#xA;&lt;p>In particular, the resolver is only called for functions in an another&#xA;namespace (functions with an explicit prefix). This means that you cannot&#xA;use the &lt;code>XPathFunctionResolver&lt;/code> to implement specifications&#xA;like &lt;a href=&quot;http://www.w3.org/TR/xmldsig-core/&quot;>XML-Signature Syntax&#xA;and Processing&lt;/a> which extend the function library of XPath 1.0 in the&#xA;same namespace. This is a consequence of the design of the resolver.&lt;/p>&#xA;&#xA;&lt;p>If you wish to implement additional built-in functions, you will have to&#xA;extend the underlying implementation directly.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Norman.Walsh@Sun.com&quot;>Norman Walsh&lt;/a>&#xA;@author  &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.7 $, $Date: 2004/04/01 16:07:17 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xpath#corelib&quot;>XML Path Language (XPath) Version 1.0, Core Function Library&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318394_553810_12857"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928318364_985729_12800" name="validation">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318374_647980_12807" name="SchemaFactoryFinder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318374_420781_12811" body="Implementation of {@link SchemaFactory#newInstance(String)}.&#xA;&#xA;@author &lt;a href=&quot;Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.11.6.1.2.1.4.1 $, $Date: 2004/05/07 01:22:37 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318374_647980_12807"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318374_399122_12808" name="SingleIterator" visibility="private" clientDependency="_10_5_622020d_1132928324192_852336_18734" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318374_419871_12809" body="Iterator that lazily computes one value and returns it." annotatedElement="_10_5_622020d_1132928318374_399122_12808"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324192_852336_18734" name="" supplier="_9_5_f720368_1110473546706_414385_8877" client="_10_5_622020d_1132928318374_399122_12808" contract="_9_5_f720368_1110473546706_414385_8877"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318384_629324_12821" name="ValidatorHandler" clientDependency="_10_5_622020d_1132928324192_959511_18735" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318384_203324_12823" body="Streaming validator that works on SAX stream.&#xA;&#xA;&lt;p>&#xA;A {@link ValidatorHandler} object is a thread-unsafe, non-reentrant object.&#xA;In other words, it is the application's responsibility to make&#xA;sure that one {@link ValidatorHandler} object is not used from&#xA;more than one thread at any given time.&#xA;&#xA;&lt;p>&#xA;{@link ValidatorHandler} checks if the SAX events follow&#xA;the set of constraints described in the associated {@link Schema},&#xA;and additionally it may modify the SAX events (for example&#xA;by adding default values, etc.)&#xA;&#xA;&lt;p>&#xA;{@link ValidatorHandler} extends from {@link ContentHandler},&#xA;but it refines the underlying {@link ContentHandler} in&#xA;the following way:&#xA;&lt;ol>&#xA;&lt;li>startElement/endElement events must receive non-null String&#xA;for &lt;code>uri&lt;/code>, &lt;code>localName&lt;/code>, and &lt;code>qname&lt;/code>,&#xA;even though SAX allows some of them to be null.&#xA;Similarly, the user-specified {@link ContentHandler} will receive non-null&#xA;Strings for all three parameters.&#xA;&#xA;&lt;li>Applications must ensure that {@link ValidatorHandler}'s&#xA;{@link ContentHandler#startPrefixMapping(String,String)} and&#xA;{@link ContentHandler#endPrefixMapping(String)} are invoked&#xA;properly. Similarly, the user-specified {@link ContentHandler}&#xA;will receive startPrefixMapping/endPrefixMapping events.&#xA;If the {@link ValidatorHandler} introduces additional namespace&#xA;bindings, the user-specified {@link ContentHandler} will receive&#xA;additional startPrefixMapping/endPrefixMapping events.&#xA;&#xA;&lt;li>{@link org.xml.sax.Attributes} for the&#xA;{@link ContentHandler#startElement(String,String,String,Attributes)} method&#xA;may or may not include xmlns* attributes.&#xA;&lt;/ol>&#xA;&#xA;&lt;p>&#xA;A {@link ValidatorHandler} is automatically reset every time&#xA;the startDocument method is invoked.&#xA;&#xA;&lt;h2>Recognized Properties and Features&lt;/h2>&#xA;&lt;p>&#xA;This spec defines the following feature that must be recognized&#xA;by all {@link ValidatorHandler} implementations.&#xA;&#xA;&lt;h3>&lt;code>http://xml.org/sax/features/namespace-prefixes&lt;/code>&lt;/h3>&#xA;&lt;p>&#xA;This feature controls how a {@link ValidatorHandler} introduces&#xA;namespace bindings that were not present in the original SAX event&#xA;stream.&#xA;When this feature is set to true, it must make&#xA;sure that the user's {@link ContentHandler} will see&#xA;the corresponding &lt;code>xmlns*&lt;/code> attribute in&#xA;the {@link org.xml.sax.Attributes} object of the&#xA;{@link ContentHandler#startElement(String,String,String,Attributes)}&#xA;callback. Otherwise, &lt;code>xmlns*&lt;/code> attributes must not be&#xA;added to {@link org.xml.sax.Attributes} that's passed to the&#xA;user-specified {@link ContentHandler}.&#xA;&lt;p>&#xA;(Note that regardless of this switch, namespace bindings are&#xA;always notified to applications through&#xA;{@link ContentHandler#startPrefixMapping(String,String)} and&#xA;{@link ContentHandler#endPrefixMapping(String)} methods of the&#xA;{@link ContentHandler} specified by the user.)&#xA;&#xA;&lt;p>&#xA;Note that this feature does &lt;em>NOT&lt;/em> affect the way&#xA;a {@link ValidatorHandler} receives SAX events. It merely&#xA;changes the way it augments SAX events.&#xA;&#xA;&lt;p>This feature is set to &lt;code>false&lt;/code> by default.&lt;/p>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.23.16.1 $, $Date: 2004/06/28 18:26:43 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318384_629324_12821"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928324192_959511_18735" name="" supplier="_9_5_f720368_1110473546940_673522_13282" client="_10_5_622020d_1132928318384_629324_12821" contract="_9_5_f720368_1110473546940_673522_13282"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318364_780226_12804" name="SchemaFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318374_260485_12806" body="Factory that creates {@link Schema} objects&amp;#x2E; Entry-point to&#xA;the validation API.&#xA;&#xA;&lt;p>&#xA;{@link SchemaFactory} is a schema compiler. It reads external&#xA;representations of schemas and prepares them for validation.&#xA;&#xA;&lt;p>&#xA;The {@link SchemaFactory} class is not thread-safe. In other words,&#xA;it is the application's responsibility to ensure that at most&#xA;one thread is using a {@link SchemaFactory} object at any&#xA;given moment. Implementations are encouraged to mark methods&#xA;as &lt;tt>synchronized&lt;/tt> to protect themselves from broken clients.&#xA;&#xA;&lt;p>&#xA;{@link SchemaFactory} is not re-entrant. While one of the&#xA;&lt;code>newSchema&lt;/code> methods is being invoked, applications&#xA;may not attempt to recursively invoke the &lt;code>newSchema&lt;/code> method,&#xA;even from the same thread.&#xA;&#xA;&lt;h2>&lt;a name=&quot;schemaLanguage&quot;>&lt;/a>Schema Language&lt;/h2>&#xA;&lt;p>&#xA;This spec uses a namespace URI to designate a schema language.&#xA;The following table shows the values defined by this specification.&#xA;&lt;p>&#xA;To be compliant with the spec, the implementation&#xA;is only required to support W3C XML Schema 1.0. However,&#xA;if it chooses to support other schema languages listed here,&#xA;it must conform to the relevant behaviors described in this spec.&#xA;&#xA;&lt;p>&#xA;Schema languages not listed here are expected to&#xA;introduce their own URIs to represent themselves.&#xA;The {@link SchemaFactory} class is capable of locating other&#xA;implementations for other schema languages at run-time.&#xA;&#xA;&lt;p>&#xA;Note that because the XML DTD is strongly tied to the parsing process&#xA;and has a significant effect on the parsing process, it is impossible&#xA;to define the DTD validation as a process independent from parsing.&#xA;For this reason, this specification does not define the semantics for&#xA;the XML DTD. This doesn't prohibit implentors from implementing it&#xA;in a way they see fit, but &lt;em>users are warned that any DTD&#xA;validation implemented on this interface necessarily deviate from&#xA;the XML DTD semantics as defined in the XML 1.0&lt;/em>.&#xA;&#xA;&lt;table border=&quot;1&quot; cellpadding=&quot;2&quot;>&#xA;&lt;thead>&#xA;&lt;tr>&#xA;&lt;th>value&lt;/th>&#xA;&lt;th>language&lt;/th>&#xA;&lt;/tr>&#xA;&lt;/thead>&#xA;&lt;tbody>&#xA;&lt;tr>&#xA;&lt;td>{@link javax.xml.XMLConstants#W3C_XML_SCHEMA_NS_URI} (&quot;&lt;code>http://www.w3.org/2001/XMLSchema&lt;/code>&quot;)&lt;/td>&#xA;&lt;td>&lt;a href=&quot;http://www.w3.org/TR/xmlschema-1&quot;>W3C XML Schema 1.0&lt;/a>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>{@link javax.xml.XMLConstants#RELAXNG_NS_URI} (&quot;&lt;code>http://relaxng.org/ns/structure/1.0&lt;/code>&quot;)&lt;/td>&#xA;&lt;td>&lt;a href=&quot;http://www.relaxng.org/&quot;>RELAX NG 1.0&lt;/a>&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/tbody>&#xA;&lt;/table>&#xA;&#xA;@author  &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.20.10.1.2.2 $, $Date: 2004/06/11 14:59:49 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318364_780226_12804"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318374_400486_12818" name="Validator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318384_990668_12820" body="&lt;p>A processor that checks an XML document against {@link Schema}.&lt;/p>&#xA;&#xA;&lt;p>&#xA;A validator is a thread-unsafe and non-reentrant object.&#xA;In other words, it is the application's responsibility to make&#xA;sure that one {@link Validator} object is not used from&#xA;more than one thread at any given time, and while the &lt;tt>validate&lt;/tt>&#xA;method is invoked, applications may not recursively call&#xA;the &lt;tt>validate&lt;/tt> method.&#xA;&lt;p>&#xA;&#xA;Note that while the {@link #validate(javax.xml.transform.Source)} and {@link #validate(javax.xml.transform.Source, javax.xml.transform.Result)}&#xA;methods take a {@link Source} instance, the &lt;code>Source&lt;/code>&#xA;instance must be a &lt;code>SAXSource&lt;/code> or &lt;code>DOMSource&lt;/code>.&#xA;&#xA;@author  &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.18.14.1.2.4 $, $Date: 2004/07/13 22:27:52 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318374_400486_12818"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318374_859540_12815" name="TypeInfoProvider" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318374_109161_12817" body="This class provides access to the type information determined&#xA;by {@link ValidatorHandler}.&#xA;&#xA;&lt;p>&#xA;Some schema languages, such as W3C XML Schema, encourages a validator&#xA;to report the &quot;type&quot; it assigns to each attribute/element.&#xA;Those applications who wish to access this type information can invoke&#xA;methods defined on this &quot;interface&quot; to access such type information.&#xA;&#xA;&lt;p>&#xA;Implementation of this &quot;interface&quot; can be obtained through the&#xA;{@link ValidatorHandler#getTypeInfoProvider()} method.&#xA;&#xA;@author  &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.11 $, $Date: 2004/02/06 01:16:10 $&#xA;@see org.w3c.dom.TypeInfo&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318374_859540_12815"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318374_928731_12812" name="SchemaFactoryLoader" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318374_134690_12814" body="&lt;p>Factory that creates {@link SchemaFactory}.&lt;/p>&#xA;&#xA;&lt;p>&#xA;This class is intended to be used by the implementations of&#xA;the validation API, not by users.&#xA;&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.6 $, $Date: 2004/03/17 03:58:54 $&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318374_928731_12812"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318364_634741_12801" name="Schema" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_297557_12803" body="Immutable in-memory representation of grammar.&#xA;&#xA;&lt;p>&#xA;This object represents a set of constraints that can be checked&#xA;enforced against an XML document.&#xA;&#xA;&lt;p>&#xA;A {@link Schema} object is thread safe and applications are&#xA;encouraged to share it across many parsers in many threads.&#xA;&#xA;&lt;p>&#xA;A {@link Schema} object is immutable in the sense that it shouldn't&#xA;change the set of constraints once it is created. In other words,&#xA;if an application validates the same document twice against the same&#xA;{@link Schema}, it must always produce the same result.&#xA;&#xA;&lt;p>&#xA;A {@link Schema} object is usually created from {@link SchemaFactory}.&#xA;&#xA;&lt;p>&#xA;Two kinds of validators can be created from a {@link Schema} object.&#xA;One is {@link Validator}, which provides highly-level validation&#xA;operations that cover typical use cases. The other is&#xA;{@link ValidatorHandler}, which works on top of SAX for better&#xA;modularity.&#xA;&#xA;&lt;p>&#xA;This specification does not refine&#xA;the {@link java.lang.Object#equals(java.lang.Object)} method.&#xA;In other words, if you parse the same schema twice, you may&#xA;still get &lt;code>!schemaA.equals(schemaB)&lt;/code>.&#xA;&#xA;@author &lt;a href=&quot;mailto:Kohsuke.Kawaguchi@Sun.com&quot;>Kohsuke Kawaguchi&lt;/a>&#xA;@version $Revision: 1.4 $, $Date: 2003/12/06 00:21:36 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xmlschema-1/&quot;>XML Schema Part 1: Structures&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xml11/&quot;>Extensible Markup Language (XML) 1.1&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/REC-xml&quot;>Extensible Markup Language (XML) 1.0 (Second Edition)&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318364_634741_12801"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_560851_25050" name="transform">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_608100_10929" name="ErrorListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318354_647129_12772" body="&lt;p>To provide customized error handling, implement this interface and&#xA;use the &lt;code>setErrorListener&lt;/code> method to register an instance of the&#xA;implmentation with the {@link javax.xml.transform.Transformer}.  The&#xA;&lt;code>Transformer&lt;/code> then reports all errors and warnings through this&#xA;interface.&lt;/p>&#xA;&#xA;&lt;p>If an application does &lt;em>not&lt;/em> register its own custom&#xA;&lt;code>ErrorListener&lt;/code>, the default &lt;code>ErrorListener&lt;/code>&#xA;is used which reports all warnings and errors to &lt;code>System.err&lt;/code>&#xA;and does not throw any &lt;code>Exception&lt;/code>s.&#xA;Applications are &lt;em>strongly&lt;/em> encouraged to register and use&#xA;&lt;code>ErrorListener&lt;/code>s that insure proper behavior for warnings and&#xA;errors.&lt;/p>&#xA;&#xA;&lt;p>For transformation errors, a &lt;code>Transformer&lt;/code> must use this&#xA;interface instead of throwing an &lt;code>Exception&lt;/code>: it is up to the&#xA;application to decide whether to throw an &lt;code>Exception&lt;/code> for&#xA;different types of errors and warnings.  Note however that the&#xA;&lt;code>Transformer&lt;/code> is not required to continue with the transformation&#xA;after a call to {@link #fatalError(TransformerException exception)}.&lt;/p>&#xA;&#xA;&lt;p>&lt;code>Transformer&lt;/code>s may use this mechanism to report XML parsing&#xA;errors as well as transformation errors.&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546799_608100_10929"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_797416_10945" name="TransformerConfigurationException">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_470632_12791" body="Indicates a serious configuration error.&#xA;" annotatedElement="_9_5_f720368_1110473546799_797416_10945"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_680193_18731" isSubstitutable="true" general="_9_5_f720368_1110473546799_326018_10947"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_713941_10937" name="Source" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_210134_12783" body="An object that implements this interface contains the information&#xA;needed to act as source input (XML source or transformation instructions).&#xA;" annotatedElement="_9_5_f720368_1110473546799_713941_10937"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_812065_10949" name="TransformerFactory" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_475769_12795" body="&lt;p>A TransformerFactory instance can be used to create&#xA;{@link javax.xml.transform.Transformer} and&#xA;{@link javax.xml.transform.Templates} objects.&lt;/p>&#xA;&#xA;&lt;p>The system property that determines which Factory implementation&#xA;to create is named &lt;code>&quot;javax.xml.transform.TransformerFactory&quot;&lt;/code>.&#xA;This property names a concrete subclass of the&#xA;&lt;code>TransformerFactory&lt;/code> abstract class. If the property is not&#xA;defined, a platform default is be used.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_812065_10949"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_311658_10931" name="FactoryFinder" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318354_711961_12774" body="This class is duplicated for each JAXP subpackage so keep it in&#xA;sync.  It is package private.&#xA;&#xA;This code is designed to implement the JAXP 1.1 spec pluggability&#xA;feature and is designed to run on JDK version 1.1 and later including&#xA;JVMs that perform early linking like the Microsoft JVM in IE 5.  Note&#xA;however that it must be compiled on a JDK version 1.2 or later system&#xA;since it calls Thread#getContextClassLoader().  The code also runs both&#xA;as part of an unbundled jar file and when bundled as part of the JDK.&#xA;" annotatedElement="_9_5_f720368_1110473546799_311658_10931"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548581_268272_25078" name="ConfigurationError" visibility="package">
                <generalization xmi:id="_10_5_622020d_1132928324182_418896_18730" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318364_20383_12779" name="SecuritySupport" visibility="package">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_947162_12781" body="This class is duplicated for each JAXP subpackage so keep it in sync.&#xA;It is package private and therefore is not exposed as part of the JAXP&#xA;API.&#xA;&#xA;Security related methods that only work on J2SE 1.2 and newer.&#xA;" annotatedElement="_10_5_622020d_1132928318364_20383_12779"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_391080_10933" name="OutputKeys">
              <ownedComment xmi:id="_10_5_622020d_1132928318354_429169_12776" body="Provides string constants that can be used to set&#xA;output properties for a Transformer, or to retrieve&#xA;output properties from a Transformer or Templates object.&#xA;&lt;p>All the fields in this class are read-only.&lt;/p>&#xA;&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xslt#output&quot;>&#xA;section 16 of the XSL Transformations (XSLT) W3C Recommendation&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_391080_10933"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_856218_10935" name="Result" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_251845_12778" body="&lt;p>An object that implements this interface contains the information&#xA;needed to build a transformation result tree.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_856218_10935"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_188186_10951" name="TransformerFactoryConfigurationError">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_550504_12797" body="Thrown when a problem with configuration with the Transformer Factories&#xA;exists. This error will typically be thrown when the class of a&#xA;transformation factory specified in the system properties cannot be found&#xA;or instantiated.&#xA;" annotatedElement="_9_5_f720368_1110473546799_188186_10951"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_925509_18733" isSubstitutable="true" general="_9_5_f720368_1110473546612_180337_7597"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_854655_10939" name="SourceLocator" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_571279_12785" body="This interface is primarily for the purposes of reporting where&#xA;an error occurred in the XML source or transformation instructions.&#xA;" annotatedElement="_9_5_f720368_1110473546799_854655_10939"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_610079_25058" name="sax">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_691853_10915" name="SAXResult" clientDependency="_10_5_622020d_1132928324182_608447_18721">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_420847_12758" body="&lt;p>Acts as an holder for a transformation Result.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_691853_10915"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_608447_18721" name="" supplier="_9_5_f720368_1110473546799_856218_10935" client="_9_5_f720368_1110473546799_691853_10915" contract="_9_5_f720368_1110473546799_856218_10935"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_102350_10921" name="TemplatesHandler" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_207178_12764" body="A SAX ContentHandler that may be used to process SAX&#xA;parse events (parsing transformation instructions) into a Templates object.&#xA;&#xA;&lt;p>Note that TemplatesHandler does not need to implement LexicalHandler.&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546799_102350_10921"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_986673_18724" isSubstitutable="true" general="_9_5_f720368_1110473546940_673522_13282"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_714305_10923" name="TransformerHandler" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_453173_12766" body="A TransformerHandler&#xA;listens for SAX ContentHandler parse events and transforms&#xA;them to a Result.&#xA;" annotatedElement="_9_5_f720368_1110473546799_714305_10923"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_110733_18725" isSubstitutable="true" general="_9_5_f720368_1110473546940_673522_13282"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_791037_18726" isSubstitutable="true" general="_9_5_f720368_1110473546940_555346_13254"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_107145_18727" isSubstitutable="true" general="_9_5_f720368_1110473546940_692688_13286"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_317854_10917" name="SAXSource" clientDependency="_10_5_622020d_1132928324182_285315_18722">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_54672_12760" body="&lt;p>Acts as an holder for SAX-style Source.&lt;/p>&#xA;&#xA;&lt;p>Note that XSLT requires namespace support. Attempting to transform an&#xA;input source that is not&#xA;generated with a namespace-aware parser may result in errors.&#xA;Parsers can be made namespace aware by calling the&#xA;{@link javax.xml.parsers.SAXParserFactory#setNamespaceAware(boolean awareness)} method.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.7.14.1.2.2 $, $Date: 2004/07/13 22:27:50 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_317854_10917"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_285315_18722" name="" supplier="_9_5_f720368_1110473546799_713941_10937" client="_9_5_f720368_1110473546799_317854_10917" contract="_9_5_f720368_1110473546799_713941_10937"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_425516_10919" name="SAXTransformerFactory" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_52908_12762" body="This class extends TransformerFactory to provide SAX-specific&#xA;factory methods.  It provides two types of ContentHandlers,&#xA;one for creating Transformers, the other for creating Templates&#xA;objects.&#xA;&#xA;&lt;p>If an application wants to set the ErrorHandler or EntityResolver&#xA;for an XMLReader used during a transformation, it should use a URIResolver&#xA;to return the SAXSource which provides (with getXMLReader) a reference to&#xA;the XMLReader.&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546799_425516_10919"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_524850_18723" isSubstitutable="true" general="_9_5_f720368_1110473546799_812065_10949"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_125262_10953" name="URIResolver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_26193_12799" body="&lt;p>An object that implements this interface that can be called by the processor&#xA;to turn a URI used in document(), xsl:import, or xsl:include into a Source object.&#xA;" annotatedElement="_9_5_f720368_1110473546799_125262_10953"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_33970_10941" name="Templates" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_364751_12787" body="An object that implements this interface is the runtime representation of processed&#xA;transformation instructions.&#xA;&#xA;&lt;p>Templates must be threadsafe for a given instance&#xA;over multiple threads running concurrently, and may&#xA;be used multiple times in a given session.&lt;/p>&#xA;" annotatedElement="_9_5_f720368_1110473546799_33970_10941"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_249322_25051" name="dom">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_861432_10913" name="DOMSource" clientDependency="_10_5_622020d_1132928324182_513825_18720">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_460290_12756" body="&lt;p>Acts as a holder for a transformation Source tree in the&#xA;form of a Document Object Model (DOM) tree.&lt;/p>&#xA;&#xA;&lt;p>Note that XSLT requires namespace support. Attempting to transform a DOM&#xA;that was not contructed with a namespace-aware parser may result in errors.&#xA;Parsers can be made namespace aware by calling&#xA;{@link javax.xml.parsers.DocumentBuilderFactory#setNamespaceAware(boolean awareness)}.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.5.14.1.2.2 $, $Date: 2004/07/13 22:27:49 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/DOM-Level-2&quot;>Document Object Model (DOM) Level 2 Specification&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_861432_10913"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_513825_18720" name="" supplier="_9_5_f720368_1110473546799_713941_10937" client="_9_5_f720368_1110473546799_861432_10913" contract="_9_5_f720368_1110473546799_713941_10937"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546799_703843_10909" name="DOMLocator" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_326153_12752" body="Indicates the position of a node in a source DOM, intended&#xA;primarily for error reporting.  To use a DOMLocator, the receiver of an&#xA;error must downcast the {@link javax.xml.transform.SourceLocator}&#xA;object returned by an exception. A {@link javax.xml.transform.Transformer}&#xA;may use this object for purposes other than error reporting, for instance,&#xA;to indicate the source node that originated a result node.&#xA;" annotatedElement="_9_5_f720368_1110473546799_703843_10909"/>
                <generalization xmi:id="_10_5_622020d_1132928324182_839894_18718" isSubstitutable="true" general="_9_5_f720368_1110473546799_854655_10939"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_466844_10911" name="DOMResult" clientDependency="_10_5_622020d_1132928324182_944706_18719">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_91131_12754" body="&lt;p>Acts as a holder for a transformation result tree in the form of a Document Object Model (DOM) tree.&lt;/p>&#xA;&#xA;&lt;p>If no output DOM source is set, the transformation will create a Document node as the holder for the result of the transformation,&#xA;which may be retrieved with {@link #getNode()}.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.4.16.5 $, $Date: 2004/07/13 22:27:49 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_466844_10911"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_944706_18719" name="" supplier="_9_5_f720368_1110473546799_856218_10935" client="_9_5_f720368_1110473546799_466844_10911" contract="_9_5_f720368_1110473546799_856218_10935"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_326018_10947" name="TransformerException">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_707128_12793" body="This class specifies an exceptional condition that occured&#xA;during the transformation process.&#xA;" annotatedElement="_9_5_f720368_1110473546799_326018_10947"/>
              <generalization xmi:id="_10_5_622020d_1132928324192_284398_18732" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548581_237434_25071" name="stream">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_868142_10925" name="StreamResult" clientDependency="_10_5_622020d_1132928324182_770445_18728">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_542384_12768" body="&lt;p>Acts as an holder for a transformation result,&#xA;which may be XML, plain Text, HTML, or some other form of markup.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;" annotatedElement="_9_5_f720368_1110473546799_868142_10925"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_770445_18728" name="" supplier="_9_5_f720368_1110473546799_856218_10935" client="_9_5_f720368_1110473546799_868142_10925" contract="_9_5_f720368_1110473546799_856218_10935"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_37205_10927" name="StreamSource" clientDependency="_10_5_622020d_1132928324182_695950_18729">
                <ownedComment xmi:id="_10_5_622020d_1132928318354_525137_12770" body="&lt;p>Acts as an holder for a transformation Source in the form&#xA;of a stream of XML markup.&lt;/p>&#xA;&#xA;&lt;p>&lt;em>Note:&lt;/em> Due to their internal use of either a {@link Reader} or {@link InputStream} instance,&#xA;&lt;code>StreamSource&lt;/code> instances may only be used once.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.6.12.3 $, $Date: 2004/07/13 22:27:51 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_37205_10927"/>
                <interfaceRealization xmi:id="_10_5_622020d_1132928324182_695950_18729" name="" supplier="_9_5_f720368_1110473546799_713941_10937" client="_9_5_f720368_1110473546799_37205_10927" contract="_9_5_f720368_1110473546799_713941_10937"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546799_101544_10943" name="Transformer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928318364_101977_12789" body="An instance of this abstract class can transform a&#xA;source tree into a result tree.&#xA;&#xA;&lt;p>An instance of this class can be obtained with the&#xA;{@link TransformerFactory#newTransformer TransformerFactory.newTransformer}&#xA;method. This instance may then be used to process XML from a&#xA;variety of sources and write the transformation output to a&#xA;variety of sinks.&lt;/p>&#xA;&#xA;&lt;p>An object of this class may not be used in multiple threads&#xA;running concurrently.  Different Transformers may be used&#xA;concurrently by different threads.&lt;/p>&#xA;&#xA;&lt;p>A &lt;code>Transformer&lt;/code> may be used multiple times.  Parameters and&#xA;output properties are preserved across transformations.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.9.14.1.2.4 $, $Date: 2004/06/28 18:45:41 $&#xA;" annotatedElement="_9_5_f720368_1110473546799_101544_10943"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928318404_27959_12863" name="XMLConstants" isLeaf="true">
            <ownedComment xmi:id="_10_5_622020d_1132928318404_389926_12865" body="&lt;p>Utility class to contain basic XML values as constants.&lt;/p>&#xA;&#xA;@author &lt;a href=&quot;mailto:Jeff.Suttor@Sun.com&quot;>Jeff Suttor&lt;/a>&#xA;@version $Revision: 1.10.12.1 $, $Date: 2004/05/05 20:04:51 $&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xml11/&quot;>Extensible Markup Language (XML) 1.1&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/REC-xml&quot;>Extensible Markup Language (XML) 1.0 (Second Edition)&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/XML/xml-V10-2e-errata&quot;>XML 1.0 Second Edition Specification Errata&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xml-names11/&quot;>Namespaces in XML 1.1&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/REC-xml-names&quot;>Namespaces in XML&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/XML/xml-names-19990114-errata&quot;>Namespaces in XML Errata&lt;/a>&#xA;@see &lt;a href=&quot;http://www.w3.org/TR/xmlschema-1/&quot;>XML Schema Part 1: Structures&lt;/a>&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928318404_27959_12863"/>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548081_774179_20792" name="sound">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548081_73000_20793" name="midi">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_106998_9655" name="InvalidMidiDataException">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_512321_10548" body="An &lt;code>InvalidMidiDataException&lt;/code> indicates that inappropriate MIDI&#xA;data was encountered. This often means that the data is invalid in and of&#xA;itself, from the perspective of the MIDI specification.  An example would&#xA;be an undefined status byte.  However, the exception might simply&#xA;mean that the data was invalid in the context it was used, or that&#xA;the object to which the data was given was unable to parse or use it.&#xA;For example, a file reader might not be able to parse a Type 2 MIDI file, even&#xA;though that format is defined in the MIDI specification.&#xA;&#xA;@version 1.11, 12/19/03&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_106998_9655"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_405227_16583" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_906284_9681" name="Sequencer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_32008_10576" body="A hardware or software device that plays back a MIDI&#xA;&lt;code>{@link Sequence sequence}&lt;/code> is known as a &lt;em>sequencer&lt;/em>.&#xA;A MIDI sequence contains lists of time-stamped MIDI data, such as&#xA;might be read from a standard MIDI file.  Most&#xA;sequencers also provide functions for creating and editing sequences.&#xA;&lt;p>&#xA;The &lt;code>Sequencer&lt;/code> interface includes methods for the following&#xA;basic MIDI sequencer operations:&#xA;&lt;ul>&#xA;&lt;li>obtaining a sequence from MIDI file data&lt;/li>&#xA;&lt;li>starting and stopping playback&lt;/li>&#xA;&lt;li>moving to an arbitrary position in the sequence&lt;/li>&#xA;&lt;li>changing the tempo (speed) of playback&lt;/li>&#xA;&lt;li>synchronizing playback to an internal clock or to received MIDI&#xA;messages&lt;/li>&#xA;&lt;li>controlling the timing of another device&lt;/li>&#xA;&lt;/ul>&#xA;In addition, the following operations are supported, either directly, or&#xA;indirectly through objects that the &lt;code>Sequencer&lt;/code> has access to:&#xA;&lt;ul>&#xA;&lt;li>editing the data by adding or deleting individual MIDI events or entire&#xA;tracks&lt;/li>&#xA;&lt;li>muting or soloing individual tracks in the sequence&lt;/li>&#xA;&lt;li>notifying listener objects about any meta-events or&#xA;control-change events encountered while playing back the sequence.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;@see Sequencer.SyncMode&#xA;@see #addMetaEventListener&#xA;@see ControllerEventListener&#xA;@see Receiver&#xA;@see Transmitter&#xA;@see MidiDevice&#xA;&#xA;@version 1.36, 03/12/19&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_906284_9681"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_871486_16588" isSubstitutable="true" general="_9_5_f720368_1110473546737_327342_9663"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_823323_20818" name="SyncMode">
                <ownedComment xmi:id="_10_5_622020d_1132928316191_50048_10574" body="A &lt;code>SyncMode&lt;/code> object represents one of the ways in which&#xA;a MIDI sequencer's notion of time can be synchronized with a master&#xA;or slave device.&#xA;If the sequencer is being synchronized to a master, the&#xA;sequencer revises its current time in response to messages from&#xA;the master.  If the sequencer has a slave, the sequencer&#xA;similarly sends messages to control the slave's timing.&#xA;&lt;p>&#xA;There are three predefined modes that specify possible masters&#xA;for a sequencer: &lt;code>INTERNAL_CLOCK&lt;/code>,&#xA;&lt;code>MIDI_SYNC&lt;/code>, and &lt;code>MIDI_TIME_CODE&lt;/code>.  The&#xA;latter two work if the sequencer receives MIDI messages from&#xA;another device.  In these two modes, the sequencer's time gets reset&#xA;based on system real-time timing clock messages or MIDI time code&#xA;(MTC) messages, respectively.  These two modes can also be used&#xA;as slave modes, in which case the sequencer sends the corresponding&#xA;types of MIDI messages to its receiver (whether or not the sequencer&#xA;is also receiving them from a master).  A fourth mode,&#xA;&lt;code>NO_SYNC&lt;/code>, is used to indicate that the sequencer should&#xA;not control its receiver's timing.&#xA;&#xA;@see Sequencer#setMasterSyncMode(Sequencer.SyncMode)&#xA;@see Sequencer#setSlaveSyncMode(Sequencer.SyncMode)&#xA;" annotatedElement="_9_5_f720368_1110473548081_823323_20818"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_464337_9677" name="Receiver" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_835762_10571" body="A &lt;code>Receiver&lt;/code> receives &lt;code>{@link MidiEvent}&lt;/code> objects and&#xA;typically does something useful in response, such as interpreting them to&#xA;generate sound or raw MIDI output.  Common MIDI receivers include&#xA;synthesizers and MIDI Out ports.&#xA;&#xA;@see MidiDevice&#xA;@see Synthesizer&#xA;@see Transmitter&#xA;&#xA;@version 1.21, 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_464337_9677"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_114999_9687" name="SoundbankResource" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_924714_10582" body="A &lt;code>SoundbankResource&lt;/code> represents any audio resource stored&#xA;in a &lt;code>{@link Soundbank}&lt;/code>.  Common soundbank resources include:&#xA;&lt;ul>&#xA;&lt;li>Instruments.  An instrument may be specified in a variety of&#xA;ways.  However, all soundbanks have some mechanism for defining&#xA;instruments.  In doing so, they may reference other resources&#xA;stored in the soundbank.  Each instrument has a &lt;code>Patch&lt;/code>&#xA;which specifies the MIDI program and bank by which it may be&#xA;referenced in MIDI messages.  Instrument information may be&#xA;stored in &lt;code>{@link Instrument}&lt;/code> objects.&#xA;&lt;li>Audio samples.  A sample typically is a sampled audio waveform&#xA;which contains a short sound recording whose duration is a fraction of&#xA;a second, or at most a few seconds.  These audio samples may be&#xA;used by a &lt;code>{@link Synthesizer}&lt;/code> to synthesize sound in response to MIDI&#xA;commands, or extracted for use by an application.&#xA;(The terminology reflects musicians' use of the word &quot;sample&quot; to refer&#xA;collectively to a series of contiguous audio samples or frames, rather than&#xA;to a single, instantaneous sample.)&#xA;The data class for an audio sample will be an object&#xA;that encapsulates the audio sample data itself and information&#xA;about how to interpret it (the format of the audio data), such&#xA;as an &lt;code>{@link javax.sound.sampled.AudioInputStream}&lt;/code>.&#x9;&lt;/li>&#xA;&lt;li>Embedded sequences.  A sound bank may contain built-in&#xA;song data stored in a data object such as a &lt;code>{@link Sequence}&lt;/code>.&#xA;&lt;/ul>&#xA;&lt;p>&#xA;Synthesizers that use wavetable synthesis or related&#xA;techniques play back the audio in a sample when&#xA;synthesizing notes, often when emulating the real-world instrument that&#xA;was originally recorded.  However, there is not necessarily a one-to-one&#xA;correspondence between the &lt;code>Instruments&lt;/code> and samples&#xA;in a &lt;code>Soundbank&lt;/code>.  A single &lt;code>Instrument&lt;/code> can use&#xA;multiple SoundbankResources (typically for notes of dissimilar pitch or&#xA;brightness).  Also, more than one &lt;code>Instrument&lt;/code> can use the same&#xA;sample.&#xA;&#xA;@version 1.15, 04/05/05&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_114999_9687"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_38544_9651" name="ControllerEventListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_981860_10544" body="The &lt;code>ControllerEventListener&lt;/code> interface should be implemented&#xA;by classes whose instances need to be notified when a &lt;code>Sequencer&lt;/code>&#xA;has processed a requested type of MIDI control-change event.&#xA;To register a &lt;code>ControllerEventListener&lt;/code> object to receive such&#xA;notifications, invoke the&#xA;{@link Sequencer#addControllerEventListener(ControllerEventListener, int[])&#xA;addControllerEventListener} method of &lt;code>Sequencer&lt;/code>,&#xA;specifying the types of MIDI controllers about which you are interested in&#xA;getting control-change notifications.&#xA;&#xA;@see MidiChannel#controlChange(int, int)&#xA;&#xA;@version 1.15, 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_38544_9651"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_116204_16581" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_263455_9679" name="Sequence">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_59271_10573" body="A &lt;code>Sequence&lt;/code> is a data structure containing musical&#xA;information (often an entire song or composition) that can be played&#xA;back by a &lt;code>{@link Sequencer}&lt;/code> object. Specifically, the&#xA;&lt;code>Sequence&lt;/code> contains timing&#xA;information and one or more tracks.  Each &lt;code>{@link Track track}&lt;/code> consists of a&#xA;series of MIDI events (such as note-ons, note-offs, program changes, and meta-events).&#xA;The sequence's timing information specifies the type of unit that is used&#xA;to time-stamp the events in the sequence.&#xA;&lt;p>&#xA;A &lt;code>Sequence&lt;/code> can be created from a MIDI file by reading the file&#xA;into an input stream and invoking one of the &lt;code>getSequence&lt;/code> methods of&#xA;{@link MidiSystem}.  A sequence can also be built from scratch by adding new&#xA;&lt;code>Tracks&lt;/code> to an empty &lt;code>Sequence&lt;/code>, and adding&#xA;&lt;code>{@link MidiEvent}&lt;/code> objects to these &lt;code>Tracks&lt;/code>.&#xA;&#xA;@see Sequencer#setSequence(java.io.InputStream stream)&#xA;@see Sequencer#setSequence(Sequence sequence)&#xA;@see Track#add(MidiEvent)&#xA;@see MidiFileFormat&#xA;&#xA;@version 1.27, 04/05/05&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_263455_9679"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_392701_9671" name="MidiSystem">
              <ownedComment xmi:id="_10_5_622020d_1132928316181_106178_10565" body="The &lt;code>MidiSystem&lt;/code> class provides access to the installed MIDI&#xA;system resources, including devices such as synthesizers, sequencers, and&#xA;MIDI input and output ports.  A typical simple MIDI application might&#xA;begin by invoking one or more &lt;code>MidiSystem&lt;/code> methods to learn&#xA;what devices are installed and to obtain the ones needed in that&#xA;application.&#xA;&lt;p>&#xA;The class also has methods for reading files, streams, and  URLs that&#xA;contain standard MIDI file data or soundbanks.  You can query the&#xA;&lt;code>MidiSystem&lt;/code> for the format of a specified MIDI file.&#xA;&lt;p>&#xA;You cannot instantiate a &lt;code>MidiSystem&lt;/code>; all the methods are&#xA;static.&#xA;&#xA;&lt;p>Properties can be used to specify default MIDI devices.&#xA;Both system properties and a properties file are considered.&#xA;The properties file is &quot;lib/sound.properties&quot; in the JRE&#xA;directory. If a property exists both as a system property and in the&#xA;properties file, the system property takes precedence. If none is&#xA;specified, a suitable default is chosen among the available devices.&#xA;The syntax of the properties file is specified in&#xA;{@link java.util.Properties#load(InputStream) Properties.load}. The&#xA;following table lists the available property keys and which methods&#xA;consider them:&#xA;&#xA;&lt;table border=0>&#xA;&lt;tr>&#xA;&lt;th>Property Key&lt;/th>&#xA;&lt;th>Interface&lt;/th>&#xA;&lt;th>Affected Method&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.midi.Receiver&lt;/code>&lt;/td>&#xA;&lt;td>{@link Receiver}&lt;/td>&#xA;&lt;td>{@link #getReceiver}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.midi.Sequencer&lt;/code>&lt;/td>&#xA;&lt;td>{@link Sequencer}&lt;/td>&#xA;&lt;td>{@link #getSequencer}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.midi.Synthesizer&lt;/code>&lt;/td>&#xA;&lt;td>{@link Synthesizer}&lt;/td>&#xA;&lt;td>{@link #getSynthesizer}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.midi.Transmitter&lt;/code>&lt;/td>&#xA;&lt;td>{@link Transmitter}&lt;/td>&#xA;&lt;td>{@link #getTransmitter}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;The property value consists of the provider class name&#xA;and the device name, separated by the hash mark (&quot;#&quot;).&#xA;The provider class name is the fully-qualified&#xA;name of a concrete {@link javax.sound.midi.spi.MidiDeviceProvider&#xA;MIDI device provider} class. The device name is matched against&#xA;the &lt;code>String&lt;/code> returned by the &lt;code>getName&lt;/code>&#xA;method of &lt;code>MidiDevice.Info&lt;/code>.&#xA;Either the class name, or the device name may be omitted.&#xA;If only the class name is specified, the trailing hash mark&#xA;is optional.&#xA;&#xA;&lt;p>If the provider class is specified, and it can be&#xA;successully retrieved from the installed providers,&#xA;the list of&#xA;&lt;code>MidiDevice.Info&lt;/code> objects is retrieved&#xA;from the provider. Otherwise, or when these devices&#xA;do not provide a subsequent match, the list is retrieved&#xA;from {@link #getMidiDeviceInfo} to contain&#xA;all available &lt;code>MidiDevice.Info&lt;/code> objects.&#xA;&#xA;&lt;p>If a device name is specified, the resulting list of&#xA;&lt;code>MidiDevice.Info&lt;/code> objects is searched:&#xA;the first one with a matching name, and whose&#xA;&lt;code>MidiDevice&lt;/code> implements the&#xA;respective interface, will be returned.&#xA;If no matching &lt;code>MidiDevice.Info&lt;/code> object&#xA;is found, or the device name is not specified,&#xA;the first suitable device from the resulting&#xA;list will be returned. For Sequencer and Synthesizer,&#xA;a device is suitable if it implements the respective&#xA;interface; whereas for Receiver and Transmitter, a device is&#xA;suitable if it&#xA;implements neither Sequencer nor Synthesizer and provides&#xA;at least one Receiver or Transmitter, respectively.&#xA;&#xA;For example, the property &lt;code>javax.sound.midi.Receiver&lt;/code>&#xA;with a value&#xA;&lt;code>&quot;com.sun.media.sound.MidiProvider#SunMIDI1&quot;&lt;/code>&#xA;will have the following consequences when&#xA;&lt;code>getReceiver&lt;/code> is called:&#xA;if the class &lt;code>com.sun.media.sound.MidiProvider&lt;/code> exists&#xA;in the list of installed MIDI device providers,&#xA;the first &lt;code>Receiver&lt;/code> device with name&#xA;&lt;code>&quot;SunMIDI1&quot;&lt;/code> will be returned. If it cannot&#xA;be found, the first &lt;code>Receiver&lt;/code> from that provider&#xA;will be returned, regardless of name.&#xA;If there is none, the first &lt;code>Receiver&lt;/code> with name&#xA;&lt;code>&quot;SunMIDI1&quot;&lt;/code> in the list of all devices&#xA;(as returned by &lt;code>getMidiDeviceInfo&lt;/code>) will be returned,&#xA;or, if not found, the first &lt;code>Receiver&lt;/code> that can&#xA;be found in the list of all devices is returned.&#xA;If that fails, too, a &lt;code>MidiUnavailableException&lt;/code>&#xA;is thrown.&#xA;&#xA;@version 1.66, 04/04/15&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;@author Matthias Pfisterer&#xA;" annotatedElement="_9_5_f720368_1110473546737_392701_9671"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_993452_9667" name="MidiFileFormat">
              <ownedComment xmi:id="_10_5_622020d_1132928316151_727191_10561" body="A &lt;code>MidiFileFormat&lt;/code> object encapsulates a MIDI file's&#xA;type, as well as its length and timing information.&#xA;&#xA;&lt;p>A &lt;code>MidiFileFormat&lt;/code> object can&#xA;include a set of properties. A property is a pair of key and value:&#xA;the key is of type &lt;code>String&lt;/code>, the associated property&#xA;value is an arbitrary object.&#xA;Properties specify additional informational&#xA;meta data (like a author, or copyright).&#xA;Properties are optional information, and file reader and file&#xA;writer implementations are not required to provide or&#xA;recognize properties.&#xA;&#xA;&lt;p>The following table lists some common properties that should&#xA;be used in implementations:&#xA;&#xA;&lt;table border=1>&#xA;&lt;tr>&#xA;&lt;th>Property key&lt;/th>&#xA;&lt;th>Value type&lt;/th>&#xA;&lt;th>Description&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;author&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>name of the author of this file&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;title&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>title of this file&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;copyright&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>copyright message&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;date&quot;&lt;/td>&#xA;&lt;td>{@link java.util.Date Date}&lt;/td>&#xA;&lt;td>date of the recording or release&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;comment&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>an arbitrary text&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;@see MidiSystem#getMidiFileFormat(java.io.File)&#xA;@see Sequencer#setSequence(java.io.InputStream stream)&#xA;&#xA;@version 1.17, 03/12/19&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_993452_9667"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_885464_9665" name="MidiEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928316151_293190_10559" body="MIDI events contain a MIDI message and a corresponding time-stamp&#xA;expressed in ticks, and can represent the MIDI event information&#xA;stored in a MIDI file or a &lt;code>{@link Sequence}&lt;/code> object.  The&#xA;duration of a tick is specified by the timing information contained&#xA;in the MIDI file or &lt;code>Sequence&lt;/code> object.&#xA;&lt;p>&#xA;In Java Sound, &lt;code>MidiEvent&lt;/code> objects are typically contained in a&#xA;&lt;code>{@link Track}&lt;/code>, and &lt;code>Tracks&lt;/code> are likewise&#xA;contained in a &lt;code>Sequence&lt;/code>.&#xA;&#xA;&#xA;@version 1.10 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_885464_9665"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_845017_9659" name="MetaMessage">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_604025_10552" body="A &lt;code>MetaMessage&lt;/code> is a &lt;code>{@link MidiMessage}&lt;/code> that is not meaningful to synthesizers, but&#xA;that can be stored in a MIDI file and interpreted by a sequencer program.&#xA;(See the discussion in the &lt;code>MidiMessage&lt;/code>&#xA;class description.)  The Standard MIDI Files specification defines&#xA;various types of meta-events, such as sequence number, lyric, cue point,&#xA;and set tempo.  There are also meta-events&#xA;for such information as lyrics, copyrights, tempo indications, time and key&#xA;signatures, markers, etc.  For more information, see the Standard MIDI Files 1.0&#xA;specification, which is part of the Complete MIDI 1.0 Detailed Specification&#xA;published by the MIDI Manufacturer's Association&#xA;(&lt;a href = http://www.midi.org>http://www.midi.org&lt;/a>).&#xA;&#xA;&lt;p>&#xA;When data is being transported using MIDI wire protocol,&#xA;a &lt;code>{@link ShortMessage}&lt;/code> with the status value &lt;code>0xFF&lt;/code> represents&#xA;a system reset message.  In MIDI files, this same status value denotes a &lt;code>MetaMessage&lt;/code>.&#xA;The types of meta-message are distinguished from each other by the first byte&#xA;that follows the status byte &lt;code>0xFF&lt;/code>.  The subsequent bytes are data&#xA;bytes.  As with system exclusive messages, there are an arbitrary number of&#xA;data bytes, depending on the type of &lt;code>MetaMessage&lt;/code>.&#xA;&#xA;@see MetaEventListener&#xA;&#xA;@version 1.24, 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_845017_9659"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_486563_16585" isSubstitutable="true" general="_9_5_f720368_1110473546737_33565_9669"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_611447_9695" name="Transmitter" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316201_745575_10591" body="A &lt;code>Transmitter&lt;/code> sends &lt;code>{@link MidiEvent}&lt;/code> objects to one or more&#xA;&lt;code>{@link Receiver Receivers}&lt;/code>. Common MIDI transmitters include sequencers&#xA;and MIDI input ports.&#xA;&#xA;@see Receiver&#xA;&#xA;@version 1.22, 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_611447_9695"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_562849_9675" name="Patch">
              <ownedComment xmi:id="_10_5_622020d_1132928316181_347417_10569" body="A &lt;code>Patch&lt;/code> object represents a location, on a MIDI&#xA;synthesizer, into which a single instrument is stored (loaded).&#xA;Every &lt;code>Instrument&lt;/code> object has its own &lt;code>Patch&lt;/code>&#xA;object that specifies the memory location&#xA;into which that instrument should be loaded. The&#xA;location is specified abstractly by a bank index and a program number (not by&#xA;any scheme that directly refers to a specific address or offset in RAM).&#xA;This is a hierarchical indexing scheme: MIDI provides for up to 16384 banks,&#xA;each of which contains up to 128 program locations.  For example, a&#xA;minimal sort of synthesizer might have only one bank of instruments, and&#xA;only 32 instruments (programs) in that bank.&#xA;&lt;p>&#xA;To select what instrument should play the notes on a particular MIDI&#xA;channel, two kinds of MIDI message are used that specify a patch location:&#xA;a bank-select command, and a program-change channel command.  The Java Sound&#xA;equivalent is the&#xA;{@link MidiChannel#programChange(int, int) programChange(int, int)}&#xA;method of &lt;code>MidiChannel&lt;/code>.&#xA;&#xA;@see Instrument&#xA;@see Instrument#getPatch()&#xA;@see MidiChannel#programChange(int, int)&#xA;@see Synthesizer#loadInstruments(Soundbank, Patch[])&#xA;@see Soundbank&#xA;@see Sequence#getPatchList()&#xA;&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_562849_9675"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_33565_9669" name="MidiMessage" clientDependency="_10_5_622020d_1132928323361_86187_16586" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316161_792300_10563" body="&lt;code>MidiMessage&lt;/code> is the base class for MIDI messages.  They include&#xA;not only the standard MIDI messages that a synthesizer can respond to, but also&#xA;&quot;meta-events&quot; that can be used by sequencer programs.  There are meta-events&#xA;for such information as lyrics, copyrights, tempo indications, time and key&#xA;signatures, markers, etc.  For more information, see the Standard MIDI Files 1.0&#xA;specification, which is part of the Complete MIDI 1.0 Detailed Specification&#xA;published by the MIDI Manufacturer's Association&#xA;(&lt;a href = http://www.midi.org>http://www.midi.org&lt;/a>).&#xA;&lt;p>&#xA;The base &lt;code>MidiMessage&lt;/code> class provides access to three types of&#xA;information about a MIDI message:&#xA;&lt;ul>&#xA;&lt;li>The messages's status byte&lt;/li>&#xA;&lt;li>The total length of the message in bytes (the status byte plus any data bytes)&lt;/li>&#xA;&lt;li>A byte array containing the complete message&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;&lt;code>MidiMessage&lt;/code> includes methods to get, but not set, these values.&#xA;Setting them is a subclass responsibility.&#xA;&lt;p>&#xA;&lt;a name=&quot;integersVsBytes&quot;>&lt;/a>&#xA;The MIDI standard expresses MIDI data in bytes.  However, because&#xA;Java&lt;sup>TM&lt;/sup> uses signed bytes, the Java Sound API uses integers&#xA;instead of bytes when expressing MIDI data.  For example, the&#xA;{@link #getStatus()} method of&#xA;&lt;code>MidiMessage&lt;/code> returns MIDI status bytes as integers.  If you are&#xA;processing MIDI data that originated outside Java Sound and now&#xA;is encoded as signed bytes, the bytes can&#xA;can be converted to integers using this conversion:&#xA;&lt;center>&lt;code>int i = (int)(byte &amp; 0xFF)&lt;/code>&lt;/center>&#xA;&lt;p>&#xA;If you simply need to pass a known MIDI byte value as a method parameter,&#xA;it can be expressed directly as an integer, using (for example) decimal or&#xA;hexidecimal notation.  For instance, to pass the &quot;active sensing&quot; status byte&#xA;as the first argument to ShortMessage's&#xA;{@link ShortMessage#setMessage(int) setMessage(int)}&#xA;method, you can express it as 254 or 0xFE.&#xA;&#xA;@see Track&#xA;@see Sequence&#xA;@see Receiver&#xA;&#xA;@version 1.29, 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_33565_9669"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323361_86187_16586" name="" supplier="_9_5_f720368_1110473546612_888397_7587" client="_9_5_f720368_1110473546737_33565_9669" contract="_9_5_f720368_1110473546612_888397_7587"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_153094_9689" name="Synthesizer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_766189_10584" body="A &lt;code>Synthesizer&lt;/code> generates sound.  This usually happens when one of&#xA;the &lt;code>Synthesizer&lt;/code>'s {@link MidiChannel} objects receives a&#xA;{@link MidiChannel#noteOn(int, int) noteOn} message, either&#xA;directly or via the &lt;code>Synthesizer&lt;/code> object.&#xA;Many &lt;code>Synthesizer&lt;/code>s support &lt;code>Receivers&lt;/code>, through which&#xA;MIDI events can be delivered to the &lt;code>Synthesizer&lt;/code>.&#xA;In such cases, the &lt;code>Synthesizer&lt;/code> typically responds by sending&#xA;a corresponding message to the appropriate &lt;code>MidiChannel&lt;/code>, or by&#xA;processing the event itself if the event isn't one of the MIDI channel&#xA;messages.&#xA;&lt;p>&#xA;The &lt;code>Synthesizer&lt;/code> interface includes methods for loading and&#xA;unloading instruments from soundbanks.  An instrument is a specification for synthesizing a&#xA;certain type of sound, whether that sound emulates a traditional instrument or is&#xA;some kind of sound effect or other imaginary sound. A soundbank is a collection of instruments, organized&#xA;by bank and program number (via the instrument's &lt;code>Patch&lt;/code> object).&#xA;Different &lt;code>Synthesizer&lt;/code> classes might implement different sound-synthesis&#xA;techniques, meaning that some instruments and not others might be compatible with a&#xA;given synthesizer.&#xA;Also, synthesizers may have a limited amount of memory for instruments, meaning&#xA;that not every soundbank and instrument can be used by every synthesizer, even if&#xA;the synthesis technique is compatible.&#xA;To see whether the instruments from&#xA;a certain soundbank can be played by a given synthesizer, invoke the&#xA;{@link #isSoundbankSupported(Soundbank) isSoundbankSupported} method of&#xA;&lt;code>Synthesizer&lt;/code>.&#xA;&lt;p>&#xA;&quot;Loading&quot; an instrument means that that instrument becomes available for&#xA;synthesizing notes.  The instrument is loaded into the bank and&#xA;program location specified by its &lt;code>Patch&lt;/code> object.  Loading does&#xA;not necessarily mean that subsequently played notes will immediately have&#xA;the sound of this newly loaded instrument.  For the instrument to play notes,&#xA;one of the synthesizer's &lt;code>MidiChannel&lt;/code> objects must receive (or have received)&#xA;a program-change message that causes that particular instrument's&#xA;bank and program number to be selected.&#xA;&#xA;@see MidiSystem#getSynthesizer&#xA;@see Soundbank&#xA;@see Instrument&#xA;@see MidiChannel#programChange(int, int)&#xA;@see Receiver&#xA;@see Transmitter&#xA;@see MidiDevice&#xA;&#xA;@version 1.27, 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_153094_9689"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_352208_16590" isSubstitutable="true" general="_9_5_f720368_1110473546737_327342_9663"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_327342_9663" name="MidiDevice" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316151_286766_10557" body="&lt;code>MidiDevice&lt;/code> is the base interface for all MIDI devices.&#xA;Common devices include synthesizers, sequencers, MIDI input ports, and MIDI&#xA;output ports.&#xA;&#xA;&lt;p>A &lt;code>MidiDevice&lt;/code> can be a transmitter or a receiver of&#xA;MIDI events, or both. Therefore, it can provide {@link Transmitter}&#xA;or {@link Receiver} instances (or both). Typically, MIDI IN ports&#xA;provide transmitters, MIDI OUT ports and synthesizers provide&#xA;receivers. A Sequencer typically provides transmitters for playback&#xA;and receivers for recording.&#xA;&#xA;&lt;p>A &lt;code>MidiDevice&lt;/code> can be opened and closed explicitly as&#xA;well as implicitly. Explicit opening is accomplished by calling&#xA;{@link #open}, explicit closing is done by calling {@link&#xA;#close} on the &lt;code>MidiDevice&lt;/code> instance.&#xA;If an application opens a &lt;code>MidiDevice&lt;/code>&#xA;explicitly, it has to close it explicitly to free system resources&#xA;and enable the application to exit cleanly. Implicit opening is&#xA;done by calling {@link javax.sound.midi.MidiSystem#getReceiver&#xA;MidiSystem.getReceiver} and {@link&#xA;javax.sound.midi.MidiSystem#getTransmitter&#xA;MidiSystem.getTransmitter}. The &lt;code>MidiDevice&lt;/code> used by&#xA;&lt;code>MidiSystem.getReceiver&lt;/code> and&#xA;&lt;code>MidiSystem.getTransmitter&lt;/code> is implementation-dependant&#xA;unless the properties &lt;code>javax.sound.midi.Receiver&lt;/code>&#xA;and &lt;code>javax.sound.midi.Transmitter&lt;/code> are used (see the&#xA;description of properties to select default providers in&#xA;{@link javax.sound.midi.MidiSystem}). A &lt;code>MidiDevice&lt;/code>&#xA;that was opened implicitly, is closed implicitly by closing the&#xA;&lt;code>Receiver&lt;/code> or &lt;code>Transmitter&lt;/code> that resulted in&#xA;opening it. If more than one implicitly opening&#xA;&lt;code>Receiver&lt;/code> or &lt;code>Transmitter&lt;/code> were obtained by&#xA;the application, the decive is closed after the last&#xA;&lt;code>Receiver&lt;/code> or &lt;code>Transmitter&lt;/code> has been&#xA;closed. On the other hand, calling &lt;code>getReceiver&lt;/code> or&#xA;&lt;code>getTransmitter&lt;/code> on the device instance directly does&#xA;not open the device implicitly. Closing these&#xA;&lt;code>Transmitter&lt;/code>s and &lt;code>Receiver&lt;/code>s does not close&#xA;the device implicitly. To use a device with &lt;code>Receiver&lt;/code>s&#xA;or &lt;code>Transmitter&lt;/code>s obtained this way, the device has to&#xA;be opened and closed explicitly.&#xA;&#xA;&lt;p>If implicit and explicit opening and closing are mixed on the&#xA;same &lt;code>MidiDevice&lt;/code> instance, the following rules apply:&#xA;&#xA;&lt;ul>&#xA;&lt;li>After an explicit open (either before or after implicit&#xA;opens), the device will not be closed by implicit closing. The only&#xA;way to close an explicitly opened device is an explicit close.&lt;/li>&#xA;&#xA;&lt;li>An explicit close always closes the device, even if it also has&#xA;been opened implicitly. A subsequent implicit close has no further&#xA;effect.&lt;/li>&#xA;&lt;/ul>&#xA;&#xA;To detect if a MidiDevice represents a hardware MIDI port, the&#xA;following programming technique can be used:&#xA;&#xA;&lt;pre>&#xA;MidiDevice device = ...;&#xA;if ( ! (device instanceof Sequencer) &amp;&amp; ! (device instanceof Synthesizer)) {&#xA;we're now sure that device represents a MIDI port&#xA;...&#xA;}&#xA;&lt;/pre>&#xA;&#xA;&lt;p>&#xA;A &lt;code>MidiDevice&lt;/code> includes a &lt;code>{@link MidiDevice.Info}&lt;/code> object&#xA;to provide manufacturer information and so on.&#xA;&#xA;@see Synthesizer&#xA;@see Sequencer&#xA;@see Receiver&#xA;@see Transmitter&#xA;&#xA;@version 1.38, 03/12/19&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_327342_9663"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548081_508251_20806" name="Info">
                <ownedComment xmi:id="_10_5_622020d_1132928316151_807423_10555" body="A &lt;code>MidiDevice.Info&lt;/code> object contains assorted&#xA;data about a &lt;code>{@link MidiDevice}&lt;/code>, including its&#xA;name, the company who created it, and descriptive text.&#xA;&#xA;@see MidiDevice#getDeviceInfo&#xA;" annotatedElement="_9_5_f720368_1110473548081_508251_20806"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548081_546171_20794" name="spi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_637203_9645" name="MidiFileReader" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316141_986484_10538" body="A &lt;code>MidiFileReader&lt;/code> supplies MIDI file-reading services.  Classes implementing this&#xA;interface can parse the format information from one or more types of&#xA;MIDI file, and can produce a &lt;code>Sequence&lt;/code> object from files of these types.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.13 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_637203_9645"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_774566_9649" name="SoundbankReader" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316141_346364_10542" body="A &lt;code>SoundbankReader&lt;/code> supplies soundbank file-reading services.&#xA;Concrete subclasses of &lt;code>SoundbankReader&lt;/code> parse a given&#xA;soundbank file, producing a {@link javax.sound.midi.Soundbank}&#xA;object that can be loaded into a {@link javax.sound.midi.Synthesizer}.&#xA;&#xA;@since 1.3&#xA;@version 1.18 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_774566_9649"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_588179_9643" name="MidiDeviceProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316141_407593_10536" body="A &lt;code>MidiDeviceProvider&lt;/code> is a factory or provider for a particular&#xA;type of MIDI device.&#xA;This mechanism allows the implementation to determine&#xA;how resources are managed in the creation and management of&#xA;a device.&#xA;&#xA;@version 1.19 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_588179_9643"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_956796_9647" name="MidiFileWriter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316141_812873_10540" body="A &lt;code>MidiFileWriter&lt;/code> supplies MIDI file-writing services.  Classes&#xA;that implement this interface can write one or more types of MIDI file from&#xA;a &lt;code>{@link Sequence}&lt;/code> object.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.17, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_956796_9647"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_345526_9657" name="MetaEventListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_926978_10550" body="The &lt;code>MetaEventListener&lt;/code> interface should be implemented&#xA;by classes whose instances need to be notified when a &lt;code>{@link Sequencer}&lt;/code>&#xA;has processed a &lt;code>{@link MetaMessage}&lt;/code>.&#xA;To register a &lt;code>MetaEventListener&lt;/code> object to receive such&#xA;notifications, pass it as the argument to the&#xA;&lt;code>{@link Sequencer#addMetaEventListener(MetaEventListener) addMetaEventListener}&lt;/code>&#xA;method of &lt;code>Sequencer&lt;/code>.&#xA;&#xA;@version 1.16, 03/12/19&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_345526_9657"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_8902_16584" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_147853_9685" name="Soundbank" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_913760_10580" body="A &lt;code>Soundbank&lt;/code> contains a set of &lt;code>Instruments&lt;/code>&#xA;that can be loaded into a &lt;code>Synthesizer&lt;/code>.&#xA;Note that a Java Sound &lt;code>Soundbank&lt;/code> is different from a MIDI bank.&#xA;MIDI permits up to 16383 banks, each containing up to 128 instruments&#xA;(also sometimes called programs, patches, or timbres).&#xA;However, a &lt;code>Soundbank&lt;/code> can contain 16383 times 128 instruments,&#xA;because the instruments within a &lt;code>Soundbank&lt;/code> are indexed by both&#xA;a MIDI program number and a MIDI bank number (via a &lt;code>Patch&lt;/code>&#xA;object). Thus, a &lt;code>Soundbank&lt;/code> can be thought of as a collection&#xA;of MIDI banks.&#xA;&lt;p>&#xA;&lt;code>Soundbank&lt;/code> includes methods that return &lt;code>String&lt;/code>&#xA;objects containing the sound bank's name, manufacturer, version number, and&#xA;description.  The precise content and format of these strings is left&#xA;to the implementor.&#xA;&lt;p>&#xA;Different synthesizers use a variety of synthesis techniques.  A common&#xA;one is wavetable synthesis, in which a segment of recorded sound is&#xA;played back, often with looping and pitch change.  The Downloadable Sound&#xA;(DLS) format uses segments of recorded sound, as does the Headspace Engine.&#xA;&lt;code>Soundbanks&lt;/code> and &lt;code>Instruments&lt;/code> that are based on&#xA;wavetable synthesis (or other uses of stored sound recordings) should&#xA;typically implement the &lt;code>getResources()&lt;/code>&#xA;method to provide access to these recorded segments.  This is optional,&#xA;however; the method can return an zero-length array if the synthesis technique&#xA;doesn't use sampled sound (FM synthesis and physical modeling are examples&#xA;of such techniques), or if it does but the implementor chooses not to make the&#xA;samples accessible.&#xA;&#xA;@see Synthesizer#getDefaultSoundbank&#xA;@see Synthesizer#isSoundbankSupported&#xA;@see Synthesizer#loadInstruments(Soundbank, Patch[])&#xA;@see Patch&#xA;@see Instrument&#xA;@see SoundbankResource&#xA;&#xA;@version 1.24, 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_147853_9685"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_906442_9673" name="MidiUnavailableException">
              <ownedComment xmi:id="_10_5_622020d_1132928316181_142527_10567" body="A &lt;code>MidiUnavailableException&lt;/code> is thrown when a requested MIDI&#xA;component cannot be opened or created because it is unavailable.  This often&#xA;occurs when a device is in use by another application.  More generally, it&#xA;can occur when there is a finite number of a certain kind of resource that can&#xA;be used for some purpose, and all of them are already in use (perhaps all by&#xA;this application).  For an example of the latter case, see the&#xA;{@link Transmitter#setReceiver(Receiver) setReceiver} method of&#xA;&lt;code>Transmitter&lt;/code>.&#xA;&#xA;@version 1.13, 12/19/03&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_906442_9673"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_51192_16587" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_255724_9693" name="Track">
              <ownedComment xmi:id="_10_5_622020d_1132928316201_369649_10589" body="A MIDI track is an independent stream of MIDI events (time-stamped MIDI&#xA;data) that can be stored along with other tracks in a standard MIDI file.&#xA;The MIDI specification allows only 16 channels of MIDI data, but tracks&#xA;are a way to get around this limitation.  A MIDI file can contain any number&#xA;of tracks, each containing its own stream of up to 16 channels of MIDI data.&#xA;&lt;p>&#xA;A &lt;code>Track&lt;/code> occupies a middle level in the hierarchy of data played&#xA;by a &lt;code>{@link Sequencer}&lt;/code>: sequencers play sequences, which contain tracks,&#xA;which contain MIDI events.  A sequencer may provide controls that mute&#xA;or solo individual tracks.&#xA;&lt;p>&#xA;The timing information and resolution for a track is controlled by and stored&#xA;in the sequence containing the track. A given &lt;code>Track&lt;/code>&#xA;is considered to belong to the particular &lt;code>{@link Sequence}&lt;/code> that&#xA;maintains its timing. For this reason, a new (empty) track is created by calling the&#xA;&lt;code>{@link Sequence#createTrack}&lt;/code> method, rather than by directly invoking a&#xA;&lt;code>Track&lt;/code> constructor.&#xA;&lt;p>&#xA;The &lt;code>Track&lt;/code> class provides methods to edit the track by adding&#xA;or removing &lt;code>MidiEvent&lt;/code> objects from it.  These operations keep&#xA;the event list in the correct time order.  Methods are also&#xA;included to obtain the track's size, in terms of either the number of events&#xA;it contains or its duration in ticks.&#xA;&#xA;@see Sequencer#setTrackMute&#xA;@see Sequencer#setTrackSolo&#xA;&#xA;@version 1.22, 03/12/19&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_255724_9693"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928316201_29285_10587" name="ImmutableEndOfTrack" visibility="private">
                <generalization xmi:id="_10_5_622020d_1132928323361_755732_16592" isSubstitutable="true" general="_9_5_f720368_1110473546737_845017_9659"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_605582_9697" name="VoiceStatus">
              <ownedComment xmi:id="_10_5_622020d_1132928316201_850893_10593" body="A &lt;code>VoiceStatus&lt;/code> object contains information about the current&#xA;status of one of the voices produced by a {@link Synthesizer}.&#xA;&lt;p>&#xA;MIDI synthesizers are generally capable of producing some maximum number of&#xA;simultaneous notes, also referred to as voices.  A voice is a stream&#xA;of successive single notes, and the process of assigning incoming MIDI notes to&#xA;specific voices is known as voice allocation.&#xA;However, the voice-allocation algorithm and the contents of each voice are&#xA;normally internal to a MIDI synthesizer and hidden from outside view.  One can, of&#xA;course, learn from MIDI messages which notes the synthesizer is playing, and&#xA;one might be able deduce something about the assignment of notes to voices.&#xA;But MIDI itself does not provide a means to report which notes a&#xA;synthesizer has assigned to which voice, nor even to report how many voices&#xA;the synthesizer is capable of synthesizing.&#xA;&lt;p>&#xA;In Java Sound, however, a&#xA;&lt;code>Synthesizer&lt;/code> class can expose the contents of its voices through its&#xA;{@link Synthesizer#getVoiceStatus() getVoiceStatus()} method.&#xA;This behavior is recommended but optional;&#xA;synthesizers that don't expose their voice allocation simply return a&#xA;zero-length array. A &lt;code>Synthesizer&lt;/code> that does report its voice status&#xA;should maintain this information at&#xA;all times for all of its voices, whether they are currently sounding or&#xA;not.  In other words, a given type of &lt;code>Synthesizer&lt;/code> always has a fixed&#xA;number of voices, equal to the maximum number of simultaneous notes it is&#xA;capable of sounding.&#xA;&lt;p>&#xA;&lt;A NAME=&quot;description_of_active&quot;>&lt;/A>&#xA;If the voice is not currently processing a MIDI note, it&#xA;is considered inactive.  A voice is inactive when it has&#xA;been given no note-on commands, or when every note-on command received has&#xA;been terminated by a corresponding note-off (or by an &quot;all notes off&quot;&#xA;message).  For example, this happens when a synthesizer capable of playing 16&#xA;simultaneous notes is told to play a four-note chord; only&#xA;four voices are active in this case (assuming no earlier notes are still playing).&#xA;Usually, a voice whose status is reported as active is producing audible sound, but this&#xA;is not always true; it depends on the details of the instrument (that&#xA;is, the synthesis algorithm) and how long the note has been going on.&#xA;For example, a voice may be synthesizing the sound of a single hand-clap.  Because&#xA;this sound dies away so quickly, it may become inaudible before a note-off&#xA;message is received.  In such a situation, the voice is still considered active&#xA;even though no sound is currently being produced.&#xA;&lt;p>&#xA;Besides its active or inactive status, the &lt;code>VoiceStatus&lt;/code> class&#xA;provides fields that reveal the voice's current MIDI channel, bank and&#xA;program number, MIDI note number, and MIDI volume.  All of these can&#xA;change during the course of a voice.  While the voice is inactive, each&#xA;of these fields has an unspecified value, so you should check the active&#xA;field first.&#xA;&#xA;@see Synthesizer#getMaxPolyphony&#xA;@see Synthesizer#getVoiceStatus&#xA;&#xA;@version 1.18, 12/19/03&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_605582_9697"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_868152_9653" name="Instrument" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316141_855433_10546" body="An instrument is a sound-synthesis algorithm with certain parameter&#xA;settings, usually designed to emulate a specific real-world&#xA;musical instrument or to achieve a specific sort of sound effect.&#xA;Instruments are typically stored in collections called soundbanks.&#xA;Before the instrument can be used to play notes, it must first be loaded&#xA;onto a synthesizer, and then it must be selected for use on&#xA;one or more channels, via a program-change command.  MIDI notes&#xA;that are subsequently received on those channels will be played using&#xA;the sound of the selected instrument.&#xA;&#xA;@see Soundbank&#xA;@see Soundbank#getInstruments&#xA;@see Patch&#xA;@see Synthesizer#loadInstrument(Instrument)&#xA;@see MidiChannel#programChange(int, int)&#xA;@version 1.16, 04/05/05&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_868152_9653"/>
              <generalization xmi:id="_10_5_622020d_1132928323351_410553_16582" isSubstitutable="true" general="_9_5_f720368_1110473546737_114999_9687"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_465141_9691" name="SysexMessage">
              <ownedComment xmi:id="_10_5_622020d_1132928316201_31739_10586" body="A &lt;code>SysexMessage&lt;/code> object represents a MIDI system exclusive message.&#xA;&lt;p>&#xA;When a system exclusive message is read from a MIDI file, it always has&#xA;a defined length.  Data from a system exclusive message from a MIDI file&#xA;should be stored in the data array of a &lt;code>SysexMessage&lt;/code> as&#xA;follows: the system exclusive message status byte (0xF0 or 0xF7), all&#xA;message data bytes, and finally the end-of-exclusive flag (0xF7).&#xA;The length reported by the &lt;code>SysexMessage&lt;/code> object is therefore&#xA;the length of the system exclusive data plus two: one byte for the status&#xA;byte and one for the end-of-exclusive flag.&#xA;&lt;p>&#xA;As dictated by the Standard MIDI Files specification, two status byte values are legal&#xA;for a &lt;code>SysexMessage&lt;/code> read from a MIDI file:&#xA;&lt;ul>&#xA;&lt;li>0xF0: System Exclusive message (same as in MIDI wire protocol)&lt;/li>&#xA;&lt;li>0xF7: Special System Exclusive message&lt;/li>&#xA;&lt;/ul>&#xA;&lt;p>&#xA;When Java Sound is used to handle system exclusive data that is being received&#xA;using MIDI wire protocol, it should place the data in one or more&#xA;&lt;code>SysexMessages&lt;/code>.  In this case, the length of the system exclusive data&#xA;is not known in advance; the end of the system exclusive data is marked by an&#xA;end-of-exclusive flag (0xF7) in the MIDI wire byte stream.&#xA;&lt;ul>&#xA;&lt;li>0xF0: System Exclusive message (same as in MIDI wire protocol)&lt;/li>&#xA;&lt;li>0xF7: End of Exclusive (EOX)&lt;/li>&#xA;&lt;/ul>&#xA;The first &lt;code>SysexMessage&lt;/code> object containing data for a particular system&#xA;exclusive message should have the status value 0xF0.  If this message contains all&#xA;the system exclusive data&#xA;for the message, it should end with the status byte 0xF7 (EOX).&#xA;Otherwise, additional system exclusive data should be sent in one or more&#xA;&lt;code>SysexMessages&lt;/code> with a status value of 0xF7.  The &lt;code>SysexMessage&lt;/code>&#xA;containing the last of the data for the system exclusive message should end with the&#xA;value 0xF7 (EOX) to mark the end of the system exclusive message.&#xA;&lt;p>&#xA;If system exclusive data from &lt;code>SysexMessages&lt;/code> objects is being transmitted&#xA;using MIDI wire protocol, only the initial 0xF0 status byte, the system exclusive&#xA;data itself, and the final 0xF7 (EOX) byte should be propagated; any 0xF7 status&#xA;bytes used to indicate that a &lt;code>SysexMessage&lt;/code> contains continuing system&#xA;exclusive data should not be propagated via MIDI wire protocol.&#xA;&#xA;@version 1.26, 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_465141_9691"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_90150_16591" isSubstitutable="true" general="_9_5_f720368_1110473546737_33565_9669"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_927188_9683" name="ShortMessage">
              <ownedComment xmi:id="_10_5_622020d_1132928316191_287367_10578" body="A &lt;code>ShortMessage&lt;/code> contains a MIDI message that has at most&#xA;two data bytes following its status byte.  The types of MIDI message&#xA;that satisfy this criterion are channel voice, channel mode, system common,&#xA;and system real-time--in other words, everything except system exclusive&#xA;and meta-events.  The &lt;code>ShortMessage&lt;/code> class provides methods&#xA;for getting and setting the contents of the MIDI message.&#xA;&lt;p>&#xA;A number of &lt;code>ShortMessage&lt;/code> methods have integer parameters by which&#xA;you specify a MIDI status or data byte.  If you know the numeric value, you&#xA;can express it directly.  For system common and system real-time messages,&#xA;you can often use the corresponding fields of &lt;code>ShortMessage&lt;/code>, such as&#xA;{@link #SYSTEM_RESET SYSTEM_RESET}.  For channel messages,&#xA;the upper four bits of the status byte are specified by a command value and&#xA;the lower four bits are specified by a MIDI channel number. To&#xA;convert incoming MIDI data bytes that are in the form of Java's signed bytes,&#xA;you can use the &lt;A HREF=&quot;MidiMessage.html#integersVsBytes&quot;>conversion code&lt;/A>&#xA;given in the &lt;code>{@link MidiMessage}&lt;/code> class description.&#xA;&#xA;@see SysexMessage&#xA;@see MetaMessage&#xA;&#xA;@version 1.24, 03/12/19&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;" annotatedElement="_9_5_f720368_1110473546737_927188_9683"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_911911_16589" isSubstitutable="true" general="_9_5_f720368_1110473546737_33565_9669"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_201838_9661" name="MidiChannel" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316151_972154_10554" body="A &lt;code>MidiChannel&lt;/code> object represents a single MIDI channel.&#xA;Generally, each &lt;code>MidiChannel&lt;/code> method processes a like-named MIDI&#xA;&quot;channel voice&quot; or &quot;channel mode&quot; message as defined by the MIDI specification. However,&#xA;&lt;code>MidiChannel&lt;/code> adds some &quot;get&quot; methods  that retrieve the value&#xA;most recently set by one of the standard MIDI channel messages.  Similarly,&#xA;methods for per-channel solo and mute have been added.&#xA;&lt;p>&#xA;A &lt;code>{@link Synthesizer}&lt;/code> object has a collection&#xA;of &lt;code>MidiChannels&lt;/code>, usually one for each of the 16 channels&#xA;prescribed by the MIDI 1.0 specification.  The &lt;code>Synthesizer&lt;/code>&#xA;generates sound when its &lt;code>MidiChannels&lt;/code> receive&#xA;&lt;code>noteOn&lt;/code> messages.&#xA;&lt;p>&#xA;See the MIDI 1.0 Specification for more information about the prescribed&#xA;behavior of the MIDI channel messages, which are not exhaustively&#xA;documented here.  The specification is titled &lt;code>MIDI Reference:&#xA;The Complete MIDI 1.0 Detailed Specification&lt;/code>, and is published by&#xA;the MIDI Manufacturer's Association (&lt;a href = http://www.midi.org>&#xA;http://www.midi.org&lt;/a>).&#xA;&lt;p>&#xA;MIDI was originally a protocol for reporting the gestures of a keyboard&#xA;musician.  This genesis is visible in the &lt;code>MidiChannel&lt;/code> API, which&#xA;preserves such MIDI concepts as key number, key velocity, and key pressure.&#xA;It should be understood that the MIDI data does not necessarily originate&#xA;with a keyboard player (the source could be a different kind of musician, or&#xA;software).  Some devices might generate constant values for velocity&#xA;and pressure, regardless of how the note was performed.&#xA;Also, the MIDI specification often leaves it up to the&#xA;synthesizer to use the data in the way the implementor sees fit.  For&#xA;example, velocity data need not always be mapped to volume and/or brightness.&#xA;&#xA;@see Synthesizer#getChannels&#xA;&#xA;@version 1.43, 04/22/04&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;" annotatedElement="_9_5_f720368_1110473546737_201838_9661"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548096_948655_20840" name="sampled">
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546753_568895_9749" name="UnsupportedAudioFileException">
              <ownedComment xmi:id="_10_5_622020d_1132928316281_690947_10658" body="An &lt;code>UnsupportedAudioFileException&lt;/code> is an exception indicating that an&#xA;operation failed because a file did not contain valid data of a recognized file&#xA;type and format.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.9 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546753_568895_9749"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_884415_16615" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_213641_9739" name="Mixer" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_748368_10647" body="A mixer is an audio device with one or more lines.  It need not be&#xA;designed for mixing audio signals.  A mixer that actually mixes audio&#xA;has multiple input (source) lines and at least one output (target) line.&#xA;The former are often instances of classes that implement&#xA;&lt;code>{@link SourceDataLine}&lt;/code>,&#xA;and the latter, &lt;code>{@link TargetDataLine}&lt;/code>.  &lt;code>{@link Port}&lt;/code>&#xA;objects, too, are either source lines or target lines.&#xA;A mixer can accept prerecorded, loopable sound as input, by having&#xA;some of its source lines be instances of objects that implement the&#xA;&lt;code>{@link Clip}&lt;/code> interface.&#xA;&lt;p>&#xA;Through methods of the &lt;code>Line&lt;/code> interface, which &lt;code>Mixer&lt;/code> extends,&#xA;a mixer might provide a set of controls that are global to the mixer.  For example,&#xA;the mixer can have a master gain control.  These global controls are distinct&#xA;from the controls belonging to each of the mixer's individual lines.&#xA;&lt;p>&#xA;Some mixers, especially&#xA;those with internal digital mixing capabilities, may provide&#xA;additional capabilities by implementing the &lt;code>DataLine&lt;/code> interface.&#xA;&lt;p>&#xA;A mixer can support synchronization of its lines.  When one line in&#xA;a synchronized group is started or stopped, the other lines in the group&#xA;automatically start or stop simultaneously with the explicitly affected one.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.31, 04/07/14&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_213641_9739"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_320313_16610" isSubstitutable="true" general="_9_5_f720368_1110473546737_269432_9731"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_969246_20895" name="Info">
                <ownedComment xmi:id="_10_5_622020d_1132928316271_886442_10645" body="The &lt;code>Mixer.Info&lt;/code> class represents information about an audio mixer,&#xA;including the product's name, version, and vendor, along with a textual&#xA;description.  This information may be retrieved through the&#xA;{@link Mixer#getMixerInfo() getMixerInfo}&#xA;method of the &lt;code>Mixer&lt;/code> interface.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.31, 04/07/14&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_969246_20895"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_732405_9729" name="FloatControl" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_41119_10634" body="A &lt;code>FloatControl&lt;/code> object provides control over a range of&#xA;floating-point values.  Float controls are often&#xA;represented in graphical user interfaces by continuously&#xA;adjustable objects such as sliders or rotary knobs.  Concrete subclasses&#xA;of &lt;code>FloatControl&lt;/code> implement controls, such as gain and pan, that&#xA;affect a line's audio signal in some way that an application can manipulate.&#xA;The &lt;code>{@link FloatControl.Type}&lt;/code>&#xA;inner class provides static instances of types that are used to&#xA;identify some common kinds of float control.&#xA;&lt;p>&#xA;The &lt;code>FloatControl&lt;/code> abstract class provides methods to set and get&#xA;the control's current floating-point value.  Other methods obtain the possible&#xA;range of values and the control's resolution (the smallest increment between&#xA;returned values).  Some float controls allow ramping to a&#xA;new value over a specified period of time.  &lt;code>FloatControl&lt;/code> also&#xA;includes methods that return string labels for the minimum, maximum, and midpoint&#xA;positions of the control.&#xA;&#xA;@see Line#getControls&#xA;@see Line#isControlSupported&#xA;&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;@version 1.16, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_732405_9729"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_111446_16605" isSubstitutable="true" general="_9_5_f720368_1110473546737_964580_9723"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_876787_20881" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_655093_10632" body="An instance of the &lt;code>FloatControl.Type&lt;/code> inner class identifies one kind of&#xA;float control.  Static instances are provided for the&#xA;common types.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.16, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_876787_20881"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_64956_16606" isSubstitutable="true" general="_9_5_f720368_1110473548096_163650_20869"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_101604_9745" name="SourceDataLine" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_800275_10654" body="A source data line is a data line to which data may be written.  It acts as&#xA;a source to its mixer. An application writes audio bytes to a source data line,&#xA;which handles the buffering of the bytes and delivers them to the mixer.&#xA;The mixer may mix the samples with those from other sources and then deliver&#xA;the mix to a target such as an output port (which may represent an audio output&#xA;device on a sound card).&#xA;&lt;p>&#xA;Note that the naming convention for this interface reflects the relationship&#xA;between the line and its mixer.  From the perspective of an application,&#xA;a source data line may act as a target for audio data.&#xA;&lt;p>&#xA;A source data line can be obtained from a mixer by invoking the&#xA;&lt;code>{@link Mixer#getLine getLine}&lt;/code> method of &lt;code>Mixer&lt;/code> with&#xA;an appropriate &lt;code>{@link DataLine.Info}&lt;/code> object.&#xA;&lt;p>&#xA;The &lt;code>SourceDataLine&lt;/code> interface provides a method for writing&#xA;audio data to the data line's buffer. Applications that play or mix&#xA;audio should write data to the source data line quickly enough to keep the&#xA;buffer from underflowing (emptying), which could cause discontinuities in&#xA;the audio that are perceived as clicks.  Applications can use the&#xA;&lt;code>{@link DataLine#available available}&lt;/code> method defined in the&#xA;&lt;code>DataLine&lt;/code> interface to determine the amount of data currently&#xA;queued in the data line's buffer.  The amount of data which can be written&#xA;to the buffer without blocking is the difference between the buffer size&#xA;and the amount of queued data.  If the delivery of audio output&#xA;stops due to underflow, a &lt;code>{@link LineEvent.Type#STOP STOP}&lt;/code> event is&#xA;generated.  A &lt;code>{@link LineEvent.Type#START START}&lt;/code> event is generated&#xA;when the audio output resumes.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.20 03/12/19&#xA;@see Mixer&#xA;@see DataLine&#xA;@see TargetDataLine&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_101604_9745"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_374777_16613" isSubstitutable="true" general="_9_5_f720368_1110473546737_441830_9725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_964580_9723" name="Control" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_520807_10625" body="{@link Line Lines} often have a set of controls, such as gain and pan, that affect&#xA;the audio signal passing through the line.  Java Sound's &lt;code>Line&lt;/code> objects&#xA;let you obtain a particular control object by passing its class as the&#xA;argument to a {@link Line#getControl(Control.Type) getControl} method.&#xA;&lt;p>&#xA;Because the various types of controls have different purposes and features,&#xA;all of their functionality is accessed from the subclasses that define&#xA;each kind of control.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.25, 03/12/19&#xA;&#xA;@see Line#getControls&#xA;@see Line#isControlSupported&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_964580_9723"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_163650_20869" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_350418_10623" body="An instance of the &lt;code>Type&lt;/code> class represents the type of&#xA;the control.  Static instances are provided for the&#xA;common types.&#xA;" annotatedElement="_9_5_f720368_1110473548096_163650_20869"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_630476_9741" name="Port" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_206903_10650" body="Ports are simple lines for input or output of audio to or from audio devices.&#xA;Common examples of ports that act as source lines (mixer inputs) include the microphone,&#xA;line input, and CD-ROM drive.  Ports that act as target lines (mixer outputs) include the&#xA;speaker, headphone, and line output.  You can access port using a &lt;code>{@link Port.Info}&lt;/code>&#xA;object.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.26, 04/05/05&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_630476_9741"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_673189_16611" isSubstitutable="true" general="_9_5_f720368_1110473546737_269432_9731"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_926545_20899" name="Info">
                <ownedComment xmi:id="_10_5_622020d_1132928316271_704445_10648" body="The &lt;code>Port.Info&lt;/code> class extends &lt;code>{@link Line.Info}&lt;/code>&#xA;with additional information specific to ports, including the port's name&#xA;and whether it is a source or a target for its mixer.&#xA;By definition, a port acts as either a source or a target to its mixer,&#xA;but not both.  (Audio input ports are sources; audio output ports are targets.)&#xA;&lt;p>&#xA;To learn what ports are available, you can retrieve port info objects through the&#xA;&lt;code>{@link Mixer#getSourceLineInfo getSourceLineInfo}&lt;/code> and&#xA;&lt;code>{@link Mixer#getTargetLineInfo getTargetLineInfo}&lt;/code>&#xA;methods of the &lt;code>Mixer&lt;/code> interface.  Instances of the&#xA;&lt;code>Port.Info&lt;/code> class may also be constructed and used to obtain&#xA;lines matching the parameters specified in the &lt;code>Port.Info&lt;/code> object.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.26, 04/05/05&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_926545_20899"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_968668_16612" isSubstitutable="true" general="_9_5_f720368_1110473548096_228899_20885"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_617748_9715" name="AudioSystem">
              <ownedComment xmi:id="_10_5_622020d_1132928316251_514175_10614" body="The &lt;code>AudioSystem&lt;/code> class acts as the entry point to the&#xA;sampled-audio system resources. This class lets you query and&#xA;access the mixers that are installed on the system.&#xA;&lt;code>AudioSystem&lt;/code> includes a number of&#xA;methods for converting audio data between different formats, and for&#xA;translating between audio files and streams. It also provides a method&#xA;for obtaining a &lt;code>{@link Line}&lt;/code> directly from the&#xA;&lt;code>AudioSystem&lt;/code> without dealing explicitly&#xA;with mixers.&#xA;&#xA;&lt;p>Properties can be used to specify the default mixer&#xA;for specific line types.&#xA;Both system properties and a properties file are considered.&#xA;In the Sun reference implementation, the properties file is&#xA;&quot;lib/sound.properties&quot; in the JRE&#xA;directory. If a property exists both as a system property and in the&#xA;properties file, the system property takes precedence. If none is&#xA;specified, a suitable default is chosen among the available devices.&#xA;The syntax of the properties file is specified in&#xA;{@link java.util.Properties#load(InputStream) Properties.load}. The&#xA;following table lists the available property keys and which methods&#xA;consider them:&#xA;&#xA;&lt;table border=0>&#xA;&lt;tr>&#xA;&lt;th>Property Key&lt;/th>&#xA;&lt;th>Interface&lt;/th>&#xA;&lt;th>Affected Method(s)&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.sampled.Clip&lt;/code>&lt;/td>&#xA;&lt;td>{@link Clip}&lt;/td>&#xA;&lt;td>{@link #getLine}, {@link #getClip}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.sampled.Port&lt;/code>&lt;/td>&#xA;&lt;td>{@link Port}&lt;/td>&#xA;&lt;td>{@link #getLine}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.sampled.SourceDataLine&lt;/code>&lt;/td>&#xA;&lt;td>{@link SourceDataLine}&lt;/td>&#xA;&lt;td>{@link #getLine}, {@link #getSourceDataLine}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&lt;code>javax.sound.sampled.TargetDataLine&lt;/code>&lt;/td>&#xA;&lt;td>{@link TargetDataLine}&lt;/td>&#xA;&lt;td>{@link #getLine}, {@link #getTargetDataLine}&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;The property value consists of the provider class name&#xA;and the mixer name, separated by the hash mark (&quot;#&quot;).&#xA;The provider class name is the fully-qualified&#xA;name of a concrete {@link javax.sound.sampled.spi.MixerProvider&#xA;mixer provider} class. The mixer name is matched against&#xA;the &lt;code>String&lt;/code> returned by the &lt;code>getName&lt;/code>&#xA;method of &lt;code>Mixer.Info&lt;/code>.&#xA;Either the class name, or the mixer name may be omitted.&#xA;If only the class name is specified, the trailing hash mark&#xA;is optional.&#xA;&#xA;&lt;p>If the provider class is specified, and it can be&#xA;successully retrieved from the installed providers, the list of&#xA;&lt;code>Mixer.Info&lt;/code> objects is retrieved&#xA;from the provider. Otherwise, or when these mixers&#xA;do not provide a subsequent match, the list is retrieved&#xA;from {@link #getMixerInfo} to contain&#xA;all available &lt;code>Mixer.Info&lt;/code> objects.&#xA;&#xA;&lt;p>If a mixer name is specified, the resulting list of&#xA;&lt;code>Mixer.Info&lt;/code> objects is searched:&#xA;the first one with a matching name, and whose&#xA;&lt;code>Mixer&lt;/code> provides the&#xA;respective line interface, will be returned.&#xA;If no matching &lt;code>Mixer.Info&lt;/code> object&#xA;is found, or the mixer name is not specified,&#xA;the first mixer from the resulting&#xA;list, which provides the respective line&#xA;interface, will be returned.&#xA;&#xA;For example, the property &lt;code>javax.sound.sampled.Clip&lt;/code>&#xA;with a value&#xA;&lt;code>&quot;com.sun.media.sound.MixerProvider#SunClip&quot;&lt;/code>&#xA;will have the following consequences when&#xA;&lt;code>getLine&lt;/code> is called requesting a &lt;code>Clip&lt;/code>&#xA;instance:&#xA;if the class &lt;code>com.sun.media.sound.MixerProvider&lt;/code> exists&#xA;in the list of installed mixer providers,&#xA;the first &lt;code>Clip&lt;/code> from the first mixer with name&#xA;&lt;code>&quot;SunClip&quot;&lt;/code> will be returned. If it cannot&#xA;be found, the first &lt;code>Clip&lt;/code> from the first mixer&#xA;of the specified provider will be returned, regardless of name.&#xA;If there is none, the first &lt;code>Clip&lt;/code> from the first&#xA;&lt;code>Mixer&lt;/code> with name&#xA;&lt;code>&quot;SunClip&quot;&lt;/code> in the list of all mixers&#xA;(as returned by &lt;code>getMixerInfo&lt;/code>) will be returned,&#xA;or, if not found, the first &lt;code>Clip&lt;/code> of the first&#xA;&lt;code>Mixer&lt;/code>that can be found in the list of all&#xA;mixers is returned.&#xA;If that fails, too, an &lt;code>IllegalArgumentException&lt;/code>&#xA;is thrown.&#xA;&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;@author Matthias Pfisterer&#xA;@author Kevin P. Smith&#xA;@version 1.81, 04/07/14&#xA;&#xA;@see AudioFormat&#xA;@see AudioInputStream&#xA;@see Mixer&#xA;@see Line&#xA;@see Line.Info&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_617748_9715"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546753_124786_9747" name="TargetDataLine" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316281_60299_10656" body="A target data line is a type of &lt;code>{@link DataLine}&lt;/code> from which&#xA;audio data can be read.  The most common example is a data line that gets&#xA;its data from an audio capture device.  (The device is implemented as a&#xA;mixer that writes to the target data line.)&#xA;&lt;p>&#xA;Note that the naming convention for this interface reflects the relationship&#xA;between the line and its mixer.  From the perspective of an application,&#xA;a target data line may act as a source for audio data.&#xA;&lt;p>&#xA;The target data line can be obtained from a mixer by invoking the&#xA;&lt;code>{@link Mixer#getLine getLine}&lt;/code>&#xA;method of &lt;code>Mixer&lt;/code> with an appropriate&#xA;&lt;code>{@link DataLine.Info}&lt;/code> object.&#xA;&lt;p>&#xA;The &lt;code>TargetDataLine&lt;/code> interface provides a method for reading the&#xA;captured data from the target data line's buffer.Applications&#xA;that record audio should read data from the target data line quickly enough&#xA;to keep the buffer from overflowing, which could cause discontinuities in&#xA;the captured data that are perceived as clicks.  Applications can use the&#xA;&lt;code>{@link DataLine#available available}&lt;/code> method defined in the&#xA;&lt;code>DataLine&lt;/code> interface to determine the amount of data currently&#xA;queued in the data line's buffer.  If the buffer does overflow,&#xA;the oldest queued data is discarded and replaced by new data.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.20 03/12/19&#xA;@see Mixer&#xA;@see DataLine&#xA;@see SourceDataLine&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546753_124786_9747"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_816062_16614" isSubstitutable="true" general="_9_5_f720368_1110473546737_441830_9725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_290844_9743" name="ReverbType">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_424222_10652" body="The &lt;code>ReverbType&lt;/code> class provides methods for&#xA;accessing various reverberation settings to be applied to&#xA;an audio signal.&#xA;&lt;p>&#xA;Reverberation simulates the reflection of sound off of&#xA;the walls, ceiling, and floor of a room.  Depending on&#xA;the size of the room, and how absorbent or reflective the materials in the&#xA;room's surfaces are, the sound might bounce around for a&#xA;long time before dying away.&#xA;&lt;p>&#xA;The reverberation parameters provided by &lt;code>ReverbType&lt;/code> consist&#xA;of the delay time and intensity of early reflections, the delay time and&#xA;intensity of late reflections, and an overall decay time.&#xA;Early reflections are the initial individual low-order reflections of the&#xA;direct signal off the surfaces in the room.&#xA;The late Relections are the dense, high-order reflections that characterize&#xA;the room's reverberation.&#xA;The delay times for the start of these two reflection types give the listener&#xA;a sense of the overall size and complexity of the room's shape and contents.&#xA;The larger the room, the longer the reflection delay times.&#xA;The early and late reflections' intensities define the gain (in decibels) of the reflected&#xA;signals as compared to the direct signal.  These intensities give the&#xA;listener an impression of the absorptive nature of the surfaces and objects&#xA;in the room.&#xA;The decay time defines how long the reverberation takes to exponentially&#xA;decay until it is no longer perceptible (&quot;effective zero&quot;).&#xA;The larger and less absorbent the surfaces, the longer the decay time.&#xA;&lt;p>&#xA;The set of parameters defined here may not include all aspects of reverberation&#xA;as specified by some systems.  For example, the Midi Manufacturer's Association&#xA;(MMA) has an Interactive Audio Special Interest Group (IASIG), which has a&#xA;3-D Working Group that has defined a Level 2 Spec (I3DL2).  I3DL2&#xA;supports filtering of reverberation and&#xA;control of reverb density.  These properties are not included in the JavaSound 1.0&#xA;definition of a reverb control.  In such a case, the implementing system&#xA;should either extend the defined reverb control to include additional&#xA;parameters, or else interpret the system's additional capabilities in a way that fits&#xA;the model described here.&#xA;&lt;p>&#xA;If implementing JavaSound on a I3DL2-compliant device:&#xA;&lt;ul>&#xA;&lt;li>Filtering is disabled (high-frequency attenuations are set to 0.0 dB)&#xA;&lt;li>Density parameters are set to midway between minimum and maximum&#xA;&lt;/ul>&#xA;&lt;p>&#xA;The following table shows what parameter values an implementation might use for a&#xA;representative set of reverberation settings.&#xA;&lt;p>&#xA;&#xA;&lt;b>Reverberation Types and Parameters&lt;/b>&#xA;&lt;p>&#xA;&lt;table border=1 cellpadding=5 summary=&quot;reverb types and params: decay time, late intensity, late delay, early intensity, and early delay&quot;>&#xA;&#xA;&lt;tr>&#xA;&lt;th>Type&lt;/th>&#xA;&lt;th>Decay Time (ms)&lt;/th>&#xA;&lt;th>Late Intensity (dB)&lt;/th>&#xA;&lt;th>Late Delay (ms)&lt;/th>&#xA;&lt;th>Early Intensity (dB)&lt;/th>&#xA;&lt;th>Early Delay(ms)&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>Cavern&lt;/td>&#xA;&lt;td>2250&lt;/td>&#xA;&lt;td>-2.0&lt;/td>&#xA;&lt;td>41.3&lt;/td>&#xA;&lt;td>-1.4&lt;/td>&#xA;&lt;td>10.3&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>Dungeon&lt;/td>&#xA;&lt;td>1600&lt;/td>&#xA;&lt;td>-1.0&lt;/td>&#xA;&lt;td>10.3&lt;/td>&#xA;&lt;td>-0.7&lt;/td>&#xA;&lt;td>2.6&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>Garage&lt;/td>&#xA;&lt;td>900&lt;/td>&#xA;&lt;td>-6.0&lt;/td>&#xA;&lt;td>14.7&lt;/td>&#xA;&lt;td>-4.0&lt;/td>&#xA;&lt;td>3.9&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>Acoustic Lab&lt;/td>&#xA;&lt;td>280&lt;/td>&#xA;&lt;td>-3.0&lt;/td>&#xA;&lt;td>8.0&lt;/td>&#xA;&lt;td>-2.0&lt;/td>&#xA;&lt;td>2.0&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>Closet&lt;/td>&#xA;&lt;td>150&lt;/td>&#xA;&lt;td>-10.0&lt;/td>&#xA;&lt;td>2.5&lt;/td>&#xA;&lt;td>-7.0&lt;/td>&#xA;&lt;td>0.6&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;/table>&#xA;&#xA;@author Kara Kytle&#xA;@version 1.13, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_290844_9743"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_955789_9717" name="BooleanControl" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316251_910610_10617" body="A &lt;code>BooleanControl&lt;/code> provides the ability to switch between&#xA;two possible settings that affect a line's audio.  The settings are boolean&#xA;values (&lt;code>true&lt;/code> and &lt;code>false&lt;/code>).  A graphical user interface&#xA;might represent the control by a two-state button, an on/off switch, two&#xA;mutually exclusive buttons, or a checkbox (among other possibilities).&#xA;For example, depressing a button might activate a&#xA;&lt;code>{@link BooleanControl.Type#MUTE MUTE}&lt;/code> control to silence&#xA;the line's audio.&#xA;&lt;p>&#xA;As with other &lt;code>{@link Control}&lt;/code> subclasses, a method is&#xA;provided that returns string labels for the values, suitable for&#xA;display in the user interface.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.15, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_955789_9717"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_635395_16596" isSubstitutable="true" general="_9_5_f720368_1110473546737_964580_9723"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_614540_20860" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316251_926843_10615" body="An instance of the &lt;code>BooleanControl.Type&lt;/code> class identifies one kind of&#xA;boolean control.  Static instances are provided for the&#xA;common types.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.15, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_614540_20860"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_56929_16597" isSubstitutable="true" general="_9_5_f720368_1110473548096_163650_20869"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_92398_9735" name="LineListener" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_645955_10642" body="Instances of classes that implement the &lt;code>LineListener&lt;/code> interface can register to&#xA;receive events when a line's status changes.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.9 03/12/19&#xA;&#xA;@see Line&#xA;@see Line#addLineListener&#xA;@see Line#removeLineListener&#xA;@see LineEvent&#xA;&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_92398_9735"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_407952_16608" isSubstitutable="true" general="_9_5_f720368_1110473546706_614519_8861"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548096_860767_20841" name="spi">
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_312808_9699" name="AudioFileReader" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316201_757848_10595" body="Provider for audio file reading services.  Classes providing concrete&#xA;implementations can parse the format information from one or more types of&#xA;audio file, and can produce audio input streams from files of these types.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.15 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_312808_9699"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_658574_9701" name="AudioFileWriter" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316201_470423_10597" body="Provider for audio file writing services.  Classes providing concrete&#xA;implementations can write one or more types of audio file from an audio&#xA;stream.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.24, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_658574_9701"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_191856_9705" name="MixerProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316201_284851_10601" body="A provider or factory for a particular mixer type.&#xA;This mechanism allows the implementation to determine&#xA;how resources are managed in creation / management of&#xA;a mixer.&#xA;&#xA;@version 1.18 03/12/19&#xA;@author Kara Kytle&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_191856_9705"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_83696_9703" name="FormatConversionProvider" isAbstract="true">
                <ownedComment xmi:id="_10_5_622020d_1132928316201_616534_10599" body="A format conversion provider provides format conversion services&#xA;from one or more input formats to one or more output formats.&#xA;Converters include codecs, which encode and/or decode audio data,&#xA;as well as transcoders, etc.  Format converters provide methods for&#xA;determining what conversions are supported and for obtaining an audio&#xA;stream from which converted data can be read.&#xA;&lt;p>&#xA;The source format represents the format of the incoming&#xA;audio data, which will be converted.&#xA;&lt;p>&#xA;The target format represents the format of the processed, converted&#xA;audio data.  This is the format of the data that can be read from&#xA;the stream returned by one of the &lt;code>getAudioInputStream&lt;/code> methods.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.29, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_83696_9703"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_522004_9711" name="AudioInputStream">
              <ownedComment xmi:id="_10_5_622020d_1132928316211_949905_10610" body="An audio input stream is an input stream with a specified audio format and&#xA;length.  The length is expressed in sample frames, not bytes.&#xA;Several methods are provided for reading a certain number of bytes from&#xA;the stream, or an unspecified number of bytes.&#xA;The audio input stream keeps track  of the last byte that was read.&#xA;You can skip over an arbitrary number of bytes to get to a later position&#xA;for reading. An audio input stream may support marks.  When you set a mark,&#xA;the current position is remembered so that you can return to it later.&#xA;&lt;p>&#xA;The &lt;code>AudioSystem&lt;/code> class includes many methods that manipulate&#xA;&lt;code>AudioInputStream&lt;/code> objects.&#xA;For example, the methods let you:&#xA;&lt;ul>&#xA;&lt;li> obtain an&#xA;audio input stream from an external audio file, stream, or URL&#xA;&lt;li> write an external file from an audio input stream&#xA;&lt;li> convert an audio input stream to a different audio format&#xA;&lt;/ul>&#xA;&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;@version 1.32, 03/12/19&#xA;&#xA;@see AudioSystem&#xA;@see Clip#open(AudioInputStream) Clip.open(AudioInputStream)&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_522004_9711"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_118990_16593" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_399147_20855" name="TargetDataLineInputStream" visibility="private">
                <ownedComment xmi:id="_10_5_622020d_1132928316211_85181_10608" body="Private inner class that makes a TargetDataLine look like an InputStream.&#xA;" annotatedElement="_9_5_f720368_1110473548096_399147_20855"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_831173_16594" isSubstitutable="true" general="_9_5_f720368_1110473546596_677017_7415"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_269432_9731" name="Line" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_279227_10637" body="The &lt;code>Line&lt;/code> interface represents a mono or multi-channel&#xA;audio feed. A line is an element of the digital audio&#xA;&quot;pipeline,&quot; such as a mixer, an input or output port,&#xA;or a data path into or out of a mixer.&#xA;&lt;p>&#xA;A line can have controls, such as gain, pan, and reverb.&#xA;The controls themselves are instances of classes that extend the&#xA;base &lt;code>{@link Control}&lt;/code> class.&#xA;The &lt;code>Line&lt;/code> interface provides two accessor methods for&#xA;obtaining the line's controls: &lt;code>{@link #getControls getControls}&lt;/code> returns the&#xA;entire set, and &lt;code>{@link #getControl getControl}&lt;/code> returns a single control of&#xA;specified type.&#xA;&lt;p>&#xA;Lines exist in various states at different times.  When a line opens, it reserves system&#xA;resources for itself, and when it closes, these resources are freed for&#xA;other objects or applications. The &lt;code>{@link #isOpen()}&lt;/code> method lets&#xA;you discover whether a line is open or closed.&#xA;An open line need not be processing data, however.  Such processing is&#xA;typically initiated by subinterface methods such as&#xA;&lt;code>{@link SourceDataLine#write SourceDataLine.write}&lt;/code> and&#xA;&lt;code>{@link TargetDataLine#read TargetDataLine.read}&lt;/code>.&#xA;&lt;p>&#xA;You can register an object to receive notifications whenever the line's&#xA;state changes.  The object must implement the &lt;code>{@link LineListener}&lt;/code>&#xA;interface, which consists of the single method&#xA;&lt;code>{@link LineListener#update update}&lt;/code>.&#xA;This method will be invoked when a line opens and closes (and, if it's a&#xA;{@link DataLine}, when it starts and stops).&#xA;&lt;p>&#xA;An object can be registered to listen to multiple lines.  The event it&#xA;receives in its &lt;code>update&lt;/code> method will specify which line created&#xA;the event, what type of event it was&#xA;(&lt;code>OPEN&lt;/code>, &lt;code>CLOSE&lt;/code>, &lt;code>START&lt;/code>, or &lt;code>STOP&lt;/code>),&#xA;and how many sample frames the line had processed at the time the event occurred.&#xA;&lt;p>&#xA;Certain line operations, such as open and close, can generate security&#xA;exceptions if invoked by unprivileged code when the line is a shared audio&#xA;resource.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.29, 04/07/14&#xA;&#xA;@see LineEvent&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_269432_9731"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_228899_20885" name="Info">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_687851_10635" body="A &lt;code>Line.Info&lt;/code> object contains information about a line.&#xA;The only information provided by &lt;code>Line.Info&lt;/code> itself&#xA;is the Java class of the line.&#xA;A subclass of &lt;code>Line.Info&lt;/code> adds other kinds of information&#xA;about the line.  This additional information depends on which &lt;code>Line&lt;/code>&#xA;subinterface is implemented by the kind of line that the &lt;code>Line.Info&lt;/code>&#xA;subclass describes.&#xA;&lt;p>&#xA;A &lt;code>Line.Info&lt;/code> can be retrieved using various methods of&#xA;the &lt;code>Line&lt;/code>, &lt;code>Mixer&lt;/code>, and &lt;code>AudioSystem&lt;/code>&#xA;interfaces.  Other such methods let you pass a &lt;code>Line.Info&lt;/code> as&#xA;an argument, to learn whether lines matching the specified configuration&#xA;are available and to obtain them.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.29, 04/07/14&#xA;&#xA;@see Line#getLineInfo&#xA;@see Mixer#getSourceLineInfo&#xA;@see Mixer#getTargetLineInfo&#xA;@see Mixer#getLine &lt;code>Mixer.getLine(Line.Info)&lt;/code>&#xA;@see Mixer#getSourceLineInfo(Line.Info) &lt;code>Mixer.getSourceLineInfo(Line.Info)&lt;/code>&#xA;@see Mixer#getSourceLineInfo(Line.Info) &lt;code>Mixer.getTargetLineInfo(Line.Info)&lt;/code>&#xA;@see Mixer#isLineSupported &lt;code>Mixer.isLineSupported(Line.Info)&lt;/code>&#xA;@see AudioSystem#getLine &lt;code>AudioSystem.getLine(Line.Info)&lt;/code>&#xA;@see AudioSystem#getSourceLineInfo &lt;code>AudioSystem.getSourceLineInfo(Line.Info)&lt;/code>&#xA;@see AudioSystem#getTargetLineInfo &lt;code>AudioSystem.getTargetLineInfo(Line.Info)&lt;/code>&#xA;@see AudioSystem#isLineSupported &lt;code>AudioSystem.isLineSupported(Line.Info)&lt;/code>&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_228899_20885"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_57188_9737" name="LineUnavailableException">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_490585_10644" body="A &lt;code>LineUnavailableException&lt;/code> is an exception indicating that a&#xA;line cannot be opened because it is unavailable.  This situation&#xA;arises most commonly when a requested line is already in use&#xA;by another application.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.9 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_57188_9737"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_572589_16609" isSubstitutable="true" general="_9_5_f720368_1110473546612_465691_7599"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_919321_9713" name="AudioPermission">
              <ownedComment xmi:id="_10_5_622020d_1132928316211_134079_10612" body="The &lt;code>AudioPermission&lt;/code> class represents access rights to the audio&#xA;system resources.  An &lt;code>AudioPermission&lt;/code> contains a target name&#xA;but no actions list; you either have the named permission or you don't.&#xA;&lt;p>&#xA;The target name is the name of the audio permission (see the table below).&#xA;The names follow the hierarchical property-naming convention. Also, an asterisk&#xA;can be used to represent all the audio permissions.&#xA;&lt;p>&#xA;The following table lists the possible &lt;code>AudioPermission&lt;/code> target names.&#xA;For each name, the table provides a description of exactly what that permission&#xA;allows, as well as a discussion of the risks of granting code the permission.&#xA;&lt;p>&#xA;&#xA;&lt;table border=1 cellpadding=5 summary=&quot;permission target name, what the permission allows, and associated risks&quot;>&#xA;&lt;tr>&#xA;&lt;th>Permission Target Name&lt;/th>&#xA;&lt;th>What the Permission Allows&lt;/th>&#xA;&lt;th>Risks of Allowing this Permission&lt;/th>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>play&lt;/td>&#xA;&lt;td>Audio playback through the audio device or devices on the system.&#xA;Allows the application to obtain and manipulate lines and mixers for&#xA;audio playback (rendering).&lt;/td>&#xA;&lt;td>In some cases use of this permission may affect other&#xA;applications because the audio from one line may be mixed with other audio&#xA;being played on the system, or because manipulation of a mixer affects the&#xA;audio for all lines using that mixer.&lt;/td>&#xA;&lt;/tr>&#xA;&#xA;&lt;tr>&#xA;&lt;td>record&lt;/td>&#xA;&lt;td>Audio recording through the audio device or devices on the system.&#xA;Allows the application to obtain and manipulate lines and mixers for&#xA;audio recording (capture).&lt;/td>&#xA;&lt;td>In some cases use of this permission may affect other&#xA;applications because manipulation of a mixer affects the audio for all lines&#xA;using that mixer.&#xA;This permission can enable an applet or application to eavesdrop on a user.&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&lt;p>&#xA;&#xA;@author Kara Kytle&#xA;@version 1.17 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_919321_9713"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_40907_16595" isSubstitutable="true" general="_9_5_f720368_1110473546674_30641_8429"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_441830_9725" name="DataLine" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_663303_10628" body="&lt;code>DataLine&lt;/code> adds media-related functionality to its&#xA;superinterface, &lt;code>{@link Line}&lt;/code>.  This functionality includes&#xA;transport-control methods that start, stop, drain, and flush&#xA;the audio data that passes through the line.  A data line can also&#xA;report the current position, volume, and audio format of the media.&#xA;Data lines are used for output of audio by means of the&#xA;subinterfaces &lt;code>{@link SourceDataLine}&lt;/code> or&#xA;&lt;code>{@link Clip}&lt;/code>, which allow an application program to write data.  Similarly,&#xA;audio input is handled by the subinterface &lt;code>{@link TargetDataLine}&lt;/code>,&#xA;which allows data to be read.&#xA;&lt;p>&#xA;A data line has an internal buffer in which&#xA;the incoming or outgoing audio data is queued.  The&#xA;&lt;code>{@link #drain()}&lt;/code> method blocks until this internal buffer&#xA;becomes empty, usually because all queued data has been processed.  The&#xA;&lt;code>{@link #flush()}&lt;/code> method discards any available queued data&#xA;from the internal buffer.&#xA;&lt;p>&#xA;A data line produces &lt;code>{@link LineEvent.Type#START START}&lt;/code> and&#xA;&lt;code>{@link LineEvent.Type#STOP STOP}&lt;/code> events whenever&#xA;it begins or ceases active presentation or capture of data.  These events&#xA;can be generated in response to specific requests, or as a result of&#xA;less direct state changes.  For example, if &lt;code>{@link #start()}&lt;/code> is called&#xA;on an inactive data line, and data is available for capture or playback, a&#xA;&lt;code>START&lt;/code> event will be generated shortly, when data playback&#xA;or capture actually begins.  Or, if the flow of data to an active data&#xA;line is constricted so that a gap occurs in the presentation of data,&#xA;a &lt;code>STOP&lt;/code> event is generated.&#xA;&lt;p>&#xA;Mixers often support synchronized control of multiple data lines.&#xA;Synchronization can be established through the Mixer interface's&#xA;&lt;code>{@link Mixer#synchronize synchronize}&lt;/code> method.&#xA;See the description of the &lt;code>{@link Mixer Mixer}&lt;/code> interface&#xA;for a more complete description.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.33, 04/07/14&#xA;@see LineEvent&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_441830_9725"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_745679_16601" isSubstitutable="true" general="_9_5_f720368_1110473546737_269432_9731"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_430262_20873" name="Info">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_806840_10626" body="Besides the class information inherited from its superclass,&#xA;&lt;code>DataLine.Info&lt;/code> provides additional information specific to data lines.&#xA;This information includes:&#xA;&lt;ul>&#xA;&lt;li> the audio formats supported by the data line&#xA;&lt;li> the minimum and maximum sizes of its internal buffer&#xA;&lt;/ul>&#xA;Because a &lt;code>Line.Info&lt;/code> knows the class of the line its describes, a&#xA;&lt;code>DataLine.Info&lt;/code> object can describe &lt;code>DataLine&lt;/code>&#xA;subinterfaces such as &lt;code>{@link SourceDataLine}&lt;/code>,&#xA;&lt;code>{@link TargetDataLine}&lt;/code>, and &lt;code>{@link Clip}&lt;/code>.&#xA;You can query a mixer for lines of any of these types, passing an appropriate&#xA;instance of &lt;code>DataLine.Info&lt;/code> as the argument to a method such as&#xA;&lt;code>{@link Mixer#getLine Mixer.getLine(Line.Info)}&lt;/code>.&#xA;&#xA;@see Line.Info&#xA;@author Kara Kytle&#xA;@version 1.33, 04/07/14&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_430262_20873"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_797946_16602" isSubstitutable="true" general="_9_5_f720368_1110473548096_228899_20885"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_670677_9709" name="AudioFormat">
              <ownedComment xmi:id="_10_5_622020d_1132928316211_931989_10607" body="&lt;code>AudioFormat&lt;/code> is the class that specifies a particular arrangement of data in a sound stream.&#xA;By examing the information stored in the audio format, you can discover how to interpret the bits in the&#xA;binary sound data.&#xA;&lt;p>&#xA;Every data line has an audio format associated with its data stream. The audio format of a source (playback) data line indicates&#xA;what kind of data the data line expects to receive for output.  For a target (capture) data line, the audio format specifies the kind&#xA;of the data that can be read from the line.&#xA;Sound files also have audio formats, of course.  The &lt;code>{@link AudioFileFormat}&lt;/code>&#xA;class encapsulates an &lt;code>AudioFormat&lt;/code> in addition to other,&#xA;file-specific information.  Similarly, an &lt;code>{@link AudioInputStream}&lt;/code> has an&#xA;&lt;code>AudioFormat&lt;/code>.&#xA;&lt;p>&#xA;The &lt;code>AudioFormat&lt;/code> class accommodates a number of common sound-file encoding techniques, including&#xA;pulse-code modulation (PCM), mu-law encoding, and a-law encoding.  These encoding techniques are predefined,&#xA;but service providers can create new encoding types.&#xA;The encoding that a specific format uses is named by its &lt;code>encoding&lt;/code> field.&#xA;&lt;p>&#xA;In addition to the encoding, the audio format includes other properties that further specify the exact&#xA;arrangement of the data.&#xA;These include the number of channels, sample rate, sample size, byte order, frame rate, and frame size.&#xA;Sounds may have different numbers of audio channels: one for mono, two for stereo.&#xA;The sample rate measures how many &quot;snapshots&quot; (samples) of the sound pressure are taken per second, per channel.&#xA;(If the sound is stereo rather than mono, two samples are actually measured at each instant of time: one for the left channel,&#xA;and another for the right channel; however, the sample rate still measures the number per channel, so the rate is the same&#xA;regardless of the number of channels.   This is the standard use of the term.)&#xA;The sample size indicates how many bits are used to store each snapshot; 8 and 16 are typical values.&#xA;For 16-bit samples (or any other sample size larger than a byte),&#xA;byte order is important; the bytes in each sample are arranged in&#xA;either the &quot;little-endian&quot; or &quot;big-endian&quot; style.&#xA;For encodings like PCM, a frame consists of the set of samples for all channels at a given&#xA;point in time, and so the size of a frame (in bytes) is always equal to the size of a sample (in bytes) times&#xA;the number of channels.  However, with some other sorts of encodings a frame can contain&#xA;a bundle of compressed data for a whole series of samples, as well as additional, non-sample&#xA;data.  For such encodings, the sample rate and sample size refer to the data after it is decoded into PCM,&#xA;and so they are completely different from the frame rate and frame size.&#xA;&#xA;&lt;p>An &lt;code>AudioFormat&lt;/code> object can include a set of&#xA;properties. A property is a pair of key and value: the key&#xA;is of type &lt;code>String&lt;/code>, the associated property&#xA;value is an arbitrary object. Properties specify&#xA;additional format specifications, like the bit rate for&#xA;compressed formats. Properties are mainly used as a means&#xA;to transport additional information of the audio format&#xA;to and from the service providers. Therefore, properties&#xA;are ignored in the {@link #matches(AudioFormat)} method.&#xA;However, methods which rely on the installed service&#xA;providers, like {@link AudioSystem#isConversionSupported&#xA;(AudioFormat, AudioFormat) isConversionSupported} may consider&#xA;properties, depending on the respective service provider&#xA;implementation.&#xA;&#xA;&lt;p>The following table lists some common properties which&#xA;service providers should use, if applicable:&#xA;&#xA;&lt;table border=0>&#xA;&lt;tr>&#xA;&lt;th>Property key&lt;/th>&#xA;&lt;th>Value type&lt;/th>&#xA;&lt;th>Description&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;bitrate&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.Integer Integer}&lt;/td>&#xA;&lt;td>average bit rate in bits per second&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;vbr&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.Boolean Boolean}&lt;/td>&#xA;&lt;td>&lt;code>true&lt;/code>, if the file is encoded in variable bit&#xA;rate (VBR)&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;quality&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.Integer Integer}&lt;/td>&#xA;&lt;td>encoding/conversion quality, 1..100&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&lt;p>Vendors of service providers (plugins) are encouraged&#xA;to seek information about other already established&#xA;properties in third party plugins, and follow the same&#xA;conventions.&#xA;&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;@version 1.35 04/03/15&#xA;@see DataLine#getFormat&#xA;@see AudioInputStream#getFormat&#xA;@see AudioFileFormat&#xA;@see javax.sound.sampled.spi.FormatConversionProvider&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_670677_9709"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_166818_20851" name="Encoding">
                <ownedComment xmi:id="_10_5_622020d_1132928316211_136315_10605" body="The &lt;code>Encoding&lt;/code> class  names the  specific type of data representation&#xA;used for an audio stream.   The encoding includes aspects of the&#xA;sound format other than the number of channels, sample rate, sample size,&#xA;frame rate, frame size, and byte order.&#xA;&lt;p>&#xA;One ubiquitous type of audio encoding is pulse-code modulation (PCM),&#xA;which is simply a linear (proportional) representation of the sound&#xA;waveform.  With PCM, the number stored in each sample is proportional&#xA;to the instantaneous amplitude of the sound pressure at that point in&#xA;time.  The numbers are frequently signed or unsigned integers.&#xA;Besides PCM, other encodings include mu-law and a-law, which are nonlinear&#xA;mappings of the sound amplitude that are often used for recording speech.&#xA;&lt;p>&#xA;You can use a predefined encoding by referring to one of the static&#xA;objects created by this class, such as PCM_SIGNED or&#xA;PCM_UNSIGNED.  Service providers can create new encodings, such as&#xA;compressed audio formats or floating-point PCM samples, and make&#xA;these available through the &lt;code>{@link AudioSystem}&lt;/code> class.&#xA;&lt;p>&#xA;The &lt;code>Encoding&lt;/code> class is static, so that all&#xA;&lt;code>AudioFormat&lt;/code> objects that have the same encoding will refer&#xA;to the same object (rather than different instances of the same class).&#xA;This allows matches to be made by checking that two format's encodings&#xA;are equal.&#xA;&#xA;@see AudioFormat&#xA;@see javax.sound.sampled.spi.FormatConversionProvider&#xA;&#xA;@author Kara Kytle&#xA;@version 1.35 04/03/15&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_166818_20851"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_742937_9727" name="EnumControl" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_166451_10631" body="A &lt;code>EnumControl&lt;/code> provides control over a set of&#xA;discrete possible values, each represented by an object.  In a&#xA;graphical user interface, such a control might be represented&#xA;by a set of buttons, each of which chooses one value or setting.  For&#xA;example, a reverb control might provide several preset reverberation&#xA;settings, instead of providing continuously adjustable parameters&#xA;of the sort that would be represented by &lt;code>{@link FloatControl}&lt;/code>&#xA;objects.&#xA;&lt;p>&#xA;Controls that provide a choice between only two settings can often be implemented&#xA;instead as a &lt;code>{@link BooleanControl}&lt;/code>, and controls that provide&#xA;a set of values along some quantifiable dimension might be implemented&#xA;instead as a &lt;code>FloatControl&lt;/code> with a coarse resolution.&#xA;However, a key feature of &lt;code>EnumControl&lt;/code> is that the returned values&#xA;are arbitrary objects, rather than numerical or boolean values.  This means that each&#xA;returned object can provide further information.  As an example, the settings&#xA;of a &lt;code>{@link EnumControl.Type#REVERB REVERB}&lt;/code> control are instances of&#xA;&lt;code>{@link ReverbType}&lt;/code> that can be queried for the parameter values&#xA;used for each setting.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.14, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_742937_9727"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_693266_16603" isSubstitutable="true" general="_9_5_f720368_1110473546737_964580_9723"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_620422_20877" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_926044_10629" body="An instance of the &lt;code>EnumControl.Type&lt;/code> inner class identifies one kind of&#xA;enumerated control.  Static instances are provided for the&#xA;common types.&#xA;&#xA;@see EnumControl&#xA;&#xA;@author Kara Kytle&#xA;@version 1.14, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_620422_20877"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_902879_16604" isSubstitutable="true" general="_9_5_f720368_1110473548096_163650_20869"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_538354_9721" name="CompoundControl" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_366822_10622" body="A &lt;code>CompoundControl&lt;/code>, such as a graphic equalizer, provides control&#xA;over two or more related properties, each of which is itself represented as&#xA;a &lt;code>Control&lt;/code>.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.10, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_538354_9721"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_84489_16599" isSubstitutable="true" general="_9_5_f720368_1110473546737_964580_9723"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_886165_20865" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_494870_10620" body="An instance of the &lt;code>CompoundControl.Type&lt;/code> inner class identifies one kind of&#xA;compound control.  Static instances are provided for the&#xA;common types.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.10, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473548096_886165_20865"/>
                <generalization xmi:id="_10_5_622020d_1132928323361_544717_16600" isSubstitutable="true" general="_9_5_f720368_1110473548096_163650_20869"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_543235_9719" name="Clip" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928316261_33731_10619" body="The &lt;code>Clip&lt;/code> interface represents a special kind of data line whose&#xA;audio data can be loaded prior to playback, instead of being streamed in&#xA;real time.&#xA;&lt;p>&#xA;Because the data is pre-loaded and has a known length, you can set a clip&#xA;to start playing at any position in its audio data.  You can also create a&#xA;loop, so that when the clip is played it will cycle repeatedly.  Loops are&#xA;specified with a starting and ending sample frame, along with the number of&#xA;times that the loop should be played.&#xA;&lt;p>&#xA;Clips may be obtained from a &lt;code>{@link Mixer}&lt;/code> that supports lines&#xA;of this type.  Data is loaded into a clip when it is opened.&#xA;&lt;p>&#xA;Playback of an audio clip may be started and stopped using the &lt;code>start&lt;/code>&#xA;and &lt;code>stop&lt;/code> methods.  These methods do not reset the media position;&#xA;&lt;code>start&lt;/code> causes playback to continue from the position where playback&#xA;was last stopped.  To restart playback from the beginning of the clip's audio&#xA;data, simply follow the invocation of &lt;code>{@link DataLine#stop stop}&lt;/code>&#xA;with setFramePosition(0), which rewinds the media to the beginning&#xA;of the clip.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.38, 03/12/19&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_543235_9719"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_968391_16598" isSubstitutable="true" general="_9_5_f720368_1110473546737_441830_9725"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_944650_9707" name="AudioFileFormat">
              <ownedComment xmi:id="_10_5_622020d_1132928316211_456715_10604" body="An instance of the &lt;code>AudioFileFormat&lt;/code> class describes&#xA;an audio file, including the file type, the file's length in bytes,&#xA;the length in sample frames of the audio data contained in the file,&#xA;and the format of the audio data.&#xA;&lt;p>&#xA;The &lt;code>{@link AudioSystem}&lt;/code> class includes methods for determining the format&#xA;of an audio file, obtaining an audio input stream from an audio file, and&#xA;writing an audio file from an audio input stream.&#xA;&#xA;&lt;p>An &lt;code>AudioFileFormat&lt;/code> object can&#xA;include a set of properties. A property is a pair of key and value:&#xA;the key is of type &lt;code>String&lt;/code>, the associated property&#xA;value is an arbitrary object.&#xA;Properties specify additional informational&#xA;meta data (like a author, copyright, or file duration).&#xA;Properties are optional information, and file reader and file&#xA;writer implementations are not required to provide or&#xA;recognize properties.&#xA;&#xA;&lt;p>The following table lists some common properties that should&#xA;be used in implementations:&#xA;&#xA;&lt;table border=1>&#xA;&lt;tr>&#xA;&lt;th>Property key&lt;/th>&#xA;&lt;th>Value type&lt;/th>&#xA;&lt;th>Description&lt;/th>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;duration&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.Long Long}&lt;/td>&#xA;&lt;td>playback duration of the file in microseconds&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;author&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>name of the author of this file&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;title&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>title of this file&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;copyright&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>copyright message&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;date&quot;&lt;/td>&#xA;&lt;td>{@link java.util.Date Date}&lt;/td>&#xA;&lt;td>date of the recording or release&lt;/td>&#xA;&lt;/tr>&#xA;&lt;tr>&#xA;&lt;td>&quot;comment&quot;&lt;/td>&#xA;&lt;td>{@link java.lang.String String}&lt;/td>&#xA;&lt;td>an arbitrary text&lt;/td>&#xA;&lt;/tr>&#xA;&lt;/table>&#xA;&#xA;&#xA;@author David Rivas&#xA;@author Kara Kytle&#xA;@author Florian Bomers&#xA;@version 1.23 03/12/19&#xA;@see AudioInputStream&#xA;@since 1.3&#xA;" annotatedElement="_9_5_f720368_1110473546737_944650_9707"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_781417_20847" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316201_118849_10602" body="An instance of the &lt;code>Type&lt;/code> class represents one of the&#xA;standard types of audio file.  Static instances are provided for the&#xA;common types.&#xA;" annotatedElement="_9_5_f720368_1110473548096_781417_20847"/>
              </nestedClassifier>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_342069_9733" name="LineEvent">
              <ownedComment xmi:id="_10_5_622020d_1132928316271_882801_10640" body="The &lt;code>LineEvent&lt;/code> class encapsulates information that a line&#xA;sends its listeners whenever the line opens, closes, starts, or stops.&#xA;Each of these four state changes is represented by a corresponding&#xA;type of event.  A listener receives the event as a parameter to its&#xA;{@link LineListener#update update} method.  By querying the event,&#xA;the listener can learn the type of event, the line responsible for&#xA;the event, and how much data the line had processed when the event occurred.&#xA;&#xA;&lt;p>Although this class implements Serializable, attempts to&#xA;serialize a &lt;code>LineEvent&lt;/code> object will fail.&#xA;&#xA;@author Kara Kytle&#xA;@version 1.26, 03/12/19&#xA;&#xA;@see Line&#xA;@see LineListener#update&#xA;@since 1.3&#xA;&#xA;@serial exclude&#xA;" annotatedElement="_9_5_f720368_1110473546737_342069_9733"/>
              <generalization xmi:id="_10_5_622020d_1132928323361_640418_16607" isSubstitutable="true" general="_9_5_f720368_1110473546706_451900_8865"/>
              <nestedClassifier xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473548096_496652_20889" name="Type">
                <ownedComment xmi:id="_10_5_622020d_1132928316261_887441_10638" body="The LineEvent.Type inner class identifies what kind of event occurred on a line.&#xA;Static instances are provided for the common types (OPEN, CLOSE, START, and STOP).&#xA;&#xA;@see LineEvent#getType()&#xA;" annotatedElement="_9_5_f720368_1110473548096_496652_20889"/>
              </nestedClassifier>
            </packagedElement>
          </packagedElement>
        </packagedElement>
        <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_248877_20664" name="rmi">
          <packagedElement xmi:type="uml:Package" xmi:id="_9_5_f720368_1110473548065_821173_20665" name="CORBA">
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_137242_9555" name="StubDelegate" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_431408_10383" body="Supports delegation for method implementations in {@link Stub}.&#xA;A delegate is an instance of a class that implements this&#xA;interface and provides a replacement implementation for all the&#xA;methods of &lt;code>javax.rmi.CORBA.Stub&lt;/code>.  If delegation is&#xA;enabled, each stub has an associated delegate.&#xA;&#xA;Delegates are enabled by providing the delegate's class name as the&#xA;value of the&#xA;&lt;code>javax.rmi.CORBA.StubClass&lt;/code>&#xA;system property.&#xA;&#xA;@see Stub&#xA;" annotatedElement="_9_5_f720368_1110473546737_137242_9555"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_257937_9553" name="Stub" clientDependency="_10_5_622020d_1132928323341_543031_16508" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_563078_10381" body="Base class from which all RMI-IIOP stubs must inherit.&#xA;" annotatedElement="_9_5_f720368_1110473546737_257937_9553"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_543031_16508" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_257937_9553" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_764446_9559" name="Util">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_951416_10387" body="Provides utility methods that can be used by stubs and ties to&#xA;perform common operations.&#xA;" annotatedElement="_9_5_f720368_1110473546737_764446_9559"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_10_5_622020d_1132928315990_752004_10392" name="ValueHandlerMultiFormat" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_938467_10394" body="Java to IDL ptc 02-01-12 1.5.1.5&#xA;" annotatedElement="_10_5_622020d_1132928315990_752004_10392"/>
              <generalization xmi:id="_10_5_622020d_1132928323341_124087_16511" isSubstitutable="true" general="_9_5_f720368_1110473546737_523078_9563"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_523078_9563" name="ValueHandler" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_724550_10391" body="Defines methods which allow serialization of Java objects&#xA;to and from GIOP streams.&#xA;" annotatedElement="_9_5_f720368_1110473546737_523078_9563"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_733847_9557" name="Tie" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_156927_10385" body="Defines methods which all RMI-IIOP server side ties must implement.&#xA;" annotatedElement="_9_5_f720368_1110473546737_733847_9557"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_444647_9549" name="GetORBPropertiesFileAction" visibility="package" clientDependency="_10_5_622020d_1132928323341_729936_16507">
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_729936_16507" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_9_5_f720368_1110473546737_444647_9549" contract="_9_5_f720368_1110473546690_3186_8507"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_758856_9547" name="ClassDesc" clientDependency="_10_5_622020d_1132928323341_920619_16506">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_752641_10376" body="This class is used to marshal java.lang.Class objects over IIOP.&#xA;" annotatedElement="_9_5_f720368_1110473546737_758856_9547"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_920619_16506" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_9_5_f720368_1110473546737_758856_9547" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_848003_9551" name="PortableRemoteObjectDelegate" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_772185_10379" body="Supports delegation for method implementations in {@link javax.rmi.PortableRemoteObject}.&#xA;The delegate is a singleton instance of a class that implements this&#xA;interface and provides a replacement implementation for all the&#xA;methods of &lt;code>javax.rmi.PortableRemoteObject&lt;/code>.&#xA;&#xA;Delegates are enabled by providing the delegate's class name as the&#xA;value of the&#xA;&lt;code>javax.rmi.CORBA.PortableRemoteObjectClass&lt;/code>&#xA;system property.&#xA;&#xA;@see javax.rmi.PortableRemoteObject&#xA;" annotatedElement="_9_5_f720368_1110473546737_848003_9551"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Interface" xmi:id="_9_5_f720368_1110473546737_607036_9561" name="UtilDelegate" isAbstract="true">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_570428_10389" body="Supports delegation for method implementations in {@link Util}.  The&#xA;delegate is a singleton instance of a class that implements this&#xA;interface and provides a replacement implementation for all the&#xA;methods of &lt;code>javax.rmi.CORBA.Util&lt;/code>.&#xA;&#xA;Delegation is enabled by providing the delegate's class name as the&#xA;value of the&#xA;&lt;code>javax.rmi.CORBA.UtilClass&lt;/code>&#xA;system property.&#xA;&#xA;@see Util&#xA;" annotatedElement="_9_5_f720368_1110473546737_607036_9561"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_955727_9567" name="GetORBPropertiesFileAction" visibility="package" clientDependency="_10_5_622020d_1132928323341_38348_16515">
            <interfaceRealization xmi:id="_10_5_622020d_1132928323341_38348_16515" name="" supplier="_9_5_f720368_1110473546690_3186_8507" client="_9_5_f720368_1110473546737_955727_9567" contract="_9_5_f720368_1110473546690_3186_8507"/>
          </packagedElement>
          <packagedElement xmi:type="uml:Package" xmi:id="_10_5_622020d_1132928315990_638268_10395" name="ssl">
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315990_663329_10396" name="SslRMIClientSocketFactory" clientDependency="_10_5_622020d_1132928323341_182939_16512 _10_5_622020d_1132928323341_147013_16513">
              <ownedComment xmi:id="_10_5_622020d_1132928315990_937326_10398" body="&lt;p>An &lt;code>SslRMIClientSocketFactory&lt;/code> instance is used by the RMI&#xA;runtime in order to obtain client sockets for RMI calls via SSL.&lt;/p>&#xA;&#xA;&lt;p>This class implements &lt;code>RMIClientSocketFactory&lt;/code> over&#xA;the Secure Sockets Layer (SSL) or Transport Layer Security (TLS)&#xA;protocols.&lt;/p>&#xA;&#xA;&lt;p>This class creates SSL sockets using the default&#xA;&lt;code>SSLSocketFactory&lt;/code> (see {@link&#xA;SSLSocketFactory#getDefault}).  All instances of this class are&#xA;functionally equivalent.  In particular, they all share the same&#xA;truststore, and the same keystore when client authentication is&#xA;required by the server.  This behavior can be modified in&#xA;subclasses by overriding the {@link #createSocket(String,int)}&#xA;method; in that case, {@link #equals(Object) equals} and {@link&#xA;#hashCode() hashCode} may also need to be overridden.&lt;/p>&#xA;&#xA;&lt;p>If the system property&#xA;&lt;code>javax.rmi.ssl.client.enabledCipherSuites&lt;/code> is specified,&#xA;the {@link #createSocket(String,int)} method will call {@link&#xA;SSLSocket#setEnabledCipherSuites(String[])} before returning the&#xA;socket.  The value of this system property is a string that is a&#xA;comma-separated list of SSL/TLS cipher suites to enable.&lt;/p>&#xA;&#xA;&lt;p>If the system property&#xA;&lt;code>javax.rmi.ssl.client.enabledProtocols&lt;/code> is specified,&#xA;the {@link #createSocket(String,int)} method will call {@link&#xA;SSLSocket#setEnabledProtocols(String[])} before returning the&#xA;socket.  The value of this system property is a string that is a&#xA;comma-separated list of SSL/TLS protocol versions to enable.&lt;/p>&#xA;&#xA;@see javax.net.ssl.SSLSocketFactory&#xA;@see javax.rmi.ssl.SslRMIServerSocketFactory&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315990_663329_10396"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_182939_16512" name="" supplier="_9_5_f720368_1110473546674_702698_8187" client="_10_5_622020d_1132928315990_663329_10396" contract="_9_5_f720368_1110473546674_702698_8187"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_147013_16513" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_10_5_622020d_1132928315990_663329_10396" contract="_9_5_f720368_1110473546612_364919_7481"/>
            </packagedElement>
            <packagedElement xmi:type="uml:Class" xmi:id="_10_5_622020d_1132928315990_555696_10399" name="SslRMIServerSocketFactory" clientDependency="_10_5_622020d_1132928323341_942898_16514">
              <ownedComment xmi:id="_10_5_622020d_1132928316000_132426_10401" body="&lt;p>An &lt;code>SslRMIServerSocketFactory&lt;/code> instance is used by the RMI&#xA;runtime in order to obtain server sockets for RMI calls via SSL.&lt;/p>&#xA;&#xA;&lt;p>This class implements &lt;code>RMIServerSocketFactory&lt;/code> over&#xA;the Secure Sockets Layer (SSL) or Transport Layer Security (TLS)&#xA;protocols.&lt;/p>&#xA;&#xA;&lt;p>This class creates SSL sockets using the default&#xA;&lt;code>SSLSocketFactory&lt;/code> (see {@link&#xA;SSLSocketFactory#getDefault}) or the default&#xA;&lt;code>SSLServerSocketFactory&lt;/code> (see {@link&#xA;SSLServerSocketFactory#getDefault}).  Therefore, all instances of&#xA;this class share the same keystore, and the same truststore, when&#xA;client authentication is required by the server.  This behavior&#xA;can be modified in subclasses by overriding the {@link&#xA;#createServerSocket(int)} method; in that case, {@link&#xA;#equals(Object) equals} and {@link #hashCode() hashCode} may also&#xA;need to be overridden.&lt;/p>&#xA;&#xA;@see javax.net.ssl.SSLSocketFactory&#xA;@see javax.net.ssl.SSLServerSocketFactory&#xA;@see javax.rmi.ssl.SslRMIClientSocketFactory&#xA;@since 1.5&#xA;" annotatedElement="_10_5_622020d_1132928315990_555696_10399"/>
              <interfaceRealization xmi:id="_10_5_622020d_1132928323341_942898_16514" name="" supplier="_9_5_f720368_1110473546674_429907_8191" client="_10_5_622020d_1132928315990_555696_10399" contract="_9_5_f720368_1110473546674_429907_8191"/>
            </packagedElement>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_9_5_f720368_1110473546737_935959_9565" name="PortableRemoteObject">
            <ownedComment xmi:id="_10_5_622020d_1132928316000_771466_10403" body="Server implementation objects may either inherit from&#xA;javax.rmi.PortableRemoteObject or they may implement a remote interface&#xA;and then use the exportObject method to register themselves as a server object.&#xA;The toStub method takes a server implementation and returns a stub that&#xA;can be used to access that server object.&#xA;The connect method makes a Remote object ready for remote communication.&#xA;The unexportObject method is used to deregister a server object, allowing it to become&#xA;available for garbage collection.&#xA;The narrow method takes an object reference or abstract interface type and&#xA;attempts to narrow it to conform to&#xA;the given interface. If the operation is successful the result will be an&#xA;object of the specified type, otherwise an exception will be thrown.&#xA;" annotatedElement="_9_5_f720368_1110473546737_935959_9565"/>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_16_8_19940331_1289320018194_6661_14472" name="JEAF Services API">
      <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260524485765_747647_365" name="com">
        <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260524485765_658495_366" name="anaptecs">
          <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260524485765_518023_367" name="jeaf">
            <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260522053156_476000_541" name="services">
              <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1264781254421_80053_1097" name="usermanagement">
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18230311_1336468079077_485843_5082" name="" memberEnd="_16_8_18230311_1336468079078_446464_5083 _16_8_18230311_1336468079078_929894_5084"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1311920537994_856730_19197" name="" memberEnd="_16_8_246b03eb_1311920537995_660313_19199 _16_8_246b03eb_1311920537995_975825_19198">
                  <ownedEnd xmi:id="_16_8_246b03eb_1311920537995_660313_19199" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_162663_804" association="_16_8_246b03eb_1311920537994_856730_19197"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_18440316_1385569551345_715406_3577" name="OrganizationalUnitAccountLoadStrategy">
                  <ownedComment xmi:id="_16_8_18440316_1385570530991_30615_3635" body="Class defines load strategy for class organizational unit account and its depending objects. The class can be used to tell a service which associations of a organizational unit account should also be returned when the service returns one or more organizational unit accounts." annotatedElement="_16_8_18440316_1385569551345_715406_3577"/>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569606091_353222_3595" name="loadPermissions" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569660974_583717_3598" name="loadAuthorizationTypes" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569716434_423288_3600" name="loadOrganizationalUnit" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569743729_308577_3602" name="loadAddresses" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1461558922266_900324_3138" name="loadIndentityProviders" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_197a0330_1459310870697_82950_4024" name="UserManagementMigrationService">
                  <ownedComment xmi:id="_16_8_1968032c_1459487436051_365108_4233" body="Class is the marker interface for the migration of the user management component." annotatedElement="_16_8_197a0330_1459310870697_82950_4024"/>
                  <generalization xmi:id="_16_8_197a0330_1459310895963_794981_4045" isSubstitutable="true" general="_16_8_197a0330_1459310432192_781744_3946"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_246b03eb_1313043490098_634264_18789" name="ObjectAccessMode">
                  <ownedComment xmi:id="_16_8_246b03eb_1313144969370_16223_20220" body="Enumeration describes how an object should be accessed." annotatedElement="_16_8_246b03eb_1313043490098_634264_18789"/>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1313043501305_45565_18807" name="READ" classifier="_16_8_246b03eb_1313043490098_634264_18789">
                    <ownedComment xmi:id="_16_8_246b03eb_1313144979529_291053_20221" body="Read access to an object." annotatedElement="_16_8_246b03eb_1313043501305_45565_18807"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1313043504318_864438_18809" name="WRITE" classifier="_16_8_246b03eb_1313043490098_634264_18789">
                    <ownedComment xmi:id="_16_8_246b03eb_1313144990592_506389_20222" body="Write / update access to an object." annotatedElement="_16_8_246b03eb_1313043504318_864438_18809"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1313043507641_829780_18811" name="DELETE" classifier="_16_8_246b03eb_1313043490098_634264_18789">
                    <ownedComment xmi:id="_16_8_246b03eb_1313145000117_8534_20223" body="Delete access for an object." annotatedElement="_16_8_246b03eb_1313043507641_829780_18811"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1317624131224_282641_7454" name="" memberEnd="_16_8_195e0323_1317624131224_749472_7456 _16_8_195e0323_1317624131224_127209_7455">
                  <ownedEnd xmi:id="_16_8_195e0323_1317624131224_749472_7456" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_355272_830" association="_16_8_195e0323_1317624131224_282641_7454"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_183a030e_1496071688523_179908_3235" name="LinkStatusToken">
                  <ownedAttribute xmi:id="_16_8_183a030e_1496072300463_396308_3254" name="token" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_183a030e_1496072355433_6127_3256" name="expirationDate" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18440316_1389177009546_775956_2507" name="" memberEnd="_16_8_18440316_1389177009546_438269_2509 _16_8_18440316_1389177009546_684072_2508">
                  <ownedEnd xmi:id="_16_8_18440316_1389177009546_438269_2509" name="" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_18440316_1389177009546_775956_2507"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_246b03eb_1313472570911_719324_19856" name="AuthorizationAdminService">
                  <ownedComment xmi:id="_16_8_246b03eb_1313476832214_161261_20406" body="This service is responsible to manage the roles and object permissions for persons and organizational units. Therefore the service provides several methods that can be used to administer all authorizations. &#xA;The check of authorizations will be performed through the AuthorizationService." annotatedElement="_16_8_246b03eb_1313472570911_719324_19856"/>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_791567_989" name="createRoleDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279118978703_853542_2964" body="Method creates a new role definition from the passed object. Therefore also the authorizations which link authorization types and role definitions have to be set on the passed object. All referenced authorization types already have to exist. The method does not create authorization types if they do not exist yet." annotatedElement="_16_0_1_2aa0154_1265061847703_791567_989"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_334245_1192" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" direction="return">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119003687_618509_2965" body="Created role definition. The reference to all authorizations and authorization types is also set. The method never returns null." annotatedElement="_16_0_1_2aa0154_1265061847765_334245_1192"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_587526_1193" name="pRoleDefinition" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119017171_659091_2966" body="Role definition that should be created. The reference to all authorization types that make up this role definition have to be set. The parameter must not be null and there must not exist a role definition with the same name yet." annotatedElement="_16_0_1_2aa0154_1265061847765_587526_1193"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1268992984354_645293_1118" name="getRoleDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279111182390_299027_2896" body="Method returns the role definition with the passed id. A role definition with the passed id must exist." annotatedElement="_16_0_1_282013d_1268992984354_645293_1118"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814055622_862345_21360" name="pRoleDefinitionID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313479042058_43733_20435" body="ID of the role definition that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1309814055622_862345_21360"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814055642_240518_21361" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313479091452_328817_20436" body="Role definition with the passed id. The reference to all authorizations and authorization types is also set. The method never returns null." annotatedElement="_16_8_246b03eb_1309814055642_240518_21361"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1267780348189_512411_713" name="deleteRoleDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119540671_42113_2980" body="Method delete the passed role definition. A role definition can only be deleted if it is not referenced any more." annotatedElement="_16_0_1_282013d_1267780348189_512411_713"/>
                    <ownedParameter xmi:id="_16_0_1_282013d_1267780382032_191589_715" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_282013d_1267780387000_627843_716" name="pRoleDefintion" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119567718_200497_2981" body="RoleDefinition that should be deleted. The parameter must not be null." annotatedElement="_16_0_1_282013d_1267780387000_627843_716"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_988267_990" name="getAllRoleDefinitions" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119091984_947157_2967" body="Method returns all available role definitions." annotatedElement="_16_0_1_2aa0154_1265061847703_988267_990"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_193144_1194" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119115093_366552_2968" body="List with all available role definitions. The returned objects also have the references to all authorizations and all authorization types set. The method never returns null." annotatedElement="_16_0_1_2aa0154_1265061847765_193144_1194"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847796_299988_1401" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847796_491344_1400" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_317857_991" name="createAuthorizationType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119234640_101304_2969" body="Method creates a new authorization type from the passed object. There must not already exist an authorization type with the same name." annotatedElement="_16_0_1_2aa0154_1265061847703_317857_991"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_379739_1196" name="pAuthorizationType" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119261406_42096_2970" body="Authorization type that should be created. The parameter must not be null" annotatedElement="_16_0_1_2aa0154_1265061847765_379739_1196"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311921220489_93819_19612" name="" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313479392371_916493_20437" body="Created authorization type. The method never returns null." annotatedElement="_16_8_246b03eb_1311921220489_93819_19612"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1268993422042_652732_1122" name="getAuthorizationType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279111278796_554941_2899" body="Method returns the authorization type with the passed id. An authorization type with the passed id must exist." annotatedElement="_16_0_1_282013d_1268993422042_652732_1122"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814059824_693755_21362" name="pAuthorizationTypeID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313479451793_621271_20438" body="ID of the authorization type that should be returned. The parameter must not be null" annotatedElement="_16_8_246b03eb_1309814059824_693755_21362"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311920887447_787415_19581" name="" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313479490423_6753_20439" body="Authorization type with the passed id. The method never returns null." annotatedElement="_16_8_246b03eb_1311920887447_787415_19581"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1267780418327_990071_717" name="deleteAuthorizationType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119617765_433272_2983" body="Method deletes the passed authorization type. An authorization type can only be deleted if it is not referenced any more." annotatedElement="_16_0_1_282013d_1267780418327_990071_717"/>
                    <ownedParameter xmi:id="_16_0_1_282013d_1267780566010_488219_720" name="pAuthorizationType" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119589531_150435_2982" body="AuthorizationType that should be deleted. The parameter must not be null." annotatedElement="_16_0_1_282013d_1267780566010_488219_720"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311920876934_14419_19580" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_948600_992" name="getAllAuthorizationTypes" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119325218_139361_2972" body="Method returns all available authorization types." annotatedElement="_16_0_1_2aa0154_1265061847703_948600_992"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311920864437_72420_19577" name="" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313478131776_918495_20407" body="List with all available authorization types. The method never returns null." annotatedElement="_16_8_246b03eb_1311920864437_72420_19577"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1311920864472_500102_19579" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1311920864472_556527_19578" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_290600_851" name="assignRole" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_986630_1037" body="Method assigns the passed role to the passed user for the passed validity period.&#xA;&#xA;" annotatedElement="_16_0_1_2aa0154_1265061847671_290600_851"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_13702_1039" name="pRoleDefinition" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830">
                      <ownedComment xmi:id="_16_8_1c200dd_1279109857796_110143_2877" body="RoleDefinition which has several competences. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_13702_1039"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_147790_1040" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_1c200dd_1279109872328_894145_2878" body="User the role will be assigned to. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_147790_1040"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_618457_1041" name="pValidityPeriod" visibility="public" type="_16_8_1981032c_1299600374363_508423_16390">
                      <ownedComment xmi:id="_16_8_1c200dd_1279109925765_924437_2879" body="Period that the RoleAssociation will be valid. The parameter may be null." annotatedElement="_16_0_1_2aa0154_1265061847718_618457_1041"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872380904_812925_18501" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872424680_152133_18507" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_246b03eb_1312872380904_812925_18501"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872380905_61267_18502" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872491697_700304_18509" body="Updated user account object. According to the passed load strategy associations to depending objects are also set." annotatedElement="_16_8_246b03eb_1312872380905_61267_18502"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1309927993211_382331_15681" name="unassignRole" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1309933088856_972280_21061" body="Method unassigns the passed role from the passed user." annotatedElement="_16_8_246b03eb_1309927993211_382331_15681"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313508870853_584418_19802" name="pRoleDefinition" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309928051587_272372_15687" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_246b03eb_1309933142814_112217_21063" body="User account from which the role should be removed. The parameter must not be null." annotatedElement="_16_8_246b03eb_1309928051587_272372_15687"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872407688_677361_18505" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872432949_910650_18508" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_246b03eb_1312872407688_677361_18505"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313508870947_210003_19803" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317623115800_77723_7432" name="getAllUseCaseDefinitions" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317623257794_256156_7443" body="Method returns all available use case definitions." annotatedElement="_16_8_195e0323_1317623115800_77723_7432"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317623129809_515979_7436" name="" visibility="public" type="_16_8_195e0323_1317621508528_724409_5896" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1317623304902_500108_7446" body="List with all available use case definitions. The method never returns null." annotatedElement="_16_8_195e0323_1317623129809_515979_7436"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1317623267267_657727_7445" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1317623267267_762936_7444" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317623190860_663984_7437" name="getUseCaseDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317623331879_838538_7447" body="Method returns the use case definition for the use case with the passed name." annotatedElement="_16_8_195e0323_1317623190860_663984_7437"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317623231520_543112_7441" name="pUseCaseName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_195e0323_1317623450714_542041_7449" body="Name of the use case that should be returned. The parameter must not be null and a use case definition with the passed name must exist." annotatedElement="_16_8_195e0323_1317623231520_543112_7441"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1317623231521_890372_7442" name="" visibility="public" type="_16_8_195e0323_1317621508528_724409_5896" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1317623398447_366248_7448" body="Use case definition of the use case with the passed name. The method never returns null. If no use case with the passed name exists an exception will be thrown." annotatedElement="_16_8_195e0323_1317623231521_890372_7442"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1319703671803_458300_2990" name="getRoleDefinition" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_75886_841">
                    <ownedComment xmi:id="_16_8_18230311_1319703788005_887712_2995" body="The method gets the role definition with the given name. If no role definition could be found an Exception is thrown" annotatedElement="_16_8_18230311_1319703671803_458300_2990"/>
                    <ownedParameter xmi:id="_16_8_18230311_1319703711412_710678_2993" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1319703891911_176730_2996" body="The found role definition or null." annotatedElement="_16_8_18230311_1319703711412_710678_2993"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1319703718318_195605_2994" name="pName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1319703919301_800680_2997" body="The name of the role Definition the method looks for. The parameter may not be null." annotatedElement="_16_8_18230311_1319703718318_195605_2994"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18100304_1396939392645_905277_1655" name="synchronizeRolesAndAuthorizations" visibility="public">
                    <ownedComment xmi:id="_16_8_18100304_1396940300225_660983_2460" body="Method synchronizes the given RoleDefinition with the Database. The role definitions from the given list will be imported and all older role definitions and authorizations which are not given via the role definition list will be lost." annotatedElement="_16_8_18100304_1396939392645_905277_1655"/>
                    <ownedParameter xmi:id="_16_8_18100304_1396939479755_807248_1657" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18100304_1396971038758_461822_2509" body="List of synchronized role definitions." annotatedElement="_16_8_18100304_1396939479755_807248_1657"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18100304_1396951402884_524608_2487" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18100304_1396951402884_635952_2486" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1396940733266_767616_2461" name="pRoleDefinitions" visibility="public" type="_16_0_1_2aa0154_1265061847640_355272_830" isOrdered="true" isUnique="false">
                      <ownedComment xmi:id="_16_8_18100304_1396940812099_645490_2464" body="the RoleDefinitions which have to be updated on the storage. " annotatedElement="_16_8_18100304_1396940733266_767616_2461"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18100304_1396940757113_804987_2463" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18100304_1396940757112_521303_2462" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460711678645_430822_3799" name="" memberEnd="_16_8_197a0330_1460711678645_479428_3801 _16_8_197a0330_1460711678645_495050_3800">
                  <ownedEnd xmi:id="_16_8_197a0330_1460711678645_479428_3801" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_616299_818" association="_16_8_197a0330_1460711678645_430822_3799"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18230311_1336050211190_989277_5244" name="" memberEnd="_16_8_18230311_1336050211190_624983_5245 _16_8_18230311_1336050211191_26152_5246"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1265061847640_171212_834" name="UserManagementAdminService">
                  <ownedComment xmi:id="_16_8_1c200dd_1279111945296_404615_2948" body="Service for the Administrational Functionalities." annotatedElement="_16_0_1_2aa0154_1265061847640_171212_834"/>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_111955_981" name="createCountry" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279115038531_802176_2949" body="Method creates a new country from the passed object. The method also creates a new state for every state object that belongs to the passed country object. There must not already exist a country with the same name." annotatedElement="_16_0_1_2aa0154_1265061847703_111955_981"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_921815_1180" name="pCountry" visibility="public" type="_16_0_1_2aa0154_1265061847640_777139_835">
                      <ownedComment xmi:id="_16_8_1c200dd_1279115080921_584951_2950" body="Country that should be created. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847765_921815_1180"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_882882_1181" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_777139_835" direction="return">
                      <ownedComment xmi:id="_16_8_1c200dd_1279115191984_123102_2951" body="Created country object. The reference to all states of the country is also set. The method never returns null." annotatedElement="_16_0_1_2aa0154_1265061847765_882882_1181"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278924530875_39298_2295" name="getCountry" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1278924667031_544003_2300" body="Method returns the country with the passed service object id. A country with the passed id must exist. " annotatedElement="_16_8_1c200dd_1278924530875_39298_2295"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814065921_195026_21364" name="pCountryID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474045126_554666_20104" body="ID of the country that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1309814065921_195026_21364"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814065971_653585_21365" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_777139_835" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474101161_319821_20105" body="Country object with the passed id. The reference to all states of the country is also set. The method never returns null." annotatedElement="_16_8_246b03eb_1309814065971_653585_21365"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278493136187_200550_2261" name="deleteCountry" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119645875_795118_2984" body="Method deletes the passed country object. A country object can only be deleted if it is not referenced any more." annotatedElement="_16_8_1c200dd_1278493136187_200550_2261"/>
                    <ownedParameter xmi:id="_16_8_1c200dd_1278493152687_8381_2264" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1c200dd_1278493163156_192743_2265" name="pCountry" visibility="public" type="_16_0_1_2aa0154_1265061847640_777139_835">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119664718_236517_2985" body="Country that should be deleted. The parameter must not be null." annotatedElement="_16_8_1c200dd_1278493163156_192743_2265"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_941221_983" name="createState" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279115515437_941022_2954" body="Method creates a new state from the passed object. As a state can not be on his own the reference to the country to which it belongs has to be set. There must not already exists a state with the same name for the same country." annotatedElement="_16_0_1_2aa0154_1265061847703_941221_983"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_264951_1183" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_84754_836" direction="return">
                      <ownedComment xmi:id="_16_8_1c200dd_1279116536187_509295_2955" body="Created state object. The reference to its country is also set. The method never returns null." annotatedElement="_16_0_1_2aa0154_1265061847765_264951_1183"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_259958_1184" name="pState" visibility="public" type="_16_0_1_2aa0154_1265061847640_84754_836">
                      <ownedComment xmi:id="_16_8_1c200dd_1279117549203_631154_2956" body="Object that should be used to create a new state. The reference to the country to which it belongs has to be set. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847765_259958_1184"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278924954875_505795_2301" name="getState" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1278925160562_885622_2305" body="Method returns the state with the passed id. A state object with the passed id must exist." annotatedElement="_16_8_1c200dd_1278924954875_505795_2301"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814069479_888821_21366" name="pStateID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474714796_238041_20106" body="ID of the state that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1309814069479_888821_21366"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814069503_674936_21367" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_84754_836" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474775513_467505_20107" body="State with the passed id. The reference to the country to which the returned state belongs to is also set. The method never returns null." annotatedElement="_16_8_246b03eb_1309814069503_674936_21367"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278493250359_699062_2266" name="deleteState" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119710906_677491_2987" body="Method deletes the passed state object. A state object can only be deleted if it is not referenced any more." annotatedElement="_16_8_1c200dd_1278493250359_699062_2266"/>
                    <ownedParameter xmi:id="_16_8_1c200dd_1278493264859_304541_2269" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1c200dd_1278493273109_193314_2270" name="pState" visibility="public" type="_16_0_1_2aa0154_1265061847640_84754_836">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119690015_739206_2986" body="State that should be deleted. The parameter must not be null." annotatedElement="_16_8_1c200dd_1278493273109_193314_2270"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_29670_987" name="createAddressType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279118844125_446826_2959" body="Method creates a new address type from the passed object. There must not already exist an address type with the same type name. The method also creates all address subtypes that are referenced by the passed object.&#xA;" annotatedElement="_16_0_1_2aa0154_1265061847703_29670_987"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473042140_391084_20079" name="pAddressType" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474849266_594773_20108" body="Object that should be used to create a new address type. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313473042140_391084_20079"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473042186_335085_20080" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313474959209_960588_20109" body="Created address type. The object has also set the reference to all address subtypes that belong to this address type. The method never returns null." annotatedElement="_16_8_246b03eb_1313473042186_335085_20080"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278925216609_195636_2307" name="getAddressType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1278925322906_791319_2312" body="Method returns the address type with the passed id. An address type object with the passed id has to exist." annotatedElement="_16_8_1c200dd_1278925216609_195636_2307"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473525967_690596_20097" name="pAddressTypeID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313475359044_280930_20110" body="ID of the address type that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313473525967_690596_20097"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473526014_454914_20098" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313475408029_402661_20111" body="Address type with the passed id. The reference to all address subtypes is also set. The method never returns null." annotatedElement="_16_8_246b03eb_1313473526014_454914_20098"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1278493427687_587759_2276" name="deleteAddressType" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119734953_870316_2988" body="Method deletes the passed communication address type. A communication address type can only be deleted if it is not referenced any more." annotatedElement="_16_8_1c200dd_1278493427687_587759_2276"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473537979_436781_20099" name="pAdressType" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473538026_757233_20100" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313472870453_253203_20059" name="createAddressSubtype" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313473143605_82834_20081" body="Method creates a new address subtype from the passed object. There must not already exist an address subtype with the same type name for the same address type." annotatedElement="_16_8_246b03eb_1313472870453_253203_20059"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313472912847_49875_20063" name="pAddressSubtype" visibility="public" type="_16_8_246b03eb_1313129548192_774247_19131">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473238661_922901_20083" body="Object describing the address subtype that should be created. The reference to the address type to which this subtype belongs to must be set and must reference an existing address type object. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313472912847_49875_20063"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313472912847_688925_20064" name="" visibility="public" type="_16_8_246b03eb_1313129548192_774247_19131" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473178255_695156_20082" body="Created address subtype. The method never returns null." annotatedElement="_16_8_246b03eb_1313472912847_688925_20064"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313472943589_146491_20073" name="getAddressSubtype" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313473266524_333296_20084" body="Method returns the address subtype with the passed service object ID. If the object with the passed ID does not exist an exception will be thrown." annotatedElement="_16_8_246b03eb_1313472943589_146491_20073"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473505703_371515_20095" name="pAddressSubtypeID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473657558_625887_20102" body="ID of the address subtype that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313473505703_371515_20095"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473505796_651482_20096" name="" visibility="public" type="_16_8_246b03eb_1313129548192_774247_19131" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473631817_524690_20101" body="Address subtype with the passed ID. The method never returns null." annotatedElement="_16_8_246b03eb_1313473505796_651482_20096"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313473348551_945642_20087" name="deleteAddressSubtype" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313473431018_439421_20093" body="Method deletes the address subtype with the passed service object id. If the object does not exist an exception will be thrown." annotatedElement="_16_8_246b03eb_1313473348551_945642_20087"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473387178_649797_20091" name="pAddressSubtype" visibility="public" type="_16_8_246b03eb_1313129548192_774247_19131">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473457418_838477_20094" body="ID of the address subtype that should be deleted. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313473387178_649797_20091"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313473387178_53992_20092" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1316432600860_523799_5671" name="importUserAccounts" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_488399_842">
                    <ownedComment xmi:id="_16_8_157002e0_1316614800000_337527_3257" body="Method adds the passed userAccounts. The method will create an new entry in the database for every passed user account object. To also setup all the role associations of the existing roleDefinitions, all roleDefinitions that belong to the newly created UserAccount have to be set on each userAccount. The RoleDefinitions already have to exist in the database and the passed userAccount object doesn't need a valid service object id. If a user account with the same name already exist in the database it depends on the parameter &lt;code>pIgnoreExisting&lt;/code> whether the user account will be ignored or an exception will be thrown." annotatedElement="_16_8_18230311_1316432600860_523799_5671"/>
                    <ownedParameter xmi:id="_16_8_18230311_1316432615047_645800_5674" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_157002e0_1316614911718_528126_3259" body="{@link UserAccount} Set with all user accounts that were created by this method. The reference to all RoleDefinition and Person is also set by this Method." annotatedElement="_16_8_18230311_1316432615047_645800_5674"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1316432623047_167630_5676" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1316432623047_452589_5675" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1316432625719_308033_5677" name="pUserAccounts" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_157002e0_1316614935125_717881_3260" body="All user accounts that should be created. The parameter must not be null." annotatedElement="_16_8_18230311_1316432625719_308033_5677"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1316432647345_801883_5681" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1316432647345_987135_5680" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1316432650235_516883_5682" name="pIgnoreExisting" visibility="public">
                      <ownedComment xmi:id="_16_8_157002e0_1316614963890_446728_3261" body="Parameter defines whether userAccount whose name already exists in the database should be ignored or not." annotatedElement="_16_8_18230311_1316432650235_516883_5682"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335195145366_702963_4950" name="createGroupType" visibility="public">
                    <ownedParameter xmi:id="_16_8_18230311_1335195163337_235161_4954" name="" visibility="public" type="_16_8_18230311_1335192315812_371691_4774" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335195222109_958112_4955" name="pGroupType" visibility="public" type="_16_8_18230311_1335192315812_371691_4774"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335195246005_396997_4956" name="getGroupType" visibility="public">
                    <ownedParameter xmi:id="_16_8_18230311_1335195277343_961918_4960" name="" visibility="public" type="_16_8_18230311_1335192315812_371691_4774" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335195280411_884840_4961" name="pGroupTypeID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335196667844_904844_4983" name="deleteGroupType" visibility="public">
                    <ownedParameter xmi:id="_16_8_18230311_1335196679939_901969_4987" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335196683095_206643_4988" name="pGroupType" visibility="public" type="_16_8_18230311_1335192315812_371691_4774"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1385637185444_31755_3577" name="createOrganizationUnitType" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1385637818923_723757_3609" body="Method creates a organization unit type." annotatedElement="_16_8_180f0303_1385637185444_31755_3577"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637214836_131497_3580" name="" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467" direction="return">
                      <ownedComment xmi:id="_16_8_180f0303_1385637840222_640936_3610" body="the created organization unit type." annotatedElement="_16_8_180f0303_1385637214836_131497_3580"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637256057_322489_3600" name="pOrganizationUnitType" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467">
                      <ownedComment xmi:id="_16_8_180f0303_1385637861501_961485_3611" body="The organization unit type which will be created by this method." annotatedElement="_16_8_180f0303_1385637256057_322489_3600"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1385637675983_71652_3601" name="getOrganizationUnitType" visibility="public" isLeaf="true">
                    <ownedComment xmi:id="_16_8_180f0303_1385638002405_873591_3612" body="Method returns the organization unit type with the given service object id. The method never returns null." annotatedElement="_16_8_180f0303_1385637675983_71652_3601"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637698391_395955_3603" name="" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467" direction="return">
                      <ownedComment xmi:id="_16_8_180f0303_1385638034974_814487_3613" body="the organization unit type which the method was looking for." annotatedElement="_16_8_180f0303_1385637698391_395955_3603"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637709575_606841_3604" name="pOrganizationUnitTypeId" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_180f0303_1385638085722_344206_3614" body="the organization unit type's service object id. " annotatedElement="_16_8_180f0303_1385637709575_606841_3604"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1385637740302_391486_3605" name="deleteOrganizationUnitType" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1385638167326_154698_3615" body="Method deletes the given organization unit type." annotatedElement="_16_8_180f0303_1385637740302_391486_3605"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637755880_577640_3607" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_180f0303_1385637758989_711673_3608" name="pOrganizationUnitType" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467">
                      <ownedComment xmi:id="_16_8_180f0303_1385638186931_201212_3616" body="the organization unit type that will be deleted." annotatedElement="_16_8_180f0303_1385637758989_711673_3608"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_19550320_1441830727665_169627_3965" name="createIdentityProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_19550320_1441830817283_131050_3969" body="Method creates a new identity provider based on the passed service object. If the passed identity provider is marked as default identity provider then the existing default identity provider will be replaced by this one." annotatedElement="_16_8_19550320_1441830727665_169627_3965"/>
                    <ownedParameter xmi:id="_16_8_19550320_1441830759753_359315_3967" name="pIdentityProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_19550320_1441830860461_426322_3970" body="Identity provider that should be created. The parameter must not be null." annotatedElement="_16_8_19550320_1441830759753_359315_3967"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1442298675787_802160_3610" name="pPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1442298713708_818756_3612" body="Password of the technical user that should be used to access the identity provider. The parameter must not be null." annotatedElement="_16_8_197a0330_1442298675787_802160_3610"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1442298675789_425459_3611" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313071352357_827281_20493" name="" memberEnd="_16_8_246b03eb_1313071352358_44203_20495 _16_8_246b03eb_1313071352357_581498_20494">
                  <ownedEnd xmi:id="_16_8_246b03eb_1313071352358_44203_20495" name="" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_246b03eb_1313071352357_827281_20493"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19550320_1441824511790_379993_3365" name="IdentityProvider">
                  <ownedComment xmi:id="_16_8_19550320_1441824511794_3775_3366" body="Class defines the context information that may be required to access an identity provider." annotatedElement="_16_8_19550320_1441824511790_379993_3365"/>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460733657484_952555_4325" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511794_548456_3367" name="providerURL" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_19550320_1441824511799_56895_3377" body="URL of the server of the identity provider e.g. &quot;ldaps://cloud.weeasy.de&quot;" annotatedElement="_16_8_19550320_1441824511794_548456_3367"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511795_488113_3368" name="searchBase" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_19550320_1441824511800_283297_3379" body="Optional attribute defines the search base for accessing identities. This attribute is required in case of ldap based identity providers." annotatedElement="_16_8_19550320_1441824511795_488113_3368"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511795_669026_3369" name="domain" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_19550320_1441824511800_625903_3381" body="Domain to which the identity provider server belongs to." annotatedElement="_16_8_19550320_1441824511795_669026_3369"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1442298621174_535830_2946" name="user" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_197a0330_1442298621179_641144_2947" body="Technical user that should be used to access the identity provider. The attribute may be null." annotatedElement="_16_8_197a0330_1442298621174_535830_2946"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1461338023682_157917_3822" name="password" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511797_465131_3372" name="connectTimeout" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_19550320_1441824511801_925113_3387" body="Connection timeout when trying to access the identity provider.  The attribute may be null." annotatedElement="_16_8_19550320_1441824511797_465131_3372"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511797_557302_3373" name="readTimeout" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_19550320_1441824511801_676190_3389" body="Read timeout for queries using the identity provider.  The attribute may be null." annotatedElement="_16_8_19550320_1441824511797_557302_3373"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511798_801350_3374" name="acceptAllCertificates" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_19550320_1441824511802_806790_3391" body="If attribute is set to true then all SSL certificates are accepted not matter if they are valid or not. This feature is intended to be used in non production environments. " annotatedElement="_16_8_19550320_1441824511798_801350_3374"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1441824511798_159297_3375" name="defaultLoginProvider" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460716982691_418149_4155" name="requestParameters" visibility="private" type="_16_8_197a0330_1460716422079_205151_4103" isOrdered="true" isUnique="false" association="_16_8_197a0330_1460716982690_32937_4154">
                    <ownedComment xmi:id="_16_8_197a0330_1460717480755_472865_4169" body="List with all request parameters that should be passed to the identity provider on authentication requests." annotatedElement="_16_8_197a0330_1460716982691_418149_4155"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460716991130_70612_4164" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460716991129_295991_4163" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1462309822979_419700_3152" name="defaultDirectoryService" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460718500781_505572_4179" name="providerCertificate" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_197a0330_1460720928820_714861_4229" body="Certificate of the identity provider." annotatedElement="_16_8_197a0330_1460718500781_505572_4179"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460718695618_166524_4215" name="implementation" visibility="private" type="_16_8_197a0330_1460718592803_555851_4186" association="_16_8_197a0330_1460718695618_13843_4214">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460718711664_622090_4224" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460718711664_47759_4223" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1462854230055_361109_3157" name="disableValidityCheck" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_19550320_1462854279587_263203_3160" body="Flag allows to disable validity checks inside SAML identity providers. This flag is intended to be used for test purposes only." annotatedElement="_16_8_19550320_1462854230055_361109_3157"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1463760681896_419308_3906" name="clientSecret" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1968032c_1463760681897_567065_3907" body="Client secret is used in case of OAuth." annotatedElement="_16_8_1968032c_1463760681896_419308_3906"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1479377518972_683354_3159" name="allowEMailLogin" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_18440316_1479377585624_403313_3161" body="true if login with the email address is allowed, otherwise false." annotatedElement="_16_8_18440316_1479377518972_683354_3159"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_19550320_1462338400008_499112_3900" name="getLoginProtocol" visibility="public">
                    <ownedComment xmi:id="_16_8_19550320_1462338456189_509854_3905" body="Method returns the login protocol that is used for this identity provider. This depends on the identity provider implementation." annotatedElement="_16_8_19550320_1462338400008_499112_3900"/>
                    <ownedParameter xmi:id="_16_8_19550320_1462338413260_204900_3904" name="" visibility="public" type="_16_8_19550320_1462338391871_139126_3893" direction="return">
                      <ownedComment xmi:id="_16_8_19550320_1462338483774_505309_3906" body="Login protocol that should be used for this identity provider. The method never returns null." annotatedElement="_16_8_19550320_1462338413260_204900_3904"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_355272_830" name="RoleDefinition">
                  <ownedComment xmi:id="_16_8_246b03eb_1313142674517_976889_20159" body="A role definition defines a certain role in a system or application. Usually role definitions match with the definition of actors from the use case model. Roles are used to encapsulate authorization types which are assigned to a role for a period of time. This indirection is useful to ease the administration of privileges within a application. Instead of assigning lots of authorization types to a user account simply a role has to be assigned. " annotatedElement="_16_0_1_2aa0154_1265061847640_355272_830"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_405638_958" name="authorizations" visibility="private" type="_16_0_1_2aa0154_1265061847640_162663_804" association="_16_0_1_2aa0154_1265061847640_176941_825">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142723591_304608_20161" body="Reference to all authorizations that are assigned to the role for a certain period of time." annotatedElement="_16_0_1_2aa0154_1265061847687_405638_958"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_282013d_1279635822748_671217_2799" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_282013d_1279635822748_246454_2798" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_438800_975" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142708421_997532_20160" body="Name of the role definition. This name usually matches with the name of the actor from the use case model. The name of the role definition must be unique and must not be null." annotatedElement="_16_0_1_2aa0154_1265061847703_438800_975"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195e0323_1317624131224_127209_7455" name="authorizedUseCases" visibility="private" type="_16_8_195e0323_1317621508528_724409_5896" isOrdered="true" isUnique="false" association="_16_8_195e0323_1317624131224_282641_7454">
                    <ownedComment xmi:id="_16_8_195e0323_1317624225259_148420_7469" body="Reference to all use cases that may be executed by users that have this role assigned." annotatedElement="_16_8_195e0323_1317624131224_127209_7455"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1317624149462_752864_7466" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1317624149461_640914_7465" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313482311785_807482_20544" name="OrganizationalUnitLoadStrategy">
                  <ownedComment xmi:id="_16_8_246b03eb_1313482467750_36160_20569" body="Class defines load strategy for class organizational unit and its depending objects. The class can be used to tell a service which associations of a organizational unit should also be returned when the service returns one or more organizational units." annotatedElement="_16_8_246b03eb_1313482311785_807482_20544"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313482347478_561509_20563" name="loadPersons" visibility="private">
                    <ownedComment xmi:id="_16_8_246b03eb_1313482521263_243437_20572" body="Attribute can be used load all persons of an organizational unit." annotatedElement="_16_8_246b03eb_1313482347478_561509_20563"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313482477031_60693_20570" name="loadAddresses" visibility="private">
                    <ownedComment xmi:id="_16_8_246b03eb_1313482590973_774858_20574" body="Attribute can be used to load all addresses of an organizational unit." annotatedElement="_16_8_246b03eb_1313482477031_60693_20570"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313600622751_694993_20104" name="loadPermissions" visibility="private">
                    <ownedComment xmi:id="_16_8_246b03eb_1313600622751_302706_20106" body="Attribute can be used to load all roles of an user account." annotatedElement="_16_8_246b03eb_1313600622751_694993_20104"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313600622751_937866_20105" name="loadAuthorizationTypes" visibility="private">
                    <ownedComment xmi:id="_16_8_246b03eb_1313600622751_466726_20107" body="Attribute can be used to load all authorization types of an user account." annotatedElement="_16_8_246b03eb_1313600622751_937866_20105"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313482385156_176075_20567" name="loadRecursive" visibility="private">
                    <ownedComment xmi:id="_16_8_246b03eb_1313482777158_445235_20575" body="Attribute can be used to recursively load referenced objects. If the attribute is set the other load attributes are applied on every level of the hierarchy of organizational units. Beware that this can cause huge amounts of objects to be loaded from the database and thus may decrease the performance." annotatedElement="_16_8_246b03eb_1313482385156_176075_20567"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313601031498_483931_20110" name="loadUserAccount" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19800330_1328272743371_666369_5763" name="loadEmployees" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460716982690_32937_4154" name="" memberEnd="_16_8_197a0330_1460716982691_480280_4156 _16_8_197a0330_1460716982691_418149_4155">
                  <ownedEnd xmi:id="_16_8_197a0330_1460716982691_480280_4156" name="" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460716982690_32937_4154"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460718695618_13843_4214" name="" memberEnd="_16_8_197a0330_1460718695618_818006_4216 _16_8_197a0330_1460718695618_166524_4215">
                  <ownedEnd xmi:id="_16_8_197a0330_1460718695618_818006_4216" name="" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460718695618_13843_4214"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_488399_842" name="UserManagementServiceApplicationException"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1311939174568_98521_20194" name="" memberEnd="_16_8_246b03eb_1311939174569_366879_20196 _16_8_246b03eb_1311939174568_223855_20195">
                  <ownedEnd xmi:id="_16_8_246b03eb_1311939174569_366879_20196" name="" visibility="private" type="_16_8_246b03eb_1311938486914_446309_20131" association="_16_8_246b03eb_1311939174568_98521_20194"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460711530784_514446_3761" name="" memberEnd="_16_8_197a0330_1460711530784_964859_3763 _16_8_197a0330_1460711530784_707208_3762">
                  <ownedEnd xmi:id="_16_8_197a0330_1460711530784_964859_3763" name="" visibility="private" type="_16_8_180f0303_1385473882980_107613_3692" association="_16_8_197a0330_1460711530784_514446_3761"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_197a0330_1460716422079_205151_4103" name="IdpRequestParameter">
                  <ownedComment xmi:id="_16_8_197a0330_1460716916884_450894_4147" body="Some identity providers support / require parameters that are send to them as part of an authentication request" annotatedElement="_16_8_197a0330_1460716422079_205151_4103"/>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460716859901_802718_4143" name="key" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_197a0330_1460716961280_197532_4148" body="Key of the represented request parameter." annotatedElement="_16_8_197a0330_1460716859901_802718_4143"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460716866386_597278_4145" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_197a0330_1460716976113_54742_4149" body="Value of the represented request parameter." annotatedElement="_16_8_197a0330_1460716866386_597278_4145"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_75886_841" name="UserManagementServiceSystemException"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_18230311_1335192105208_992797_4717" name="Group">
                  <generalization xmi:id="_16_8_18230311_1335192159613_967326_4740" isSubstitutable="true" general="_16_8_246b03eb_1313069176764_772568_20108"/>
                  <ownedAttribute xmi:id="_16_8_18230311_1335192172911_237708_4742" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_18230311_1335192192078_432980_4744" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_18230311_1335192390516_461666_4803" name="type" visibility="private" type="_16_8_18230311_1335192315812_371691_4774" association="_16_8_18230311_1335192390516_271507_4802"/>
                  <ownedAttribute xmi:id="_16_8_18230311_1336050211191_26152_5246" name="groupChildElements" visibility="private" type="_16_8_246b03eb_1313069176764_772568_20108" association="_16_8_18230311_1336050211190_989277_5244">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336050257405_139059_5262" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336050257405_15951_5261" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1336468079078_446464_5083" name="owner" visibility="private" type="_16_0_1_2aa0154_1265061847640_616299_818" association="_16_8_18230311_1336468079077_485843_5082">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1385481513043_525391_3847" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1385481513043_710293_3846" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18440316_1389177029086_171676_2520" name="" memberEnd="_16_8_18440316_1389177029086_560823_2522 _16_8_18440316_1389177029086_461485_2521">
                  <ownedEnd xmi:id="_16_8_18440316_1389177029086_560823_2522" name="" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_18440316_1389177029086_171676_2520"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_180f0303_1385473882980_107613_3692" name="OrganizationalUnitAccount">
                  <ownedComment xmi:id="_16_8_180f0303_1385482471400_637858_3858" body="An organizational unit account is the technical representation of a company within a system. Thus in difference to a company an organizational unit account encapsulates all information that go together with the application such as permissions." annotatedElement="_16_8_180f0303_1385473882980_107613_3692"/>
                  <generalization xmi:id="_16_8_180f0303_1385473960390_451928_3738" isSubstitutable="true" general="_16_8_180f0303_1385473935405_736341_3712"/>
                  <ownedAttribute xmi:id="_16_8_180f0303_1385477477248_22851_3817" name="organizationalUnit" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_180f0303_1385477477247_750483_3816">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1385477477248_802760_3819" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1385477477249_445686_3820" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460711510943_843778_3743" name="identityProviders" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460711510942_854667_3742">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460711514629_220924_3752" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460711514629_871461_3751" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460711530784_707208_3762" name="loginProvider" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460711530784_514446_3761">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460711537571_527320_3771" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460711537571_547623_3770" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460711553809_446035_3781" name="directoryService" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460711553809_835141_3780">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460711567288_435_3790" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460711567287_266254_3789" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313073507871_889651_20635" name="" memberEnd="_16_8_246b03eb_1313073507872_794075_20637 _16_8_246b03eb_1313073507871_756075_20636">
                  <ownedEnd xmi:id="_16_8_246b03eb_1313073507872_794075_20637" name="" visibility="private" type="_16_8_246b03eb_1313069176764_772568_20108" association="_16_8_246b03eb_1313073507871_889651_20635"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_16_0_1_2aa0154_1268069554421_399461_1184" name="" supplier="_16_0_1_2aa0154_1260521788421_629963_474" client="_16_0_1_2aa0154_1265061847640_126685_803"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_616299_818" name="UserAccount">
                  <ownedComment xmi:id="_16_8_246b03eb_1313142772385_752336_20164" body="A user account is the technical representation of a person within a system. Thus in difference to a person a user account encapsulates all information that go together with the application such as login information and permissions." annotatedElement="_16_0_1_2aa0154_1265061847640_616299_818"/>
                  <generalization xmi:id="_16_8_180f0303_1385473974323_470251_3741" isSubstitutable="true" general="_16_8_180f0303_1385473935405_736341_3712"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_151867_933" name="loginName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_17e50302_1310391823123_357155_18947" body="Login name of the user. To ensure that depending on the concrete application also the users email address can be used, the attribute has the same database mapping as an email address." annotatedElement="_16_0_1_2aa0154_1265061847687_151867_933"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_783181_934" name="locked" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_17e50302_1310391902062_306018_18948" body="Attribute defines if the user account is locked. If the account is locked this means the user can't sign in to the system anymore and all roles and authorizations are blocked." annotatedElement="_16_0_1_2aa0154_1265061847687_783181_934"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_394035_937" name="person" visibility="private" type="_16_0_1_2aa0154_1265061847640_17642_827" association="_16_0_1_2aa0154_1265061847640_574624_828">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142805200_332131_20165" body="Reference to person to which this user account belongs. A user account always belongs to a person. For technical users such as &quot;root&quot; a dummy person exists." annotatedElement="_16_0_1_2aa0154_1265061847687_394035_937"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847750_622998_1154" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847750_614092_1153" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_282013d_1266571989304_594557_1202" name="passwordExpiration" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_17e50302_1310391963901_579731_18949" body="Attribute defines the date when the password of the account expires. If the password is expired a user can not login anymore." annotatedElement="_16_0_1_282013d_1266571989304_594557_1202"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1309933784880_433502_21064" name="validity" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390">
                    <ownedComment xmi:id="_16_8_17e50302_1310391997521_875635_18950" body="Period of time within this user account is valid. The validity of a user account may be unlimited." annotatedElement="_16_8_246b03eb_1309933784880_433502_21064"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1318841671471_298696_4590" name="activationToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18230311_1318842779301_900000_4592" body="Attribute for a oneTimeToken which every user gets during his the registration. This token is used to activate the user. If the Token is null the user is already activated." annotatedElement="_16_8_18230311_1318841671471_298696_4590"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1336468079078_929894_5084" name="groups" visibility="private" type="_16_8_18230311_1335192105208_992797_4717" isOrdered="true" isUnique="false" association="_16_8_18230311_1336468079077_485843_5082">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336468177180_459694_5100" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336468177179_474943_5099" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_197a0330_1460711678645_495050_3800" name="loginProvider" visibility="private" type="_16_8_19550320_1441824511790_379993_3365" association="_16_8_197a0330_1460711678645_430822_3799">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1460711708993_164306_3811" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1460711708993_465260_3810" name="" value="1"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313143055655_276210_20171" name="getAssignedRoles" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313143055660_545382_20175" body="Method returns all role associations that are assigned to this user account." annotatedElement="_16_8_246b03eb_1313143055655_276210_20171"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313143055658_941740_20173" name="pOnlyValidRoles" visibility="public">
                      <ownedComment xmi:id="_16_8_246b03eb_1313143055662_891075_20179" body="Parameter defines if the method should return only valid role associations or all assigned. If the parameter is true only currently valid permissions are returned." annotatedElement="_16_8_246b03eb_1313143055658_941740_20173"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313394109753_752816_22168" name="" visibility="public" type="_16_8_246b03eb_1311938486914_446309_20131" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313394150045_906303_22170" body="List with all role associations that are assigned to this user account. The method never returns null." annotatedElement="_16_8_246b03eb_1313394109753_752816_22168"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313394153335_790298_22172" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313394153334_791619_22171" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313143055657_209157_20172" name="getAssignedObjectPermissions" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313143055662_815882_20178" body="Method returns all object permissions that are assigned to this user account." annotatedElement="_16_8_246b03eb_1313143055657_209157_20172"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313143055660_297662_20176" name="pOnlyValidObjectPermissions" visibility="public">
                      <ownedComment xmi:id="_16_8_246b03eb_1313143055663_107837_20183" body="Parameter defines if only permissions should be returned that are currently valid or if all permissions should be returned. If the parameter is true only currently valid permissions are returned." annotatedElement="_16_8_246b03eb_1313143055660_297662_20176"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313394118704_18544_22169" name="" visibility="public" type="_16_8_246b03eb_1313071665264_314518_20535" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313394183265_73369_22173" body="List with all object permissions that are assigned to this user account. The method never returns null." annotatedElement="_16_8_246b03eb_1313394118704_18544_22169"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313394188522_257528_22177" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313394188522_796679_22176" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317621724728_323696_5947" name="getAuthorizedUseCases" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317621765985_885202_5954" body="Method returns all use cases that may be executed by this user account." annotatedElement="_16_8_195e0323_1317621724728_323696_5947"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317632734406_304005_7482" name="pOnlyCurrentlyValidUseCases" visibility="public">
                      <ownedComment xmi:id="_16_8_195e0323_1317632771952_108633_7486" body="Parameter defines if only the use cases of currently valid roles should be returned or all use cases." annotatedElement="_16_8_195e0323_1317632734406_304005_7482"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1317632734408_30926_7483" name="" visibility="public" type="_16_8_195e0323_1317621508528_724409_5896" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1317632734457_181287_7485" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1317632734457_7614_7484" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313143432594_617628_20213" name="isPasswordExpired" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313143432596_157530_20215" body="Method checks if the password of the user account is expired a the current moment." annotatedElement="_16_8_246b03eb_1313143432594_617628_20213"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313143432595_517410_20214" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313143432596_345493_20216" body="Method returns true if the password is expired and false in all other cases." annotatedElement="_16_8_246b03eb_1313143432595_517410_20214"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1318844824632_480780_4644" name="isActivated" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1318844958603_191657_4646" body="Method checks if a UserAccount is activated." annotatedElement="_16_8_18230311_1318844824632_480780_4644"/>
                    <ownedParameter xmi:id="_16_8_18230311_1318844969285_136982_4647" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1318845030680_426493_4648" body="Returns true if the UserAccount is activated otherwise it returns false" annotatedElement="_16_8_18230311_1318844969285_136982_4647"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1966032d_1380468869977_504950_4551" name="getValidDays" visibility="public">
                    <ownedComment xmi:id="_16_8_1966032d_1380468930761_435695_4554" body="Method returns the number of days that this user account is valid." annotatedElement="_16_8_1966032d_1380468869977_504950_4551"/>
                    <ownedParameter xmi:id="_16_8_1966032d_1380468885205_77395_4553" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1966032d_1380468982731_190564_4555" body=" The method returns -1 if the account is unlimited valid." annotatedElement="_16_8_1966032d_1380468885205_77395_4553"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313071316622_472689_20467" name="OrganizationUnitType">
                  <ownedComment xmi:id="_16_8_246b03eb_1313140651934_769674_20082" body="Class represents any type of an organization unit. This may be something like a company, a division, a department or anything else." annotatedElement="_16_8_246b03eb_1313071316622_472689_20467"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071334309_603980_20485" name="typeName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140654982_248345_20083" body="Name of the organization unit type." annotatedElement="_16_8_246b03eb_1313071334309_603980_20485"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313069176764_772568_20108" name="OrganizationalElement" isAbstract="true">
                  <ownedComment xmi:id="_16_8_246b03eb_1313139596027_944735_20072" body="Class is the base class for all service objects that represent organizational elements. Due to the inheritance mechanism of permission that is implemented within JEAF's User Management all permissions are granted to organizational elements. Depending on the concrete organizational element (person or organization unit) the permission is assigned and derived to the user accounts within the hierarchy.&#xA;&#xA;TODO: Support for customer specific attributes is currently missing&#xA;" annotatedElement="_16_8_246b03eb_1313069176764_772568_20108"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071242759_902841_20446" name="parentUnit" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_246b03eb_1313071242758_506583_20444">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139621531_576953_20073" body="Reference to parent organization unit. It is not required that an organizational element has a parent neither if it is a person nor a organization unit." annotatedElement="_16_8_246b03eb_1313071242759_902841_20446"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313071296083_201653_20462" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313071296082_487519_20461" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073507871_756075_20636" name="ownedPermissions" visibility="private" type="_16_8_246b03eb_1313071546812_894351_20510" association="_16_8_246b03eb_1313073507871_889651_20635">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139649856_299269_20075" body="Reference to all permissions that are owned by the organizational element. All owned permissions were directly granted to this object." annotatedElement="_16_8_246b03eb_1313073507871_756075_20636"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313073528720_314065_20647" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313073528720_39899_20646" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1336050211190_624983_5245" name="parentGroup" visibility="private" type="_16_8_18230311_1335192105208_992797_4717" isOrdered="true" isUnique="false" association="_16_8_18230311_1336050211190_989277_5244">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336050233979_710771_5256" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336050233979_37839_5255" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460711553809_835141_3780" name="" memberEnd="_16_8_197a0330_1460711553810_262946_3782 _16_8_197a0330_1460711553809_446035_3781">
                  <ownedEnd xmi:id="_16_8_197a0330_1460711553810_262946_3782" name="" visibility="private" type="_16_8_180f0303_1385473882980_107613_3692" association="_16_8_197a0330_1460711553809_835141_3780"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_180f0303_1385473935405_736341_3712" name="Account">
                  <ownedAttribute xmi:id="_16_8_180f0303_1385473948750_259749_3732" name="assignedPermissions" visibility="private" type="_16_8_246b03eb_1313071546812_894351_20510" association="_16_8_180f0303_1385473948749_375051_3730">
                    <ownedComment xmi:id="_16_8_180f0303_1385473948751_806940_3734" body="Reference to all permissions that are assigned to this user account. This includes the directly owned permissions as well as derived permissions." annotatedElement="_16_8_180f0303_1385473948750_259749_3732"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1385473948751_292756_3733" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1385473948751_785764_3735" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19560321_1475467386647_791756_3103" name="accountType" visibility="private" type="_16_8_19560321_1475467221657_448443_2331">
                    <ownedComment xmi:id="_16_8_19560321_1475467418617_508650_3105" body="Attribute defines the type of account. " annotatedElement="_16_8_19560321_1475467386647_791756_3103"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1c200dd_1283256244296_692847_2307" name="UserAccountQuery">
                  <ownedComment xmi:id="_16_8_246b03eb_1313497634477_995049_20728" body="Class defines the criteria that can be used to query user accounts. If more than one criteria is set they are conjuncted by a logical AND." annotatedElement="_16_8_1c200dd_1283256244296_692847_2307"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1465793790302_318395_4398" name="queryString" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_19550320_1465793959296_14288_4404" body="Attribute for quering user accounts by a search string. The search string will be used to query several fields." annotatedElement="_16_8_19550320_1465793790302_318395_4398"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1465793815939_619114_4400" name="active" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1465793841689_581685_4402" name="exists" visibility="private" type="_9_5_f720368_1110473546612_366010_7561"/>
                  <ownedAttribute xmi:id="_16_8_18440316_1484311744927_491684_1842" name="userRole" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18440316_1484311843579_302037_1844" body="Attribute to filter for users with a specific role." annotatedElement="_16_8_18440316_1484311744927_491684_1842"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1265061847640_126685_803" name="AuthorizationService" clientDependency="_16_0_1_2aa0154_1268069554421_399461_1184">
                  <ownedComment xmi:id="_16_8_246b03eb_1313476726246_621711_20405" body="Service offers methods to check if the current user has a required authorization. The service supports a role based security concept as well as object passed permissions. In order to manage the roles and object permissions of users and organizational units the AuthorizationAdminService has to be used.&#xA;&#xA;If JEAF Security is enabled for a service, a special service invocation listener will call this service to ensure that the user has the required authorization (based on a roles and authorization types per method.). If a service implementation wants to use object permissions these have to be checked programmatically. The combination of role based and object based permissions is possible." annotatedElement="_16_0_1_2aa0154_1265061847640_126685_803"/>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847687_958165_905" name="hasAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1312808071993_705067_21772" body="Method checks whether the current user has the authorization of the passed type." annotatedElement="_16_0_1_2aa0154_1265061847687_958165_905"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311923103607_925426_19652" name="pAuthorizationType" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311923103648_794894_19653" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1312808095700_507083_21773" body="Method returns true if the authorization check was successful and false in all other cases." annotatedElement="_16_8_246b03eb_1311923103648_794894_19653"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1312807897106_508344_21683" name="hasAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1312808157083_543393_21775" body="Method checks whether the current user has the permission to access the service object with the passed id with the passed access mode." annotatedElement="_16_8_195e0323_1312807897106_508344_21683"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1312808018684_434511_21765" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313043771480_928800_18820" body="ID of the service object for which the permission should be checked. The parameter must not be null." annotatedElement="_16_8_195e0323_1312808018684_434511_21765"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043556164_949649_18814" name="pAccessMode" visibility="public" type="_16_8_246b03eb_1313043490098_634264_18789">
                      <ownedComment xmi:id="_16_8_246b03eb_1313043740801_580638_18819" body="Access mode describes the way the current user wants to access the service object with the passed id. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313043556164_949649_18814"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043556180_522515_18815" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313043690059_100349_18818" body="Method returns true if the current user has permission to access the service object with the passed ID in the passed access mode and false in all other cases." annotatedElement="_16_8_246b03eb_1313043556180_522515_18815"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317622538837_246032_7423" name="hasAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317622602867_639339_7429" body="Method checks whether the current user has the permission to execute a use case of the passed type." annotatedElement="_16_8_195e0323_1317622538837_246032_7423"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317622562749_876773_7427" name="pUseCase" visibility="public" type="_16_8_195e0323_1317621508528_724409_5896">
                      <ownedComment xmi:id="_16_8_195e0323_1317622739504_988567_7431" body="Representation of the use case for which the authorization should be checked. The parameter must not be null." annotatedElement="_16_8_195e0323_1317622562749_876773_7427"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1317622562751_257254_7428" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1317622657839_134518_7430" body="Method returns true if the current user has permission to execute the use case of the passed type and false in all other cases." annotatedElement="_16_8_195e0323_1317622562751_257254_7428"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847687_219526_906" name="enforceAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313043852880_353948_18821" body="Method checks whether the current user has right now the authorization that is described by the passed authorization type. This method enforces that the user has the required authorization. If the check is negative an exception due to insufficient privileges will be thrown." annotatedElement="_16_0_1_2aa0154_1265061847687_219526_906"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311923115924_191297_19654" name="pAuthorizationType" visibility="public" type="_16_8_246b03eb_1311920471215_324742_19174">
                      <ownedComment xmi:id="_16_8_246b03eb_1313043939757_362764_18823" body="Authorization type for which the check will be performed. The parameter must not be null." annotatedElement="_16_8_246b03eb_1311923115924_191297_19654"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1311923115953_747044_19655" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1312808025873_778048_21767" name="enforceAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313043892005_715678_18822" body="Method checks whether the current user has right now the authorization for the service object with the passed ID and the passed access mode. This method enforces that the user has the required authorization. If the check is negative an exception due to insufficient privileges will be thrown." annotatedElement="_16_8_195e0323_1312808025873_778048_21767"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1312808051048_684433_21770" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313044036018_276468_18825" body="ID of the service object for which the permission should be checked. The parameter must not be null." annotatedElement="_16_8_195e0323_1312808051048_684433_21770"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043574567_555598_18816" name="pAccessMode" visibility="public" type="_16_8_246b03eb_1313043490098_634264_18789">
                      <ownedComment xmi:id="_16_8_246b03eb_1313044018625_41884_18824" body="Access mode describes the way the current user wants to access the service object with the passed id. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313043574567_555598_18816"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043574588_184434_18817" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313043180486_304201_15844" name="getObjectAccessPrivilege" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313475649834_362675_20112" body="Method returns the access privilege for the object with the passed id for the current user." annotatedElement="_16_8_246b03eb_1313043180486_304201_15844"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043246596_126933_15850" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313475683670_854666_20113" body="ID of the object for which the access privileges of the current user should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313043246596_126933_15850"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043246596_649949_15851" name="" visibility="public" type="_16_8_246b03eb_1313043280385_486897_15853" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313475830384_531723_20114" body="Access privileges of the current user for the object with the passed id. If no access privileges are defined for the object with the passed id the method returns null. This means that the users privileges for the object are undefined." annotatedElement="_16_8_246b03eb_1313043246596_649949_15851"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313043379027_797119_18765" name="getObjectAccessPriviliges" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313475841148_962594_20115" body="Method returns the access privileges for the objects with the passed ids for the current user." annotatedElement="_16_8_246b03eb_1313043379027_797119_18765"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043436348_189718_18768" name="pServiceObjectIDs" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448" isOrdered="true" isUnique="false">
                      <ownedComment xmi:id="_16_8_246b03eb_1313475929481_669842_20116" body="List with the ids of all service objects for which the access privileges of the current user should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313043436348_189718_18768"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313043436349_234763_18769" name="" visibility="public" type="_16_8_246b03eb_1313043280385_486897_15853" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313476028241_539303_20117" body="List with the access privileges of the current user for all objects with the passed ids. The returned list has the same order as the list with service object ids. Beware that the returned list may contain null values as for some objects the access privileges may not be defined." annotatedElement="_16_8_246b03eb_1313043436349_234763_18769"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317633338018_508985_7487" name="getAllAuthorizedUseCases" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317633386907_989891_7493" body="Method returns all use cases definitions for which the current user is currently authorized." annotatedElement="_16_8_195e0323_1317633338018_508985_7487"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317633352859_684351_7492" name="" visibility="public" type="_16_8_195e0323_1317621508528_724409_5896" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1317633431327_4307_7496" body="List with all use cases for which the current user is currently authorized. The method never returns null." annotatedElement="_16_8_195e0323_1317633352859_684351_7492"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1317633393136_505078_7495" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1317633393136_291944_7494" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_18230311_1335193002731_328878_4848" name="GroupLoadStrategy">
                  <ownedAttribute xmi:id="_16_8_18230311_1335193020711_447816_4869" name="loadPersons" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1335193034930_192690_4871" name="loadPermissions" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1335193060580_53976_4873" name="loadRecursive" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1335194432911_63910_4896" name="loadAUthorizationTypes" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1335194450614_714678_4898" name="loadUserAccounts" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313071546812_894351_20510" name="Permission">
                  <ownedComment xmi:id="_16_8_246b03eb_1313140764923_46701_20084" body="This is the base class for all permissions. The class does not define which permission concept is used (class / objects based authorizations or role based). This is defined by the class' subclasses. All permissions support a concept called inheritance. If inheritance is enabled for a permission, the permission will be derived to all child elements in the organization hierarchy." annotatedElement="_16_8_246b03eb_1313071546812_894351_20510"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073187438_790456_20580" name="inheritable" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140804214_371382_20086" body="Attribute defines if an owned permission is inherited to child elements. Inheritance only makes sense for permissions that are owned by organization units. In case that inheritance is enabled for a permission, a owned permission will not only be assigned to all persons that belong to an organization unit but also to all persons in child organization units. For permissions that are owned by a person this flag has no meaning." annotatedElement="_16_8_246b03eb_1313073187438_790456_20580"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313393669887_435596_22163" name="validity" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390">
                    <ownedComment xmi:id="_16_8_246b03eb_1313393704280_522185_22166" body="Attribute defines the period within the permission is valid. A permission may also be unlimited valid." annotatedElement="_16_8_246b03eb_1313393669887_435596_22163"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073201077_507108_20582" name="comment" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140818994_360473_20087" body="Comment for the permission. This attribute is intended for users to leave any comment they want to." annotatedElement="_16_8_246b03eb_1313073201077_507108_20582"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313140820657_198774_20088" name="isCurrentlyValid" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140847993_197275_20092" body="Method checks if the permission is currently valid. Valid means that the current point of time is within the defined validity period of the permission." annotatedElement="_16_8_246b03eb_1313140820657_198774_20088"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313140832916_922211_20091" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313140886976_909043_20093" body="Method returns true if the permission is currently valid and false in all other cases." annotatedElement="_16_8_246b03eb_1313140832916_922211_20091"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313073362281_958740_20611" name="" memberEnd="_16_8_246b03eb_1313073362282_307197_20613 _16_8_246b03eb_1313073362281_815770_20612">
                  <ownedEnd xmi:id="_16_8_246b03eb_1313073362282_307197_20613" name="" visibility="private" type="_16_8_246b03eb_1313071665264_314518_20535" association="_16_8_246b03eb_1313073362281_958740_20611"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313071242758_506583_20444" name="" memberEnd="_16_8_246b03eb_1313071242758_525631_20445 _16_8_246b03eb_1313071242759_902841_20446"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18230311_1335192390516_271507_4802" name="" memberEnd="_16_8_18230311_1335192390517_874505_4804 _16_8_18230311_1335192390516_461666_4803">
                  <ownedEnd xmi:id="_16_8_18230311_1335192390517_874505_4804" name="" visibility="private" type="_16_8_18230311_1335192105208_992797_4717" association="_16_8_18230311_1335192390516_271507_4802"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313071665264_314518_20535" name="ObjectPermission">
                  <ownedComment xmi:id="_16_8_246b03eb_1313139159505_501781_20039" body="An object permission is a permission that defines how user accounts may access all objects of one type or a single object. Thus object permissions can be used to set up a fine grained authorization mechanism that defines the access privileges to data on an object or class basis." annotatedElement="_16_8_246b03eb_1313071665264_314518_20535"/>
                  <generalization xmi:id="_16_8_246b03eb_1313071675053_71631_20555" isSubstitutable="true" general="_16_8_246b03eb_1313071546812_894351_20510"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073362281_815770_20612" name="accessPrivilege" visibility="private" type="_16_8_246b03eb_1313043280385_486897_15853" association="_16_8_246b03eb_1313073362281_958740_20611">
                    <ownedComment xmi:id="_16_8_246b03eb_1313143654013_713881_20219" body="Access privilege that is defined for this permission. The reference must not be null." annotatedElement="_16_8_246b03eb_1313073362281_815770_20612"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313073376594_675064_20623" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313073376593_951629_20622" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073420120_16604_20627" name="referencedObjectID" visibility="private" type="_16_0_1_2aa0154_1260521459312_878984_448">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139451781_968631_20069" body="ID of the service object for which this permission is valid. As object permissions may also handle all objects of a class in combination with a customer specific authorization check algorithm the referenced object ID may be null." annotatedElement="_16_8_246b03eb_1313073420120_16604_20627"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313073448557_154741_20629" name="clazz" visibility="private" type="_9_5_f720368_1110473546612_428363_7573">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139480150_433450_20070" body="Class for which the object permission is valid. The attribute must not be null." annotatedElement="_16_8_246b03eb_1313073448557_154741_20629"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1311938486914_446309_20131" name="RoleAssociation">
                  <ownedComment xmi:id="_16_8_246b03eb_1313142565403_442736_20157" body="Class describes a permission that grants a so called role to a user account. This class is part of JEAF's implementation of a role based security concept. Except for the assigned role all other information are already defined in the class' base class." annotatedElement="_16_8_246b03eb_1311938486914_446309_20131"/>
                  <generalization xmi:id="_16_8_246b03eb_1313071621643_381768_20532" isSubstitutable="true" general="_16_8_246b03eb_1313071546812_894351_20510"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1311939174568_223855_20195" name="roleDefinition" visibility="private" type="_16_0_1_2aa0154_1265061847640_355272_830" association="_16_8_246b03eb_1311939174568_98521_20194">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142604876_749837_20158" body="Reference to role definition that is assigned through this class. The reference must always be set." annotatedElement="_16_8_246b03eb_1311939174568_223855_20195"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1311939793373_182720_23133" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1311939793372_782556_23132" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_180f0303_1385477477247_750483_3816" name="" memberEnd="_16_8_180f0303_1385477477248_22851_3817 _16_8_180f0303_1385477477248_847354_3818"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1265061847640_956439_801" name="UserManagementService">
                  <ownedComment xmi:id="_16_8_1c200dd_1279109780937_453583_2875" body="Service provides basic operations mainly for the current user." annotatedElement="_16_0_1_2aa0154_1265061847640_956439_801"/>
                  <ownedOperation xmi:id="_16_0_1_282013d_1268992794367_288572_1114" name="getPerson" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279111129718_242982_2893" body="Method returns the person with the passed id. An object with the passed id must exist." annotatedElement="_16_0_1_282013d_1268992794367_288572_1114"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309814051356_354812_21358" name="pPersonID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483647100_728400_20606" body="Id of the person that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1309814051356_354812_21358"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482128930_657641_20528" name="pLoadStrategy" visibility="public" type="_16_8_195e0323_1312797596858_284537_18242">
                      <ownedComment xmi:id="_16_8_246b03eb_1313482214793_317490_20538" body="Load strategy defines the associations of the person object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313482128930_657641_20528"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482128931_767222_20529" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483992446_421452_20607" body="Person with the passed id. The associations of the object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313482128931_767222_20529"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_42993_853" name="updatePerson" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_194588_1046" body="Method updates the passed person the passed data. Besides the attributes of the person also its addresses will be updated. This means that edited addresses will be updated, added address will be created and removed addresses will be deleted." annotatedElement="_16_0_1_2aa0154_1265061847671_42993_853"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_924484_1048" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_1c200dd_1279110437218_599135_2882" body="Person that should be updated. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_924484_1048"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482155530_511624_20530" name="pLoadStrategy" visibility="public" type="_16_8_195e0323_1312797596858_284537_18242">
                      <ownedComment xmi:id="_16_8_246b03eb_1313482222595_901048_20539" body="Load strategy defines the associations of the person object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313482155530_511624_20530"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482155532_972162_20531" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313484357768_289733_20629" body="Person object that was updated with the passed data. The associations of the returned object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313482155532_972162_20531"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_794988_850" name="createPerson" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_418100_1034" body="Method creates a new person from the passed object." annotatedElement="_16_0_1_2aa0154_1265061847671_794988_850"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_760140_1036" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_1c200dd_1279108849203_492320_2250" body="Person service object whose data should be used to create a new persistent Person object. All addresses of the passed object are also created by the method. If the passed object references a organizational unit it will be added as child to this unit. The parameter must not be null.&#xA;" annotatedElement="_16_0_1_2aa0154_1265061847718_760140_1036"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1459243922861_929472_2948" name="pParentUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_197a0330_1459244009967_917003_2950" body="Organization unit that is the parent of the user. The parameter may be null." annotatedElement="_16_8_197a0330_1459243922861_929472_2948"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312878883905_183484_18803" name="pLoadStrategy" visibility="public" type="_16_8_195e0323_1312797596858_284537_18242">
                      <ownedComment xmi:id="_16_8_246b03eb_1312878962090_452877_18804" body="Load strategy defines the associations of the person object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1312878883905_183484_18803"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1459243922868_77448_2949" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1267780292800_519963_709" name="deletePerson" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119483234_54525_2978" body="Method deletes the passed person. The object that should be deleted must exist. This also deletes all addresses of the person and its owned permissions." annotatedElement="_16_0_1_282013d_1267780292800_519963_709"/>
                    <ownedParameter xmi:id="_16_0_1_282013d_1267780307940_95184_711" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_282013d_1267780311206_965701_712" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119504359_372116_2979" body="Person object that should be deleted. The parameter must not be null." annotatedElement="_16_0_1_282013d_1267780311206_965701_712"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_352616_857" name="queryPersons" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_41140_1059" body="Method searches persons by the passed query criteria. As defined by class PersonQuery all the passed query criteria are conjuncted by a logical AND." annotatedElement="_16_0_1_2aa0154_1265061847671_352616_857"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_137068_1063" name="pPersonQuery" visibility="public" type="_16_8_282013d_1283176834314_284503_2234">
                      <ownedComment xmi:id="_16_8_1c200dd_1279111080546_3216_2891" body="Query object describing the criteria that are used to find person objects. The parameter must not be null, but may have no criteria set." annotatedElement="_16_0_1_2aa0154_1265061847718_137068_1063"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482177038_29429_20532" name="pLoadStrategy" visibility="public" type="_16_8_195e0323_1312797596858_284537_18242">
                      <ownedComment xmi:id="_16_8_246b03eb_1313482230595_273940_20540" body="Load strategy defines the associations of the person object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313482177038_29429_20532"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482177038_290248_20533" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313485584902_186586_20651" body="List with all person objects that were found by the passed query. The associations of the returned objects are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313482177038_290248_20533"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313482177042_302819_20535" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313482177042_847723_20534" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1309844280554_924976_20918" name="getCurrentPerson" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1312550631652_827018_19634" body="Method returns the person object to the currently logged in user." annotatedElement="_16_8_246b03eb_1309844280554_924976_20918"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482200342_191208_20536" name="pLoadStrategy" visibility="public" type="_16_8_195e0323_1312797596858_284537_18242">
                      <ownedComment xmi:id="_16_8_246b03eb_1313482239310_481198_20541" body="Load strategy defines the associations of the person object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313482200342_191208_20536"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482200345_783730_20537" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313487484005_697715_20652" body="Person object of the currently logged in user. The associations of the returned object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313482200345_783730_20537"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1309813935885_238845_20857" name="getUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1312818013207_343423_21913" body="Method returns the user account with the passed login name." annotatedElement="_16_8_246b03eb_1309813935885_238845_20857"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309813981334_805604_20860" name="pLoginName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_195e0323_1312818123628_708256_21915" body="Login name of the user account that should be returned. The name must exactly match with the existing user account." annotatedElement="_16_8_246b03eb_1309813981334_805604_20860"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1312797091829_366662_18232" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_195e0323_1312817972813_760261_21912" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_195e0323_1312797091829_366662_18232"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1312797091830_955180_18233" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1312818081563_449428_21914" body="UserAccount for the passed user id. The method returns null if no user account with the passed user id exists. The returned objects has all associations set as defined by the passed load strategy." annotatedElement="_16_8_195e0323_1312797091830_955180_18233"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1317968203533_259312_2998" name="getUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1317968266101_246791_3004" body="Method returns the user account with the passed service object id." annotatedElement="_16_8_195e0323_1317968203533_259312_2998"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1317968242194_144635_3001" name="pUserAccountOID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_195e0323_1317968316468_558394_3006" body="ServiceObjectID of the user account that should be returned. The parameter must not be null." annotatedElement="_16_8_195e0323_1317968242194_144635_3001"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1317968242195_302340_3002" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_195e0323_1317968270943_691579_3005" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_195e0323_1317968242195_302340_3002"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1317968242195_276887_3003" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1317968339410_990038_3007" body="User account for the passed service object id. The method never returns null." annotatedElement="_16_8_195e0323_1317968242195_276887_3003"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_46906_994" name="createUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119377000_655612_2974" body="Method creates a new user account from the passed object. Therefore the associated person to which the created account should belong has to be set. The created user account will have the default role as defined for the user management assigned." annotatedElement="_16_0_1_2aa0154_1265061847703_46906_994"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_691053_1200" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119399000_279941_2975" body="User account that should be created. The parameter must not be null and must reference an existing person object." annotatedElement="_16_0_1_2aa0154_1265061847765_691053_1200"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_1c200dd_1265974387687_445427_1094" name="pPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119419593_548671_2976" body="Initial password of the created user account. The parameter must not be null and must comply with the defined password rules." annotatedElement="_16_0_1_1c200dd_1265974387687_445427_1094"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872320402_662929_18498" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872330085_5954_18500" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_246b03eb_1312872320402_662929_18498"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872320403_357370_18499" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872550236_129807_18511" body="Created user account. According to the passed load strategy associations to depending objects are also set." annotatedElement="_16_8_246b03eb_1312872320403_357370_18499"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_282013d_1266582603414_905174_729" name="deleteUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279119809109_813410_2991" body="Method deletes the passed user account. " annotatedElement="_16_0_1_282013d_1266582603414_905174_729"/>
                    <ownedParameter xmi:id="_16_0_1_282013d_1266582643272_222592_732" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_1c200dd_1279119793078_598840_2990" body="User account that should be deleted. The parameter must not be null." annotatedElement="_16_0_1_282013d_1266582643272_222592_732"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_282013d_1266583180766_793483_1232" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1c200dd_1283258080578_520467_2837" name="queryUserAccounts" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1283263227515_41320_2864" body="Method searches for all user accounts that match the passed query criteria. If the passed query object defines more than one criteria they are conjuncted by a logical AND." annotatedElement="_16_8_1c200dd_1283258080578_520467_2837"/>
                    <ownedParameter xmi:id="_16_8_1c200dd_1283258216078_563859_2842" name="pUserAccountQuery" visibility="public" type="_16_8_1c200dd_1283256244296_692847_2307">
                      <ownedComment xmi:id="_16_8_1c200dd_1283262232281_108014_2857" body="Query criteria which are used to find the user accounts. All criterias are conjuncted by a logical AND. The parameter must not be null." annotatedElement="_16_8_1c200dd_1283258216078_563859_2842"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19550320_1465833631916_486856_4444" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19550320_1465833631917_59255_4446" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19550320_1465833631917_460474_4445" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1312550699079_692109_19636" name="getCurrentUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1312550816357_629087_19645" body="Method returns the UserAccount object representing the current user." annotatedElement="_16_8_246b03eb_1312550699079_692109_19636"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1312796881782_606075_15708" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_195e0323_1312797237718_185705_18234" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_195e0323_1312796881782_606075_15708"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1312796881783_258219_15709" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1312797313374_95784_18235" body="UserAccount service object describing the current user. Depending on the passed load strategy associations of the returned user account service object will be set or not. The method never returns null." annotatedElement="_16_8_195e0323_1312796881783_258219_15709"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_909216_855" name="lockUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_289062_1052" body="Method locks the passed account. If the account is already locked, nothing will happen.&#xA;" annotatedElement="_16_0_1_2aa0154_1265061847671_909216_855"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_330917_1054" name="pAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_1c200dd_1279110728906_826386_2886" body="UserAccount that should be locked. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_330917_1054"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872636834_676333_18512" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872669763_943442_18514" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_246b03eb_1312872636834_676333_18512"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1312872636834_325768_18513" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1312872716920_446838_18515" body="Updated user account object. According to the definitions of the passed load strategy associations to depending objects are also set." annotatedElement="_16_8_246b03eb_1312872636834_325768_18513"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_955461_856" name="changePassword" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_681665_1055" body="Method changes the password of the current user to the passed value." annotatedElement="_16_0_1_2aa0154_1265061847671_955461_856"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_704845_1057" name="pCurrentPasword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_1c200dd_1279110813968_255067_2887" body="Current password of the current user. The current password has to be passed in order to avoid the accidentally change of the password. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_704845_1057"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_479405_1058" name="pNewPasword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_1c200dd_1279110824390_266567_2888" body="New value for the password of the passed user account. The parameter must not be null and must match the defined password restrictions." annotatedElement="_16_0_1_2aa0154_1265061847718_479405_1058"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309843502259_964800_20908" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_159802e5_1328783370984_363641_3217" body="if the password change was successful true, else false." annotatedElement="_16_8_246b03eb_1309843502259_964800_20908"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847671_339746_852" name="changePassword" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1265061847718_980551_1042" body="Method changes the password of the passed user account of the passed value." annotatedElement="_16_0_1_2aa0154_1265061847671_339746_852"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847718_186296_1043" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_1c200dd_1279109980515_464023_2880" body="User account whose password should be changed. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1265061847718_186296_1043"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309843619017_609116_20909" name="pNewPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_246b03eb_1313487650799_927243_20653" body="New value for the password of the passed user account. The parameter must not be null and must match the defined password restrictions." annotatedElement="_16_8_246b03eb_1309843619017_609116_20909"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1309843619026_199632_20910" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313483154871_178657_20588" name="getOrganizationalUnit" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313483264872_530963_20603" body="Method returns the organizational unit with the passed id. An object with the passed id must exist." annotatedElement="_16_8_246b03eb_1313483154871_178657_20588"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313483185439_327126_20592" name="pOrganizationlUnitID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483286184_744431_20604" body="ID of the organizational unit that should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313483185439_327126_20592"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313483211408_766046_20600" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1313482311785_807482_20544">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483237266_429567_20602" body="Load strategy defines the associations of the organizational unit that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313483211408_766046_20600"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313483211408_986681_20601" name="" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483333266_672776_20605" body="Organizational unit with the passed id. The associations of the returned object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313483211408_986681_20601"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313482806760_559004_20576" name="createOrganizationalUnit" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313483022801_737069_20585" body="Method creates a new organizational unit from the passed object. If a reference to a parent unit is set, the object will be created as its child. If the unit has child units they will also be created. The name and acronym of the organizational unit must be unique within the organization hierarchy." annotatedElement="_16_8_246b03eb_1313482806760_559004_20576"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482826247_526717_20580" name="pOrganizationalUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483050957_339652_20586" body="Organizational unit that should be created. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313482826247_526717_20580"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482868621_340538_20582" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1313482311785_807482_20544">
                      <ownedComment xmi:id="_16_8_246b03eb_1313482914443_675919_20584" body="Load strategy defines the associations of the organizational unit that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313482868621_340538_20582"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313482868622_895710_20583" name="" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313483121681_865661_20587" body="Created organizational unit. The associations of the returned object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313482868622_895710_20583"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313488355156_217615_20654" name="updateOrganizationalUnit" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313488461619_594645_20662" body="Method updates the passed organizational unit to the passed values. Besides the attributes of the organizational unit also its addresses will be updated. This means that edited addresses will be updated, added address will be created and removed addresses will be deleted. The method does not recursively update all objects of the hierarchy." annotatedElement="_16_8_246b03eb_1313488355156_217615_20654"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313488389470_99778_20658" name="pOrganizationalUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_246b03eb_1313488485275_510939_20663" body="OrganizationalUnit that should be updated. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313488389470_99778_20658"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313488389472_315097_20659" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1313482311785_807482_20544">
                      <ownedComment xmi:id="_16_8_246b03eb_1313488407944_352951_20661" body="Load strategy defines the associations of the organizational unit that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313488389472_315097_20659"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313488389474_610131_20660" name="" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313488543351_540793_20664" body="Updates organizational unit. The association of the returned object are set according to the passed load strategy. The method never returns null." annotatedElement="_16_8_246b03eb_1313488389474_610131_20660"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313498913514_650832_20745" name="deleteOrganizationalUnit" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313498990643_304337_20751" body="Method deletes the passed organizational unit and all its child elements." annotatedElement="_16_8_246b03eb_1313498913514_650832_20745"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313498940371_799592_20749" name="pOrganizationalUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_246b03eb_1313499046597_612905_20752" body="Organizational unit that should be deleted. If the object has child elements such as persons or other organizational units they are deleted too. The parameter must not be null." annotatedElement="_16_8_246b03eb_1313498940371_799592_20749"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313498940372_417303_20750" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313498572702_828738_20729" name="queryOrganizationalUnits" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313498700895_336697_20737" body="Method queries all organizational units based on the passed query criteria. If the query object has more than one attribute set they are conjuncted by a logical AND." annotatedElement="_16_8_246b03eb_1313498572702_828738_20729"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313498611807_928019_20733" name="pOrganizationalUnitQuery" visibility="public" type="_16_8_246b03eb_1313488636497_487024_20667">
                      <ownedComment xmi:id="_16_8_246b03eb_1313498740727_99321_20738" body="Query object defining all the criteria to build up the query. The parameter must not be null, but may have no criteria set." annotatedElement="_16_8_246b03eb_1313498611807_928019_20733"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313498611809_436886_20734" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1313482311785_807482_20544">
                      <ownedComment xmi:id="_16_8_246b03eb_1313498634137_803704_20736" body="Load strategy defines the associations of the organizational unit that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned person object." annotatedElement="_16_8_246b03eb_1313498611809_436886_20734"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313498907194_48586_20742" name="" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313498907201_579298_20744" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313498907201_702807_20743" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1459487138526_778223_4225" name="addPersonToOrganizationalUnit" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1459487300559_365341_4230" body="Method adds the passed person to the passed organizational unit." annotatedElement="_16_8_1968032c_1459487138526_778223_4225"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1459487186654_884960_4227" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_1968032c_1459487366705_861932_4232" body="Person that should be added to the organizational unit. The parameter must not be null." annotatedElement="_16_8_1968032c_1459487186654_884960_4227"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1968032c_1459487186654_755824_4228" name="pOrganizationalUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_1968032c_1459487332361_744905_4231" body="Organizational Unit to which the person should be added. The parameter must not be null." annotatedElement="_16_8_1968032c_1459487186654_755824_4228"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1968032c_1459487186654_38489_4229" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_101687_982" name="getAllCountries" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279115228796_429418_2952" body="Method returns all available countries from the database. The reference to all the states of a country is also set." annotatedElement="_16_0_1_2aa0154_1265061847703_101687_982"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265061847765_920805_1182" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_777139_835" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_1c200dd_1279115247703_960589_2953" body="All existing Countries. Each country has also set all its states. The method never returns null." annotatedElement="_16_0_1_2aa0154_1265061847765_920805_1182"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847796_293960_1393" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847796_587857_1392" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265061847703_557898_988" name="getAllAddressTypes" visibility="public">
                    <ownedComment xmi:id="_16_8_1c200dd_1279118956968_9773_2963" body="Method returns all available address types. The reference to all address subtypes is also set." annotatedElement="_16_0_1_2aa0154_1265061847703_557898_988"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313388950861_284541_19281" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313473821255_961916_20103" body="List with all address types. The address subtypes of each address type is also set. The method never returns null." annotatedElement="_16_8_246b03eb_1313388950861_284541_19281"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313388950914_144712_19283" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313388950914_681064_19282" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1318843522535_755228_4614" name="activateUserAccount" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_488399_842">
                    <ownedParameter xmi:id="_16_8_18230311_1318843567254_856070_4618" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1318843779645_996522_4619" name="pLoginName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1318843858551_324036_4620" body="String for the system wide unique login name of a user. The Parameter may not be null." annotatedElement="_16_8_18230311_1318843779645_996522_4619"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1318843860301_866673_4621" name="pActivationToken" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1318843916473_713120_4622" body="Token which is used for the activation. If the token is null the userAccount is activated. The Parameter may not be null." annotatedElement="_16_8_18230311_1318843860301_866673_4621"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1319708839288_190025_4436" name="getAddressType" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_75886_841">
                    <ownedComment xmi:id="_16_8_18230311_1319716714827_828283_5116" body="The Method gets the address type with the given Name." annotatedElement="_16_8_18230311_1319708839288_190025_4436"/>
                    <ownedParameter xmi:id="_16_8_18230311_1319708911303_616392_4440" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1319708924460_875685_4441" name="pAddressTypeName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1319709068881_65781_4442" body="Gets the address type with the given name. If the addressType doesn't exist return null." annotatedElement="_16_8_18230311_1319708924460_875685_4441"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1319710119508_55336_4466" name="getAddressSybtype" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_75886_841">
                    <ownedComment xmi:id="_16_8_18230311_1319716790974_865318_5117" body="Gets the address subtype with to the given address type it belongs to." annotatedElement="_16_8_18230311_1319710119508_55336_4466"/>
                    <ownedParameter xmi:id="_16_8_18230311_1319710160447_70248_4470" name="" visibility="public" type="_16_8_246b03eb_1313129548192_774247_19131" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1319710190745_671712_4473" name="pAddressSubtype" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1319716596244_577258_5111" body="The address subtype of a Address. The parameter must not be null." annotatedElement="_16_8_18230311_1319710190745_671712_4473"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1319716609963_545859_5114" name="pAddressType" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18230311_1319716663104_955182_5115" body="The address type the address subtype belongs to. The parameter must not be null." annotatedElement="_16_8_18230311_1319716609963_545859_5114"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1329489155723_304540_4351" name="updateCurrentUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1329489801301_894619_4360" body="The method updates a given user account object and according to the LoadStrategy its referenced objects. " annotatedElement="_16_8_18230311_1329489155723_304540_4351"/>
                    <ownedParameter xmi:id="_16_8_18230311_1329489239645_92074_4355" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18230311_1329489245411_596240_4356" name="pUserAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_18230311_1329489281223_552095_4357" body="The UserAccount which has the new data. The Parameter may not be null. " annotatedElement="_16_8_18230311_1329489245411_596240_4356"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1329489282957_841396_4358" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_18230311_1329489626957_693723_4359" body="Load strategy defines the associations of the user account object that should also be loaded and updated. The parameter may be null. In this case no associations to other objects will be set for the updated user account object." annotatedElement="_16_8_18230311_1329489282957_841396_4358"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197c032e_1333359143594_333165_2359" name="getUserInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_197c032e_1333359205028_635535_2363" body="Method returns a user info object of the user account with the passed service object id." annotatedElement="_16_8_197c032e_1333359143594_333165_2359"/>
                    <ownedParameter xmi:id="_16_8_197c032e_1333359171442_40542_2361" name="pUserAccountOID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_197c032e_1333359237077_509852_2364" body="Service object ID of the user account of which the user info should be returned. The parameter must not be null." annotatedElement="_16_8_197c032e_1333359171442_40542_2361"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197c032e_1333359171442_279487_2362" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" direction="return">
                      <ownedComment xmi:id="_16_8_197c032e_1333359260212_250539_2365" body="User info object describing the user account with the passed id. The method never returns null." annotatedElement="_16_8_197c032e_1333359171442_279487_2362"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197c032e_1333367242776_900455_2499" name="getUserInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_197c032e_1333367425431_622898_2503" body="Method returns the user info of the current user. " annotatedElement="_16_8_197c032e_1333367242776_900455_2499"/>
                    <ownedParameter xmi:id="_16_8_197c032e_1333367253306_662531_2502" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" direction="return">
                      <ownedComment xmi:id="_16_8_197c032e_1333367449399_161495_2504" body="User info of the current user. The method never returns null." annotatedElement="_16_8_197c032e_1333367253306_662531_2502"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_194b0326_1355761854466_207659_2366" name="getUserPrincipal" visibility="public">
                    <ownedComment xmi:id="_16_8_194b0326_1355761919068_427273_2370" body="Method returns a user principal object representing the user account with the passed id." annotatedElement="_16_8_194b0326_1355761854466_207659_2366"/>
                    <ownedParameter xmi:id="_16_8_194b0326_1355761884819_51224_2368" name="pUserAccountOID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_194b0326_1355761958307_545544_2371" body="Service-Object-Id of the user account whose user principal should be returned. The parameter must not be null." annotatedElement="_16_8_194b0326_1355761884819_51224_2368"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_194b0326_1355761884821_213371_2369" name="" visibility="public" type="_16_0_1_2aa0154_1265238841765_884558_792" direction="return">
                      <ownedComment xmi:id="_16_8_194b0326_1355761991042_287796_2372" body="User Principal object representing the user account whose id was passed to the method. The method never returns null." annotatedElement="_16_8_194b0326_1355761884821_213371_2369"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335195026982_388220_4924" name="getGroups" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336490506509_94174_5193" body="Method returns all groups which have the current user as owner." annotatedElement="_16_8_18230311_1335195026982_388220_4924"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335195043569_734036_4928" name="" visibility="public" type="_16_8_18230311_1335192105208_992797_4717" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336490540239_205794_5194" body="List&lt;Group> with the groups the current user owns. The method never returns null." annotatedElement="_16_8_18230311_1335195043569_734036_4928"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1335524561189_387949_2047" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1335524561188_292745_2046" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335192861870_463750_4815" name="getGroup" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336490593442_945104_5195" body="Method returns the group with the given service Id. The method never returns null." annotatedElement="_16_8_18230311_1335192861870_463750_4815"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335192901543_910078_4819" name="" visibility="public" type="_16_8_18230311_1335192105208_992797_4717" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336490681575_90835_5196" body="The group which was found" annotatedElement="_16_8_18230311_1335192901543_910078_4819"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335192909971_242639_4820" name="pGroupID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_18230311_1336490704091_384388_5197" body="The unique service id a group can be identified with. Parameter may not be null." annotatedElement="_16_8_18230311_1335192909971_242639_4820"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194548097_833917_4901" name="pLoadStrategy" visibility="public" type="_16_8_18230311_1335193002731_328878_4848">
                      <ownedComment xmi:id="_16_8_18230311_1336490747149_454454_5198" body="The load strategy to load only the associated objects the user wants to load. Parameter may be null. In that case no association is loaded." annotatedElement="_16_8_18230311_1335194548097_833917_4901"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335194602572_350361_4902" name="createGroup" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336490812502_14_5199" body="Method creates a new group with the current user as owner." annotatedElement="_16_8_18230311_1335194602572_350361_4902"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335194627896_330760_4906" name="" visibility="public" type="_16_8_18230311_1335192105208_992797_4717" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336490847064_650722_5200" body="The created group. The method never returns null." annotatedElement="_16_8_18230311_1335194627896_330760_4906"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194633699_344697_4907" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336490866560_741875_5201" body="The group which shall be created. The parameter may not be null." annotatedElement="_16_8_18230311_1335194633699_344697_4907"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194660603_612748_4908" name="pLoadStrategy" visibility="public" type="_16_8_18230311_1335193002731_328878_4848">
                      <ownedComment xmi:id="_16_8_18230311_1336490899857_397388_5202" body="defines the associations which are loaded of the returned group. The parameter may be null. In this case no associations are loaded." annotatedElement="_16_8_18230311_1335194660603_612748_4908"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335194699904_515050_4909" name="updateGroup" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336491430118_693658_5203" body="Method actualizes a group by the given group data." annotatedElement="_16_8_18230311_1335194699904_515050_4909"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335194846163_770606_4913" name="" visibility="public" type="_16_8_18230311_1335192105208_992797_4717" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336491648385_571024_5204" body="The updated group." annotatedElement="_16_8_18230311_1335194846163_770606_4913"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194852802_406768_4914" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336491669088_515135_5205" body="The group object with the new data." annotatedElement="_16_8_18230311_1335194852802_406768_4914"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194868602_169544_4915" name="pLoadStrategy" visibility="public" type="_16_8_18230311_1335193002731_328878_4848">
                      <ownedComment xmi:id="_16_8_18230311_1336491705076_639141_5206" body="Load strategy which defines which associations shall be loaded." annotatedElement="_16_8_18230311_1335194868602_169544_4915"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1335194893627_855305_4916" name="deleteGroup" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336491728394_216056_5207" body="Method deletes the given group from the storage." annotatedElement="_16_8_18230311_1335194893627_855305_4916"/>
                    <ownedParameter xmi:id="_16_8_18230311_1335194970307_921234_4920" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1335194974902_639123_4921" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336491770703_355395_5208" body="The group that will be deleted by this method. The parameter may not be null." annotatedElement="_16_8_18230311_1335194974902_639123_4921"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18440315_1335967322559_656739_2045" name="getAllGroupTypes" visibility="public">
                    <ownedComment xmi:id="_16_8_18440315_1335967630793_313616_2052" body="Method returns all existing GroupTypes from the database." annotatedElement="_16_8_18440315_1335967322559_656739_2045"/>
                    <ownedParameter xmi:id="_16_8_18440315_1335967377390_486456_2049" name="" visibility="public" type="_16_8_18230311_1335192315812_371691_4774" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18440315_1335967659931_559984_2053" body="The existing GroupTypes." annotatedElement="_16_8_18440315_1335967377390_486456_2049"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18440315_1335967517543_463010_2051" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18440315_1335967517542_991059_2050" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1336033520085_495994_4797" name="addLinkedPerson" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336491851744_598099_5209" body="Links a given person to a given group. The status of this link will be the same as the given link status." annotatedElement="_16_8_18230311_1336033520085_495994_4797"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336034057312_71486_5088" name="" visibility="public" type="_16_8_183a030e_1496071688523_179908_3235" direction="return">
                      <ownedComment xmi:id="_16_8_183a030e_1496220692066_567773_3181" body="The link status token to identify the link. " annotatedElement="_16_8_18230311_1336034057312_71486_5088"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336034131402_468177_5089" name="pLinkStatus" visibility="public" type="_16_8_18440315_1335975741766_603011_4849">
                      <ownedComment xmi:id="_16_8_18230311_1336491973379_416657_5211" body="Provides the status of a link between a group and a person. This status may be 'requested' or 'confirmed'. The parameter may not be null." annotatedElement="_16_8_18230311_1336034131402_468177_5089"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336050342874_778114_5265" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_18230311_1336492039790_825180_5212" body="The given person a current user will be linked to. The parameter may not be null." annotatedElement="_16_8_18230311_1336050342874_778114_5265"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336050355154_304008_5266" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336491910233_817902_5210" body="The group of the current user a linked person belongs to. The parameter may not be null." annotatedElement="_16_8_18230311_1336050355154_304008_5266"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1336048716348_174850_5133" name="deleteLinkedPerson" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336492111160_454064_5213" body="Method deletes a person current user link. It doesn't delete the person or the group which are linked." annotatedElement="_16_8_18230311_1336048716348_174850_5133"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336048792163_835081_5137" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336048794293_642759_5138" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827">
                      <ownedComment xmi:id="_16_8_18230311_1336492179965_839848_5215" body="The person which belongs to the link. The parameter may not be null." annotatedElement="_16_8_18230311_1336048794293_642759_5138"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336050436773_446247_5267" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336492143959_596654_5214" body="The group which belongs to the link. The parameter may not be null." annotatedElement="_16_8_18230311_1336050436773_446247_5267"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1336049602864_443510_5205" name="updateLinkedPerson" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336492204746_350969_5216" body="Updates the status of a link between a given person and a group. The method checks if the link which is defined by the given person and group belongs to the current user." annotatedElement="_16_8_18230311_1336049602864_443510_5205"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336049636044_154707_5209" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336049643614_805196_5210" name="pLinkStatus" visibility="public" type="_16_8_18440315_1335975741766_603011_4849">
                      <ownedComment xmi:id="_16_8_18230311_1336492606109_954606_5218" body="New link status. The parameter may not be null." annotatedElement="_16_8_18230311_1336049643614_805196_5210"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336050479099_242770_5268" name="pPerson" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336050491807_51960_5269" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_18230311_1336492581832_265875_5217" body="Group which belongs to the link that should be updated. The Parameter may not be null." annotatedElement="_16_8_18230311_1336050491807_51960_5269"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1336049666305_279426_5211" name="getLinkedPersonsByStatus" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336492744019_889112_5219" body="Method returns all Persons which are linked to the current user and the link has the given status." annotatedElement="_16_8_18230311_1336049666305_279426_5211"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336049689493_444740_5215" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336492806791_50988_5220" body="List of the found persons which are linked to the current user and the link has the defined status. The method never returns null." annotatedElement="_16_8_18230311_1336049689493_444740_5215"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336049698928_780995_5217" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336049698928_250585_5216" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1336049703616_414295_5218" name="pLinkStatus" visibility="public" type="_16_8_18440315_1335975741766_603011_4849">
                      <ownedComment xmi:id="_16_8_18230311_1336492912317_119280_5221" body="The status of the link between the persons and the current user's groups. The parameter may not be null." annotatedElement="_16_8_18230311_1336049703616_414295_5218"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18440315_1336574157827_818246_3178" name="getUserInfos" visibility="public">
                    <ownedComment xmi:id="_16_8_18440315_1336574282076_191489_3185" body="Method returns the UserInfo for the given person. The method never returns null." annotatedElement="_16_8_18440315_1336574157827_818246_3178"/>
                    <ownedParameter xmi:id="_16_8_18440315_1336574180701_835917_3182" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336726575337_473505_3187" body="List of user infos from the given persons." annotatedElement="_16_8_18440315_1336574180701_835917_3182"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336726492012_348472_3184" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336726492011_632475_3183" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18440315_1336574187689_326796_3183" name="pPersonList" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" isOrdered="true" isUnique="false">
                      <ownedComment xmi:id="_16_8_18440315_1336574236677_862688_3184" body="The Persons who hold the information for the UserInfos." annotatedElement="_16_8_18440315_1336574187689_326796_3183"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336726503350_375044_3186" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336726503349_876443_3185" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18230311_1336643527315_790915_3180" name="getRequestingContacts" visibility="public">
                    <ownedComment xmi:id="_16_8_18230311_1336643651368_912269_3189" body="Method returns a list of persons who made a contact request to the current user. The method never returns null." annotatedElement="_16_8_18230311_1336643527315_790915_3180"/>
                    <ownedParameter xmi:id="_16_8_18230311_1336643549109_783070_3184" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_17642_827" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18230311_1336643631774_400288_3188" body="List of Persons who send a request to the current user." annotatedElement="_16_8_18230311_1336643549109_783070_3184"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1336643595067_940101_3187" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1336643595067_37620_3186" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18440316_1381246616158_349959_1763" name="resetPassword" visibility="public" raisedException="_16_0_1_2aa0154_1265061847640_488399_842">
                    <ownedComment xmi:id="_16_8_18440316_1381246699488_811555_1766" body="Method resets the password with a generated value and sends an email to the email address of the given user account with this value. An informative email will also be sent to the support." annotatedElement="_16_8_18440316_1381246616158_349959_1763"/>
                    <ownedParameter xmi:id="_16_8_18440316_1381246701446_933815_1767" name="pLoginName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18440316_1381246802865_162746_1768" body="The login name of the user whose password will be reset. This parameter must not be null." annotatedElement="_16_8_18440316_1381246701446_933815_1767"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e20300_1457079885346_937358_2702" name="" visibility="public" type="_9_5_f720368_1110473546612_692218_7691" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1385481922435_144651_3852" name="createOrganizationalUnitAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1385482110566_388917_3857" body="Method creates a new organizational unit account from the passed organizational unit account and the additional information. The current user will be the team admin of this organizational unit." annotatedElement="_16_8_180f0303_1385481922435_144651_3852"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385481944195_588205_3854" name="" visibility="public" type="_16_8_180f0303_1385473882980_107613_3692" direction="return"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385481947503_793356_3855" name="pOrganizationalUnitAccount" visibility="public" type="_16_8_180f0303_1385473882980_107613_3692">
                      <ownedComment xmi:id="_16_8_180f0303_1385482070655_121584_3856" body="The organizational unit account that will be created." annotatedElement="_16_8_180f0303_1385481947503_793356_3855"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18440316_1385570161652_987042_3625" name="pLoadStrategy" visibility="public" type="_16_8_18440316_1385569551345_715406_3577">
                      <ownedComment xmi:id="_16_8_18440316_1385570443529_851064_3633" body="Load strategy defines the associations of the organization unit account object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned organizational unit account object." annotatedElement="_16_8_18440316_1385570161652_987042_3625"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18440316_1385570196254_494989_3626" name="getOrganizationalUnitAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_18440316_1385570490680_976861_3634" body="Method returns the organizational unit account with the passed id. An object with the passed id must exist." annotatedElement="_16_8_18440316_1385570196254_494989_3626"/>
                    <ownedParameter xmi:id="_16_8_18440316_1385570260289_451991_3628" name="" visibility="public" type="_16_8_180f0303_1385473882980_107613_3692" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18440316_1385570273764_794025_3629" name="pOrganizationalUnitAccountID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_18440316_1385570340324_39473_3630" body="The service object ID Of the organizational unit account." annotatedElement="_16_8_18440316_1385570273764_794025_3629"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18440316_1385570342271_35022_3631" name="pLoadStrategy" visibility="public" type="_16_8_18440316_1385569551345_715406_3577">
                      <ownedComment xmi:id="_16_8_18440316_1385570426897_971822_3632" body="Load strategy defines the associations of the organization unit account object that should also be loaded and returned. The parameter may be null. In this case no associations to other objects will be set for the returned organizational unit account object." annotatedElement="_16_8_18440316_1385570342271_35022_3631"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1385644637728_757327_3659" name="getAllOrganizationTypes" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1385644720451_441322_3662" body="Method returns all organization unit types." annotatedElement="_16_8_180f0303_1385644637728_757327_3659"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1385644669390_657415_3661" name="" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_180f0303_1385644760182_932980_3665" body="a list of all organization unit types." annotatedElement="_16_8_180f0303_1385644669390_657415_3661"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1385644727011_184928_3664" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1385644727011_957088_3663" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1386251391792_769717_1908" name="getOrganizationUnitType" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1386251528155_652407_1914" body="Method returns the organization unit type with the given name." annotatedElement="_16_8_180f0303_1386251391792_769717_1908"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1386251422872_413356_1911" name="" visibility="public" type="_16_8_246b03eb_1313071316622_472689_20467" direction="return">
                      <ownedComment xmi:id="_16_8_180f0303_1386251543924_618478_1915" body="the organization unit type with the given name." annotatedElement="_16_8_180f0303_1386251422872_413356_1911"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_180f0303_1386251430652_612368_1912" name="pOrganizationUnitTypeName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_180f0303_1386251496857_629806_1913" body="The name of the organizational unit type the method will return." annotatedElement="_16_8_180f0303_1386251430652_612368_1912"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_180f0303_1386334719938_341202_3312" name="getGroupMemberUserInfos" visibility="public">
                    <ownedComment xmi:id="_16_8_180f0303_1386334860831_742679_3315" body="Method returns the user infos of the members of the given group." annotatedElement="_16_8_180f0303_1386334719938_341202_3312"/>
                    <ownedParameter xmi:id="_16_8_180f0303_1386334749830_295331_3314" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1386335001128_464236_3319" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1386335001128_80576_3318" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_180f0303_1386334863801_50340_3316" name="pGroup" visibility="public" type="_16_8_18230311_1335192105208_992797_4717">
                      <ownedComment xmi:id="_16_8_180f0303_1386334902790_423450_3317" body="The group whose members will be retrieved. This method just returns the first level members not the members of child groups. The method never returns null." annotatedElement="_16_8_180f0303_1386334863801_50340_3316"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18440316_1389805595845_456711_3010" name="updateOrganizationalUnitAccount" visibility="public" isQuery="true">
                    <ownedComment xmi:id="_16_8_18440316_1389805942588_57328_3016" body="Method updates the given OrganziationalUnitAccount" annotatedElement="_16_8_18440316_1389805595845_456711_3010"/>
                    <ownedParameter xmi:id="_16_8_18440316_1389805684672_613994_3012" name="" visibility="public" type="_16_8_180f0303_1385473882980_107613_3692" direction="return"/>
                    <ownedParameter xmi:id="_16_8_18440316_1389805688012_759204_3013" name="pOrganizationalUnitAccount" visibility="public" type="_16_8_180f0303_1385473882980_107613_3692">
                      <ownedComment xmi:id="_16_8_18440316_1389805858517_940943_3014" body="The Organizational Unit Account with the data to update" annotatedElement="_16_8_18440316_1389805688012_759204_3013"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18440316_1389805860297_922523_3015" name="pLoadStrategy" visibility="public" type="_16_8_18440316_1385569551345_715406_3577"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18100304_1390313333743_559105_1780" name="getGroup" visibility="public">
                    <ownedComment xmi:id="_16_8_18100304_1390313411444_286349_1783" body="The method returns the group with the given name, which belongs to the given organizational unit. The method may return null if nor group with the given name exits in the organizational unit." annotatedElement="_16_8_18100304_1390313333743_559105_1780"/>
                    <ownedParameter xmi:id="_16_8_18100304_1390313346303_325758_1782" name="" visibility="public" type="_16_8_18230311_1335192105208_992797_4717" direction="return">
                      <ownedComment xmi:id="_16_8_18100304_1390313538748_399315_1788" body="The group with the given name." annotatedElement="_16_8_18100304_1390313346303_325758_1782"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1390313417724_282679_1784" name="pGroupName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18100304_1390313449945_699689_1785" body="The name of the group. The parameter may not be null." annotatedElement="_16_8_18100304_1390313417724_282679_1784"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1390313451925_638404_1786" name="pParentUnit" visibility="public" type="_16_8_246b03eb_1313069129063_20530_20088">
                      <ownedComment xmi:id="_16_8_18100304_1390313492458_567960_1787" body="The organizational unit the group belongs to. The parameter may not be null." annotatedElement="_16_8_18100304_1390313451925_638404_1786"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18100304_1390322774969_597866_3033" name="getOrganizationalUnitAccountGroupMembers" visibility="public">
                    <ownedComment xmi:id="_16_8_18100304_1390322884014_636989_3036" body="Method returns the Group Members of the group with the given Name, that belongs to the OrganizationalUnitAccount." annotatedElement="_16_8_18100304_1390322774969_597866_3033"/>
                    <ownedParameter xmi:id="_16_8_18100304_1390322821454_584442_3035" name="" visibility="public" type="_16_8_195e0323_1314713936663_160105_4468" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_18100304_1390322918455_537648_3039" body="The group Members of the specified group." annotatedElement="_16_8_18100304_1390322821454_584442_3035"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18100304_1390322891924_54475_3038" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18100304_1390322891924_524733_3037" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1390322920135_410767_3040" name="pOrgUnitAccountOID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_18100304_1390322964255_19819_3041" body="The OID of the Organizational Unit Account." annotatedElement="_16_8_18100304_1390322920135_410767_3040"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1390322965965_465069_3042" name="pGroupName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_18100304_1390323018406_878012_3043" body="The Name of the group whose members will be retrieved." annotatedElement="_16_8_18100304_1390322965965_465069_3042"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18100304_1399637477318_678553_1782" name="completeLogin" visibility="public">
                    <ownedComment xmi:id="_16_8_18100304_1399637697118_868935_1786" body="Method completes a started login process.This means that the user principal and the person. Besides that also the login counter and last login date will be updated." annotatedElement="_16_8_18100304_1399637477318_678553_1782"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1463032765600_200072_3862" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18100304_1404134497822_315116_3550" name="unlockUserAccount" visibility="public">
                    <ownedComment xmi:id="_16_8_18100304_1404134497822_481800_3554" body="Method unlocks the passed account. If the account is already unlocked, nothing will happen.&#xA;" annotatedElement="_16_8_18100304_1404134497822_315116_3550"/>
                    <ownedParameter xmi:id="_16_8_18100304_1404134497822_177367_3551" name="pAccount" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818">
                      <ownedComment xmi:id="_16_8_18100304_1404134497822_99655_3555" body="UserAccount that should be unlocked. The parameter must not be null." annotatedElement="_16_8_18100304_1404134497822_177367_3551"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1404134497822_972308_3552" name="pLoadStrategy" visibility="public" type="_16_8_246b03eb_1312551302456_690628_19657">
                      <ownedComment xmi:id="_16_8_18100304_1404134497822_424095_3556" body="Load strategy can be used to define which associations of the user account service object should also be returned. The parameter may be null. In this case no associations of the user account will be loaded and returned." annotatedElement="_16_8_18100304_1404134497822_972308_3552"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18100304_1404134497822_782181_3553" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return">
                      <ownedComment xmi:id="_16_8_18100304_1404134497822_290188_3557" body="Updated user account object. According to the definitions of the passed load strategy associations to depending objects are also set." annotatedElement="_16_8_18100304_1404134497822_782181_3553"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1460726792622_663657_4234" name="createIdentityProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1460726959912_807522_4239" body="Method creates a new identity provider based on the passed object. The identity provider is owned by the organizational unit account to which the current user belongs to." annotatedElement="_16_8_197a0330_1460726792622_663657_4234"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1460726870948_251050_4236" name="pIdentityProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_197a0330_1460727001798_790413_4240" body="Definition of the identity provider that should be created. The parameter must not be null." annotatedElement="_16_8_197a0330_1460726870948_251050_4236"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1968032c_1461338136569_27914_3825" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1460727006286_87817_4241" name="updateIdentityProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1460727085705_462248_4247" body="Method changes the passed identity provider to the passed values. All attributes of an identity provider can be updated. The current user must belong to the organizational unit account to which the identity provider belongs to." annotatedElement="_16_8_197a0330_1460727006286_87817_4241"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727034104_340820_4245" name="pIdentityProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_197a0330_1460727206629_82416_4253" body="Identity provider that should be updated. The parameter must not be null." annotatedElement="_16_8_197a0330_1460727034104_340820_4245"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727034129_55243_4246" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1460727091662_823109_4248" name="deleteIdentityProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1460727176791_21543_4252" body="Method deletes the passed identity provider. The current user must belong to the organizational unit account to which the identity provider belongs to." annotatedElement="_16_8_197a0330_1460727091662_823109_4248"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727105764_513906_4250" name="pIdentityProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_197a0330_1460727247592_376623_4254" body="Identity Provider that should be deleted. The parameter must not be null. " annotatedElement="_16_8_197a0330_1460727105764_513906_4250"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727105784_883771_4251" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1460727348920_950321_4257" name="setLoginProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1460727447579_953890_4267" body="Method sets the login provider for the organizational unit account to which the current user belongs. " annotatedElement="_16_8_197a0330_1460727348920_950321_4257"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727379181_374808_4261" name="pLoginProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_197a0330_1460727493121_241672_4268" body="Login provider for the current organizational unit account. The parameter may be null. In this case the current login provider will be unset." annotatedElement="_16_8_197a0330_1460727379181_374808_4261"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727379202_796702_4262" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1460727379236_185721_4263" name="setDirectoryService" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1460727552332_415377_4269" body="Method sets the login provider for the organizational unit account to which the current user belongs. " annotatedElement="_16_8_197a0330_1460727379236_185721_4263"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727405053_489249_4265" name="pDirectoryService" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_197a0330_1460732064227_251571_4291" body="Method selects the passed identity provider as directory service. The parameter may be null. In this cases the current directory service will be unset." annotatedElement="_16_8_197a0330_1460727405053_489249_4265"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1460727405054_65610_4266" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461902935963_598643_4149" name="getAvailableLoginProviders" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461903001550_913794_4153" body="Method returns all all identity providers that are available as login provider for the organizational unit account to which the current user belongs to." annotatedElement="_16_8_1968032c_1461902935963_598643_4149"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461902960768_255958_4152" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461903135292_338_4161" body="List with all available login providers. The method never returns an empty list." annotatedElement="_16_8_1968032c_1461902960768_255958_4152"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1968032c_1461903098209_986001_4160" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1968032c_1461903098209_937397_4159" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461903039926_189868_4154" name="getAvailableDirectoryServices" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461903081518_65699_4158" body="Method returns all all identity providers that are available as directory service for the organizational unit account to which the current user belongs to." annotatedElement="_16_8_1968032c_1461903039926_189868_4154"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461903065851_103696_4157" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461903184738_971182_4164" body="List with all available directory services. The method never returns null but the list may be empty." annotatedElement="_16_8_1968032c_1461903065851_103696_4157"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1968032c_1461903147505_95185_4163" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1968032c_1461903147505_79833_4162" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461914806801_400400_4187" name="testConnection" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461914896206_920474_4191" body="Method tests if the passed identity provider can connect to the defined service. The method can be used for existing identity providers as well as for not yet  created ones." annotatedElement="_16_8_1968032c_1461914806801_400400_4187"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461914825918_787178_4189" name="pIdentityProvider" visibility="public" type="_16_8_19550320_1441824511790_379993_3365">
                      <ownedComment xmi:id="_16_8_1968032c_1461914962193_169000_4192" body="Identity provider that should be tested. The parameter must not be null." annotatedElement="_16_8_1968032c_1461914825918_787178_4189"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1968032c_1461914825918_154536_4190" name="" visibility="public" type="_16_8_197a0330_1453824381583_132600_1961" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461915004679_664135_4193" body="Description of a may be occurred failure. The method returns null if the test was successful and a failure object in all other cases." annotatedElement="_16_8_1968032c_1461914825918_154536_4190"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18120307_1463129198842_133804_1840" name="getCurrentLoginProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_18120307_1463129286960_13996_1843" body="The method gets the login provider of the current user." annotatedElement="_16_8_18120307_1463129198842_133804_1840"/>
                    <ownedParameter xmi:id="_16_8_18120307_1463129218041_499490_1842" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" direction="return">
                      <ownedComment xmi:id="_16_8_18120307_1463129623223_275882_1844" body="The identity provider which is used by the current user as login provider." annotatedElement="_16_8_18120307_1463129218041_499490_1842"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_18120307_1463129631623_972414_1845" name="getCurrentDirectoryService" visibility="public">
                    <ownedComment xmi:id="_16_8_18120307_1463130049152_649575_1848" body="Method gets the current Directory Service of a user. " annotatedElement="_16_8_18120307_1463129631623_972414_1845"/>
                    <ownedParameter xmi:id="_16_8_18120307_1463129714852_220226_1847" name="" visibility="public" type="_16_8_19550320_1441824511790_379993_3365" direction="return">
                      <ownedComment xmi:id="_16_8_18120307_1463130845244_836884_1849" body="The Identity Provider which is selected as Directory Service for the current user." annotatedElement="_16_8_18120307_1463129714852_220226_1847"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_183a030e_1496071627242_79568_3224" name="updateLinkStatusByToken" visibility="public">
                    <ownedComment xmi:id="_16_8_183a030e_1496071627243_886872_3229" body="Updates the status of a link between a person and a group. The status of the link is identified by the given link status token." annotatedElement="_16_8_183a030e_1496071627242_79568_3224"/>
                    <ownedParameter xmi:id="_16_8_183a030e_1496071627243_335109_3226" name="pLinkStatus" visibility="public" type="_16_8_18440315_1335975741766_603011_4849">
                      <ownedComment xmi:id="_16_8_183a030e_1496071627243_249132_3230" body="New link status. The parameter may not be null." annotatedElement="_16_8_183a030e_1496071627243_335109_3226"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_183a030e_1496071627243_949941_3227" name="pLinkStatusToken" visibility="public" type="_16_8_183a030e_1496071688523_179908_3235"/>
                    <ownedParameter xmi:id="_16_8_1973032c_1512027337986_748068_2630" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1973032c_1512027370095_199439_2631" body="User account whose link status was updated. The method never returns null." annotatedElement="_16_8_1973032c_1512027337986_748068_2630"/>
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197e0333_1512118774789_156834_2630" name="getLinkedUserAccountByToken" visibility="public">
                    <ownedParameter xmi:id="_16_8_197e0333_1512118825107_147419_2634" name="pLinkStatusToken" visibility="public" type="_16_8_183a030e_1496071688523_179908_3235"/>
                    <ownedParameter xmi:id="_16_8_197e0333_1512118825107_686764_2635" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_616299_818" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1312551302456_690628_19657" name="UserAccountLoadStrategy">
                  <ownedComment xmi:id="_16_8_195e0323_1312796970060_817470_18227" body="Class defines load strategy for user account and its depending objects. The class can be used to tell a service which associations of an user account should also be returned when the service returns one or more user accounts." annotatedElement="_16_8_246b03eb_1312551302456_690628_19657"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1312551351139_529055_19676" name="loadPermissions" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1312797365096_844023_18236" body="Attribute can be used to load all roles of an user account." annotatedElement="_16_8_246b03eb_1312551351139_529055_19676"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1312551371162_272545_19678" name="loadAuthorizationTypes" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1312797396827_820028_18237" body="Attribute can be used to load all authorization types of an user account." annotatedElement="_16_8_246b03eb_1312551371162_272545_19678"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1312551393649_355943_19680" name="loadPerson" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1312797412269_140894_18238" body="Attribute can be used to load all person data of a user account." annotatedElement="_16_8_246b03eb_1312551393649_355943_19680"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1312551401498_929459_19682" name="loadAddresses" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1312797463089_723397_18239" body="Attribute can be used to load all addresses of an user account. The addresses of an user account can only be loaded if its person data is also loaded." annotatedElement="_16_8_246b03eb_1312551401498_929459_19682"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1311920471215_324742_19174" name="AuthorizationType">
                  <ownedComment xmi:id="_16_8_246b03eb_1313138876581_518271_20023" body="An authorization type defines a fine grained privilege within an application. In JEAF's role based security implementation for every method of a service which uses JEAF Security an authorization type has to be defined. Through its mechanism JEAF can ensure for every method of a service that it is only called by authorized users." annotatedElement="_16_8_246b03eb_1311920471215_324742_19174"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1311939875252_802429_23142" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138890649_225354_20024" body="Name of the authorization type. To ensure that JEAF can match an authorization type and a service call the authorization type names are generated by JEAF Generator. If a customer specific security check is used the authorization type names must not fulfill any constraints except for the uniqueness." annotatedElement="_16_8_246b03eb_1311939875252_802429_23142"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313043280385_486897_15853" name="ObjectAccessPrivilege">
                  <ownedComment xmi:id="_16_8_246b03eb_1313139540611_819680_20071" body="Class describes the access privileges that are granted for a specific object or class." annotatedElement="_16_8_246b03eb_1313043280385_486897_15853"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313139222684_64983_20040" name="mayCreate" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139253690_183574_20043" body="Attribute defines if the object permission grants create for the object(s) to all accounts that have this permission. This permission does not make sense if it is granted for a single instance of a class, but it may be used to allow creation of objects for a class or for a customer specific authorization check algorithm." annotatedElement="_16_8_246b03eb_1313139222684_64983_20040"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313043290677_230170_15874" name="mayRead" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139400451_635761_20066" body="Attribute defines if the object permission grants read access for the object(s) to all accounts that have this permission. " annotatedElement="_16_8_246b03eb_1313043290677_230170_15874"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313043298480_48616_15876" name="mayUpdate" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139409744_623749_20067" body="Attribute defines if the object permission grants write access for the object(s) to all accounts that have this permission. " annotatedElement="_16_8_246b03eb_1313043298480_48616_15876"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313043326233_696188_15878" name="mayDelete" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139421704_521540_20068" body="Attribute defines if the object permission grants delete access for the object(s) to all accounts that have this permission. " annotatedElement="_16_8_246b03eb_1313043326233_696188_15878"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_197a0330_1460718592803_555851_4186" name="IdentityProviderImplementationType">
                  <ownedComment xmi:id="_16_8_197a0330_1460721149792_447185_4230" body="Enumeration defines the different types of Identity Provider Implementations." annotatedElement="_16_8_197a0330_1460718592803_555851_4186"/>
                  <ownedLiteral xmi:id="_16_8_197a0330_1460718633669_137914_4204" name="UserManagement" classifier="_16_8_197a0330_1460718592803_555851_4186">
                    <ownedComment xmi:id="_16_8_197a0330_1460721169367_803432_4231" body="JEAF's User Management is used as identity provider" annotatedElement="_16_8_197a0330_1460718633669_137914_4204"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_197a0330_1460718643954_927976_4206" name="ActiveDirectory" classifier="_16_8_197a0330_1460718592803_555851_4186">
                    <ownedComment xmi:id="_16_8_197a0330_1460721194385_128377_4232" body="An Active Directory is used as identity provider." annotatedElement="_16_8_197a0330_1460718643954_927976_4206"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_194c0324_1463694100176_766028_6014" name="OAuth" classifier="_16_8_197a0330_1460718592803_555851_4186">
                    <ownedComment xmi:id="_16_8_194c0324_1463694998338_95407_6020" body="A OAuthL-based service is used as identity provider." annotatedElement="_16_8_194c0324_1463694100176_766028_6014"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_162663_804" name="Authorization">
                  <ownedComment xmi:id="_16_8_246b03eb_1313138150822_540025_20013" body="An authorization defines the period of time for which an authorization type is assigned to a role definition." annotatedElement="_16_0_1_2aa0154_1265061847640_162663_804"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1309933838464_59939_21067" name="validity" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138169600_107607_20014" body="Period of time for which an authorization type is assigned to a role definition. The validity period may be unlimited." annotatedElement="_16_8_246b03eb_1309933838464_59939_21067"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1311920537995_975825_19198" name="authorizationType" visibility="private" type="_16_8_246b03eb_1311920471215_324742_19174" association="_16_8_246b03eb_1311920537994_856730_19197">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138183936_937696_20015" body="Reference to authorization type that is associated to a role definition." annotatedElement="_16_8_246b03eb_1311920537995_975825_19198"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1311920545546_486127_19207" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1311920545545_890364_19206" name="" value="1"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313138803158_225918_20016" name="isCurrentlyValid" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138828618_800951_20021" body="Method checks if the authorization is currently valid. Valid means that the current point of time is within the defined validity period of the authorization." annotatedElement="_16_8_246b03eb_1313138803158_225918_20016"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313138816488_571867_20020" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313138841886_50051_20022" body="Method returns true if this authorization is currently valid and false in all other cases." annotatedElement="_16_8_246b03eb_1313138816488_571867_20020"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1317621508528_724409_5896" name="UseCaseDefinition">
                  <ownedComment xmi:id="_16_8_195e0323_1317622040673_14988_7422" body="Class represents a use case of an application. As the use cases here are only used to manage permissions besides its name and a description no further information are required." annotatedElement="_16_8_195e0323_1317621508528_724409_5896"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1317621582306_644306_5917" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1317621597711_335385_5921" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_18230311_1335195003615_252613_4922" name="unbenannt1" visibility="private" type="_16_0_1_2aa0154_1265061847640_355272_830"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_180f0303_1385473948749_375051_3730" name="" memberEnd="_16_8_180f0303_1385473948750_742897_3731 _16_8_180f0303_1385473948750_259749_3732">
                  <ownedEnd xmi:id="_16_8_180f0303_1385473948750_742897_3731" name="" visibility="private" type="_16_8_180f0303_1385473935405_736341_3712" association="_16_8_180f0303_1385473948749_375051_3730"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313488636497_487024_20667" name="OrganizationalUnitQuery">
                  <ownedComment xmi:id="_16_8_246b03eb_1313494335053_613442_20698" body="Class describes the criteria that can be used to query organizational units. If more than one criteria is set they are conjuncted by a logical AND." annotatedElement="_16_8_246b03eb_1313488636497_487024_20667"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313488669167_561186_20687" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313494767349_347694_20699" body="Query string for the name of the organization unit. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_246b03eb_1313488669167_561186_20687"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313488674611_364057_20689" name="acronym" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313494855412_619115_20700" body="Query string for the acronym of the organizational unit. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_246b03eb_1313488674611_364057_20689"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313488705884_742374_20691" name="topLevelElement" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_246b03eb_1313494995964_648221_20701" body="Attribute defines if only units should be searched that are top level elements or not. If the attribute is set to true only organizational elements with no parent should be found. If the attribute is false only non top level elements units should be returned. If the attribute is unset it does not matter." annotatedElement="_16_8_246b03eb_1313488705884_742374_20691"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313488771905_42575_20694" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313495077013_79283_20702" body="Query string for the name of the city. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_246b03eb_1313488771905_42575_20694"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313488887196_854628_20696" name="postalCode" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_246b03eb_1313495214001_536676_20703" body="Starting number of the postal code as query criteria. The criteria is used as part of a LIKE statement." annotatedElement="_16_8_246b03eb_1313488887196_854628_20696"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_18230311_1335192315812_371691_4774" name="GroupType">
                  <ownedAttribute xmi:id="_16_8_18230311_1335192336746_542096_4795" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_18440315_1335975741766_603011_4849" name="LinkStatus">
                  <ownedLiteral xmi:id="_16_8_18440315_1335975771612_302116_4870" name="REQUESTED" classifier="_16_8_18440315_1335975741766_603011_4849"/>
                  <ownedLiteral xmi:id="_16_8_18440315_1335975795925_305771_4872" name="CONFIRMED" classifier="_16_8_18440315_1335975741766_603011_4849"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_19550320_1462338391871_139126_3893" name="LoginProtocol">
                  <ownedComment xmi:id="_16_8_19550320_1462338391874_973218_3896" body="Enumeration defines the possible login protocols that may be used by login providers. Depending on the login protocol the login mechanism has to act different." annotatedElement="_16_8_19550320_1462338391871_139126_3893"/>
                  <ownedLiteral xmi:id="_16_8_19550320_1462338391873_652013_3894" name="JAAS" classifier="_16_8_19550320_1462338391871_139126_3893">
                    <ownedComment xmi:id="_16_8_19550320_1462338391880_435718_3898" body="Type for JAAS based login providers. In case of JAAS a simple login through Java's Servlet API e.g can be performed. This is the default for JEE applications.&#xA;JAAS based login providers do not need any external URLs or redirect URLs." annotatedElement="_16_8_19550320_1462338391873_652013_3894"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_19550320_1462338391873_542592_3895" name="SAML" classifier="_16_8_19550320_1462338391871_139126_3893">
                    <ownedComment xmi:id="_16_8_19550320_1462338391880_327223_3899" body="Type for SAML based login providers. In case of SAML during login some external services is called for the purpose of authenticating a user. When the login was success full the service makes a redirect back to a special URL sending a token for the authenticated user.&#xA;&#xA;Using SAML so called 2-factor-authentication can be realized." annotatedElement="_16_8_19550320_1462338391873_542592_3895"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265061847640_574624_828" name="" memberEnd="_16_0_1_2aa0154_1265061847687_177387_968 _16_0_1_2aa0154_1265061847687_394035_937">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265061847687_177387_968" name="userAccount" visibility="private" type="_16_0_1_2aa0154_1265061847640_616299_818" association="_16_0_1_2aa0154_1265061847640_574624_828">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141003802_470798_20099" body="Reference to the user account of the person. There also may be persons that do not have a user account. However these persons cannot login to the application." annotatedElement="_16_0_1_2aa0154_1265061847687_177387_968"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847765_209711_1170" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847765_617210_1169" name="" value="1"/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265061847640_176941_825" name="" memberEnd="_16_0_1_2aa0154_1265061847687_257800_911 _16_0_1_2aa0154_1265061847687_405638_958">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265061847687_257800_911" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_355272_830" association="_16_0_1_2aa0154_1265061847640_176941_825"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_19800330_1328268664412_163305_5746" name="" memberEnd="_16_8_19800330_1328268664412_43539_5748 _16_8_19800330_1328268664412_311976_5747">
                  <ownedEnd xmi:id="_16_8_19800330_1328268664412_43539_5748" name="" visibility="private" type="_16_8_246b03eb_1313069129063_20530_20088" association="_16_8_19800330_1328268664412_163305_5746"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_197a0330_1460711510942_854667_3742" name="" memberEnd="_16_8_197a0330_1460711510944_961028_3744 _16_8_197a0330_1460711510943_843778_3743">
                  <ownedEnd xmi:id="_16_8_197a0330_1460711510944_961028_3744" name="" visibility="private" type="_16_8_180f0303_1385473882980_107613_3692" association="_16_8_197a0330_1460711510942_854667_3742"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313069129063_20530_20088" name="OrganizationalUnit">
                  <ownedComment xmi:id="_16_8_246b03eb_1313140568831_306184_20076" body="Class represents an organization unit and can be used to build up organizational structures." annotatedElement="_16_8_246b03eb_1313069129063_20530_20088"/>
                  <generalization xmi:id="_16_8_246b03eb_1313069203312_112686_20131" isSubstitutable="true" general="_16_8_246b03eb_1313069176764_772568_20108"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071194704_544124_20434" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140606325_194518_20078" body="Name of the organization unit." annotatedElement="_16_8_246b03eb_1313071194704_544124_20434"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071199540_211019_20436" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140621083_198846_20080" body="Optional description of the organization unit." annotatedElement="_16_8_246b03eb_1313071199540_211019_20436"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071211731_315866_20438" name="acronym" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140624190_334298_20081" body="Acronym of the organization unit. The attribute may be null." annotatedElement="_16_8_246b03eb_1313071211731_315866_20438"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071242758_525631_20445" name="childElements" visibility="private" type="_16_8_246b03eb_1313069176764_772568_20108" association="_16_8_246b03eb_1313071242758_506583_20444">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140592887_539301_20077" body="Reference to all organizational elements that belong to this organization unit. This can either be persons or other organization units." annotatedElement="_16_8_246b03eb_1313071242758_525631_20445"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313071260713_205411_20454" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313071260713_755371_20453" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313071352357_581498_20494" name="type" visibility="private" type="_16_8_246b03eb_1313071316622_472689_20467" association="_16_8_246b03eb_1313071352357_827281_20493">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140613108_863265_20079" body="Reference to the type of the organization unit." annotatedElement="_16_8_246b03eb_1313071352357_581498_20494"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18100304_1389951624866_150457_2500" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18100304_1389951624866_379396_2499" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19800330_1328268664412_311976_5747" name="addresses" visibility="private" type="_16_0_1_2aa0154_1265061847640_443216_820" association="_16_8_19800330_1328268664412_163305_5746">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19800330_1328268684907_58447_5758" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19800330_1328268684906_909073_5757" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_180f0303_1385477477248_847354_3818" name="organizationalUnitAccount" visibility="private" type="_16_8_180f0303_1385473882980_107613_3692" association="_16_8_180f0303_1385477477247_750483_3816">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1385481584747_846316_3851" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1385481584747_775044_3850" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569410720_32012_3569" name="registrationNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18440316_1385569483640_517313_3573" body="The registration Number of a OrganizationalUnit. The attribute may be null if the organizational Unit has no registrationNumber." annotatedElement="_16_8_18440316_1385569410720_32012_3569"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1385569436083_189404_3571" name="taxNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18440316_1385569520110_380656_3574" body="The tax number of a OrganizationalUnit. The attribute may be null if the organizational Unit has no taxNumber." annotatedElement="_16_8_18440316_1385569436083_189404_3571"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1389177009546_684072_2508" name="mainAddress" visibility="private" type="_16_0_1_2aa0154_1265061847640_980806_822" association="_16_8_18440316_1389177009546_775956_2507">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18440316_1389177472127_429595_2545" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18440316_1389177472127_235162_2544" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1389177029086_461485_2521" name="mainEMailAddress" visibility="private" type="_16_0_1_2aa0154_1265061847640_81914_823" association="_16_8_18440316_1389177029086_171676_2520">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18440316_1389177481987_427218_2547" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18440316_1389177481987_553012_2546" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1314713936663_160105_4468" name="UserInfo" clientDependency="_18_5_3_1ea00f4_1561975932855_308156_8413">
                  <ownedComment xmi:id="_16_8_18100304_1392142088075_534_3242" body="The User Info Object collects all necessary information about a user account, such as the first name etc." annotatedElement="_16_8_195e0323_1314713936663_160105_4468"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1314713996472_103979_4487" name="loginName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195e0323_1314714010804_404367_4489" body="Login name of the represented user. The attribute is never null." annotatedElement="_16_8_195e0323_1314713996472_103979_4487"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195e0323_1314714026466_382043_4490" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195e0323_1314714039946_454786_4492" body="Family name of the represented user. The attribute is never null." annotatedElement="_16_8_195e0323_1314714026466_382043_4490"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195e0323_1314714044592_141127_4493" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195e0323_1314714057454_185347_4495" body="First name of the represented user. The attribute is never null." annotatedElement="_16_8_195e0323_1314714044592_141127_4493"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195e0323_1314714064102_946530_4496" name="userLanguage" visibility="private" type="_9_5_f720368_1110473546706_180147_8891">
                    <ownedComment xmi:id="_16_8_195e0323_1314714076235_24222_4498" body="Language of the represented user. The attribute is never null." annotatedElement="_16_8_195e0323_1314714064102_946530_4496"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195e0323_1317050508470_134451_4989" name="image" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1317050689198_198657_4993" body="Image of the represented user. The attibute may be null." annotatedElement="_16_8_195e0323_1317050508470_134451_4989"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1317050657560_556907_4992" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1317050657560_400417_4991" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1319703296559_528830_1967" name="gender" visibility="private" type="_16_0_1_2aa0154_1265061847640_684939_826">
                    <ownedComment xmi:id="_16_8_18230311_1319703353573_191327_1969" body="The gender of the represented user. The attribute is never null." annotatedElement="_16_8_18230311_1319703296559_528830_1967"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1319703418716_358172_1973" name="eMailAddress" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18230311_1319703471999_467938_1975" body="The e-mail address of the represented user. The attribute is never null." annotatedElement="_16_8_18230311_1319703418716_358172_1973"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1358790978228_994606_4951" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_999299_8853">
                    <ownedComment xmi:id="_16_8_18440316_1358791020338_334424_4953" body="Date of birth of represented user. The attribute may be null." annotatedElement="_16_8_18440316_1358790978228_994606_4951"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18100304_1392141971246_457012_3240" name="companyName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18100304_1392142020580_244154_3241" body="The name of the company if the userInfo is from a companyAccount." annotatedElement="_16_8_18100304_1392141971246_457012_3240"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18100304_1404139946381_419866_3601" name="userState" visibility="private" type="_16_8_18100304_1404140027511_229990_3602">
                    <ownedComment xmi:id="_16_8_18100304_1404140092061_554615_3628" body="The state of a user account this might be active or locked." annotatedElement="_16_8_18100304_1404139946381_419866_3601"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_18_5_3_1ea00f4_1561976084333_879541_8877" name="accountType" visibility="private" type="_16_8_19560321_1475467221657_448443_2331"/>
                  <ownedAttribute xmi:id="_18_5_3_1ea00f4_1561978453657_446305_8971" name="roles" visibility="private" type="_9_5_f720368_1110473546612_692218_7691" isOrdered="true" isUnique="false" association="_18_5_3_1ea00f4_1561978453657_123815_8970">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_18_5_3_1ea00f4_1561978476384_266804_8994" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_18_5_3_1ea00f4_1561978476384_370371_8993" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_18_5_3_1ea00f4_1561976283789_380486_8894" name="getDisplayName" visibility="public">
                    <ownedComment xmi:id="_18_5_3_1ea00f4_1561976441836_679650_8928" body="Method returns the display name of the user that is represented by this object. This is either the combination of first and last name or the user's login name." annotatedElement="_18_5_3_1ea00f4_1561976283789_380486_8894"/>
                    <ownedParameter xmi:id="_18_5_3_1ea00f4_1561976297438_961448_8897" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_18_5_3_1ea00f4_1561976456955_888505_8929" body="Human readable representation of the name of the user. The method never returns null." annotatedElement="_18_5_3_1ea00f4_1561976297438_961448_8897"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_18100304_1404140027511_229990_3602" name="UserState">
                  <ownedComment xmi:id="_16_8_18100304_1404140027511_241783_3605" body="Enumeration describes the status of a user account." annotatedElement="_16_8_18100304_1404140027511_229990_3602"/>
                  <ownedLiteral xmi:id="_16_8_18100304_1404140027511_685481_3603" name="LOCKED" classifier="_16_8_18100304_1404140027511_229990_3602">
                    <ownedComment xmi:id="_16_8_18100304_1404140027511_916891_3607" body="Status LOCKED means that the user account is locked and the user can't login or anaything else on the desktop." annotatedElement="_16_8_18100304_1404140027511_685481_3603"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_18100304_1404140027511_558974_3604" name="ACTIVE" classifier="_16_8_18100304_1404140027511_229990_3602">
                    <ownedComment xmi:id="_16_8_18100304_1404140027511_383685_3608" body="Status ACTIVE means that the user account is valid and not locked." annotatedElement="_16_8_18100304_1404140027511_558974_3604"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_18_5_3_1ea00f4_1561978453657_123815_8970" name="" memberEnd="_18_5_3_1ea00f4_1561978453657_367981_8972 _18_5_3_1ea00f4_1561978453657_446305_8971">
                  <ownedEnd xmi:id="_18_5_3_1ea00f4_1561978453657_367981_8972" name="" visibility="private" type="_16_8_195e0323_1314713936663_160105_4468" association="_18_5_3_1ea00f4_1561978453657_123815_8970"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1561975932855_308156_8413" name="" supplier="_16_8_18100304_1404140027511_229990_3602" client="_16_8_195e0323_1314713936663_160105_4468"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_248d03f8_1328513752776_796413_2879" name="Partner" isAbstract="true">
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328508536652_940529_2636" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_248d03f8_1328513799001_907150_2897" body="Name of the partner. This could either be the family name or the name of a company." annotatedElement="_16_8_248d03f8_1328508536652_940529_2636"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328513855475_745596_2907" name="addresses" visibility="private" type="_16_0_1_2aa0154_1265061847640_443216_820" association="_16_8_248d03f8_1328513855475_237862_2905">
                    <ownedComment xmi:id="_16_8_248d03f8_1328513855476_825865_2909" body="Reference to all addresses that are assigned to this organizational element." annotatedElement="_16_8_248d03f8_1328513855475_745596_2907"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_248d03f8_1328513855476_144843_2908" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_248d03f8_1328513855476_383072_2910" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328513862254_301210_2913" name="mainAddress" visibility="private" type="_16_0_1_2aa0154_1265061847640_980806_822" association="_16_8_248d03f8_1328513862254_170959_2911">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_248d03f8_1328513862256_9694_2914" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_248d03f8_1328513862256_127757_2915" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1329726448643_923125_2307" name="mainEMailAddress" visibility="private" type="_16_0_1_2aa0154_1265061847640_81914_823" association="_16_8_18230311_1329726448643_438591_2306">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_18230311_1329726472486_648302_2318" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_18230311_1329726472486_749161_2317" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_195e0323_1314000990799_443780_19433" name="getAllPostalAddresses" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1314001053293_689864_19442" body="Method returns all postal addresses that are assigned to the organizational element." annotatedElement="_16_8_195e0323_1314000990799_443780_19433"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1314001083889_433559_19445" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_980806_822" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1314001122192_901009_19447" body="List with all postal addresses of this object. The method never returns null." annotatedElement="_16_8_195e0323_1314001083889_433559_19445"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1314001125998_453957_19449" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1314001125998_4894_19448" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1314001004731_916518_19438" name="getAllCommunicationAddresses" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1314001074486_138280_19443" body="Method returns all communication addresses that are assigned to this organizational element." annotatedElement="_16_8_195e0323_1314001004731_916518_19438"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1314001151847_571801_19451" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_81914_823" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1314001179716_53657_19452" body="List with all communication addresses of this object. The method never returns null." annotatedElement="_16_8_195e0323_1314001151847_571801_19451"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1314001183847_782985_19454" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1314001183847_98128_19453" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195e0323_1314014421463_230397_18996" name="getAddresses" visibility="public">
                    <ownedComment xmi:id="_16_8_195e0323_1314014471721_371164_19001" body="Method returns all addresses that have the passed address type." annotatedElement="_16_8_195e0323_1314014421463_230397_18996"/>
                    <ownedParameter xmi:id="_16_8_195e0323_1314014445679_575042_18999" name="pAddressType" visibility="public" type="_16_0_1_2aa0154_1265061847640_764215_837">
                      <ownedComment xmi:id="_16_8_195e0323_1314014550257_309911_19005" body="Address type which the returned addresses should have. The parameter must not be null and the passed address type must have a service object id." annotatedElement="_16_8_195e0323_1314014445679_575042_18999"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195e0323_1314014445680_321327_19000" name="" visibility="public" type="_16_0_1_2aa0154_1265061847640_443216_820" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_195e0323_1314014504474_59573_19004" body="List with all addresses that have the passed type. The method never returns null." annotatedElement="_16_8_195e0323_1314014445680_321327_19000"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1314014478235_677457_19003" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1314014478234_739100_19002" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1312797596858_284537_18242" name="PersonLoadStrategy">
                  <ownedComment xmi:id="_16_8_195e0323_1312801899680_168486_18278" body="Class defines load strategy for class person and its depending objects. The class can be used to tell a service which associations of a person should also be returned when the service returns one or more persons." annotatedElement="_16_8_195e0323_1312797596858_284537_18242"/>
                  <ownedAttribute xmi:id="_16_8_195e0323_1312797673119_870441_18274" name="loadAddresses" visibility="private">
                    <ownedComment xmi:id="_16_8_195e0323_1312797673120_131267_18275" body="Attribute can be used to load all addresses of an user account. The addresses of an user account can only be loaded if its person data is also loaded." annotatedElement="_16_8_195e0323_1312797673119_870441_18274"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_777139_835" name="Country">
                  <ownedComment xmi:id="_16_8_246b03eb_1313139075240_930467_20036" body="Class represents a country." annotatedElement="_16_0_1_2aa0154_1265061847640_777139_835"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_648982_996" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139088745_581320_20037" body="Name of the country." annotatedElement="_16_0_1_2aa0154_1265061847703_648982_996"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_229889_997" name="states" visibility="private" type="_16_0_1_2aa0154_1265061847640_84754_836" association="_16_0_1_2aa0154_1265061847640_701497_838">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139102014_398674_20038" body="Reference to all states that belong to this country." annotatedElement="_16_0_1_2aa0154_1265061847703_229889_997"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847765_129389_1202" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847765_614379_1201" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1313129548192_774247_19131" name="AddressSubtype">
                  <ownedComment xmi:id="_16_8_246b03eb_1313138970227_165835_20029" body="Class represents a subtype of a address type. A sub type can be used to precise the address type. For a phone number as communication address type, sub types may be &quot;private&quot;, &quot;work&quot; or mobile. For address type social media sub types could be &quot;Xing&quot;, &quot;Facebook&quot; or &quot;Twitter&quot;. For a postal address this could be something like &quot;Home Address&quot;, &quot;Shipping Address&quot; etc." annotatedElement="_16_8_246b03eb_1313129548192_774247_19131"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313138980453_449053_20030" name="subtypeName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138998597_419547_20032" body="Name of the address subtype. Its length is restricted to 64 characters." annotatedElement="_16_8_246b03eb_1313138980453_449053_20030"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313129701600_816091_19175" name="parentType" visibility="private" type="_16_0_1_2aa0154_1265061847640_764215_837" association="_16_8_246b03eb_1313129701599_475622_19173">
                    <ownedComment xmi:id="_16_8_246b03eb_1313389509818_150821_19293" body="Reference to address type to which this address sub type belongs to." annotatedElement="_16_8_246b03eb_1313129701600_816091_19175"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313389482495_751052_19290" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313389482494_314261_19289" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_248d03f8_1328508638565_608509_2644" name="LegalForm">
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328542828756_414823_3148" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_443216_820" name="Address" isAbstract="true">
                  <ownedComment xmi:id="_16_8_246b03eb_1313134647738_705307_20012" body="This class represents a abstract type of an address. Concrete address types are defined through the class' subclasses." annotatedElement="_16_0_1_2aa0154_1265061847640_443216_820"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313142295014_573573_20147" name="addressSubtype" visibility="private" type="_16_8_246b03eb_1313129548192_774247_19131" association="_16_8_246b03eb_1313142295014_965201_20145">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142295015_750819_20149" body="Subtype of this concrete address. The reference may be null." annotatedElement="_16_8_246b03eb_1313142295014_573573_20147"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313142295014_889424_20148" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313142295015_14502_20150" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313142307772_267523_20153" name="addressType" visibility="private" type="_16_0_1_2aa0154_1265061847640_764215_837" association="_16_8_246b03eb_1313142307769_67539_20151">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142307773_94111_20155" body="Address type of this address. The reference must not be null." annotatedElement="_16_8_246b03eb_1313142307772_267523_20153"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313142307773_467473_20154" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313142307773_382182_20156" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_980806_822" name="PostalAddress">
                  <ownedComment xmi:id="_16_8_246b03eb_1313141126967_847515_20108" body="Class represents a postal address." annotatedElement="_16_0_1_2aa0154_1265061847640_980806_822"/>
                  <generalization xmi:id="_16_0_1_2aa0154_1265061847687_589208_940" isSubstitutable="true" general="_16_0_1_2aa0154_1265061847640_443216_820"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_279354_948" name="street" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141132972_572277_20109" body="Name of the street." annotatedElement="_16_0_1_2aa0154_1265061847687_279354_948"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_32390_949" name="postalCode" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141140583_979541_20110" body="Postal code of the address" annotatedElement="_16_0_1_2aa0154_1265061847687_32390_949"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_336285_950" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141150664_599889_20111" body="Name of the city." annotatedElement="_16_0_1_2aa0154_1265061847687_336285_950"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_845042_952" name="country" visibility="private" type="_16_0_1_2aa0154_1265061847640_777139_835" association="_16_0_1_2aa0154_1265061847640_436701_839">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141181676_374079_20114" body="Country to which this address belongs to." annotatedElement="_16_0_1_2aa0154_1265061847687_845042_952"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265061847765_223216_1160" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265061847765_549348_1159" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_956439_953" name="state" visibility="private" type="_16_0_1_2aa0154_1265061847640_84754_836" association="_16_0_1_2aa0154_1265061847640_969389_840">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141177967_465795_20113" body="State to which the address belongs to. The reference may be null." annotatedElement="_16_0_1_2aa0154_1265061847687_956439_953"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1c200dd_1279699729468_119827_2984" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1c200dd_1279699729468_313212_2983" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_81914_823" name="CommunicationAddress">
                  <ownedComment xmi:id="_16_8_246b03eb_1313138934732_677638_20025" body="Class allows the specification of alternative ways of communication. Therefore the class  can store a telephone number as well as a nickname in a social network or IMS. " annotatedElement="_16_0_1_2aa0154_1265061847640_81914_823"/>
                  <generalization xmi:id="_16_0_1_2aa0154_1265061847687_454194_942" isSubstitutable="true" general="_16_0_1_2aa0154_1265061847640_443216_820"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_87723_955" name="addressValue" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313138945983_278291_20026" body="Value of the communication address. This may be a telephone number or nickname of facebook as well. The attribute must not be null and its length is restricted to 128 characters." annotatedElement="_16_0_1_2aa0154_1265061847687_87723_955"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_84754_836" name="State">
                  <ownedComment xmi:id="_16_8_246b03eb_1313142747839_675467_20162" body="Class represents a state as part of a country." annotatedElement="_16_0_1_2aa0154_1265061847640_84754_836"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_239505_999" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313142757641_246665_20163" body="Name of the state." annotatedElement="_16_0_1_2aa0154_1265061847703_239505_999"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_786036_1000" name="country" visibility="private" type="_16_0_1_2aa0154_1265061847640_777139_835" association="_16_0_1_2aa0154_1265061847640_701497_838">
                    <ownedComment xmi:id="_16_8_246b03eb_1313389555007_327163_19304" body="Reference to country to which this state belongs to. " annotatedElement="_16_0_1_2aa0154_1265061847703_786036_1000"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313394550024_404680_22179" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313394550024_542270_22178" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_282013d_1283176834314_284503_2234" name="PersonQuery">
                  <ownedComment xmi:id="_16_8_282013d_1283182238688_899853_2852" body="Class defines the criteria that can be used to query persons. If more than one criteria is set they are conjuncted by a logical AND." annotatedElement="_16_8_282013d_1283176834314_284503_2234"/>
                  <ownedAttribute xmi:id="_16_8_282013d_1283176919610_984789_2253" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_282013d_1283182655037_693480_2856" body="Query string for the family name of the person. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_282013d_1283176919610_984789_2253"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_282013d_1283177599124_700488_2521" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_282013d_1283182592848_695156_2854" body="Query string for the first name of the person. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_282013d_1283177599124_700488_2521"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_282013d_1283178033582_184736_2523" name="loginName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_282013d_1283182669037_185556_2857" body="Query string for the login name of the user account that belongs to the person. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_282013d_1283178033582_184736_2523"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_282013d_1283178690450_407769_2557" name="gender" visibility="private" type="_16_0_1_2aa0154_1265061847640_684939_826">
                    <ownedComment xmi:id="_16_8_282013d_1283182616067_601940_2855" body="Criteria for querying a person by its gender." annotatedElement="_16_8_282013d_1283178690450_407769_2557"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1c200dd_1283256178968_907886_2303" name="postalCode" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_1c200dd_1283342391328_577617_2251" body="Starting number of the postal code as query criteria. The criteria is used as part of a LIKE statement." annotatedElement="_16_8_1c200dd_1283256178968_907886_2303"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1c200dd_1283342306375_765855_2248" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1c200dd_1283342368859_625381_2250" body="Query string for the name of the city. The query string is used as part of a LIKE statement and thus no SQL specific characters have to be added." annotatedElement="_16_8_1c200dd_1283342306375_765855_2248"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1312871083554_453495_18494" name="dateOfBirthPeriod" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390">
                    <ownedComment xmi:id="_16_8_246b03eb_1313495601677_508971_20704" body="Period of time within which the query person should be born in. As all periods the period may be unlimited or partly open." annotatedElement="_16_8_246b03eb_1312871083554_453495_18494"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_17642_827" name="Person" clientDependency="_16_0_1_2aa0154_1265062621375_316361_785">
                  <ownedComment xmi:id="_16_8_246b03eb_1313140952164_973464_20095" body="Class represents a person. As a person may be part of an organizational structure this class is a subclass of class OrganizationalElement which is the base class for all organizational elements." annotatedElement="_16_0_1_2aa0154_1265061847640_17642_827"/>
                  <generalization xmi:id="_16_8_248d03f8_1328513811716_485339_2900" isSubstitutable="true" general="_16_8_248d03f8_1328513752776_796413_2879"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_145184_966" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140974056_376317_20097" body="First name of the represented person." annotatedElement="_16_0_1_2aa0154_1265061847687_145184_966"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_8646_967" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_999299_8853">
                    <ownedComment xmi:id="_16_8_246b03eb_1313140977967_332173_20098" body="Date of birth of the represented person." annotatedElement="_16_0_1_2aa0154_1265061847687_8646_967"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_282013d_1266572162052_80561_1222" name="language" visibility="private" type="_9_5_f720368_1110473546706_180147_8891">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141014213_582034_20100" body="Default language of the represented person. This information e.g. can be used to show the user interface in the language of the user." annotatedElement="_16_0_1_282013d_1266572162052_80561_1222"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1309932243389_822350_21058" name="gender" visibility="private" type="_16_0_1_2aa0154_1265061847640_684939_826">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141020829_260696_20101" body="Gender of the represented person." annotatedElement="_16_8_246b03eb_1309932243389_822350_21058"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_180f0303_1340020517744_114372_4717" name="image" visibility="private">
                    <ownedComment xmi:id="_16_8_180f0303_1340022875289_676268_4792" body="An image of the represented person." annotatedElement="_16_8_180f0303_1340020517744_114372_4717"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_180f0303_1340020536355_641046_4721" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_180f0303_1340020536355_946024_4720" name=""/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1313141074638_745815_20102" name="getAge" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1313141094773_808853_20106" body="This method returns the age in years of the represented person." annotatedElement="_16_8_246b03eb_1313141074638_745815_20102"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1313141084204_855108_20105" name="" visibility="public" type="_9_5_f720368_1110473546612_167906_7631" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1313141110872_23953_20107" body="Age of the represented person. The age is calculated with the current date as basis. The method never returns null." annotatedElement="_16_8_246b03eb_1313141084204_855108_20105"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265061847640_764215_837" name="AddressType">
                  <ownedComment xmi:id="_16_8_246b03eb_1313139016880_678120_20033" body="Class represents the a type of a communication address. A communication address type precises the kind of a communication address. Common address types are EMail, Instant Messaging, Social Media Network or Phone number. However others types can be defined as well." annotatedElement="_16_0_1_2aa0154_1265061847640_764215_837"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847703_103762_1002" name="typeName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139029629_197577_20034" body="Name of the address type. Its length is restricted to 64 characters and must be unique." annotatedElement="_16_0_1_2aa0154_1265061847703_103762_1002"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1313129701599_567186_19174" name="subtypes" visibility="private" type="_16_8_246b03eb_1313129548192_774247_19131" association="_16_8_246b03eb_1313129701599_475622_19173">
                    <ownedComment xmi:id="_16_8_246b03eb_1313139058132_189415_20035" body="Reference to all supported subtypes that belong to this address type. A address type may have no subtypes." annotatedElement="_16_8_246b03eb_1313129701599_567186_19174"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1313129818227_377728_19210" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1313129818227_542024_19209" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_248d03f8_1328508514703_556767_2618" name="Company">
                  <generalization xmi:id="_16_8_248d03f8_1328513815836_188273_2903" isSubstitutable="true" general="_16_8_248d03f8_1328513752776_796413_2879"/>
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328508587833_49872_2638" name="registrationNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328508602424_177161_2640" name="taxNumber" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_248d03f8_1328508659467_918667_2667" name="legalForm" visibility="private" type="_16_8_248d03f8_1328508638565_608509_2644" association="_16_8_248d03f8_1328508659467_738624_2666">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_248d03f8_1328508663963_851746_2676" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_248d03f8_1328508663963_651212_2675" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Usage" xmi:id="_16_0_1_2aa0154_1265062621375_316361_785" name="" supplier="_16_0_1_2aa0154_1265061847640_684939_826" client="_16_0_1_2aa0154_1265061847640_17642_827"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_18230311_1329726448643_438591_2306" name="" memberEnd="_16_8_18230311_1329726448643_217625_2308 _16_8_18230311_1329726448643_923125_2307">
                  <ownedEnd xmi:id="_16_8_18230311_1329726448643_217625_2308" name="" visibility="private" type="_16_8_248d03f8_1328513752776_796413_2879" association="_16_8_18230311_1329726448643_438591_2306"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265061847640_701497_838" name="" memberEnd="_16_0_1_2aa0154_1265061847703_786036_1000 _16_0_1_2aa0154_1265061847703_229889_997"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313129701599_475622_19173" name="" memberEnd="_16_8_246b03eb_1313129701599_567186_19174 _16_8_246b03eb_1313129701600_816091_19175"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_248d03f8_1328513855475_237862_2905" name="" memberEnd="_16_8_248d03f8_1328513855475_481933_2906 _16_8_248d03f8_1328513855475_745596_2907">
                  <ownedEnd xmi:id="_16_8_248d03f8_1328513855475_481933_2906" name="" visibility="private" type="_16_8_248d03f8_1328513752776_796413_2879" association="_16_8_248d03f8_1328513855475_237862_2905"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265061847640_969389_840" name="" memberEnd="_16_0_1_2aa0154_1265061847703_513234_1005 _16_0_1_2aa0154_1265061847687_956439_953">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265061847703_513234_1005" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_980806_822" association="_16_0_1_2aa0154_1265061847640_969389_840"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_248d03f8_1328508659467_738624_2666" name="" memberEnd="_16_8_248d03f8_1328508659467_654001_2668 _16_8_248d03f8_1328508659467_918667_2667">
                  <ownedEnd xmi:id="_16_8_248d03f8_1328508659467_654001_2668" name="" visibility="private" type="_16_8_248d03f8_1328508514703_556767_2618" association="_16_8_248d03f8_1328508659467_738624_2666"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313142307769_67539_20151" name="" memberEnd="_16_8_246b03eb_1313142307771_111473_20152 _16_8_246b03eb_1313142307772_267523_20153">
                  <ownedEnd xmi:id="_16_8_246b03eb_1313142307771_111473_20152" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_443216_820" association="_16_8_246b03eb_1313142307769_67539_20151"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265061847640_436701_839" name="" memberEnd="_16_0_1_2aa0154_1265061847703_249237_1004 _16_0_1_2aa0154_1265061847687_845042_952">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265061847703_249237_1004" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_980806_822" association="_16_0_1_2aa0154_1265061847640_436701_839"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_248d03f8_1328513862254_170959_2911" name="" memberEnd="_16_8_248d03f8_1328513862254_78131_2912 _16_8_248d03f8_1328513862254_301210_2913">
                  <ownedEnd xmi:id="_16_8_248d03f8_1328513862254_78131_2912" name="" visibility="private" type="_16_8_248d03f8_1328513752776_796413_2879" association="_16_8_248d03f8_1328513862254_170959_2911"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1313142295014_965201_20145" name="" memberEnd="_16_8_246b03eb_1313142295014_2278_20146 _16_8_246b03eb_1313142295014_573573_20147">
                  <ownedEnd xmi:id="_16_8_246b03eb_1313142295014_2278_20146" name="" visibility="private" type="_16_0_1_2aa0154_1265061847640_443216_820" association="_16_8_246b03eb_1313142295014_965201_20145"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260524659625_286086_543" name="outputmanager">
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265398749265_835361_739" name="" memberEnd="_16_0_1_2aa0154_1265398749328_548436_833 _16_0_1_2aa0154_1265398749281_271941_775">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265398749328_548436_833" name="form" visibility="private" type="_16_0_1_2aa0154_1265398749203_144293_664" association="_16_0_1_2aa0154_1265398749265_835361_739">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749359_690123_947" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749359_811137_946" name="" value="1"/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265403295656_627881_1500" name="" memberEnd="_16_0_1_2aa0154_1265403295656_890167_1502 _16_0_1_2aa0154_1265403295656_920036_1501">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265403295656_890167_1502" name="" visibility="private" type="_16_0_1_2aa0154_1265398749203_144293_664" association="_16_0_1_2aa0154_1265403295656_627881_1500"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265398749265_536210_751" name="" memberEnd="_16_0_1_2aa0154_1265398749343_522451_874 _16_0_1_2aa0154_1265398749281_142272_777">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265398749343_522451_874" name="layoutDef" visibility="private" type="_16_0_1_2aa0154_1265398749203_144293_664" association="_16_0_1_2aa0154_1265398749265_536210_751">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749375_970086_1017" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749375_71113_1016" name="" value="1"/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1268842726406_276190_1105" name="Output">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1268842752546_804182_1124" name="rawData" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1268842782390_894159_1129" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1268842782390_4982_1128" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_0_1_2aa0154_1265398749218_599565_674" name="RevisionState">
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265398749296_673589_824" name="DEVELOPMENT" classifier="_16_0_1_2aa0154_1265398749218_599565_674"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265398749296_682326_825" name="TEST" classifier="_16_0_1_2aa0154_1265398749218_599565_674"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265398749296_637739_826" name="PRODUCTION" classifier="_16_0_1_2aa0154_1265398749218_599565_674"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265398749296_16109_827" name="ARCHIVE" classifier="_16_0_1_2aa0154_1265398749218_599565_674"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_144293_664" name="Form">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_563232_793" name="title" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_544276_769" name="subject" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_271941_775" name="layoutRevisions" visibility="private" type="_16_0_1_2aa0154_1265398749203_40015_666" association="_16_0_1_2aa0154_1265398749265_835361_739">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265404917531_4301_1541" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265404917531_935393_1540" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_142272_777" name="layoutMetadata" visibility="private" type="_16_0_1_2aa0154_1265398749203_611093_667" association="_16_0_1_2aa0154_1265398749265_536210_751">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749343_171139_896" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749343_796091_895" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265403295656_920036_1501" name="category" visibility="private" type="_16_0_1_2aa0154_1265398749203_80681_662" association="_16_0_1_2aa0154_1265403295656_627881_1500">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265403337453_219383_1532" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265403337453_755165_1531" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265403315796_85040_1516" name="parameters" visibility="private" type="_16_0_1_2aa0154_1265398749203_727319_665" association="_16_0_1_2aa0154_1265403315796_200499_1515">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265403331687_196904_1528" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265403331687_69862_1527" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_587395_770" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_727319_665" name="FormParameter">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_73249_779" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_349544_781" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265653746140_724929_1143" name="type" visibility="private" type="_16_0_1_2aa0154_1265404241453_933196_1535" association="_16_0_1_2aa0154_1265653746140_900319_1141">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265653746140_258742_1145" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265653746140_639146_1144" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1265398749218_332351_673" name="OutputService">
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1268764284906_874092_754" name="print" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1268764430203_741644_990" body="Method print the form with the passed id using the passed parameters." annotatedElement="_16_0_1_2aa0154_1268764284906_874092_754"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1268764614000_293854_1261" name="pFormID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1268764357671_133393_759" name="pFormParameters" visibility="public" type="_16_0_1_2aa0154_1265398749203_727319_665">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195c032a_1284472012510_526256_3862" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195c032a_1284472012509_358698_3861" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195c032a_1284472012511_834693_3863" name="" visibility="public" type="_16_0_1_2aa0154_1268842726406_276190_1105" direction="return"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_80681_662" name="Category">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_487569_757" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_51093_758" name="categories" visibility="private" type="_16_0_1_2aa0154_1265398749203_80681_662" association="_16_0_1_2aa0154_1265398749265_453150_735">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749343_571303_878" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749343_48113_877" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_464211_759" name="superCategory" visibility="private" type="_16_0_1_2aa0154_1265398749203_80681_662" association="_16_0_1_2aa0154_1265398749265_453150_735">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749343_508729_880" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749343_819765_879" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265405145546_209284_1545" name="" memberEnd="_16_0_1_2aa0154_1265405145546_375816_1547 _16_0_1_2aa0154_1265405145546_443066_1546">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265405145546_375816_1547" name="" visibility="private" type="_16_0_1_2aa0154_1265398749203_40015_666" association="_16_0_1_2aa0154_1265405145546_209284_1545"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265403315796_200499_1515" name="" memberEnd="_16_0_1_2aa0154_1265403315796_229604_1517 _16_0_1_2aa0154_1265403315796_85040_1516">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265403315796_229604_1517" name="" visibility="private" type="_16_0_1_2aa0154_1265398749203_144293_664" association="_16_0_1_2aa0154_1265403315796_200499_1515"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_0_1_2aa0154_1265404241453_933196_1535" name="DataType">
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653678156_410865_1127" name="TEXT" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653688875_737255_1129" name="NUMBER" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653700968_414303_1131" name="DECIMAL" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653715406_273176_1133" name="BOOLEAN" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653718593_781252_1135" name="DATE" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653720750_93806_1137" name="TIMESTAMP" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265653731312_398465_1139" name="ENUMERATION" classifier="_16_0_1_2aa0154_1265404241453_933196_1535"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_992124_668" name="OutputManagerApplicationException"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265398749265_265589_753" name="" memberEnd="_16_0_1_2aa0154_1265398749343_254148_876 _16_0_1_2aa0154_1265398749281_48815_790">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265398749343_254148_876" name="layoutDef" visibility="private" type="_16_0_1_2aa0154_1265398749203_40015_666" association="_16_0_1_2aa0154_1265398749265_265589_753">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749375_991492_1022" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749375_34443_1021" name="" value="1"/>
                  </ownedEnd>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_386297_669" name="OutputManagerSystemException"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1265398749218_346091_672" name="FormManagementService">
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_81337_808" name="getForm" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_156227_907" name="Name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_419339_908" name="state" visibility="public" type="_16_0_1_2aa0154_1265398749218_599565_674"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_746088_909" name="" visibility="public" type="_16_0_1_2aa0154_1265398749203_144293_664" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_269894_809" name="getForms" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_631748_910" name="Name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_882065_911" name="" visibility="public" type="_16_0_1_2aa0154_1265398749203_144293_664" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265400383812_301838_1456" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265400383812_331451_1455" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_645205_810" name="addForm" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_259832_913" name="pForm" visibility="public" type="_16_0_1_2aa0154_1265398749203_144293_664"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265400442593_891369_1457" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_45973_811" name="updateForm" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_871195_914" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_936557_915" name="pForm" visibility="public" type="_16_0_1_2aa0154_1265398749203_144293_664"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_5718_812" name="deleteForm" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749343_643872_916" name="name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_450621_917" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_867483_813" name="searchForm" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_829067_918" name="" visibility="public" type="_16_0_1_2aa0154_1265398749203_144293_664" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265402832796_541376_1496" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265402832796_88048_1495" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_97607_919" name="name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_414625_814" name="addLayoutDefinition" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_225136_920" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_706431_921" name="layoutDefinition" visibility="public" type="_16_0_1_2aa0154_1265398749203_40015_666"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_122120_815" name="updateLayoutDefinition" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_901528_922" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_969925_923" name="layoutDefinition" visibility="public" type="_16_0_1_2aa0154_1265398749203_40015_666"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_964443_816" name="deleteLayoutDefinition" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_268834_924" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_936911_925" name="layoutDefinition" visibility="public" type="_16_0_1_2aa0154_1265398749203_40015_666"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_252173_818" name="createCategory" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_864244_928" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_141280_929" name="name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_262768_930" name="subCategory" visibility="public" type="_16_0_1_2aa0154_1265398749203_80681_662"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_651630_819" name="updateCategory" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_974806_931" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_509683_932" name="name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1265398749296_75267_820" name="deleteCategory" visibility="public">
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_346507_933" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1265398749359_357166_934" name="name" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265653746140_900319_1141" name="" memberEnd="_16_0_1_2aa0154_1265653746140_299141_1142 _16_0_1_2aa0154_1265653746140_724929_1143">
                  <ownedEnd xmi:id="_16_0_1_2aa0154_1265653746140_299141_1142" name="" visibility="private" type="_16_0_1_2aa0154_1265398749203_727319_665" association="_16_0_1_2aa0154_1265653746140_900319_1141"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_611093_667" name="LayoutMetaData">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_578484_794" name="author" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_816613_798" name="comment" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265398749203_40015_666" name="LayoutDefinition">
                  <ownedComment xmi:id="_16_0_1_2aa0154_1265398749281_50157_791" body="LayoutDefinition of the PDFForm" annotatedElement="_16_0_1_2aa0154_1265398749203_40015_666"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_14998_784" name="layout" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749343_749566_900" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749343_978011_899" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_641374_785" name="version" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_610081_787" name="validFrom" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_328039_788" name="validTo" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265398749281_48815_790" name="revisionState" visibility="private" type="_16_0_1_2aa0154_1265398749218_599565_674" association="_16_0_1_2aa0154_1265398749265_265589_753">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265398749343_735901_902" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265398749343_268650_901" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265405145546_443066_1546" name="detail" visibility="private" type="_16_0_1_2aa0154_1265398749203_611093_667" association="_16_0_1_2aa0154_1265405145546_209284_1545">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_0_1_2aa0154_1265405204156_985956_1558" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_0_1_2aa0154_1265405204156_518997_1557" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265405240015_8936_1561" name="creationDate" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_0_1_2aa0154_1265398749265_453150_735" name="" memberEnd="_16_0_1_2aa0154_1265398749281_51093_758 _16_0_1_2aa0154_1265398749281_464211_759"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_8_197a0330_1459310402445_836559_3923" name="migration">
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_197a0330_1459310432192_781744_3946" name="MigrationService">
                  <ownedComment xmi:id="_16_8_197a0330_1459310806349_717766_3981" body="Service defines an generic interface for the migration of a component. What has to be done during migration highly depends on the implementing component." annotatedElement="_16_8_197a0330_1459310432192_781744_3946"/>
                  <ownedOperation xmi:id="_16_8_197a0330_1459310454137_258797_3964" name="runMigration" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1459310491349_280467_3968" body="Method runs the migration routine of the implementing component." annotatedElement="_16_8_197a0330_1459310454137_258797_3964"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1459310463652_335583_3967" name="" visibility="public" type="_16_8_197a0330_1453824381583_132600_1961" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_197a0330_1459310540546_439950_3971" body="List with all problems that occurred during the migration" annotatedElement="_16_8_197a0330_1459310463652_335583_3967"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_197a0330_1459310507548_715501_3970" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_197a0330_1459310507547_778764_3969" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_8_2aa0154_1279811523322_425161_2257" name="systemmanagement">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19800330_1328594019152_746004_3653" name="LocalizationLoadStrategy">
                  <ownedAttribute xmi:id="_16_8_19800330_1328594054815_213354_3671" name="loadValidityPeriods" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19800330_1328594093051_417147_3675" name="loadMessageDefinitions" visibility="private">
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306845308724_365540_18209" name="" memberEnd="_16_8_246b03eb_1306845308725_302351_18211 _16_8_246b03eb_1306845308725_6226_18210">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306845308725_302351_18211" name="" visibility="private" type="_16_8_19940331_1287322119261_810130_7752" association="_16_8_246b03eb_1306845308724_365540_18209"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1279811896004_201258_2367" name="" memberEnd="_16_8_2aa0154_1279811896004_271534_2368 _16_8_2aa0154_1279811896004_344787_2369"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1279814972638_718477_2855" name="" memberEnd="_16_8_2aa0154_1279814972639_435153_2857 _16_8_2aa0154_1279814972638_879831_2856">
                  <ownedEnd xmi:id="_16_8_2aa0154_1279814972639_435153_2857" name="" visibility="private" type="_16_8_2aa0154_1279811639841_157324_2301" association="_16_8_2aa0154_1279814972638_718477_2855"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279811958067_260140_2523" name="PersistenceUnitInfo">
                  <ownedComment xmi:id="_16_8_1b700da_1282224260503_953035_2677" body="This ServiceObject represents a PersistenceUnit. It is used to store gathered informations from {@link PersistenceUnit} objects." annotatedElement="_16_8_2aa0154_1279811958067_260140_2523"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279811975186_435774_2547" name="componentInfo" visibility="private" type="_16_8_2aa0154_1279811663053_114998_2322" association="_16_8_2aa0154_1279811975185_855810_2545">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279812000086_859483_2557" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279812000086_473730_2556" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1280175955487_762568_2425" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1b700da_1282227028795_923866_2684" body="Name of the Persistence Unit." annotatedElement="_16_8_1ea00f4_1280175955487_762568_2425"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1279862713614_34081_2743" name="ApplicationLocalization">
                  <ownedComment xmi:id="_16_8_246b03eb_1307437141886_650005_17227" body="Object contains all localizations for the represented application. As the message definitions of an application may change from time to time e.g. caused by a new release of the application as set of message definitions always has a validity period and thus there can be more than one validity period.&#xA;Message definitions can be grouped within message folders to ease their administration." annotatedElement="_16_8_1ea00f4_1279862713614_34081_2743"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306821385079_312427_17842" name="applicationID" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1307437533580_649618_17229" body="Name of the application whose localizations are represented by this object." annotatedElement="_16_8_246b03eb_1306821385079_312427_17842"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306822085634_675662_17941" name="validityPeriods" visibility="private" type="_16_8_246b03eb_1306821004717_891047_17816" isOrdered="true" isUnique="false" association="_16_8_246b03eb_1306822085634_806899_17940">
                    <ownedComment xmi:id="_16_8_246b03eb_1308067420106_620617_23539" body="Reference to all validity periods that belong to this application localization." annotatedElement="_16_8_246b03eb_1306822085634_675662_17941"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306849064430_780462_18353" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306849064430_992054_18352" name="" value="1"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1307438703570_205435_17243" name="getCurrentlyValidMessageFolders" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1307438805595_15733_17253" body="Method returns the message folders of the validity period that is currently valid." annotatedElement="_16_8_246b03eb_1307438703570_205435_17243"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1307438766423_759920_17250" name="" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1307438866368_249577_17254" body="All directly associated message folders of the validity period that is currently valid. The method never returns null." annotatedElement="_16_8_246b03eb_1307438766423_759920_17250"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1307438766458_738137_17252" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1307438766458_21141_17251" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306822060244_359715_17926" name="" memberEnd="_16_8_246b03eb_1306822060247_98640_17928 _16_8_246b03eb_1306822060246_135533_17927">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306822060247_98640_17928" name="" visibility="private" type="_16_8_19940331_1287322119261_810130_7752" association="_16_8_246b03eb_1306822060244_359715_17926"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1306821004717_891047_17816" name="LocalizationValidity">
                  <ownedComment xmi:id="_16_8_246b03eb_1307437487884_667487_17228" body="A validity period defines the period of time within a set of message definitions is valid." annotatedElement="_16_8_246b03eb_1306821004717_891047_17816"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306851238606_245049_18381" name="validity" visibility="private" type="_16_8_1981032c_1299600374363_508423_16390">
                    <ownedComment xmi:id="_16_8_246b03eb_1308067975023_95920_23540" body="Object describing the period within which the validity period is valid." annotatedElement="_16_8_246b03eb_1306851238606_245049_18381"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306822075303_464893_17933" name="folders" visibility="private" type="_16_8_246b03eb_1306821607139_539828_17866" isOrdered="true" isUnique="false" association="_16_8_246b03eb_1306822075301_101522_17931">
                    <ownedComment xmi:id="_16_8_195e0323_1308140428326_989639_17769" body="Reference to all message folders that belong to this validity period." annotatedElement="_16_8_246b03eb_1306822075303_464893_17933"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306822075303_449006_17934" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306822075304_469618_17935" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306821087757_540111_17838" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068010787_561468_23541" body="Description of the validity period e.g. the software release to which it belongs" annotatedElement="_16_8_246b03eb_1306821087757_540111_17838"/>
                  </ownedAttribute>
                  <ownedOperation xmi:id="_16_8_246b03eb_1308115144089_122645_17912" name="isValid" visibility="public">
                    <ownedParameter xmi:id="_16_8_246b03eb_1308115162606_738676_17915" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1837031a_1287059855915_695906_6422" name="MethodInfo">
                  <ownedComment xmi:id="_16_8_1837031a_1287065960108_250347_6564" body="This ServiceObject represents a Method.  It is used to store gathered informations from {@link Method} objects." annotatedElement="_16_8_1837031a_1287059855915_695906_6422"/>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287059886138_696847_6447" name="serviceInfo" visibility="private" type="_16_8_2aa0154_1279811639841_157324_2301" association="_16_8_1837031a_1287059886137_751263_6445">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1837031a_1287059947538_445629_6461" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1837031a_1287059947538_811975_6460" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1294671044223_99630_15081" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1837031a_1294676090750_620690_22188" body="Name of the Method." annotatedElement="_16_8_1837031a_1294671044223_99630_15081"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1294676013102_957714_22186" name="parameters" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1837031a_1294676122444_4435_22189" body="Parameters of the Method." annotatedElement="_16_8_1837031a_1294676013102_957714_22186"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_17e80306_1287136985165_419765_2750" name="targetMethod" visibility="private" type="_9_5_f720368_1110473546612_253886_7537" association="_16_8_17e80306_1287136985165_889578_2749">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_17e80306_1287137080321_913805_2761" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_17e80306_1287137080321_905834_2760" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287065425553_933355_6562" name="calls" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <ownedComment xmi:id="_16_8_1837031a_1287066043557_744602_6567" body="The amount of times the Method was called." annotatedElement="_16_8_1837031a_1287065425553_933355_6562"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287065420758_924575_6560" name="totalRuntime" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <ownedComment xmi:id="_16_8_1837031a_1287066022120_453_6566" body="The total runtime of the Method in nanoseconds." annotatedElement="_16_8_1837031a_1287065420758_924575_6560"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1294675959119_955467_22184" name="averageRuntime" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <ownedComment xmi:id="_16_8_1837031a_1294676141506_689465_22190" body="The average runtime of the Method in nanoseconds." annotatedElement="_16_8_1837031a_1294675959119_955467_22184"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1b700da_1279554949374_299458_2254" name="PropertyApplicationException"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1837031a_1287059886137_751263_6445" name="" memberEnd="_16_8_1837031a_1287059886137_702201_6446 _16_8_1837031a_1287059886138_696847_6447"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_19940331_1287322009177_991665_5677" name="LocalizationAdminService">
                  <ownedComment xmi:id="_16_8_246b03eb_1306844981017_896625_18179" body="The LocalizationAdminService is part of JEAF's dynamic multi language support. Therefore the service provides methods to change localized messages at runtime." annotatedElement="_16_8_19940331_1287322009177_991665_5677"/>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306846380945_438860_18268" name="createApplicationLocalization" visibility="public" raisedException="_16_8_246b03eb_1309328733178_124273_21293">
                    <ownedComment xmi:id="_16_8_246b03eb_1306847891192_933537_18331" body="Method creates a new application localization from the passed object. Any objects that may be referenced by the passed object will be ignored." annotatedElement="_16_8_246b03eb_1306846380945_438860_18268"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306846531054_949893_18271" name="pApplication" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743">
                      <ownedComment xmi:id="_16_8_246b03eb_1306848023435_37480_18332" body="ApplicationLocalization object that contains all the localized messages of the application. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306846531054_949893_18271"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306849860044_620037_18359" name="" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1309331127567_738634_21312" body="Application localization that was created from the passed object. The method also returns all depending objects. The method never returns null." annotatedElement="_16_8_246b03eb_1306849860044_620037_18359"/>
                      <ownedComment xmi:id="_16_8_246b03eb_1309331141673_58083_21313" body="">
                        <ownedComment xmi:id="_16_8_246b03eb_1309331207015_412091_21314" body="@throws LocalizationApplicationException if the passed object does not fulfill the defined preconditions." annotatedElement="_16_8_246b03eb_1309331141673_58083_21313"/>
                      </ownedComment>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306846641228_703806_18284" name="getAllMessageDefinitions" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306849800118_915823_18358" body="Method returns the message definitions of all application localizations that are currently valid (depending on the validity period). This method is intended to be used to update the message repository with the current localizations at runtime." annotatedElement="_16_8_246b03eb_1306846641228_703806_18284"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306846656195_44724_18287" name="" visibility="public" type="_16_8_19940331_1287322119261_810130_7752" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1306850530431_8508_18360" body="List with all valid message definitions. The method never returns null." annotatedElement="_16_8_246b03eb_1306846656195_44724_18287"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306846664560_166885_18289" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306846664560_877521_18288" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_19800330_1328593495131_867373_1923" name="getApplicationLocalization" visibility="public">
                    <ownedComment xmi:id="_16_8_197c032e_1328606735084_322089_3680" body="Method returns the application localization for the passed service object id." annotatedElement="_16_8_19800330_1328593495131_867373_1923"/>
                    <ownedParameter xmi:id="_16_8_19800330_1328593521498_589916_1925" name="pServiceObjectID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448">
                      <ownedComment xmi:id="_16_8_197c032e_1328606760336_727089_3681" body="ID of the application localization that should be returned. The parameter must not be null." annotatedElement="_16_8_19800330_1328593521498_589916_1925"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328594232751_121558_3678" name="pLoadStrategy" visibility="public" type="_16_8_19800330_1328594019152_746004_3653">
                      <ownedComment xmi:id="_16_8_19800330_1328594345166_516898_3682" body="Parameter defines which dependent objects of an application localization should also be loaded. The parameter may be null. In this case no dependent objects will be loaded." annotatedElement="_16_8_19800330_1328594232751_121558_3678"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328594232751_776950_3679" name="" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743" direction="return">
                      <ownedComment xmi:id="_16_8_197c032e_1328606863724_738204_3683" body="Application localization for the passed service object id. The method never returns null." annotatedElement="_16_8_19800330_1328594232751_776950_3679"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306846808431_85241_18290" name="getApplicationLocalization" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306850619504_95260_18361" body="Method returns all localization data for the application with the passed id. If the application has localizations for more than one validity period the data for all validity periods will be returned." annotatedElement="_16_8_246b03eb_1306846808431_85241_18290"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306846832809_641849_18292" name="pApplicationID" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_246b03eb_1306850709284_550881_18362" body="ID of the applications whose localization data should be returned. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306846832809_641849_18292"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328594262049_441707_3680" name="pLoadStrategy" visibility="public" type="_16_8_19800330_1328594019152_746004_3653">
                      <ownedComment xmi:id="_16_8_19800330_1328594408127_951241_3683" body="Parameter defines which dependent objects of an application localization should also be loaded. The parameter may be null. In this case no dependent objects will be loaded." annotatedElement="_16_8_19800330_1328594262049_441707_3680"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328594262049_875224_3681" name="" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743" direction="return">
                      <ownedComment xmi:id="_16_8_197c032e_1328606817135_18248_3682" body="Application localization for the application with the passed ID. The method returns null, if no application localization could be found." annotatedElement="_16_8_19800330_1328594262049_875224_3681"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306850794889_283741_18364" name="getAllApplicationLocalizations" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306850850044_888972_18370" body="Method returns the localization data of all applications. If an application has localizations for more than one validity period the data for all validity periods will be returned." annotatedElement="_16_8_246b03eb_1306850794889_283741_18364"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306850808480_23808_18367" name="" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743" isOrdered="true" isUnique="false" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1306850914073_845355_18371" body="List with the localization data of all applications. The method never returns null." annotatedElement="_16_8_246b03eb_1306850808480_23808_18367"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306850821542_157837_18369" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306850821541_751492_18368" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306847429409_709992_18323" name="createLocalizationValidity" visibility="public" raisedException="_16_8_246b03eb_1309328733178_124273_21293">
                    <ownedComment xmi:id="_16_8_246b03eb_1306851040087_533538_18372" body="Method creates an new validity period for the passed application with the passed dates. The caller has to take care that the new period does not overlap with existing periods. When creating an new validity period all existing message folders and its messages will be cloned. If more than one validity period exists for an application the current will be used (if there is no current one an exception will be thrown)." annotatedElement="_16_8_246b03eb_1306847429409_709992_18323"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306847511674_800287_18325" name="pApplicationLocalization" visibility="public" type="_16_8_1ea00f4_1279862713614_34081_2743">
                      <ownedComment xmi:id="_16_8_246b03eb_1306851071270_36067_18373" body="Application for which a new validity period should be created. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306847511674_800287_18325"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306851230989_705838_18379" name="pValidity" visibility="public" type="_16_8_1981032c_1299600374363_508423_16390">
                      <ownedComment xmi:id="_16_8_246b03eb_1306851414638_541735_18383" body="Validity period of the new period. The new period must not overlap with existing periods and must not be null." annotatedElement="_16_8_246b03eb_1306851230989_705838_18379"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306919982789_998321_15059" name="pDescription" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_246b03eb_1306920015012_780683_15060" body="Description of the localization validity. The parameter may be null." annotatedElement="_16_8_246b03eb_1306919982789_998321_15059"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1308808546242_749090_19778" name="" visibility="public" type="_16_8_246b03eb_1306821004717_891047_17816" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1308809183236_565631_19786" body="Created localization validity from the passed data. The method never returns null." annotatedElement="_16_8_246b03eb_1308808546242_749090_19778"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306847389905_954695_18318" name="updateLocalizationValidity" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306920222939_2749_15061" body="Method updates the passed validity period. The method does not update any message folders or message definitions. The validity period to update must already exist." annotatedElement="_16_8_246b03eb_1306847389905_954695_18318"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1308808901981_787440_19782" name="pLocalizationValidity" visibility="public" type="_16_8_246b03eb_1306821004717_891047_17816">
                      <ownedComment xmi:id="_16_8_246b03eb_1308809288585_509177_19788" body="Localization validity that should be updated to the values of this object. The parameter must not be null." annotatedElement="_16_8_246b03eb_1308808901981_787440_19782"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328565309114_77533_1998" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306848183106_820647_18346" name="addMessageFolder" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306921800499_931000_17223" body="Method adds the passed message folder to the passed validity period. If the message folder also contains message definitions they will be added too." annotatedElement="_16_8_246b03eb_1306848183106_820647_18346"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848220249_496600_18348" name="pFolder" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866">
                      <ownedComment xmi:id="_16_8_246b03eb_1306921885097_460322_17225" body="Object describing the message folder that should be created. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306848220249_496600_18348"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1308808886165_644609_19780" name="pLocalizationValidity" visibility="public" type="_16_8_246b03eb_1306821004717_891047_17816">
                      <ownedComment xmi:id="_16_8_246b03eb_1308809424381_174980_19790" body="Localization validity to which the passed message folder should be added. The parameter must not be null." annotatedElement="_16_8_246b03eb_1308808886165_644609_19780"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1308808886197_678441_19781" name="" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1308809369962_29175_19789" body="Message folder that was created from the passed data and added to the passed localization validity. The method never returns null." annotatedElement="_16_8_246b03eb_1308808886197_678441_19781"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306848091634_411865_18338" name="addMessageFolder" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306921946652_868166_17227" body="Method adds the passed message folder to the passed parent message folder. If the message folder also contains message definitions they will be added too." annotatedElement="_16_8_246b03eb_1306848091634_411865_18338"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848146579_844946_18340" name="pFolder" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866">
                      <ownedComment xmi:id="_16_8_246b03eb_1306921997283_695037_17229" body="Object describing the message folder that should be created. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306848146579_844946_18340"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848146581_274622_18341" name="pParentFolder" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866">
                      <ownedComment xmi:id="_16_8_246b03eb_1306922027275_755347_17230" body="Message folder to which the passed message folder should be added as child. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306848146581_274622_18341"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848146582_69959_18342" name="" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1306921974273_998300_17228" body="Message folder that was created from the passed objects. The method never returns null." annotatedElement="_16_8_246b03eb_1306848146582_69959_18342"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306848032922_707749_18333" name="addMessageDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1306922042666_620549_17231" body="Method adds the passed message definition to the passed message folder." annotatedElement="_16_8_246b03eb_1306848032922_707749_18333"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848083369_73633_18335" name="pMessageDefinition" visibility="public" type="_16_8_19940331_1287322119261_810130_7752">
                      <ownedComment xmi:id="_16_8_246b03eb_1307436146149_45730_17223" body="Message definition that should be added. The messageID and its name must be unique within the validity period to which it belongs. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306848083369_73633_18335"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848083371_824251_18336" name="pFolder" visibility="public" type="_16_8_246b03eb_1306821607139_539828_17866">
                      <ownedComment xmi:id="_16_8_246b03eb_1307434573844_708013_15063" body="Message folder to which the new message definition should be added. The parameter must not be null and the message folder must already exist." annotatedElement="_16_8_246b03eb_1306848083371_824251_18336"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306848180272_956115_18345" name="" visibility="public" type="_16_8_19940331_1287322119261_810130_7752" direction="return">
                      <ownedComment xmi:id="_16_8_246b03eb_1307434514993_909944_15062" body="Message definition that was created from the passed object. The method never returns null." annotatedElement="_16_8_246b03eb_1306848180272_956115_18345"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_246b03eb_1306847339977_965332_18314" name="updateMessageDefinition" visibility="public">
                    <ownedComment xmi:id="_16_8_246b03eb_1307436819870_774692_17224" body="Method updates an existing message definition to the passed values. Thereby the messageID and the name can not be changed. Changes to these attributes will be ignored." annotatedElement="_16_8_246b03eb_1306847339977_965332_18314"/>
                    <ownedParameter xmi:id="_16_8_246b03eb_1306847383535_158564_18316" name="pMessageDefinition" visibility="public" type="_16_8_19940331_1287322119261_810130_7752">
                      <ownedComment xmi:id="_16_8_246b03eb_1307436894674_165280_17226" body="Object describing the message definition that should be updated. The parameter must not be null." annotatedElement="_16_8_246b03eb_1306847383535_158564_18316"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19800330_1328565292874_958316_1997" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1278059623655_610082_2618" name="Property">
                  <ownedComment xmi:id="_16_8_2aa0154_1278401608847_239521_3429" body="This ServiceObject represents a concrete Property of a Component." annotatedElement="_16_8_1ea00f4_1278059623655_610082_2618"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1278059623662_199562_2626" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401616643_758606_3430" body="Name of the property. The attribute must not be null. The maximum length of a property is 512 characters." annotatedElement="_16_8_1ea00f4_1278059623662_199562_2626"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1278059623662_305087_2627" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401623757_635006_3431" body="Value of the property as String. The attribute may be null and its maximum length ist 1024 characters." annotatedElement="_16_8_1ea00f4_1278059623662_305087_2627"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1278059623663_548569_2628" name="comment" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401630340_874605_3432" body="Comment describing the meaning of the property. The attribute may be null and its maximum length is 4096 characters." annotatedElement="_16_8_1ea00f4_1278059623663_548569_2628"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1278059623663_664390_2629" name="type" visibility="private" type="_9_5_f720368_1110473546612_428363_7573">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401657051_703246_3433" body="Type of the property as it will be used within the application. The attribute must not be null." annotatedElement="_16_8_1ea00f4_1278059623663_664390_2629"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19560321_1519279110393_366572_2244" name="encrypted" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_19560321_1519279140450_69223_2246" body="Attribute defines if the property value should be stored encrypted or not." annotatedElement="_16_8_19560321_1519279110393_366572_2244"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1306821607139_539828_17866" name="MessageFolder">
                  <ownedComment xmi:id="_16_8_246b03eb_1308068128370_918273_23543" body="A message folder is a container for message definitions and is used to order them within logical groups. Message folders do not have any relevance at runtime  but are used in oder to ease the administration." annotatedElement="_16_8_246b03eb_1306821607139_539828_17866"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306821658315_334119_17884" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068138319_924789_23544" body="Name of the message folder." annotatedElement="_16_8_246b03eb_1306821658315_334119_17884"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306821973105_928112_17912" name="messages" visibility="private" type="_16_8_19940331_1287322119261_810130_7752" isOrdered="true" isUnique="false" association="_16_8_246b03eb_1306821973105_121316_17911">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068209965_593079_23549" body="Reference to all message definitions that belong to this message folder." annotatedElement="_16_8_246b03eb_1306821973105_928112_17912"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306821977922_235641_17921" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306821977922_564815_17920" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306844222425_564613_15107" name="children" visibility="private" type="_16_8_246b03eb_1306821607139_539828_17866" isOrdered="true" isUnique="false" association="_16_8_246b03eb_1306844222424_199242_15106">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068191228_912975_23548" body="Reference to all child folders of this message folder." annotatedElement="_16_8_246b03eb_1306844222425_564613_15107"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306844257085_759047_15118" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306844257084_130396_15117" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1308068140038_827295_23545" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068168797_378323_23547" body="Optional description of the message folder." annotatedElement="_16_8_246b03eb_1308068140038_827295_23545"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279811639841_157324_2301" name="ServiceInfo">
                  <ownedComment xmi:id="_16_8_1b700da_1282218780672_998016_2674" body="This ServiceObject represents a Service.  It is used to store gathered informations from {@link Service} objects." annotatedElement="_16_8_2aa0154_1279811639841_157324_2301"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279811896004_271534_2368" name="provider" visibility="private" type="_16_8_2aa0154_1279811663053_114998_2322" association="_16_8_2aa0154_1279811896004_201258_2367">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279811917272_218485_2379" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279811917270_298945_2378" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279814046638_490207_2743" name="serviceInterface" visibility="private" type="_9_5_f720368_1110473546612_428363_7573" association="_16_8_2aa0154_1279814046638_89180_2742">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814056395_580032_2752" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814056395_287523_2751" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279814972638_879831_2856" name="currentState" visibility="private" type="_16_8_2aa0154_1279814930367_384831_2832" association="_16_8_2aa0154_1279814972638_718477_2855">
                    <ownedComment xmi:id="_16_8_2aa0154_1279815052165_236407_2870" body="Current state of the service. The state is " annotatedElement="_16_8_2aa0154_1279814972638_879831_2856"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814992232_592667_2867" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814992231_245715_2866" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287059886137_702201_6446" name="methodInfos" visibility="private" type="_16_8_1837031a_1287059855915_695906_6422" association="_16_8_1837031a_1287059886137_751263_6445">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1837031a_1287059931998_563639_6457" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1837031a_1287059931998_723369_6456" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_17e80306_1289491370142_146065_14612" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_17e80306_1289492141184_68744_17116" body="Name of the Service." annotatedElement="_16_8_17e80306_1289491370142_146065_14612"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1294675779684_864522_22181" name="servicePackage" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1837031a_1294675836845_708058_22183" body="Package of the Service." annotatedElement="_16_8_1837031a_1294675779684_864522_22181"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287065023514_388194_6558" name="calls" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <ownedComment xmi:id="_16_8_1837031a_1287066075013_940784_6568" body="The amount of times the Service was called. Includes the calls of its Methods." annotatedElement="_16_8_1837031a_1287065023514_388194_6558"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1287064970260_943985_6556" name="totalRuntime" visibility="private" type="_9_5_f720368_1110473546612_800239_7639">
                    <ownedComment xmi:id="_16_8_1837031a_1287066010707_373573_6565" body="The total runtime of the Service in nanoseconds. Includes the runtimes of its Methods." annotatedElement="_16_8_1837031a_1287064970260_943985_6556"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306822075301_101522_17931" name="" memberEnd="_16_8_246b03eb_1306822075302_994155_17932 _16_8_246b03eb_1306822075303_464893_17933">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306822075302_994155_17932" name="" visibility="private" type="_16_8_246b03eb_1306821004717_891047_17816" association="_16_8_246b03eb_1306822075301_101522_17931"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1279811975185_855810_2545" name="" memberEnd="_16_8_2aa0154_1279811975185_105160_2546 _16_8_2aa0154_1279811975186_435774_2547"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306822085634_806899_17940" name="" memberEnd="_16_8_246b03eb_1306822085635_328062_17942 _16_8_246b03eb_1306822085634_675662_17941">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306822085635_328062_17942" name="" visibility="private" type="_16_8_1ea00f4_1279862713614_34081_2743" association="_16_8_246b03eb_1306822085634_806899_17940"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1279814046638_89180_2742" name="" memberEnd="_16_8_2aa0154_1279814046639_613787_2744 _16_8_2aa0154_1279814046638_490207_2743">
                  <ownedEnd xmi:id="_16_8_2aa0154_1279814046639_613787_2744" name="" visibility="private" type="_16_8_2aa0154_1279811639841_157324_2301" association="_16_8_2aa0154_1279814046638_89180_2742"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1279814115373_226906_2782" name="" memberEnd="_16_8_2aa0154_1279814115374_304357_2784 _16_8_2aa0154_1279814115373_822022_2783">
                  <ownedEnd xmi:id="_16_8_2aa0154_1279814115374_304357_2784" name="" visibility="private" type="_16_8_2aa0154_1279811693753_937489_2344" association="_16_8_2aa0154_1279814115373_226906_2782"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_17e70305_1301046609639_9526_18334" name="" memberEnd="_16_8_17e70305_1301046609640_493753_18336 _16_8_17e70305_1301046609640_219821_18335">
                  <ownedEnd xmi:id="_16_8_17e70305_1301046609640_493753_18336" name="" visibility="private" type="_16_8_2aa0154_1279811663053_114998_2322" association="_16_8_17e70305_1301046609639_9526_18334"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_17e80306_1287136985165_889578_2749" name="" memberEnd="_16_8_17e80306_1287136985166_504682_2751 _16_8_17e80306_1287136985165_419765_2750">
                  <ownedEnd xmi:id="_16_8_17e80306_1287136985166_504682_2751" name="" visibility="private" type="_16_8_1837031a_1287059855915_695906_6422" association="_16_8_17e80306_1287136985165_889578_2749"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_246b03eb_1306845071653_98025_18182" name="MessageType">
                  <ownedComment xmi:id="_16_8_246b03eb_1308068246855_366833_23550" body="Enumeration describes all possible types of message definitions." annotatedElement="_16_8_246b03eb_1306845071653_98025_18182"/>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1306845233085_12860_18199" name="LOCALIZED_STRING" classifier="_16_8_246b03eb_1306845071653_98025_18182">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068299333_906675_23551" body="A localized string may be any string that has translations such as labels on a user interface or anything else." annotatedElement="_16_8_246b03eb_1306845233085_12860_18199"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1306845286951_198104_18201" name="INFO" classifier="_16_8_246b03eb_1306845071653_98025_18182">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068363699_319527_23552" body="Type &quot;Info&quot; describes info messages that are used by an application. Type &quot;Info&quot; is intended to be used for messages that are used by an application either in log files or to inform the user about something." annotatedElement="_16_8_246b03eb_1306845286951_198104_18201"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_246b03eb_1306845289872_745736_18203" name="ERROR" classifier="_16_8_246b03eb_1306845071653_98025_18182">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068396177_732433_23553" body="Type &quot;Error&quot; is intended to be used for error messages such as in exceptions." annotatedElement="_16_8_246b03eb_1306845289872_745736_18203"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_17e70305_1301046650447_45886_18353" name="" memberEnd="_16_8_17e70305_1301046650448_260443_18355 _16_8_17e70305_1301046650448_359257_18354">
                  <ownedEnd xmi:id="_16_8_17e70305_1301046650448_260443_18355" name="" visibility="private" type="_16_8_2aa0154_1279811663053_114998_2322" association="_16_8_17e70305_1301046650447_45886_18353"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_2aa0154_1279811619357_247697_2282" name="SystemManagementService">
                  <ownedComment xmi:id="_16_8_1b700da_1282225060771_835325_2678" body="System Management Service provides methods to check the system's status. Therefore the service provides several methods to access and check the system's components, services and service providers." annotatedElement="_16_8_2aa0154_1279811619357_247697_2282"/>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814775738_390978_2823" name="checkAllComponents" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281447927603_601558_2677" body="This method performs checks on all provided {@link ServiceInfo} objects of all {@link ComponentInfo} objects.&#xA;&#xA;@return &lt;tt>Set&lt;/tt> of objects containing the results of the checks. The method may return an empty &lt;tt>Set&lt;/tt> but must not return null." annotatedElement="_16_8_2aa0154_1279814775738_390978_2823"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1280176421732_489157_2445" name="" visibility="public" type="_16_8_1ea00f4_1280176389347_199980_2441" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1280176465797_976706_2452" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1280176465797_889336_2451" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814342363_64837_2815" name="checkComponent" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281446142294_636889_2675" body="This method performs checks on the provided {@link ServiceInfo} objects of the passed {@link ComponentInfo} object.&#xA;&#xA;@param pComponentInfo {@link ComponentInfo} whose available {@link ServiceInfo}&lt;tt>s'&lt;/tt> states should be checked. The passed parameter must not be null.&#xA;@return &lt;tt>Set&lt;/tt> of objects containing the results of the checks. The method may return an empty &lt;tt>Set&lt;/tt> but must not return null." annotatedElement="_16_8_2aa0154_1279814342363_64837_2815"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045040738_811393_18121" name="pComponentInfo" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045040811_669159_18122" name="" visibility="public" type="_16_8_1ea00f4_1280176389347_199980_2441" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_17e70305_1301045040855_609173_18124" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_17e70305_1301045040855_286729_18123" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814803594_941386_2829" name="checkAllServiceProviders" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281447957112_206623_2679" body="This method performs checks on all {@link ServiceProviderInfo} objects.&#xA;&#xA;@return &lt;tt>Set&lt;/tt> of objects containing the result of the checks. The method may return an empty &lt;tt>Set&lt;/tt> but must not return null." annotatedElement="_16_8_2aa0154_1279814803594_941386_2829"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1280176436894_127037_2448" name="" visibility="public" type="_16_8_1ea00f4_1280176389347_199980_2441" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1280176475975_616911_2454" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1280176475975_747779_2453" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814754883_562425_2820" name="checkService" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281447910947_95402_2676" body="This method performs internal checks on the passed {@link ServiceInfo} object using &lt;tt>LifecycleManager&lt;/tt>.&#xA;&#xA;@param pServiceInfo {@link ServiceInfo} whose state should be checked. The passed parameter must not be null.&#xA;@return {@link CheckResult} Object describing the result of the check. The method may return null. This means that the service does not implement any checks." annotatedElement="_16_8_2aa0154_1279814754883_562425_2820"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045050768_690764_18125" name="pServiceInfo" visibility="public" type="_16_8_2aa0154_1279811639841_157324_2301"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045050794_474204_18126" name="" visibility="public" type="_16_8_1ea00f4_1280176389347_199980_2441" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814785740_802772_2826" name="checkServiceProvider" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281447943331_859332_2678" body="This method performs internal checks on the passed {@link ServiceProviderInfo} object using &lt;tt>LifecycleManager&lt;/tt>.&#xA;&#xA;@param pServiceProviderInfo &lt;tt>ServiceProvider&lt;/tt> that will be checked. The passed parameter must not be null.&#xA;@return {@link CheckResult} object containing the result of the check." annotatedElement="_16_8_2aa0154_1279814785740_802772_2826"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045057685_686199_18127" name="pServiceProviderInfo" visibility="public" type="_16_8_2aa0154_1279811693753_937489_2344"/>
                    <ownedParameter xmi:id="_16_8_17e70305_1301045057694_493455_18128" name="" visibility="public" type="_16_8_1ea00f4_1280176389347_199980_2441" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814208989_863693_2797" name="getAllActiveComponents" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281445501576_467321_2672" body="This method gets all active {@link Component} objects from the &lt;tt>LifecycleManager&lt;/tt> and transfers their contents into {@link ComponentInfo} objects.&#xA;&#xA;@return &lt;tt>Set&lt;/tt> containing {@link ComponentInfo} objects. The method will return an empty &lt;tt>Set&lt;/tt> if no active &lt;tt>Components&lt;/tt> were found but must not return null." annotatedElement="_16_8_2aa0154_1279814208989_863693_2797"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1279814231336_106256_2800" name="" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814244964_812494_2802" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814244964_250275_2801" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814282757_185738_2809" name="getAllAvailableServiceProviders" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281446010320_514524_2674" body="This method gets all available {@link ServiceProvider} objects from the &lt;tt>LifecycleManager&lt;/tt> and transfers their contents into {@link ServiceProviderInfo} objects.&#xA;&#xA;@return &lt;tt>Set&lt;/tt> containing {@link ServiceProviderInfo} objects. The method will return an empty &lt;tt>Set&lt;/tt> if no available &lt;tt>ServiceProviders&lt;/tt> were found but must not return null." annotatedElement="_16_8_2aa0154_1279814282757_185738_2809"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1279814301090_472121_2812" name="" visibility="public" type="_16_8_2aa0154_1279811693753_937489_2344" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814311240_212011_2814" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814311240_830275_2813" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1279814250387_304641_2803" name="getAllAvailableServices" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1281445970901_634282_2673" body="This method gets all available {@link Service} objects from the &lt;tt>LifecycleManager&lt;/tt> and transfers their contents into {@link ServiceInfo} objects.&#xA;&#xA;@return &lt;tt>Set&lt;/tt> containing {@link ServiceInfo} objects. The method will return an empty &lt;tt>Set&lt;/tt> if no available &lt;tt>Services&lt;/tt> were found but must not return null." annotatedElement="_16_8_2aa0154_1279814250387_304641_2803"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1279814264470_939382_2806" name="" visibility="public" type="_16_8_2aa0154_1279811639841_157324_2301" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814271763_672598_2808" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814271762_330950_2807" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279811693753_937489_2344" name="ServiceProviderInfo">
                  <ownedComment xmi:id="_16_8_1b700da_1282218813496_953449_2675" body="This ServiceObject represents a ServiceProvider. It is used to store gathered informations from {@link ServiceProvider} objects." annotatedElement="_16_8_2aa0154_1279811693753_937489_2344"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279814115373_822022_2783" name="serviceProviderInterface" visibility="private" type="_9_5_f720368_1110473546612_428363_7573" association="_16_8_2aa0154_1279814115373_226906_2782">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279814133952_518739_2794" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279814133952_519833_2793" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1289992479536_487530_15080" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1837031a_1289993519264_755157_17584" body="Name of the Service Provider." annotatedElement="_16_8_1837031a_1289992479536_487530_15080"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1837031a_1301496507412_201755_15088" name="basePackage" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1837031a_1301496641339_563975_15090" body="Package of the Service Provider." annotatedElement="_16_8_1837031a_1301496507412_201755_15088"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1ea00f4_1279871450010_602356_2790" name="" memberEnd="_16_8_1ea00f4_1279871450011_204296_2792 _16_8_1ea00f4_1279871450010_943287_2791">
                  <ownedEnd xmi:id="_16_8_1ea00f4_1279871450011_204296_2792" name="" visibility="private" type="_16_8_2aa0154_1279811663053_114998_2322" association="_16_8_1ea00f4_1279871450010_602356_2790"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306821973105_121316_17911" name="" memberEnd="_16_8_246b03eb_1306821973105_699616_17913 _16_8_246b03eb_1306821973105_928112_17912">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306821973105_699616_17913" name="" visibility="private" type="_16_8_246b03eb_1306821607139_539828_17866" association="_16_8_246b03eb_1306821973105_121316_17911"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279811663053_114998_2322" name="ComponentInfo">
                  <ownedComment xmi:id="_16_8_1b700da_1282218824167_216611_2676" body="This ServiceObject represents a Component. It is used to store gathered informations from {@link Component} objects." annotatedElement="_16_8_2aa0154_1279811663053_114998_2322"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279811896004_344787_2369" name="providedServiceInfos" visibility="private" type="_16_8_2aa0154_1279811639841_157324_2301" association="_16_8_2aa0154_1279811896004_201258_2367">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279811926447_358208_2385" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279811926447_630648_2384" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279811975185_105160_2546" name="persistenceUnitInfo" visibility="private" type="_16_8_2aa0154_1279811958067_260140_2523" association="_16_8_2aa0154_1279811975185_855810_2545">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1279812003190_667131_2561" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1279812003189_957923_2560" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279812040923_739311_2566" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1b700da_1282226433444_888066_2679" body="Name of the Component. " annotatedElement="_16_8_2aa0154_1279812040923_739311_2566"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_17e70305_1301043293710_678709_15471" name="basePackage" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_17e70305_1301043306960_967689_15473" name="cacheTTL" visibility="private" type="_9_5_f720368_1110473546612_800239_7639"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279812046262_791021_2568" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1b700da_1282226927387_1910_2680" body="Description of the Component." annotatedElement="_16_8_2aa0154_1279812046262_791021_2568"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279812079043_953550_2570" name="transactionBehavior" visibility="private" type="_16_8_2aa0154_1279812144223_210298_2572">
                    <ownedComment xmi:id="_16_8_1b700da_1282226943225_183794_2681" body="The transaction behavior of the Component." annotatedElement="_16_8_2aa0154_1279812079043_953550_2570"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1279871450010_943287_2791" name="requiredServiceInfos" visibility="private" type="_16_8_2aa0154_1279811639841_157324_2301" association="_16_8_1ea00f4_1279871450010_602356_2790">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1279871456465_890985_2800" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1279871456465_996971_2799" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279813126067_910265_2708" name="layer" visibility="private" type="_16_8_2aa0154_1279813015462_87178_2706">
                    <ownedComment xmi:id="_16_8_1b700da_1282226955146_82498_2682" body="Layer of the Component." annotatedElement="_16_8_2aa0154_1279813126067_910265_2708"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1279813402328_490524_2716" name="usesJEAFSecurity" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_1b700da_1282227015111_84874_2683" body="The attribute indicates whether JEAF Security is used or not." annotatedElement="_16_8_2aa0154_1279813402328_490524_2716"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_17e70305_1301046609640_219821_18335" name="componentID" visibility="private" type="_16_6_2_2aa0154_1276622544640_150419_1581" association="_16_8_17e70305_1301046609639_9526_18334">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_17e70305_1301046638899_733903_18346" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_17e70305_1301046638899_891797_18345" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_17e70305_1301046650448_359257_18354" name="properties" visibility="private" type="_16_8_1ea00f4_1278059623655_610082_2618" association="_16_8_17e70305_1301046650447_45886_18353">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_17e70305_1301046668124_294927_18365" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_17e70305_1301046668124_614880_18364" name=""/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1274114116343_672221_728" name="PropertyAdminService">
                  <ownedComment xmi:id="_16_8_2aa0154_1278327131513_589833_2841" body="PropertyAdminService provides methods to manage the properties of JEAF Components. Therefore the service provides several methods to access and change the settings for a component and its properties. In order to provide a dynamic property feature that will survive reboots of the systems, all information about a component and its properties will be stored in a database." annotatedElement="_16_0_1_2aa0154_1274114116343_672221_728"/>
                  <ownedOperation xmi:id="_16_8_2aa0154_1278315229579_495240_2502" name="getComponentInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278325894138_844834_2836" body="Method returns the ComponentInfo object for the passed ComponentID object.&#xA;&#xA;@param pComponentID ComponentID of the Component whose ComponentInfo object should be returned. The parameter must not be null.&#xA;@return ComponentInfo object for the passed ComponentID. The method returns null if no ComponentInfo could be found." annotatedElement="_16_8_2aa0154_1278315229579_495240_2502"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278315264721_68892_2506" name="pComponentID" visibility="public" type="_16_6_2_2aa0154_1276622544640_150419_1581">
                      <ownedComment xmi:id="_16_8_2aa0154_1278325939904_553421_2837" body="ComponentID of the component whose component info object should be returned. The parameter  must not be null." annotatedElement="_16_8_2aa0154_1278315264721_68892_2506"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e70305_1301067803112_144156_18410" name="" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_6_2_2aa0154_1276602031029_384742_1168" name="createComponentInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278325850190_495031_2835" body="Method creates an new ComponentInfo object. Besides the object itself the method also creates new persistent properties for every Property object that belongs to the ComponentInfo object.&#xA;&#xA;@param pComponentInfo ComponentInfo object whose attributes and properties will be saved. The parameter must not be null.&#xA;@return ComponentInfo object describing the created object in the database. This object is not the same as the one that was passed to the method. The passed ComponentInfo object should not be used any longer since its data was not updated. The method never returns null." annotatedElement="_16_6_2_2aa0154_1276602031029_384742_1168"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278315661173_149541_2513" name="pComponentInfo" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322">
                      <ownedComment xmi:id="_16_8_2aa0154_1278327387101_889805_2842" body="Component info object whose attributes and properties will be saved. The parameter must not be null." annotatedElement="_16_8_2aa0154_1278315661173_149541_2513"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e70305_1301067851404_983518_18414" name="" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1278486385931_767684_2669" name="getAllComponentInfos" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278486683464_787984_2680" body="Method returns all ComponentInfo objects that can be found within the database.&#xA;&#xA;@return Set of all ComponentInfo objects that can be found. The method never returns null. In case that no objects can be found the returned Set is empty." annotatedElement="_16_8_2aa0154_1278486385931_767684_2669"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278486424412_459702_2674" name="" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322" direction="return">
                      <ownedComment xmi:id="_16_8_2aa0154_1278486909231_800317_2681" body="All ComponentInfo objects that could be found. The method never returns null. In case that no objects could be found the returned set is empty." annotatedElement="_16_8_2aa0154_1278486424412_459702_2674"/>
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1278486433382_331773_2676" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1278486433382_926490_2675" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1278061752557_543532_2858" name="updateComponentInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278399771076_987031_3367" body="Method updates the passed ComponentInfo object in the database to the values of the passed object. The method does not change any properties of the component.&#xA;&#xA;@param pComponentInfo ComponentInfo object whose data should be used to update the ComponentInfo in the database. The passed ComponentInfo has to be retrieved using the Service's Method &lt;code>getComponentInfo(...)&lt;/code>. The parameter must not be null and must have a valid service object id.&#xA;@return ComponentInfo object describing the updated object in the database. This object is not the same as the one that was passed to the method. The passed ComponentInfo object should not be used any longer since its data was not updated. The method never returns null." annotatedElement="_16_8_1ea00f4_1278061752557_543532_2858"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278315668773_795110_2515" name="pComponentInfo" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322">
                      <ownedComment xmi:id="_16_8_2aa0154_1278399803662_854310_3368" body="ComponentInfo object whose data should be used to update the component info in the database. The passed component info has to be retrieved using the service's method &lt;code>getComponentInfo(...)&lt;/code>. The parameter must not be null and must have a valid service object id." annotatedElement="_16_8_2aa0154_1278315668773_795110_2515"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e70305_1301067855549_93313_18415" name="" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1278061776700_857587_2864" name="deleteComponentInfo" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278400211040_716364_3369" body="Method removes the passed ComponentInfo object and all its properties from the database.&#xA;&#xA;@param pComponentInfo ComponentInfo object that should be removed from the database. The parameter must not be null and must have a valid ServiceObjectID." annotatedElement="_16_8_1ea00f4_1278061776700_857587_2864"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278315673315_63927_2517" name="pComponentInfo" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322">
                      <ownedComment xmi:id="_16_8_2aa0154_1278400232378_395521_3370" body="ComponentInfo object that should be removed from the database. The parameter must not be null and must have a valid service object id." annotatedElement="_16_8_2aa0154_1278315673315_63927_2517"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e70305_1301067859359_226869_18416" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_6_2_2aa0154_1276602175581_576677_1176" name="createProperty" visibility="public" raisedException="_16_8_1b700da_1279554949374_299458_2254">
                    <ownedComment xmi:id="_16_8_2aa0154_1278400700324_330634_3374" body="Method creates a new Property for the passed ComponentInfo.&#xA;&#xA;@throws PropertyApplicationException if a Property with the same name already exists for the passed ComponentInfo.&#xA;@param pProperty Object describing the new Property for the passed ComponentInfo. The parameter must not be null.&#xA;@param pComponentInfo Object describing the ComponentInfo to which the new Property should be added. The parameter must not be null and it has to have a valid ServiceObjectID.&#xA;@return Property object describing the created object in the database. This object is not the same as the one that was passed to the method. The passed Property and ComponentInfo object should not be used any longer since its data was not updated. The method never returns null." annotatedElement="_16_6_2_2aa0154_1276602175581_576677_1176"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1278061259810_269530_2761" name="pProperty" visibility="public" type="_16_8_1ea00f4_1278059623655_610082_2618">
                      <ownedComment xmi:id="_16_8_2aa0154_1278400932498_460947_3375" body="Object describing the new property for the passed component. The parameter must not be null." annotatedElement="_16_8_1ea00f4_1278061259810_269530_2761"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278400390292_927841_3372" name="pComponentInfo" visibility="public" type="_16_8_2aa0154_1279811663053_114998_2322">
                      <ownedComment xmi:id="_16_8_2aa0154_1278400980245_588358_3376" body="Object describing the component to which the new property should be added. The parameter must not be null and it has to have a valid service object id." annotatedElement="_16_8_2aa0154_1278400390292_927841_3372"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_17e70305_1301067870881_152901_18417" name="" visibility="public" type="_16_8_1ea00f4_1278059623655_610082_2618" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1278061698006_108246_2852" name="updateProperty" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401019669_835598_3377" body="Method updates the Property that is represented by this service object.&#xA;&#xA;@param pProperty Object describing the new values to which the Property should be updated. The parameter must not be null and must have a valid ServiceObjectID.&#xA;@return Property object describing the updated object in the database. This object is not the same as the one that was passed to the method. The passed Property object should not be used any longer since its data was not updated. The method never returns null." annotatedElement="_16_8_1ea00f4_1278061698006_108246_2852"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1278061719023_571936_2856" name="pProperty" visibility="public" type="_16_8_1ea00f4_1278059623655_610082_2618">
                      <ownedComment xmi:id="_16_8_2aa0154_1278401085251_313727_3378" body="Object describing the new values to which the property should be updates. The parameter must not be null and must have a valid service object id." annotatedElement="_16_8_1ea00f4_1278061719023_571936_2856"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_2aa0154_1278419439777_842777_2402" name="" visibility="public" type="_16_8_1ea00f4_1278059623655_610082_2618" direction="return">
                      <ownedComment xmi:id="_16_8_2aa0154_1278419690543_386732_2670" body="Property object describing the updated object in the database. This object is not the same as the one that was passed to the method. The passed Property object should not be used any longer since its data was not updated. The method never returns null." annotatedElement="_16_8_2aa0154_1278419439777_842777_2402"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1278061800552_340329_2870" name="deleteProperty" visibility="public">
                    <ownedComment xmi:id="_16_8_2aa0154_1278401105965_799168_3379" body="Method removes the passed Property from the database.&#xA;&#xA;@param pProperty Object describing the Property that should be removed from the database. The parameter must not be null and must have a valid ServiceObjectID." annotatedElement="_16_8_1ea00f4_1278061800552_340329_2870"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1278061815950_585425_2874" name="pProperty" visibility="public" type="_16_8_1ea00f4_1278059623655_610082_2618">
                      <ownedComment xmi:id="_16_8_2aa0154_1278401287196_306128_3380" body="Object describing the property that should be removed from the database. The parameter must not be null and must have a valid service object id." annotatedElement="_16_8_1ea00f4_1278061815950_585425_2874"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1278061815951_153374_2875" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19940331_1287322265827_56552_7779" name="Localization">
                  <ownedComment xmi:id="_16_8_246b03eb_1308068685385_962873_23560" body="A Localization describes one concrete localization of a message definition." annotatedElement="_16_8_19940331_1287322265827_56552_7779"/>
                  <ownedAttribute xmi:id="_16_8_19940331_1287322281171_668480_7800" name="locale" visibility="private" type="_9_5_f720368_1110473546706_180147_8891">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068850560_168132_23561" body="Locale for which this localization can be used. According to Java localization implementations the determination of the locale to choose, it depends on the defined localization algorithm which locale will be used. If this object is defined for locale de_DE it will only be used in Germany. If locale de is defined it may also be used in Switzerland as long as locale de_CH is not defined." annotatedElement="_16_8_19940331_1287322281171_668480_7800"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19940331_1287322296826_714748_7802" name="localizedText" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068894724_2970_23562" body="Localized text for this localization. The message text can be parameterized according to class java.text.MessageFormat." annotatedElement="_16_8_19940331_1287322296826_714748_7802"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1309328733178_124273_21293" name="LocalizationApplicationException"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1279862722273_973100_2763" name="Node">
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1279862850310_402264_2783" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1309347171259_217496_21604" name="LocalizationSystemException"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_19940331_1287322119261_810130_7752" name="MessageDefinition">
                  <ownedComment xmi:id="_16_8_246b03eb_1308068443186_512240_23554" body="A message definition describes a localized message and therefor contains all required information." annotatedElement="_16_8_19940331_1287322119261_810130_7752"/>
                  <ownedAttribute xmi:id="_16_8_19940331_1287322246258_812699_7773" name="messageID" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068492384_95728_23555" body="The message id identifies a message uniquely within an application. " annotatedElement="_16_8_19940331_1287322246258_812699_7773"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306821133519_939019_17840" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068529550_167152_23556" body="Name of the message definition. This name also must be unique within the whole application." annotatedElement="_16_8_246b03eb_1306821133519_939019_17840"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19940331_1287322253015_364500_7775" name="defaultText" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068621792_783139_23557" body="The default text will be used whenever no adequate localization is found for an message. The message text can be parameterized according to class java.text.MessageFormat." annotatedElement="_16_8_19940331_1287322253015_364500_7775"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306822060246_135533_17927" name="localizations" visibility="private" type="_16_8_19940331_1287322265827_56552_7779" isOrdered="true" isUnique="false" association="_16_8_246b03eb_1306822060244_359715_17926">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068644724_837168_23558" body="Reference to all localizations of this message definition." annotatedElement="_16_8_246b03eb_1306822060246_135533_17927"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306822060247_393118_17929" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306822060247_278055_17930" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306845308725_6226_18210" name="messageType" visibility="private" type="_16_8_246b03eb_1306845071653_98025_18182" association="_16_8_246b03eb_1306845308724_365540_18209">
                    <ownedComment xmi:id="_16_8_246b03eb_1308068657913_212186_23559" body="Type of this message definition." annotatedElement="_16_8_246b03eb_1306845308725_6226_18210"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_246b03eb_1306845313821_203695_18219" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_246b03eb_1306845313821_15131_18218" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1306847018973_495814_18294" name="Application">
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306923337871_925503_17232" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306923347266_978038_17234" name="applicationID" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1306923354859_877412_17236" name="deploymentUnitName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_246b03eb_1306844222424_199242_15106" name="" memberEnd="_16_8_246b03eb_1306844222427_786643_15108 _16_8_246b03eb_1306844222425_564613_15107">
                  <ownedEnd xmi:id="_16_8_246b03eb_1306844222427_786643_15108" name="" visibility="private" type="_16_8_246b03eb_1306821607139_539828_17866" association="_16_8_246b03eb_1306844222424_199242_15106"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_8_1ea00f4_1282713020265_64602_2182" name="scheduling">
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1282742364678_622903_2227" name="" memberEnd="_16_8_2aa0154_1282742364682_796248_2229 _16_8_2aa0154_1282742364680_138755_2228">
                  <ownedEnd xmi:id="_16_8_2aa0154_1282742364682_796248_2229" name="" visibility="private" type="_16_8_1ea00f4_1282713435635_968018_2270" association="_16_8_2aa0154_1282742364678_622903_2227"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282713744607_772848_2352" name="PeriodicExecution">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500667166_772913_2634" body="Class describes a periodic execution strategy. The execution period can be defined in seconds. This means that a task will be executed every x seconds begin from the defined start time." annotatedElement="_16_8_1ea00f4_1282713744607_772848_2352"/>
                  <generalization xmi:id="_16_8_1ea00f4_1282714031008_784290_2742" isSubstitutable="true" general="_16_8_1ea00f4_1282713543135_442765_2314"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713801812_176440_2370" name="initialStart" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500717305_357975_2635" body="Timestamp when the task should be executed the first time. The attribute may be null. This means that the task should be started immediately." annotatedElement="_16_8_1ea00f4_1282713801812_176440_2370"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1283501750482_91575_2760" name="endTime" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283501813524_923095_2762" body="Timestamp until when the task should be executed. The attribute may be null which means that the task should run for ever." annotatedElement="_16_8_1ea00f4_1283501750482_91575_2760"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713840547_153117_2372" name="period" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500747101_679340_2636" body="Period within which the task should be executed again. The period will be defined in seconds." annotatedElement="_16_8_1ea00f4_1282713840547_153117_2372"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_1ea00f4_1282713114801_661699_2227" name="ScheduleableService" isAbstract="true">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500967595_568885_2640" body="Service defines the interface for service that should be called by the Scheduling Service when a task is ready for execution. Therefore the service has to extend this interface." annotatedElement="_16_8_1ea00f4_1282713114801_661699_2227"/>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282713329660_62975_2264" name="executeScheduledTask" visibility="public">
                    <ownedComment xmi:id="_16_8_19940331_1292851861553_441862_17265" body="Method is intended to be implemented by subclasses. Within the method the functionality that should be scheduled has to be called. The method must not throw any ApplicationExceptions. They have to be handled by this method. In case of technical problems a SystemException may be thrown." annotatedElement="_16_8_1ea00f4_1282713329660_62975_2264"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282713351220_908597_2266" name="pInfo" visibility="public" type="_16_8_1ea00f4_1282713293546_765903_2246">
                      <ownedComment xmi:id="_16_8_19940331_1292852366588_230198_17266" body="pInfo Additional information that have been associated with the scheduled task when it was created. The parameter is intended to be used to pass objects to the ScheduleableService implementation. Thus the implementation has to decide if it expects a special subclass. The parameter is null if no additional information were provided when the task was created." annotatedElement="_16_8_1ea00f4_1282713351220_908597_2266"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282713351220_417066_2267" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1282799962453_710145_2672" name="" memberEnd="_16_8_2aa0154_1282799962453_849968_2674 _16_8_2aa0154_1282799962453_592268_2673">
                  <ownedEnd xmi:id="_16_8_2aa0154_1282799962453_849968_2674" name="" visibility="private" type="_16_8_1ea00f4_1282717308795_696344_2610" association="_16_8_2aa0154_1282799962453_710145_2672"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282713435635_968018_2270" name="ScheduledTask" clientDependency="_16_8_1ea00f4_1282714131255_833415_2746">
                  <ownedComment xmi:id="_16_8_2aa0154_1282799396266_825625_2636" body="Class describes a task that will be executed at a defined point of time. The exact scheduling behavior can be set using a execution strategy. JEAF's Scheduling mechanism supports different scheduling strategies such as periodic scheduling e.g.&#xA;*&#xA;* When a scheduled task is executed it will call the service that is defined for the task. Therefore the service that should be called has to extend the interface ScheduleableService." annotatedElement="_16_8_1ea00f4_1282713435635_968018_2270"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713457694_592866_2288" name="serviceClass" visibility="private" type="_9_5_f720368_1110473546612_428363_7573">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799584527_769398_2637" body="Class object of the service that should be called when the task is executed. The class has to extend the interface ScheduleableService. The attribute is required." annotatedElement="_16_8_1ea00f4_1282713457694_592866_2288"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713589327_221356_2335" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799599815_358660_2638" body="Description of the task. The attribute is optional." annotatedElement="_16_8_1ea00f4_1282713589327_221356_2335"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713614661_491536_2342" name="executionStrategy" visibility="private" type="_16_8_1ea00f4_1282713543135_442765_2314" association="_16_8_1ea00f4_1282713614661_382539_2341">
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1282714305336_741800_2764" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1282714305336_25193_2763" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713938125_33398_2374" name="nextExecution" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799692339_412329_2639" body="Timestamp describes when the task will be executed the next time. This attribute will be filled by the Scheduling Service depending on the defined execution strategy. The attribute will be null if the task will not be run again." annotatedElement="_16_8_1ea00f4_1282713938125_33398_2374"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282714208538_406274_2753" name="additionInfo" visibility="private" type="_16_8_1ea00f4_1282713293546_765903_2246" association="_16_8_1ea00f4_1282714208538_991087_2752">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500357517_818552_2628" body="List contains additional information that may be useful for the scheduled service to do the right things when triggered. The information are optional and will be passed to the executed service. In order to provide a flexible mechanism to pass objects the called service. All SchedulingInfo objects will be stored by the Scheduling Service as serialized objects within the database. This allows that there are task specific subclasses." annotatedElement="_16_8_1ea00f4_1282714208538_406274_2753"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1282714312372_245326_2768" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1282714312372_567399_2767" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282715048498_807615_2823" name="lastExecution" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799735426_818760_2640" body="Timestamp describes when the task was executed the last time. The attribute will be null if the task was not executed yet. The attribute will be set by the Scheduling Service." annotatedElement="_16_8_1ea00f4_1282715048498_807615_2823"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282717041373_19299_2580" name="userID" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799811024_999015_2641" body="User-ID of the user who created the task. The attribute will be set by the Scheduling Service and will not be null after the task was created." annotatedElement="_16_8_1ea00f4_1282717041373_19299_2580"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282717382461_352941_2639" name="executionResults" visibility="private" type="_16_8_1ea00f4_1282717308795_696344_2610" isUnique="false" association="_16_8_1ea00f4_1282717382461_388150_2638">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283499931363_756438_2626" body="Set contains the results of all executions of the task (manual and time based executions). The set is sorted by the execution time where the result of the last execution is the first. The set is managed by the Scheduling Service." annotatedElement="_16_8_1ea00f4_1282717382461_352941_2639"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1282717397398_716235_2650" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1282717397398_775062_2649" name=""/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1282742364680_138755_2228" name="currentState" visibility="private" type="_16_8_1ea00f4_1282717079484_384061_2584" association="_16_8_2aa0154_1282742364678_622903_2227">
                    <ownedComment xmi:id="_16_8_2aa0154_1282799869836_55966_2642" body="State of the task the reference is never null and will be set by the Scheduling Service." annotatedElement="_16_8_2aa0154_1282742364680_138755_2228"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1282742385505_293210_2239" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1282742385505_679502_2238" name="" value="1"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_157a02e7_1286374700859_396932_2892" name="SchedulingApplicationException"/>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1ea00f4_1282713614661_382539_2341" name="" memberEnd="_16_8_1ea00f4_1282713614661_572305_2343 _16_8_1ea00f4_1282713614661_491536_2342">
                  <ownedEnd xmi:id="_16_8_1ea00f4_1282713614661_572305_2343" name="" visibility="private" type="_16_8_1ea00f4_1282713435635_968018_2270" association="_16_8_1ea00f4_1282713614661_382539_2341"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282713503714_352251_2292" name="OneTimeExecution">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500774885_358497_2637" body="Class describes the one time execution of a task. This means that the task will be executed only once at the defined time." annotatedElement="_16_8_1ea00f4_1282713503714_352251_2292"/>
                  <generalization xmi:id="_16_8_1ea00f4_1282713559562_400649_2334" isSubstitutable="true" general="_16_8_1ea00f4_1282713543135_442765_2314"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282713515882_110042_2310" name="executionTime" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500817989_320072_2638" body="Timestamp defining when the task should be executed." annotatedElement="_16_8_1ea00f4_1282713515882_110042_2310"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282717308795_696344_2610" name="ExecutionResult">
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282717328553_325048_2628" name="successful" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283499974498_479278_2627" body="Attribute indicated whether the task was executed successful or not. True means successful." annotatedElement="_16_8_1ea00f4_1282717328553_325048_2628"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282717343028_391302_2630" name="executionTime" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282717358446_846369_2632" name="errorMessage" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1282799962453_592268_2673" name="trigger" visibility="private" type="_16_8_2aa0154_1282799890241_270804_2645" association="_16_8_2aa0154_1282799962453_710145_2672">
                    <ownedComment xmi:id="_16_8_2aa0154_1282800083681_885937_2687" body="The attribute describes the reason that caused the task to be executed. The reference is never null." annotatedElement="_16_8_2aa0154_1282799962453_592268_2673"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1282799968459_108685_2682" name="" value="1"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1282799968459_751844_2681" name="" value="1"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18230311_1285941178132_69782_6650" name="exception" visibility="private" type="_9_5_f720368_1110473546612_465691_7599">
                    <ownedComment xmi:id="_16_8_18230311_1285941242429_95636_6653" body="Exception which might be occurred during Task execution." annotatedElement="_16_8_18230311_1285941178132_69782_6650"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_2aa0154_1282799109163_314074_2621" name="" memberEnd="_16_8_2aa0154_1282799109163_159335_2623 _16_8_2aa0154_1282799109163_298861_2622">
                  <ownedEnd xmi:id="_16_8_2aa0154_1282799109163_159335_2623" name="" visibility="private" type="_16_8_1ea00f4_1282713293546_765903_2246" association="_16_8_2aa0154_1282799109163_314074_2621"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_157a02e7_1286374697812_414738_2869" name="SchedulingSystemException"/>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_2aa0154_1282799890241_270804_2645" name="ExecutionTrigger">
                  <ownedComment xmi:id="_16_8_2aa0154_1282799941097_780427_2663" body="Enumeration describes the reason why a task was executed." annotatedElement="_16_8_2aa0154_1282799890241_270804_2645"/>
                  <ownedLiteral xmi:id="_16_8_2aa0154_1282799943733_47250_2664" name="MANUAL" classifier="_16_8_2aa0154_1282799890241_270804_2645">
                    <ownedComment xmi:id="_16_8_2aa0154_1282809074979_781646_2601" body="The task was started manual." annotatedElement="_16_8_2aa0154_1282799943733_47250_2664"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_2aa0154_1282799948429_280914_2666" name="TIME" classifier="_16_8_2aa0154_1282799890241_270804_2645">
                    <ownedComment xmi:id="_16_8_2aa0154_1282809123133_290331_2602" body="The task was executed because his execution time was reached." annotatedElement="_16_8_2aa0154_1282799948429_280914_2666"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1ea00f4_1282714208538_991087_2752" name="" memberEnd="_16_8_1ea00f4_1282714208538_65087_2754 _16_8_1ea00f4_1282714208538_406274_2753">
                  <ownedEnd xmi:id="_16_8_1ea00f4_1282714208538_65087_2754" name="" visibility="private" type="_16_8_1ea00f4_1282713435635_968018_2270" association="_16_8_1ea00f4_1282714208538_991087_2752"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Association" xmi:id="_16_8_1ea00f4_1282717382461_388150_2638" name="" memberEnd="_16_8_1ea00f4_1282717382462_662467_2640 _16_8_1ea00f4_1282717382461_352941_2639">
                  <ownedEnd xmi:id="_16_8_1ea00f4_1282717382462_662467_2640" name="" visibility="private" type="_16_8_1ea00f4_1282713435635_968018_2270" association="_16_8_1ea00f4_1282717382461_388150_2638"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_1ea00f4_1282717079484_384061_2584" name="TaskState">
                  <ownedComment xmi:id="_16_8_2aa0154_1282808892526_22990_2230" body="Enumeration describes the possible states of scheduled task." annotatedElement="_16_8_1ea00f4_1282717079484_384061_2584"/>
                  <ownedLiteral xmi:id="_16_8_1ea00f4_1282717108094_32021_2602" name="SCHEDULED" classifier="_16_8_1ea00f4_1282717079484_384061_2584">
                    <ownedComment xmi:id="_16_8_2aa0154_1282808998853_752027_2597" body="The task has been scheduled." annotatedElement="_16_8_1ea00f4_1282717108094_32021_2602"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_1ea00f4_1282717130075_490568_2604" name="LOCKED" classifier="_16_8_1ea00f4_1282717079484_384061_2584">
                    <ownedComment xmi:id="_16_8_2aa0154_1282809018443_520053_2598" body="The task has been locked by the scheduler in order to execute it." annotatedElement="_16_8_1ea00f4_1282717130075_490568_2604"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_1ea00f4_1282717254642_754691_2606" name="EXECUTED" classifier="_16_8_1ea00f4_1282717079484_384061_2584">
                    <ownedComment xmi:id="_16_8_2aa0154_1282809030568_8232_2599" body="The task has been executed and will not be scheduled again." annotatedElement="_16_8_1ea00f4_1282717254642_754691_2606"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_2aa0154_1282808967723_898241_2595" name="STOPPED" classifier="_16_8_1ea00f4_1282717079484_384061_2584">
                    <ownedComment xmi:id="_16_8_2aa0154_1282809054846_955706_2600" body="The task has been stopped." annotatedElement="_16_8_2aa0154_1282808967723_898241_2595"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282713293546_765903_2246" name="SchedulingInfo" clientDependency="_16_8_157a02e7_1286380466687_201366_5905">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500376160_914028_2629" body="This class describes additional information that may be useful for the scheduled service to do the right things when triggered. The information are optional and will be passed to the executed service. In order to provide a flexible mechanism to pass objects the called service, all SchedulingInfo objects will be stored by the Scheduling Service as serialized objects within the database. This allows that there are task specific subclasses of this class." annotatedElement="_16_8_1ea00f4_1282713293546_765903_2246"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1282799109163_298861_2622" name="parameters" visibility="private" type="_16_8_2aa0154_1282799035016_615783_2594" association="_16_8_2aa0154_1282799109163_314074_2621">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500498886_253566_2630" body="List contains all key value pairs that should be passed to a service when the task will be executed." annotatedElement="_16_8_2aa0154_1282799109163_298861_2622"/>
                    <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_2aa0154_1282799126729_406518_2631" name="" value="*"/>
                    <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_2aa0154_1282799126729_254923_2630" name=""/>
                  </ownedAttribute>
                  <interfaceRealization xmi:id="_16_8_157a02e7_1286380466687_201366_5905" name="" supplier="_9_5_f720368_1110473546612_364919_7481" client="_16_8_1ea00f4_1282713293546_765903_2246" contract="_9_5_f720368_1110473546612_364919_7481"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_16_8_1ea00f4_1282714131255_833415_2746" name="" supplier="_16_8_1ea00f4_1282713114801_661699_2227" client="_16_8_1ea00f4_1282713435635_968018_2270"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_1ea00f4_1282713061121_869634_2207" name="SchedulingService">
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282714650097_412091_2775" name="scheduleTask" visibility="public" raisedException="_16_8_157a02e7_1286374700859_396932_2892">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283499609281_897130_2259" body="Method creates a new scheduled task object. The initial state of the task will be scheduled. Depending on the executing strategy the next execution time will be determined. The passed object must also define a execution strategy and may contain optional scheduling information." annotatedElement="_16_8_1ea00f4_1282714650097_412091_2775"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282714795527_535685_2789" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270">
                      <ownedComment xmi:id="_16_8_1ea00f4_1283499705269_605802_2622" body="Task object that should be scheduled. The parameter must not be null." annotatedElement="_16_8_1ea00f4_1282714795527_535685_2789"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1283499620436_337374_2487" name="" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270" direction="return">
                      <ownedComment xmi:id="_16_8_1ea00f4_1283499755845_285025_2623" body="Object describing the created scheduled task. The method never returns null." annotatedElement="_16_8_1ea00f4_1283499620436_337374_2487"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1282808935929_334092_2591" name="unscheduleTask" visibility="public">
                    <ownedParameter xmi:id="_16_8_2aa0154_1282808954235_496192_2593" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1283499638235_246871_2621" name="" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282716963935_619177_2214" name="queryTasks" visibility="public">
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282716990985_252375_2216" name="pQuery" visibility="public" type="_16_8_1ea00f4_1282715305945_494749_2827"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282716990985_335532_2217" name="" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1282716999050_754101_2219" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1282716999050_293510_2218" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282717447865_93643_2653" name="deleteTask" visibility="public">
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282717470264_556080_2655" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282717470265_258463_2656" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1282798935862_276181_2588" name="getTask" visibility="public">
                    <ownedParameter xmi:id="_16_8_2aa0154_1282798969543_740947_2590" name="pTaskID" visibility="public" type="_16_0_1_2aa0154_1260521459312_878984_448"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1282798969543_611988_2591" name="" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1282800139404_607455_2688" name="startTask" visibility="public">
                    <ownedParameter xmi:id="_16_8_2aa0154_1282800169107_86521_2690" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1282800169107_310230_2691" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282713543135_442765_2314" name="ExecutionStrategy">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500890780_100214_2639" body="Class is the base class for all execution strategies that are supported by the Scheduling Service. An execution strategy defines the algorithm that will be used to determine the exection times of a task." annotatedElement="_16_8_1ea00f4_1282713543135_442765_2314"/>
                </packagedElement>
                <packagedElement xmi:type="uml:StateMachine" xmi:id="_16_8_1ea00f4_1283501282345_600040_2650" name="Task States" isReentrant="true">
                  <region xmi:id="_16_8_1ea00f4_1283501282345_766748_2651" name="" visibility="public">
                    <subvertex xmi:type="uml:Pseudostate" xmi:id="_16_8_1ea00f4_1283501297961_517820_2674" name="" visibility="public" outgoing="_16_8_1ea00f4_1283501313155_166736_2692"/>
                    <subvertex xmi:type="uml:State" xmi:id="_16_8_1ea00f4_1283501305090_745427_2678" name="Scheduled" visibility="public" outgoing="_16_8_1ea00f4_1283501960356_131894_2775 _16_8_1ea00f4_1283501406117_630763_2713 _16_8_1ea00f4_1283501578225_815133_2720" incoming="_16_8_1ea00f4_1283501313155_166736_2692 _16_8_1ea00f4_1283501911074_350625_2770"/>
                    <subvertex xmi:type="uml:State" xmi:id="_16_8_1ea00f4_1283501390267_830454_2699" name="Locked" visibility="public" outgoing="_16_8_1ea00f4_1283501707925_705266_2745 _16_8_1ea00f4_1283501911074_350625_2770" incoming="_16_8_1ea00f4_1283501578225_815133_2720 _16_8_1ea00f4_1283501406117_630763_2713"/>
                    <subvertex xmi:type="uml:State" xmi:id="_16_8_1ea00f4_1283501689314_194370_2731" name="Executed" visibility="public" outgoing="_16_8_1ea00f4_1283502084107_627678_2793" incoming="_16_8_1ea00f4_1283501707925_705266_2745"/>
                    <subvertex xmi:type="uml:State" xmi:id="_16_8_1ea00f4_1283501724695_611267_2748" name="Stopped" visibility="public" outgoing="_16_8_1ea00f4_1283502081471_858626_2790" incoming="_16_8_1ea00f4_1283501960356_131894_2775"/>
                    <subvertex xmi:type="uml:FinalState" xmi:id="_16_8_1ea00f4_1283502073078_281915_2786" name="" visibility="public" incoming="_16_8_1ea00f4_1283502081471_858626_2790 _16_8_1ea00f4_1283502084107_627678_2793"/>
                    <transition xmi:id="_16_8_1ea00f4_1283501313155_166736_2692" name="" visibility="public" target="_16_8_1ea00f4_1283501305090_745427_2678" source="_16_8_1ea00f4_1283501297961_517820_2674">
                      <trigger xmi:id="_16_8_1ea00f4_1283501348334_24167_2694" name="" visibility="public" event="_16_8_1ea00f4_1283501348334_547515_2693"/>
                    </transition>
                    <transition xmi:id="_16_8_1ea00f4_1283501406117_630763_2713" name="Triggered manually" visibility="public" target="_16_8_1ea00f4_1283501390267_830454_2699" source="_16_8_1ea00f4_1283501305090_745427_2678">
                      <trigger xmi:id="_16_8_1ea00f4_1283501416257_493398_2715" name="" visibility="public" event="_16_8_1ea00f4_1283501416257_562735_2714"/>
                    </transition>
                    <transition xmi:id="_16_8_1ea00f4_1283501578225_815133_2720" name="" visibility="public" target="_16_8_1ea00f4_1283501390267_830454_2699" source="_16_8_1ea00f4_1283501305090_745427_2678">
                      <trigger xmi:id="_16_8_1ea00f4_1283501585354_287647_2722" name="" visibility="public" event="_16_8_1ea00f4_1283501585354_631370_2721"/>
                    </transition>
                    <transition xmi:id="_16_8_1ea00f4_1283501707925_705266_2745" name="" visibility="public" target="_16_8_1ea00f4_1283501689314_194370_2731" source="_16_8_1ea00f4_1283501390267_830454_2699"/>
                    <transition xmi:id="_16_8_1ea00f4_1283501911074_350625_2770" name="" visibility="public" target="_16_8_1ea00f4_1283501305090_745427_2678" source="_16_8_1ea00f4_1283501390267_830454_2699"/>
                    <transition xmi:id="_16_8_1ea00f4_1283501960356_131894_2775" name="" visibility="public" target="_16_8_1ea00f4_1283501724695_611267_2748" source="_16_8_1ea00f4_1283501305090_745427_2678">
                      <trigger xmi:id="_16_8_1ea00f4_1283501993149_91581_2779" name="" visibility="public" event="_16_8_1ea00f4_1283501993149_273277_2778"/>
                    </transition>
                    <transition xmi:id="_16_8_1ea00f4_1283502081471_858626_2790" name="" visibility="public" target="_16_8_1ea00f4_1283502073078_281915_2786" source="_16_8_1ea00f4_1283501724695_611267_2748"/>
                    <transition xmi:id="_16_8_1ea00f4_1283502084107_627678_2793" name="" visibility="public" target="_16_8_1ea00f4_1283502073078_281915_2786" source="_16_8_1ea00f4_1283501689314_194370_2731"/>
                  </region>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_1ea00f4_1282714853934_888313_2793" name="SchedulerService">
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282714893652_943088_2811" name="lockExpiredTasks" visibility="public">
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282714923385_501999_2814" name="" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_1ea00f4_1282714942667_389192_2816" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_1ea00f4_1282714942667_453914_2815" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1ea00f4_1282714988016_844073_2817" name="executeTask" visibility="public" raisedException="_16_8_157a02e7_1286374697812_414738_2869">
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282715007891_436023_2819" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270"/>
                    <ownedParameter xmi:id="_16_8_1ea00f4_1282715007891_24560_2820" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_2aa0154_1282798834540_345416_2223" name="addExecutionResult" visibility="public">
                    <ownedParameter xmi:id="_16_8_2aa0154_1282798883165_414606_2225" name="pTask" visibility="public" type="_16_8_1ea00f4_1282713435635_968018_2270"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1282889149135_692209_2592" name="pExecutionException" visibility="public" type="_9_5_f720368_1110473546612_465691_7599"/>
                    <ownedParameter xmi:id="_16_8_2aa0154_1282889149136_399760_2593" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_18230311_1287147361777_319130_3853" name="pTrigger" visibility="public" type="_16_8_2aa0154_1282799890241_270804_2645"/>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1282715305945_494749_2827" name="ScheduledTaskQuery">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283501074847_670771_2641" body="Class defines the query criterias for searching scheduled tasks. All the possible attributes will be linked by a logical AND if they are set." annotatedElement="_16_8_1ea00f4_1282715305945_494749_2827"/>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282715323120_460424_2845" name="serviceClass" visibility="private" type="_9_5_f720368_1110473546612_428363_7573">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283501102163_575214_2642" body="Type of service that will be called when the task will be executed." annotatedElement="_16_8_1ea00f4_1282715323120_460424_2845"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282715330702_5924_2847" name="executionIntervalBegin" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283501126795_594725_2643" body="Begin of the interval when the task will be executed the next time." annotatedElement="_16_8_1ea00f4_1282715330702_5924_2847"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1282715356754_29352_2849" name="executionIntervalEnd" visibility="private" type="_9_5_f720368_1110473546706_973459_8839">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283501152146_341687_2644" body="End of the interval when the task will be executed the next time." annotatedElement="_16_8_1ea00f4_1282715356754_29352_2849"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1ea00f4_1283501164642_578397_2645" name="successful" visibility="private">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283501239944_90351_2647" body="Attribute defines whether only successful or failed task should be searched." annotatedElement="_16_8_1ea00f4_1283501164642_578397_2645"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1282799035016_615783_2594" name="KeyValuePair">
                  <ownedComment xmi:id="_16_8_1ea00f4_1283500548105_884066_2631" body="Class describes a simple key value pair that can be passed to a service." annotatedElement="_16_8_2aa0154_1282799035016_615783_2594"/>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1282799046545_245846_2612" name="key" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500577215_347880_2632" body="Key of the object. The attribute must not be null" annotatedElement="_16_8_2aa0154_1282799046545_245846_2612"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_2aa0154_1282799053627_288732_2614" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1ea00f4_1283500593720_655580_2633" body="Value of the object. The attribute may be null." annotatedElement="_16_8_2aa0154_1282799053627_288732_2614"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:CallEvent" xmi:id="_16_8_1ea00f4_1283501348334_547515_2693" name="" operation="_16_8_1ea00f4_1282714650097_412091_2775"/>
                <packagedElement xmi:type="uml:CallEvent" xmi:id="_16_8_1ea00f4_1283501416257_562735_2714" name="" operation="_16_8_2aa0154_1282800139404_607455_2688"/>
                <packagedElement xmi:type="uml:CallEvent" xmi:id="_16_8_1ea00f4_1283501585354_631370_2721" name="Triggered by time" operation="_16_8_1ea00f4_1282714988016_844073_2817"/>
                <packagedElement xmi:type="uml:CallEvent" xmi:id="_16_8_1ea00f4_1283501993149_273277_2778" name="" operation="_16_8_2aa0154_1282808935929_334092_2591"/>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260521788390_718659_449" name="spi">
              <packagedElement xmi:type="uml:Package" xmi:id="_16_8_13b102ce_1436803754454_751411_1935" name="identity">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195a0325_1437128408675_762648_4051" name="IdentityProviderSystemException"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_195a0325_1437120526461_589713_3863" name="JEAFUserManagementIdentityServiceProvider">
                  <ownedComment xmi:id="_16_8_195a0325_1437120610148_154099_3884" body="Interface for usage of JEAF's User Management as Identity Provider. The interface does not define additional methods. It is only a marker." annotatedElement="_16_8_195a0325_1437120526461_589713_3863"/>
                  <generalization xmi:id="_16_8_195a0325_1437120560985_963506_3882" isSubstitutable="true" general="_16_8_13b102ce_1436888175709_386041_3948"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_194c0324_1463692360535_825836_5993" name="OAuthIdentityServiceProvider">
                  <generalization xmi:id="_16_8_194c0324_1463692429363_358299_6013" isSubstitutable="true" general="_16_8_13b102ce_1436888175709_386041_3948"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1d410399_1436975011429_54205_3475" name="Identity" clientDependency="_18_5_3_1ea00f4_1562178296082_684726_6603">
                  <ownedComment xmi:id="_16_8_195a0325_1437121971856_239188_3908" body="Class represents an identity (user)." annotatedElement="_16_8_1d410399_1436975011429_54205_3475"/>
                  <ownedAttribute xmi:id="_16_8_1d410399_1436975548982_894608_3497" name="loginName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121229366_887607_3899" body="Login name of the user. The attribute is never null." annotatedElement="_16_8_1d410399_1436975548982_894608_3497"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1d410399_1436975533752_447221_3493" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121202404_226200_3897" body="Name of the user. The attribute is never null." annotatedElement="_16_8_1d410399_1436975533752_447221_3493"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_194c0324_1463685919865_546342_4323" name="oAuthToken" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_194c0324_1463685976118_260177_4325" body="OAuth token that was created during the login of an identity. The attribute is only set in case that OAuth is used as authentication protocol." annotatedElement="_16_8_194c0324_1463685919865_546342_4323"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1d410399_1436975540344_83838_3495" name="firstName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121213155_492048_3898" body="First name of the user. The attribute may be null." annotatedElement="_16_8_1d410399_1436975540344_83838_3495"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1d410399_1436975586399_418181_3499" name="email" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121236408_300417_3900" body="E-Mail of the user. The attribute may be null." annotatedElement="_16_8_1d410399_1436975586399_418181_3499"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1461941565169_959658_4643" name="dateOfBirth" visibility="private" type="_9_5_f720368_1110473546706_999299_8853">
                    <ownedComment xmi:id="_16_8_1968032c_1461941646390_938959_4645" body="Date of birth of the identity." annotatedElement="_16_8_1968032c_1461941565169_959658_4643"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437113281253_694133_3787" name="street" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121244009_668898_3901" body="Street of the user. The attribute may be null." annotatedElement="_16_8_195a0325_1437113281253_694133_3787"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437113289365_824840_3789" name="postalCode" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_195a0325_1437121299215_633885_3902" body="Postal code of the user. The attribute may be null." annotatedElement="_16_8_195a0325_1437113289365_824840_3789"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437113331432_667003_3791" name="city" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121306990_661579_3903" body="City of the user. The attribute may be null." annotatedElement="_16_8_195a0325_1437113331432_667003_3791"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437113340039_12325_3793" name="country" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437121314621_807557_3904" body="Country of the user. The attribute may be null." annotatedElement="_16_8_195a0325_1437113340039_12325_3793"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1438927421170_734315_3606" name="state" visibility="private" type="_16_8_19550320_1438927244429_231217_3578">
                    <ownedComment xmi:id="_16_8_19550320_1438927437622_620460_3608" body="State of the identity." annotatedElement="_16_8_19550320_1438927421170_734315_3606"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_13b102ce_1436889407811_902971_4021" name="IdentityProviderContext">
                  <ownedComment xmi:id="_16_8_13b102ce_1436936203414_171632_4153" body="Class defines the context information that may be required to access an identity provider." annotatedElement="_16_8_13b102ce_1436889407811_902971_4021"/>
                  <ownedAttribute xmi:id="_16_8_13b102ce_1436889454268_569129_4039" name="providerURL" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437120702450_72303_3886" body="URL of the server of the identity provider e.g. &quot;ldaps://cloud.weeasy.de&quot;" annotatedElement="_16_8_13b102ce_1436889454268_569129_4039"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_13b102ce_1436889614725_578410_4041" name="searchBase" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437120814284_905831_3888" body="Optional attribute defines the search base for accessing identities. This attribute is required in case od ldap based identity providers." annotatedElement="_16_8_13b102ce_1436889614725_578410_4041"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437140199967_551583_4090" name="domain" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437140239626_988836_4092" body="Domain to which the identity provider server belongs to." annotatedElement="_16_8_195a0325_1437140199967_551583_4090"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_13b102ce_1436936006314_97391_4148" name="user" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437120847946_207436_3889" body="Technical user that should be used to access the identity provider. The attribute may be null." annotatedElement="_16_8_13b102ce_1436936006314_97391_4148"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_13b102ce_1436936016455_333735_4150" name="password" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_195a0325_1437120890399_865432_3890" body="Password of the technical user that should be used to access the identity provider. The attribute may be null." annotatedElement="_16_8_13b102ce_1436936016455_333735_4150"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437082506691_42489_1974" name="connectTimeout" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_195a0325_1437120918415_823049_3891" body="Connection timeout when trying to access the identity provider.  The attribute may be null." annotatedElement="_16_8_195a0325_1437082506691_42489_1974"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_195a0325_1437082520129_888799_1976" name="readTimeout" visibility="private" type="_9_5_f720368_1110473546612_167906_7631">
                    <ownedComment xmi:id="_16_8_195a0325_1437120937151_298826_3892" body="Read timeout for queries using the identity provider.  The attribute may be null." annotatedElement="_16_8_195a0325_1437082520129_888799_1976"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_19550320_1438948049771_391972_3919" name="acceptAllCertificates" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_19550320_1438948121762_58367_3921" body="If attribute is set to true then all SSL certificates are accepted not matter if they are valid or not. This feature is intended to be used in non production environments. " annotatedElement="_16_8_19550320_1438948049771_391972_3919"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1461933219008_495477_4564" name="providerCertificate" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1968032c_1461933219008_849070_4566" body="Certificate of the identity provider." annotatedElement="_16_8_1968032c_1461933219008_495477_4564"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1461940310162_836317_4640" name="disableValidityCheck" visibility="private">
                    <ownedComment xmi:id="_16_8_1968032c_1461940358020_502017_4642" body="Attributes defines whether a may be exiting validity check should be disabled. This feature is intended only to be used for testing but never in production environments." annotatedElement="_16_8_1968032c_1461940310162_836317_4640"/>
                    <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_1968032c_1463758378969_132015_3617" name="clientSecret" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_1968032c_1463758448338_187503_3619" body="Client secret is used in case of OAuth." annotatedElement="_16_8_1968032c_1463758378969_132015_3617"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1479379178418_640978_3256" name="allowEMailLogin" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_18440316_1479379200013_966295_3258" body="true if login with the email address is allowed, otherwise false." annotatedElement="_16_8_18440316_1479379178418_640978_3256"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_195a0325_1437483667608_94235_3561" name="RegistrationMode">
                  <ownedComment xmi:id="_16_8_195a0325_1437483864690_968723_3591" body="Enumeration defines the possible behaviors of a identity provider when a user is registered." annotatedElement="_16_8_195a0325_1437483667608_94235_3561"/>
                  <ownedLiteral xmi:id="_16_8_195a0325_1437483687088_160706_3579" name="ADD_NEW_IDENTITY" classifier="_16_8_195a0325_1437483667608_94235_3561">
                    <ownedComment xmi:id="_16_8_195a0325_1437483903857_700129_3592" body="With this registration mode the identity provider should try to create a new identity on registration." annotatedElement="_16_8_195a0325_1437483687088_160706_3579"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_195a0325_1437483698830_255358_3581" name="IDENTITY_MUST_EXIST" classifier="_16_8_195a0325_1437483667608_94235_3561">
                    <ownedComment xmi:id="_16_8_195a0325_1437483953959_848554_3593" body="With this registration mode the identity provider should check if the passed identity already exist when trying to register." annotatedElement="_16_8_195a0325_1437483698830_255358_3581"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_13b102ce_1436933472248_352837_4113" name="IdentityQuery">
                  <ownedComment xmi:id="_16_8_195a0325_1437120974407_487739_3893" body="Class defines the possible query criteria when searching for users." annotatedElement="_16_8_13b102ce_1436933472248_352837_4113"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1465794920159_63465_4405" name="queryString" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedAttribute xmi:id="_16_8_19550320_1438927366498_797425_3603" name="active" visibility="private" type="_9_5_f720368_1110473546612_366010_7561">
                    <ownedComment xmi:id="_16_8_19550320_1438927416222_281942_3605" body="If flag is set to true, then only active identities will be searched." annotatedElement="_16_8_19550320_1438927366498_797425_3603"/>
                  </ownedAttribute>
                  <ownedAttribute xmi:id="_16_8_18440316_1484326171338_228719_3442" name="userRole" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_18440316_1484326283542_421599_3444" body="Attribute to filter for users with a specific role." annotatedElement="_16_8_18440316_1484326171338_228719_3442"/>
                  </ownedAttribute>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_19550320_1438927244429_231217_3578" name="IdentityState">
                  <ownedComment xmi:id="_16_8_19550320_1438927298674_845504_3600" body="Enumeration defines the possible states of an identity." annotatedElement="_16_8_19550320_1438927244429_231217_3578"/>
                  <ownedLiteral xmi:id="_16_8_19550320_1438927269552_52559_3596" name="ACTIVE" classifier="_16_8_19550320_1438927244429_231217_3578">
                    <ownedComment xmi:id="_16_8_19550320_1438935066379_852581_3896" body="Identity is active." annotatedElement="_16_8_19550320_1438927269552_52559_3596"/>
                  </ownedLiteral>
                  <ownedLiteral xmi:id="_16_8_19550320_1438927273812_82445_3598" name="DISABLED" classifier="_16_8_19550320_1438927244429_231217_3578">
                    <ownedComment xmi:id="_16_8_19550320_1438935095085_20016_3897" body="Identity is disabled by identity provider. No logins are possible." annotatedElement="_16_8_19550320_1438927273812_82445_3598"/>
                  </ownedLiteral>
                </packagedElement>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_13b102ce_1436888175709_386041_3948" name="IdentityServiceProvider">
                  <ownedComment xmi:id="_16_8_13b102ce_1436936147992_286618_4152" body="A Identity Service Provider is responsible for accessing users that are managed by some identity provider. " annotatedElement="_16_8_13b102ce_1436888175709_386041_3948"/>
                  <ownedOperation xmi:id="_16_8_13b102ce_1436888318496_893565_3965" name="queryIdentities" visibility="public" raisedException="_16_8_195a0325_1437128408675_762648_4051">
                    <ownedComment xmi:id="_16_8_197a0330_1437020002055_798837_3269" body="Method performs a query for users that match to the passed query criteria." annotatedElement="_16_8_13b102ce_1436888318496_893565_3965"/>
                    <ownedParameter xmi:id="_16_8_13b102ce_1436933555144_369725_4138" name="pQuery" visibility="public" type="_16_8_13b102ce_1436933472248_352837_4113">
                      <ownedComment xmi:id="_16_8_197a0330_1441253898664_257089_3607" body="Criteria  of the query for identities. The parameter must not be null." annotatedElement="_16_8_13b102ce_1436933555144_369725_4138"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437122101322_151701_3909" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_197a0330_1441253438165_301660_3597" body="Context information that may be used to access a specific identity provider service. The parameter must not be null." annotatedElement="_16_8_195a0325_1437122101322_151701_3909"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19550320_1438922496375_582512_2275" name="" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475" isOrdered="true" isUnique="false" direction="return">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_19550320_1438922496380_796640_2277" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_19550320_1438922496379_367957_2276" name=""/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_13b102ce_1436889196725_830865_4013" name="login" visibility="public" raisedException="_9_5_f720368_1110473546737_446079_9617 _16_8_195a0325_1437128408675_762648_4051">
                    <ownedComment xmi:id="_16_8_197a0330_1437020085459_753527_3270" body="Method tries to login the users with the passed credentials. The login will be performed based on the passed identity provider context which may contain details about the identity provider server. If the login fails an exception will be thrown." annotatedElement="_16_8_13b102ce_1436889196725_830865_4013"/>
                    <ownedParameter xmi:id="_16_8_13b102ce_1436889227997_575606_4015" name="pLoginname" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441253751006_230780_3605" body="Login name of the user who wants to login. The parameter must not be null." annotatedElement="_16_8_13b102ce_1436889227997_575606_4015"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_13b102ce_1436889227999_262178_4016" name="pPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441253767619_804865_3606" body="Password of the user. The parameter must not be null." annotatedElement="_16_8_13b102ce_1436889227999_262178_4016"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437122112414_915203_3913" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_197a0330_1441253480167_344383_3599" body="Context information that may be used to access a specific identity provider service. The parameter must not be null." annotatedElement="_16_8_195a0325_1437122112414_915203_3913"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437122112424_625056_3914" name="" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475" direction="return">
                      <ownedComment xmi:id="_16_8_19550320_1438924134104_444580_3575" body="Object describing the logged in identity. The method never returns null. If the login fails an exception will be thrown." annotatedElement="_16_8_195a0325_1437122112424_625056_3914"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1d410399_1436976427541_133182_3502" name="changePassword" visibility="public" raisedException="_16_8_195a0325_1437128408675_762648_4051">
                    <ownedComment xmi:id="_16_8_197a0330_1437020117515_770412_3271" body="Method changes the password of the passed identity to the new one." annotatedElement="_16_8_1d410399_1436976427541_133182_3502"/>
                    <ownedParameter xmi:id="_16_8_1d410399_1436976466691_359401_3504" name="pIdentity" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475">
                      <ownedComment xmi:id="_16_8_197a0330_1441253587613_986210_3602" body="Identity defining the user whose password should be changed. The parameter must not be null." annotatedElement="_16_8_1d410399_1436976466691_359401_3504"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1d410399_1436976466693_307437_3505" name="pOldPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441253714262_159048_3604" body="Current password of the user. The parameter must not be null." annotatedElement="_16_8_1d410399_1436976466693_307437_3505"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1d410399_1436976466695_347805_3506" name="pNewPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441253693284_476809_3603" body="New unencrypted password. The parameter must not be null and must match with the password guidelines of the uses identity service provider." annotatedElement="_16_8_1d410399_1436976466695_347805_3506"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437122123622_335610_3915" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_197a0330_1441253468934_543419_3598" body="Context information that may be used to access a specific identity provider service. The parameter must not be null." annotatedElement="_16_8_195a0325_1437122123622_335610_3915"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_19550320_1441371285612_857852_2297" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_195a0325_1437483506293_746549_2029" name="register" visibility="public" raisedException="_16_8_195a0325_1437128408675_762648_4051">
                    <ownedComment xmi:id="_16_8_19550320_1438923031934_523666_3574" body="Method registers the passed identity. What registration exactly means depends highly on the concrete implementation." annotatedElement="_16_8_195a0325_1437483506293_746549_2029"/>
                    <ownedParameter xmi:id="_16_8_195a0325_1437483558794_299182_2031" name="pIdentity" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475">
                      <ownedComment xmi:id="_16_8_197a0330_1441253937223_587234_3608" body="Object describes the identity that should be registered. The parameter must not be null." annotatedElement="_16_8_195a0325_1437483558794_299182_2031"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437483558795_628739_2032" name="pPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441253974872_355073_3609" body="Password of the new identity. The password must match to the guidelines that are defined for the used identity service provider." annotatedElement="_16_8_195a0325_1437483558795_628739_2032"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437483810083_945306_3589" name="pRegistrationMode" visibility="public" type="_16_8_195a0325_1437483667608_94235_3561">
                      <ownedComment xmi:id="_16_8_197a0330_1441254016206_600004_3610" body="The registration mode defines the expected behavior for the identity provider. The parameter must not be null." annotatedElement="_16_8_195a0325_1437483810083_945306_3589"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_195a0325_1437483558797_840897_2033" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_197a0330_1441253499030_303312_3600" body="Context information that may be used to access a specific identity provider service. The parameter must not be null." annotatedElement="_16_8_195a0325_1437483558797_840897_2033"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_196b032f_1441947146658_698850_2187" name="" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475" direction="return">
                      <ownedComment xmi:id="_16_8_196b032f_1441947183778_961608_2188" body="Identity object with the current information about the identity. The method never returns null." annotatedElement="_16_8_196b032f_1441947146658_698850_2187"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_197a0330_1441253122958_100665_2069" name="resetPassword" visibility="public">
                    <ownedComment xmi:id="_16_8_197a0330_1441254051298_816087_3611" body="Method resets the password of the passed user to the new value." annotatedElement="_16_8_197a0330_1441253122958_100665_2069"/>
                    <ownedParameter xmi:id="_16_8_197a0330_1441253167762_184941_2071" name="pIdentity" visibility="public" type="_16_8_1d410399_1436975011429_54205_3475">
                      <ownedComment xmi:id="_16_8_197a0330_1441254069268_823681_3612" body="Identity whose password should be reset." annotatedElement="_16_8_197a0330_1441253167762_184941_2071"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1441253167768_799217_2072" name="pNewPassword" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_197a0330_1441254135995_904396_3613" body="New password which should be set for the passed user. The password must match to the guidelines that are defined for the user identity service provider. The parameter must not be null." annotatedElement="_16_8_197a0330_1441253167768_799217_2072"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1441253167770_956292_2073" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_197a0330_1441253509998_601244_3601" body="Context information that may be used to access a specific identity provider service. The parameter must not be null." annotatedElement="_16_8_197a0330_1441253167770_956292_2073"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_197a0330_1441253167774_364558_2074" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461881598152_487820_2181" name="testConnection" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461881740890_149299_2185" body="Method tests the connection through this IdentityServiceProvider using the passed context. If the connection test fails an exception will be thrown." annotatedElement="_16_8_1968032c_1461881598152_487820_2181"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461881628615_820048_2183" name="pContext" visibility="public" type="_16_8_13b102ce_1436889407811_902971_4021">
                      <ownedComment xmi:id="_16_8_1968032c_1461882012597_228423_4056" body="Context describing to concrete instance against which the connection test should be run. The parameter must not be null." annotatedElement="_16_8_1968032c_1461881628615_820048_2183"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_8_1968032c_1461882292822_253428_4057" name="" visibility="public" type="_16_8_197a0330_1453824381583_132600_1961" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461882323021_551646_4058" body="Method returns null if the test was successful and a failure object in all other cases." annotatedElement="_16_8_1968032c_1461882292822_253428_4057"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461919939437_475254_4536" name="supportsLogin" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919975417_756475_4540" body="Method tells the caller if this identity provider supports logins of identities." annotatedElement="_16_8_1968032c_1461919939437_475254_4536"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919949076_609059_4539" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461920004106_320675_4541" body="Method returns true if this implementation supports logins and false in all other cases." annotatedElement="_16_8_1968032c_1461919949076_609059_4539"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461918989197_196980_4503" name="supportsQuery" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919034627_440263_4507" body="Method tells the caller if this identity provider supports queries for identities." annotatedElement="_16_8_1968032c_1461918989197_196980_4503"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919004837_771715_4506" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461919060710_516399_4508" body="Method returns true if this implementation supports queries and false in all other cases." annotatedElement="_16_8_1968032c_1461919004837_771715_4506"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461919065137_670283_4509" name="supportsNewRegistration" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919135455_351788_4513" body="Method tells the caller if this identity provider supports registration of new identities. &quot;new&quot; in this case means that the identity does not yet exist in the connected identity service." annotatedElement="_16_8_1968032c_1461919065137_670283_4509"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919153737_137384_4515" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461919438973_939223_4531" body="Method returns true if this implementation supports new registrations and false in all other cases." annotatedElement="_16_8_1968032c_1461919153737_137384_4515"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461919318957_957933_4526" name="supportsExistingRegistration" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919381432_44001_4530" body="Method tells the caller if this identity provider supports registration of identities that already exist in the connected service." annotatedElement="_16_8_1968032c_1461919318957_957933_4526"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919329892_686977_4529" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461919458607_556204_4532" body="Method returns true if this implementation supports existing registrations and false in all other cases." annotatedElement="_16_8_1968032c_1461919329892_686977_4529"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461919188787_398484_4516" name="supportsPasswordChange" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919217108_182800_4520" body="Method tells the caller if this identity provider supports change of passwords for identities." annotatedElement="_16_8_1968032c_1461919188787_398484_4516"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919201587_511229_4519" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461919474407_975854_4533" body="Method returns true if this implementation supports password changes and false in all other cases." annotatedElement="_16_8_1968032c_1461919201587_511229_4519"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1968032c_1461919226067_68122_4521" name="supportsResetPassword" visibility="public">
                    <ownedComment xmi:id="_16_8_1968032c_1461919653251_653753_4535" body="Method tells the caller if this identity provider supports reset of passwords for identities." annotatedElement="_16_8_1968032c_1461919226067_68122_4521"/>
                    <ownedParameter xmi:id="_16_8_1968032c_1461919239177_431741_4524" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_8_1968032c_1461919488537_468339_4534" body="Method returns true if this implementation supports password reset and false in all other cases." annotatedElement="_16_8_1968032c_1461919239177_431741_4524"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_13b102ce_1436889671316_593964_4045" name="pIdentityProviderInfo"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_8_195a0325_1437114963747_714016_3797" name="ActiveDirectoryIdentityServiceProvider">
                  <ownedComment xmi:id="_16_8_195a0325_1437119145599_373667_3839" body="Interface for usage of Microsoft's Active Directory as Identity Provider. The interface does not define additional methods. It is only a marker." annotatedElement="_16_8_195a0325_1437114963747_714016_3797"/>
                  <generalization xmi:id="_16_8_195a0325_1437114989891_983735_3816" isSubstitutable="true" general="_16_8_13b102ce_1436888175709_386041_3948"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_19560321_1475467221657_448443_2331" name="AccountType">
                  <ownedLiteral xmi:id="_16_8_19560321_1475467259754_961727_2333" name="Consumer" classifier="_16_8_19560321_1475467221657_448443_2331"/>
                  <ownedLiteral xmi:id="_16_8_19560321_1475467278692_177799_2334" name="BusinessUser" classifier="_16_8_19560321_1475467221657_448443_2331"/>
                  <ownedLiteral xmi:id="_16_8_19560321_1475467288663_845700_2335" name="TechnicalUser" classifier="_16_8_19560321_1475467221657_448443_2331"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Dependency" xmi:id="_18_5_3_1ea00f4_1562178296082_684726_6603" name="" supplier="_16_8_19550320_1438927244429_231217_3578" client="_16_8_1d410399_1436975011429_54205_3475"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260521788390_640257_450" name="persistence">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1312807824484_48860_20266" name="BusinessObjectID"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1312807817518_945769_20265" name="BusinessObject"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1260521788390_65757_453" name="PersistenceServiceProvider"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_0_1_2aa0154_1260521788390_465359_451" name="authorization">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1268068220671_535255_721" name="AuthorizationException"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_0_1_2aa0154_1260521788421_629963_474" name="AuthorizationServiceProvider">
                  <ownedComment xmi:id="_16_0_1_2aa0154_1265114165921_406626_1070" body="JEAF Authorization Service Provider is responsible for enabling business components to check security as simple as possible. JEAF provides a rather simple authorization concept to use. But behind the scenes it is quite powerful. For every method of an JEAF Service there will be an individual authorization type. This ensures that access privileges can be granted rather fine. In oder to ease administration authorization types can be put together as roles which are assigned to users.&#xA;&#xA;Since authentication is already handled by JAAS LoginModules and their integration into JEE Application Servers,  JEAF does not deal that much with authentication and concentrates on authorization. " annotatedElement="_16_0_1_2aa0154_1260521788421_629963_474"/>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1260521788421_374125_501" name="hasAuthorization" visibility="public">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1260521788421_996526_511" body="Method checks whether the current user has the authorization of the passed type." annotatedElement="_16_0_1_2aa0154_1260521788421_374125_501"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1260521788421_443694_512" name="pAuthorizationTypeName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_8_2aa0154_1279196197033_788208_3083" body="Name of the authorization type that the current user should have. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1260521788421_443694_512"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1261394454453_576761_1019" name="" visibility="public" direction="return">
                      <ownedComment xmi:id="_16_0_1_2aa0154_1264459968015_92733_1007" body="Method returns true if the authorization check was successful and false in all other cases." annotatedElement="_16_0_1_2aa0154_1261394454453_576761_1019"/>
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_0_1_2aa0154_1260521788421_425920_502" name="enforceAuthorization" visibility="public" raisedException="_16_0_1_2aa0154_1268068220671_535255_721">
                    <ownedComment xmi:id="_16_0_1_2aa0154_1260521788421_560720_514" body="Method checks whether the current user has right now the authorization that is described by the passed authorization type. This method enforces that the user has the required authorization . If the check is negative an exception due to insufficient privileges will be thrown." annotatedElement="_16_0_1_2aa0154_1260521788421_425920_502"/>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1260521788421_332265_515" name="pAuthorizationTypeName" visibility="public" type="_9_5_f720368_1110473546612_692218_7691">
                      <ownedComment xmi:id="_16_0_1_2aa0154_1264458983640_601497_1006" body="Name of the authorization type for which the check will be performed. The parameter must not be null." annotatedElement="_16_0_1_2aa0154_1260521788421_332265_515"/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_0_1_2aa0154_1261394464875_403665_1022" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_16_6_2_2aa0154_1275925379553_550178_1054" name="mail">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1b700da_1276244674143_610026_1778" name="MailApplicationException"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1b700da_1276244647180_611269_1777" name="MailSystemException"/>
                <packagedElement xmi:type="uml:Interface" xmi:id="_16_6_2_2aa0154_1275924404819_375705_1036" name="MailServiceProvider">
                  <ownedComment xmi:id="_16_8_1b700da_1280997824344_447951_2672" body="JEAF Mail Service Provider is responsible for creating and sending e-mail messages using the Java Mail API. JEAF provides the possibility to use the Mail Service Provider not only in a JSE, but also in an EJBContainer Runtime Environment. &#xA;The configuration for the mail session in a JSE Runtime Environment is stored in a properties file. Nearly all the necessary adjustments to the configuration for the mail session in an EJBContainer Runtime Environment should be made inside the configuration of the Application Server. Only the Java Mail session binding JNDI path has to be set inside the properties file in order to get the mail session from the Application Server." annotatedElement="_16_6_2_2aa0154_1275924404819_375705_1036"/>
                  <ownedOperation xmi:id="_16_6_2_2aa0154_1275925846805_15665_1055" name="sendMail" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1278507613901_257225_2174" body="Method sends an e-mail using the passed message object. The subject, content and recipients of the message have to be specified inside the passed message object." annotatedElement="_16_6_2_2aa0154_1275925846805_15665_1055"/>
                    <ownedParameter xmi:id="_16_6_2_2aa0154_1275925868286_4328_1057" name="pMessage" visibility="public" type="_16_6_2_1ea00f4_1276548794045_584265_843"/>
                    <ownedParameter xmi:id="_16_6_2_1ea00f4_1276549397935_616687_1301" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1b700da_1276241397253_776804_2014" name="sendMail" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1278507655510_952741_2175" body="Method sends an e-mail using a newly created message with the passed subject, content and recipients objects." annotatedElement="_16_8_1b700da_1276241397253_776804_2014"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276241452250_557320_2018" name="pContent" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276241466180_773980_2019" name="pSubject" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276241488075_861355_2020" name="pRecipients" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276549424814_94744_1303" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276549424814_784462_1302" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_6_2_1ea00f4_1276549424814_959373_1304" name="" visibility="public" direction="return">
                      <type xmi:type="uml:PrimitiveType" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#eee_1045467100323_249638_60"/>
                    </ownedParameter>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1b700da_1276180260576_127629_1774" name="createMessage" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1278507677721_488911_2176" body="Method creates and returns an empty message object." annotatedElement="_16_8_1b700da_1276180260576_127629_1774"/>
                    <ownedParameter xmi:id="_16_6_2_1ea00f4_1276549440336_570118_1306" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_900853_746" direction="return"/>
                  </ownedOperation>
                  <ownedOperation xmi:id="_16_8_1b700da_1276240927762_692656_1775" name="createMessage" visibility="public">
                    <ownedComment xmi:id="_16_8_1b700da_1278507695439_762675_2177" body="Method creates and returns a message object using the passed content, subject and recipients objects." annotatedElement="_16_8_1b700da_1276240927762_692656_1775"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276240940701_206360_1778" name="pContent" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276240946948_96211_1779" name="pSubject" visibility="public" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedParameter xmi:id="_16_8_1b700da_1276240953044_455315_1780" name="pRecipients" visibility="public" type="_16_6_2_1ea00f4_1276548794045_354516_816">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_6_2_1ea00f4_1276549472722_396907_1311" name="" value="*"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_6_2_1ea00f4_1276549472722_816466_1310" name=""/>
                    </ownedParameter>
                    <ownedParameter xmi:id="_16_6_2_1ea00f4_1276549472722_642081_1312" name="" visibility="public" type="_16_6_2_1ea00f4_1276548794029_900853_746" direction="return"/>
                  </ownedOperation>
                </packagedElement>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326132144_246822_6531" name="xfun">
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326144292_140950_6532" name="api">
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326150988_676575_6533" name="errorhandling">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_197a0330_1449678227892_84635_1961" name="ErrorCode"/>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_197a0330_1453824381583_132600_1961" name="FailureMessage"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326188398_910816_6534" name="info">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_17e50302_1309169732554_261168_17696" name="ApplicationInfo">
                    <ownedComment xmi:id="_16_8_17e50302_1309787564121_343416_18436" body="This Class represents an application." annotatedElement="_16_8_17e50302_1309169732554_261168_17696"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1316000600932_158262_8968" name="applicationID" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1315999824454_620779_8704" name="name" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1315999829804_783126_8706" name="description" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1316000647349_842729_8999" name="version" visibility="private" type="_16_8_195e0323_1314714340850_664440_4565" association="_16_8_195e0323_1316000647349_326000_8998">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1316003631250_234911_9196" name="" value="1"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1316003631235_508838_9195" name="" value="1"/>
                    </ownedAttribute>
                    <ownedAttribute xmi:id="_16_8_195e0323_1316000511785_137403_8948" name="websiteURL" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1316012810375_961510_4661" name="applicationProvider" visibility="private" type="_16_8_195e0323_1316012791448_91155_4629" association="_16_8_195e0323_1316012810375_13216_4660">
                      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_16_8_195e0323_1316012822809_728310_4672" name="" value="1"/>
                      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_16_8_195e0323_1316012822808_687045_4671" name="" value="1"/>
                    </ownedAttribute>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1316012791448_91155_4629" name="ApplicationProvider">
                    <ownedAttribute xmi:id="_16_8_195e0323_1316012791448_454153_4630" name="creator" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                    <ownedAttribute xmi:id="_16_8_195e0323_1316012791448_263995_4631" name="creatorURL" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1316012810375_13216_4660" name="" memberEnd="_16_8_195e0323_1316012810376_55193_4662 _16_8_195e0323_1316012810375_961510_4661">
                    <ownedEnd xmi:id="_16_8_195e0323_1316012810376_55193_4662" name="" visibility="private" type="_16_8_17e50302_1309169732554_261168_17696" association="_16_8_195e0323_1316012810375_13216_4660"/>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1314714340850_664440_4565" name="VersionInfo"/>
                  <packagedElement xmi:type="uml:Association" xmi:id="_16_8_195e0323_1316000647349_326000_8998" name="" memberEnd="_16_8_195e0323_1316000647349_55368_9000 _16_8_195e0323_1316000647349_842729_8999">
                    <ownedEnd xmi:id="_16_8_195e0323_1316000647349_55368_9000" name="" visibility="private" type="_16_8_17e50302_1309169732554_261168_17696" association="_16_8_195e0323_1316000647349_326000_8998"/>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_8_1968032c_1452239202858_536769_1961" name="OperatingSystem"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326413395_379189_7385" name="common">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_2aa0154_1276622544640_150419_1581" name="ComponentID"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326458099_171939_7386" name="messages">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1314714230559_888966_4542" name="LocalizedObject"/>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_246b03eb_1311768840639_569925_19074" name="LocalizedString">
                    <ownedAttribute xmi:id="_16_8_246b03eb_1311768898412_128286_19093" name="localizationID" visibility="private">
                      <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
                    </ownedAttribute>
                  </packagedElement>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_197a0330_1449678251947_205579_1962" name="MessageID"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326521092_421414_7387" name="checks">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_195e0323_1320994587067_289090_1869" name="VerificationResult"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1558326553852_475191_7388" name="config">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_6_2_2aa0154_1276622484252_135881_1575" name="ResourceAccessProvider"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Package" xmi:id="_19_0_4_29b40597_1639546849721_560534_5349" name="health">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1ea00f4_1280176389347_199980_2441" name="HealthCheckResult"/>
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279814930367_384831_2832" name="HealthStatus"/>
                </packagedElement>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1561962614133_463416_6798" name="types">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_1981032c_1299600374363_508423_16390" name="Period">
                  <ownedComment xmi:id="_16_8_1981032c_1299600422466_860118_16391" body="Class represents a period of time which is defined by a start and an end date. This class also supports either an open beginning and end or both. &#xA;&#xA;The class is immutable which means that the objects internal state can not be edited after the object was once created.&#xA;" annotatedElement="_16_8_1981032c_1299600374363_508423_16390"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1308208280165_118076_18068" name="start" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                  <ownedAttribute xmi:id="_16_8_246b03eb_1308208300416_72888_18069" name="end" visibility="private" type="_9_5_f720368_1110473546706_973459_8839"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Enumeration" xmi:id="_16_0_1_2aa0154_1265061847640_684939_826" name="Gender">
                  <ownedAttribute xmi:id="_16_0_1_2aa0154_1265061847687_543731_960" name="genderName" visibility="private" type="_9_5_f720368_1110473546612_692218_7691"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265061847687_936713_961" name="MALE(&quot;M&quot;)" classifier="_16_0_1_2aa0154_1265061847640_684939_826"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265061847687_867084_962" name="FEMALE(&quot;F&quot;)" classifier="_16_0_1_2aa0154_1265061847640_684939_826"/>
                  <ownedLiteral xmi:id="_16_0_1_2aa0154_1265061847687_926360_963" name="UNKNOWN(&quot;U&quot;)" classifier="_16_0_1_2aa0154_1265061847640_684939_826"/>
                </packagedElement>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_180f0303_1413787765789_380755_2551" name="EncryptedString">
                  <ownedComment xmi:id="_16_8_180f0303_1413790139530_824794_2640" body="Class represents a string which is encrypted. This class uses  the encryption of the encryption tools. " annotatedElement="_16_8_180f0303_1413787765789_380755_2551"/>
                  <ownedAttribute xmi:id="_16_8_180f0303_1413788627894_986987_2594" name="value" visibility="private" type="_9_5_f720368_1110473546612_692218_7691">
                    <ownedComment xmi:id="_16_8_180f0303_1413790371864_517322_2641" body="The value of the encrypted String" annotatedElement="_16_8_180f0303_1413788627894_986987_2594"/>
                  </ownedAttribute>
                </packagedElement>
              </packagedElement>
            </packagedElement>
            <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1560842143998_276679_6664" name="core">
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1560842150755_51246_6665" name="spi">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279813028141_242763_2707" name="CommunicationProtocol"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279813015462_87178_2706" name="Layer"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_8_2aa0154_1279812144223_210298_2572" name="TransactionBehavior"/>
              </packagedElement>
              <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1561701862264_110347_7526" name="api">
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1260521459312_878984_448" name="ServiceObjectID"/>
                <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1260521459312_644349_447" name="ServiceObject"/>
                <packagedElement xmi:type="uml:Package" xmi:id="_18_5_3_1ea00f4_1562300412912_863329_6641" name="jaas">
                  <packagedElement xmi:type="uml:Class" xmi:id="_16_0_1_2aa0154_1265238841765_884558_792" name="UserPrincipal"/>
                </packagedElement>
              </packagedElement>
            </packagedElement>
          </packagedElement>
        </packagedElement>
      </packagedElement>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="magicdraw_uml_standard_profile_v_0001" name="UML Standard Profile">
      <ownedComment xmi:id="_be00301_1078843546940_242228_131" body="UML Standard Profile contains a UML metamodel (metaclasses without properties and associations), Standard UML stereotypes defined in the annex C of UML specification, validation suites for UML model correctness and completeness checking, and stereotypes used by MagicDraw internally." annotatedElement="magicdraw_uml_standard_profile_v_0001"/>
    </packagedElement>
    <profileApplication xmi:id="_9_0_be00301_1108050582343_527400_10847profileApplicationModel">
      <eAnnotations xmi:id="_a6yaUDA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.StandardProfile.profile.uml#_a6tl1DA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.StandardProfile.profile.uml#_9_0_be00301_1108050582343_527400_10847"/>
    </profileApplication>
    <profileApplication xmi:id="_16_6_8f90291_1254846042821_86742_517profileApplicationModel">
      <eAnnotations xmi:id="_a7SwMTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.MagicDraw_Profile.Traceability_customization.profile.uml#_a6tuQDA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.MagicDraw_Profile.Traceability_customization.profile.uml#_16_6_8f90291_1254846042821_86742_517"/>
    </profileApplication>
    <profileApplication xmi:id="_17_0_4beta_8ca0285_1361349406965_180847_3086profileApplicationModel">
      <eAnnotations xmi:id="_a73X8TA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.Dependency_Matrix_Profile.profile.uml#_a6tvBDA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.Dependency_Matrix_Profile.profile.uml#_17_0_4beta_8ca0285_1361349406965_180847_3086"/>
    </profileApplication>
    <profileApplication xmi:id="_11_5_f720368_1159529670215_231387_1profileApplicationModel">
      <eAnnotations xmi:id="_a8bYoTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.Validation_Profile.profile.uml#_a6t4GTA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.Validation_Profile.profile.uml#_11_5_f720368_1159529670215_231387_1"/>
    </profileApplication>
    <profileApplication xmi:id="_9_0_622020d_1108465332701_602548_6762profileApplicationModel">
      <eAnnotations xmi:id="_a8-LMTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Profile_for_Java.deployment.profile.uml#_a6ttOTA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Profile_for_Java.deployment.profile.uml#_9_0_622020d_1108465332701_602548_6762"/>
    </profileApplication>
    <profileApplication xmi:id="_11_5_be00301_1153310565718_226811_161profileApplicationModel">
      <eAnnotations xmi:id="_a9aQETA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.MagicDraw_Profile.DSL_Customization.profile.uml#_a6bNhjA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.MagicDraw_Profile.DSL_Customization.profile.uml#_11_5_be00301_1153310565718_226811_161"/>
    </profileApplication>
    <profileApplication xmi:id="_18_5_3_1ea00f4_1534265329085_427483_8828profileApplicationModel">
      <eAnnotations xmi:id="_a9_e4TA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="TestProfile.profile.uml#_a6ttfjA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="TestProfile.profile.uml#_18_5_3_1ea00f4_1534265329085_427483_8828"/>
    </profileApplication>
    <profileApplication xmi:id="_be00301_1073394351331_445580_2profileApplicationModel">
      <eAnnotations xmi:id="_a-eAATA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#_a6twLjA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.MagicDraw_Profile.profile.uml#_be00301_1073394351331_445580_2"/>
    </profileApplication>
    <profileApplication xmi:id="_11_5_1ab00d4_1164055757453_405595_1profileApplicationModel">
      <eAnnotations xmi:id="_a-9IMTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="JMM.profile.uml#_a6tl2jA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="JMM.profile.uml#_11_5_1ab00d4_1164055757453_405595_1"/>
    </profileApplication>
    <profileApplication xmi:id="_19_0beta_8bb027e_1484121177637_661582_4502profileApplicationModel">
      <eAnnotations xmi:id="_a_cQYTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Standard_Profile.MagicDraw_Profile.Find_By_Text.profile.uml#_a6tu9jA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Standard_Profile.MagicDraw_Profile.Find_By_Text.profile.uml#_19_0beta_8bb027e_1484121177637_661582_4502"/>
    </profileApplication>
    <profileApplication xmi:id="_8ca0285_1086175413610_136197_1profileApplicationModel">
      <eAnnotations xmi:id="_a_6KcTA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Profile_for_Java.statements.profile.uml#_a6ttvDA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Profile_for_Java.statements.profile.uml#_8ca0285_1086175413610_136197_1"/>
    </profileApplication>
    <profileApplication xmi:id="rimvydas_1048688023274_104450_1422profileApplicationModel">
      <eAnnotations xmi:id="_bATzETA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="UML_Profile_for_Java.profile.uml#_a6t6IzA_Ee2z7qeqSnoW6A"/>
      </eAnnotations>
      <appliedProfile href="UML_Profile_for_Java.profile.uml#rimvydas_1048688023274_104450_1422"/>
    </profileApplication>
    <profileApplication xmi:id="_0profileApplicationModel">
      <eAnnotations xmi:id="_bBpP0DA_Ee2z7qeqSnoW6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
    </profileApplication>
  </uml:Model>
  <TestProfile:MyCustomValidation xmi:id="_bBLVwDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1239229857335_145980_947" severity="Warning" errorCode="4711" myEnum="WORLD"/>
  <JMM:Interceptor xmi:id="_bBLVwTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1257505020640_57711_568"/>
  <JMM:JEAFServiceProviderImpl xmi:id="_bBLVwjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1631202053327_335119_6343"/>
  <JMM:JEAFServiceProviderImpl xmi:id="_bBLVwzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634878964474_972282_6973"/>
  <JMM:JEAFServiceProviderImpl xmi:id="_bBLVxDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1258495467234_303791_757"/>
  <JMM:LoadStrategy xmi:id="_bBLVxTA_Ee2z7qeqSnoW6A" base_Class="_16_8_19800330_1328594019152_746004_3653"/>
  <JMM:LoadStrategy xmi:id="_bBLVxjA_Ee2z7qeqSnoW6A" base_Class="_16_8_18230311_1335193002731_328878_4848"/>
  <JMM:LoadStrategy xmi:id="_bBLVxzA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1312797596858_284537_18242"/>
  <JMM:LoadStrategy xmi:id="_bBLVyDA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1312551302456_690628_19657"/>
  <JMM:LoadStrategy xmi:id="_bBLVyTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313482311785_807482_20544"/>
  <JMM:LoadStrategy xmi:id="_bBLVyjA_Ee2z7qeqSnoW6A" base_Class="_16_8_18440316_1385569551345_715406_3577"/>
  <JMM:LoadStrategy xmi:id="_bBLVyzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1632477567830_41518_5715"/>
  <JMM:LoadStrategy xmi:id="_bBLVzDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635146779673_866944_7768"/>
  <JMM:LoadStrategy xmi:id="_bBLVzTA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1312551534447_835168_4724"/>
  <JMM:JEAFActor xmi:id="_bBLVzjA_Ee2z7qeqSnoW6A" base_Actor="_19_0_4_29b40597_1631081922552_176312_6080"/>
  <JMM:JEAFActor xmi:id="_bBLVzzA_Ee2z7qeqSnoW6A" base_Actor="_16_8_2aa0154_1281367176339_349191_1820"/>
  <JMM:JEAFActor xmi:id="_bBLV0DA_Ee2z7qeqSnoW6A" base_Actor="_16_8_2aa0154_1281367085204_459306_1774"/>
  <JMM:JEAFActor xmi:id="_bBLV0TA_Ee2z7qeqSnoW6A" base_Actor="_16_8_2aa0154_1279551114886_632218_1795"/>
  <JMM:JEAFActor xmi:id="_bBLV0jA_Ee2z7qeqSnoW6A" base_Actor="_16_8_2aa0154_1279551133380_965425_1796"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV0zA_Ee2z7qeqSnoW6A" base_Interface="_16_6_2_2aa0154_1275924404819_375705_1036"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV1DA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1260521788421_629963_474"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV1TA_Ee2z7qeqSnoW6A" base_Interface="_16_8_194c0324_1463692360535_825836_5993"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV1jA_Ee2z7qeqSnoW6A" base_Interface="_16_8_195a0325_1437114963747_714016_3797"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV1zA_Ee2z7qeqSnoW6A" base_Interface="_16_8_13b102ce_1436888175709_386041_3948"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV2DA_Ee2z7qeqSnoW6A" base_Interface="_16_8_195a0325_1437120526461_589713_3863"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV2TA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1631201978342_846596_6318"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV2jA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1634879026515_52257_6999"/>
  <JMM:JEAFServiceProvider xmi:id="_bBLV2zA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1258493800156_780030_580"/>
  <JMM:ApplicationException xmi:id="_bBLV3DA_Ee2z7qeqSnoW6A" base_Class="_16_8_1b700da_1276244674143_610026_1778"/>
  <JMM:ApplicationException xmi:id="_bBLV3TA_Ee2z7qeqSnoW6A" base_Class="_16_8_157a02e7_1286374700859_396932_2892"/>
  <JMM:ApplicationException xmi:id="_bBLV3jA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1309328733178_124273_21293"/>
  <JMM:ApplicationException xmi:id="_bBLV3zA_Ee2z7qeqSnoW6A" base_Class="_16_8_1b700da_1279554949374_299458_2254"/>
  <JMM:ApplicationException xmi:id="_bBLV4DA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_992124_668"/>
  <JMM:ApplicationException xmi:id="_bBLV4TA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_488399_842"/>
  <JMM:ApplicationException xmi:id="_bBLV4jA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1211005209108_72272_938"/>
  <JMM:ApplicationException xmi:id="_bBLV4zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635156479068_519757_7898"/>
  <JMM:ApplicationException xmi:id="_bBLV5DA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1257876074640_633242_929"/>
  <JMM:Field xmi:id="_bBLV5TA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1308208280165_118076_18068"/>
  <JMM:Field xmi:id="_bBLV5jA_Ee2z7qeqSnoW6A" base_Property="_16_8_180f0303_1413788627894_986987_2594"/>
  <JMM:Field xmi:id="_bBLV5zA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1265061847687_543731_960" charLength="15"/>
  <JMM:Field xmi:id="_bBLV6DA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1311768898412_128286_19093"/>
  <JMM:Field xmi:id="_bBLV6TA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1308208300416_72888_18069"/>
  <JMM:Field xmi:id="_bBLV6jA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223906622970_29649_1330"/>
  <JMM:Field xmi:id="_bBLV6zA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1244642795453_274673_434"/>
  <JMM:Field xmi:id="_bBLV7DA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1244642781796_529230_432"/>
  <JMM:Field xmi:id="_bBLV7TA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303968_439664_941"/>
  <JMM:Field xmi:id="_bBLV7jA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303968_210768_942"/>
  <JMM:Field xmi:id="_bBLV7zA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223906740563_559961_1332"/>
  <JMM:Field xmi:id="_bBLV8DA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223907029297_656736_1341" precision="10" scale="3"/>
  <JMM:Field xmi:id="_bBLV8TA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303953_314708_936" unique="true" notNull="true"/>
  <JMM:Field xmi:id="_bBLV8jA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926692349_408760_495"/>
  <JMM:Field xmi:id="_bBLV8zA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926704176_651017_497"/>
  <JMM:Field xmi:id="_bBLV9DA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_103217_956"/>
  <JMM:Field xmi:id="_bBLV9TA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_954655_957"/>
  <JMM:Field xmi:id="_bBLV9jA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303968_742863_955" index="COMPANY_NAME"/>
  <JMM:Field xmi:id="_bBLV9zA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926732940_438289_501"/>
  <JMM:Field xmi:id="_bBLV-DA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926723972_814383_499"/>
  <JMM:Field xmi:id="_bBLV-TA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223907367078_900526_1347"/>
  <JMM:Field xmi:id="_bBLV-jA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223907132297_280219_1344"/>
  <JMM:Field xmi:id="_bBLV-zA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_482014_961"/>
  <JMM:Field xmi:id="_bBLV_DA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1223906289365_909265_1055"/>
  <JMM:Field xmi:id="_bBLV_TA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303968_367487_945"/>
  <JMM:Field xmi:id="_bBLV_jA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_128785_960"/>
  <JMM:Field xmi:id="_bBLV_zA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_975462_958" charLength="64"/>
  <JMM:Field xmi:id="_bBLWADA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387303984_510900_959" charLength="64"/>
  <JMM:Field xmi:id="_bBLWATA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634890242756_794000_8892"/>
  <JMM:Field xmi:id="_bBLWAjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238534652347_512848_936"/>
  <JMM:Field xmi:id="_bBLWAzA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1258116413687_798508_754" lazy="true"/>
  <JMM:Field xmi:id="_bBLWBDA_Ee2z7qeqSnoW6A" base_Property="_16_8_1933031a_1390246793283_231687_5107" charLength="32"/>
  <JMM:Field xmi:id="_bBLWBTA_Ee2z7qeqSnoW6A" base_Property="_16_8_1933031a_1390246758169_235131_5104" charLength="32" notNull="true"/>
  <JMM:Field xmi:id="_bBLWBjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238536349808_528548_1086"/>
  <JMM:Field xmi:id="_bBLWBzA_Ee2z7qeqSnoW6A" base_Property="_16_8_195e0323_1311683712552_914374_5845"/>
  <JMM:Field xmi:id="_bBLWCDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238534659752_486049_938"/>
  <JMM:Field xmi:id="_bBLWCTA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1262075785062_135466_615"/>
  <JMM:Field xmi:id="_bBLWCjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238536366074_155828_1088"/>
  <JMM:Field xmi:id="_bBLWCzA_Ee2z7qeqSnoW6A" base_Property="_16_8_195e0323_1311749852172_51737_2928"/>
  <JMM:Field xmi:id="_bBLWDDA_Ee2z7qeqSnoW6A" base_Property="_16_8_18440316_1413963733036_781498_2129"/>
  <JMM:Field xmi:id="_bBLWDTA_Ee2z7qeqSnoW6A" rowName="ROW_NAME" base_Property="_16_8_246b03eb_1315205324869_900685_5629"/>
  <JMM:Field xmi:id="_bBLWDjA_Ee2z7qeqSnoW6A" base_Property="_16_8_195e0323_1308289443936_604991_5461"/>
  <JMM:Field xmi:id="_bBLWDzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1644391722270_307006_9496"/>
  <JMM:Field xmi:id="_bBLWEDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238617904373_140175_1205"/>
  <JMM:Field xmi:id="_bBLWETA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1315205332867_739880_5631"/>
  <JMM:Field xmi:id="_bBLWEjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1258116391546_768048_752"/>
  <JMM:Field xmi:id="_bBLWEzA_Ee2z7qeqSnoW6A" rowName="WEIRED_ROW_NAME" base_Property="_16_0_1_2aa0154_1238617945545_756621_1208"/>
  <JMM:Field xmi:id="_bBLWFDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238534596012_153252_930"/>
  <JMM:Field xmi:id="_bBLWFTA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238534612494_280259_932"/>
  <JMM:UserType xmi:id="_bBLWFjA_Ee2z7qeqSnoW6A" base_Class="_16_8_1981032c_1299600374363_508423_16390" typeClass="com.anaptecs.jeaf.serviceproviders.persistence.hibernate.types.PeriodType"/>
  <JMM:UserType xmi:id="_bBLWFzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1311768840639_569925_19074" typeClass="com.anaptecs.jeaf.serviceproviders.persistence.hibernate.types.LocalizedStringType"/>
  <JMM:UserType xmi:id="_bBLWGDA_Ee2z7qeqSnoW6A" base_Class="_16_8_180f0303_1413787765789_380755_2551" typeClass="com.anaptecs.jeaf.serviceproviders.persistence.hibernate.types.EncryptedStringType"/>
  <JMM:UserType xmi:id="_bBLWGTA_Ee2z7qeqSnoW6A" typeClass="com.anaptecs.jeaf.serviceproviders.persistence.hibernate.types.GenderType" base_Enumeration="_16_0_1_2aa0154_1265061847640_684939_826"/>
  <JMM:ServiceObject xmi:id="_bBLWGjA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713543135_442765_2314"/>
  <JMM:ServiceObject xmi:id="_bBLWGzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1306821607139_539828_17866"/>
  <JMM:ServiceObject xmi:id="_bBLWHDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19940331_1287322265827_56552_7779"/>
  <JMM:ServiceObject xmi:id="_bBLWHTA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713435635_968018_2270"/>
  <JMM:ServiceObject xmi:id="_bBLWHjA_Ee2z7qeqSnoW6A" base_Class="_16_8_13b102ce_1436933472248_352837_4113"/>
  <JMM:ServiceObject xmi:id="_bBLWHzA_Ee2z7qeqSnoW6A" base_Class="_16_8_13b102ce_1436889407811_902971_4021"/>
  <JMM:ServiceObject xmi:id="_bBLWIDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19940331_1287322119261_810130_7752"/>
  <JMM:ServiceObject xmi:id="_bBLWITA_Ee2z7qeqSnoW6A" base_Class="_16_8_1d410399_1436975011429_54205_3475"/>
  <JMM:ServiceObject xmi:id="_bBLWIjA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1282799035016_615783_2594"/>
  <JMM:ServiceObject xmi:id="_bBLWIzA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713293546_765903_2246"/>
  <JMM:ServiceObject xmi:id="_bBLWJDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282717308795_696344_2610"/>
  <JMM:ServiceObject xmi:id="_bBLWJTA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713503714_352251_2292"/>
  <JMM:ServiceObject xmi:id="_bBLWJjA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1279862713614_34081_2743"/>
  <JMM:ServiceObject xmi:id="_bBLWJzA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1279811958067_260140_2523"/>
  <JMM:ServiceObject xmi:id="_bBLWKDA_Ee2z7qeqSnoW6A" base_Class="_16_8_248d03f8_1328508638565_608509_2644"/>
  <JMM:ServiceObject xmi:id="_bBLWKTA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713744607_772848_2352"/>
  <JMM:ServiceObject xmi:id="_bBLWKjA_Ee2z7qeqSnoW6A" base_Class="_16_8_1837031a_1287059855915_695906_6422"/>
  <JMM:ServiceObject xmi:id="_bBLWKzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1306821004717_891047_17816"/>
  <JMM:ServiceObject xmi:id="_bBLWLDA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1279811663053_114998_2322"/>
  <JMM:ServiceObject xmi:id="_bBLWLTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_84754_836"/>
  <JMM:ServiceObject xmi:id="_bBLWLjA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1279811693753_937489_2344"/>
  <JMM:ServiceObject xmi:id="_bBLWLzA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1279811639841_157324_2301"/>
  <JMM:ServiceObject xmi:id="_bBLWMDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1278059623655_610082_2618"/>
  <JMM:ServiceObject xmi:id="_bBLWMTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_764215_837"/>
  <JMM:ServiceObject xmi:id="_bBLWMjA_Ee2z7qeqSnoW6A" base_Class="_16_8_248d03f8_1328508514703_556767_2618"/>
  <JMM:ServiceObject xmi:id="_bBLWMzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1268842726406_276190_1105"/>
  <JMM:ServiceObject xmi:id="_bBLWNDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_80681_662"/>
  <JMM:ServiceObject xmi:id="_bBLWNTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313071546812_894351_20510"/>
  <JMM:ServiceObject xmi:id="_bBLWNjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1311920471215_324742_19174"/>
  <JMM:ServiceObject xmi:id="_bBLWNzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_40015_666"/>
  <JMM:ServiceObject xmi:id="_bBLWODA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_611093_667"/>
  <JMM:ServiceObject xmi:id="_bBLWOTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_144293_664"/>
  <JMM:ServiceObject xmi:id="_bBLWOjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_727319_665"/>
  <JMM:ServiceObject xmi:id="_bBLWOzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313071316622_472689_20467"/>
  <JMM:ServiceObject xmi:id="_bBLWPDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_162663_804"/>
  <JMM:ServiceObject xmi:id="_bBLWPTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_17642_827"/>
  <JMM:ServiceObject xmi:id="_bBLWPjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_81914_823"/>
  <JMM:ServiceObject xmi:id="_bBLWPzA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1317621508528_724409_5896"/>
  <JMM:ServiceObject xmi:id="_bBLWQDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_443216_820"/>
  <JMM:ServiceObject xmi:id="_bBLWQTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_980806_822"/>
  <JMM:ServiceObject xmi:id="_bBLWQjA_Ee2z7qeqSnoW6A" base_Class="_16_8_18230311_1335192315812_371691_4774"/>
  <JMM:ServiceObject xmi:id="_bBLWQzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313129548192_774247_19131"/>
  <JMM:ServiceObject xmi:id="_bBLWRDA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1314713936663_160105_4468"/>
  <JMM:ServiceObject xmi:id="_bBLWRTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_777139_835"/>
  <JMM:ServiceObject xmi:id="_bBLWRjA_Ee2z7qeqSnoW6A" base_Class="_16_8_248d03f8_1328513752776_796413_2879"/>
  <JMM:ServiceObject xmi:id="_bBLWRzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_355272_830"/>
  <JMM:ServiceObject xmi:id="_bBLWSDA_Ee2z7qeqSnoW6A" base_Class="_16_8_180f0303_1385473935405_736341_3712"/>
  <JMM:ServiceObject xmi:id="_bBLWSTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_616299_818"/>
  <JMM:ServiceObject xmi:id="_bBLWSjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313069129063_20530_20088"/>
  <JMM:ServiceObject xmi:id="_bBLWSzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313043280385_486897_15853"/>
  <JMM:ServiceObject xmi:id="_bBLWTDA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313069176764_772568_20108"/>
  <JMM:ServiceObject xmi:id="_bBLWTTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1311938486914_446309_20131"/>
  <JMM:ServiceObject xmi:id="_bBLWTjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313071665264_314518_20535"/>
  <JMM:ServiceObject xmi:id="_bBLWTzA_Ee2z7qeqSnoW6A" base_Class="_16_8_18230311_1335192105208_992797_4717"/>
  <JMM:ServiceObject xmi:id="_bBLWUDA_Ee2z7qeqSnoW6A" base_Class="_16_8_180f0303_1385473882980_107613_3692"/>
  <JMM:ServiceObject xmi:id="_bBLWUTA_Ee2z7qeqSnoW6A" base_Class="_16_8_183a030e_1496071688523_179908_3235"/>
  <JMM:ServiceObject xmi:id="_bBLWUjA_Ee2z7qeqSnoW6A" base_Class="_16_8_197a0330_1460716422079_205151_4103"/>
  <JMM:ServiceObject xmi:id="_bBLWUzA_Ee2z7qeqSnoW6A" base_Class="_16_8_19550320_1441824511790_379993_3365"/>
  <JMM:ServiceObject xmi:id="_bBLWVDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1236638183765_726460_1083"/>
  <JMM:ServiceObject xmi:id="_bBLWVTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1236638183765_801504_1084"/>
  <JMM:ServiceObject xmi:id="_bBLWVjA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1204197241687_494434_1182"/>
  <JMM:ServiceObject xmi:id="_bBLWVzA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1204275369812_518583_1133"/>
  <JMM:ServiceObject xmi:id="_bBLWWDA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1232316805239_788091_1122"/>
  <JMM:ServiceObject xmi:id="_bBLWWTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1239229857335_145980_947"/>
  <JMM:ServiceObject xmi:id="_bBLWWjA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359706734431_28718_4310"/>
  <JMM:ServiceObject xmi:id="_bBLWWzA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1210923760759_715253_1187"/>
  <JMM:ServiceObject xmi:id="_bBLWXDA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1204197442437_906165_1229"/>
  <JMM:ServiceObject xmi:id="_bBLWXTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194617887244_723645_945"/>
  <JMM:ServiceObject xmi:id="_bBLWXjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1236638183765_800844_1082"/>
  <JMM:ServiceObject xmi:id="_bBLWXzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1268899780703_216197_689"/>
  <JMM:ServiceObject xmi:id="_bBLWYDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648755950650_513968_10132"/>
  <JMM:ServiceObject xmi:id="_bBLWYTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648752441198_124114_10039"/>
  <JMM:ServiceObject xmi:id="_bBLWYjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662643579658_916325_8426"/>
  <JMM:ServiceObject xmi:id="_bBLWYzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637824792881_916793_6393"/>
  <JMM:ServiceObject xmi:id="_bBLWZDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631725821_54752_7987"/>
  <JMM:ServiceObject xmi:id="_bBLWZTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631714423_630869_7965"/>
  <JMM:ServiceObject xmi:id="_bBLWZjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650882679104_502442_8986"/>
  <JMM:ServiceObject xmi:id="_bBLWZzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631774661_989793_8097"/>
  <JMM:ServiceObject xmi:id="_bBLWaDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1649652438720_431305_6584"/>
  <JMM:ServiceObject xmi:id="_bBLWaTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539634769_639650_7992"/>
  <JMM:ServiceObject xmi:id="_bBLWajA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643973801656_621928_7686"/>
  <JMM:ServiceObject xmi:id="_bBLWazA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650896012354_901730_10660"/>
  <JMM:ServiceObject xmi:id="_bBLWbDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539830653_102057_8092"/>
  <JMM:ServiceObject xmi:id="_bBLWbTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648750106722_351838_9576"/>
  <JMM:ServiceObject xmi:id="_bBLWbjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631740182_606036_8031"/>
  <JMM:ServiceObject xmi:id="_bBLWbzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539872471_650927_8117"/>
  <JMM:ServiceObject xmi:id="_bBLWcDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655920335_172948_8893"/>
  <JMM:ServiceObject xmi:id="_bBLWcTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539915276_77382_8142"/>
  <JMM:ServiceObject xmi:id="_bBLWcjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631760199_656242_8075"/>
  <JMM:ServiceObject xmi:id="_bBLWczA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655394918_388083_8804"/>
  <JMM:ServiceObject xmi:id="_bBLWdDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655901084_16413_8871"/>
  <JMM:ServiceObject xmi:id="_bBLWdTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631786110_420826_8121"/>
  <JMM:ServiceObject xmi:id="_bBLWdjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631750525_311608_8053"/>
  <JMM:ServiceObject xmi:id="_bBLWdzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655349933_740058_8782"/>
  <JMM:ServiceObject xmi:id="_bBLWeDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631732822_181473_8009"/>
  <JMM:ServiceObject xmi:id="_bBLWeTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648632267318_850834_8183"/>
  <JMM:ServiceObject xmi:id="_bBLWejA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876696092_555482_8345"/>
  <JMM:ServiceObject xmi:id="_bBLWezA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648496072676_784337_7758"/>
  <JMM:ServiceObject xmi:id="_bBLWfDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876716238_73622_8389"/>
  <JMM:ServiceObject xmi:id="_bBLWfTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974063378_495017_7788"/>
  <JMM:ServiceObject xmi:id="_bBLWfjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928415765_515986_6667"/>
  <JMM:ServiceObject xmi:id="_bBLWfzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647428226749_852272_7464"/>
  <JMM:ServiceObject xmi:id="_bBLWgDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928400521_654557_6645"/>
  <JMM:ServiceObject xmi:id="_bBLWgTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928358661_303389_6620"/>
  <JMM:ServiceObject xmi:id="_bBLWgjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876706660_574340_8367"/>
  <JMM:ServiceObject xmi:id="_bBLWgzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647877019674_643818_8430"/>
  <JMM:ServiceObject xmi:id="_bBLWhDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876672375_65594_8321"/>
  <JMM:ServiceObject xmi:id="_bBLWhTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539952922_598192_8167"/>
  <JMM:ServiceObject xmi:id="_bBLWhjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645766794250_864848_9231"/>
  <JMM:ServiceObject xmi:id="_bBLWhzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539687269_162583_8017"/>
  <JMM:ServiceObject xmi:id="_bBLWiDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647443754194_362498_7508"/>
  <JMM:ServiceObject xmi:id="_bBLWiTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539731019_46847_8042"/>
  <JMM:ServiceObject xmi:id="_bBLWijA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539781153_367076_8067"/>
  <JMM:ServiceObject xmi:id="_bBLWizA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643973845625_433637_7709"/>
  <JMM:ServiceObject xmi:id="_bBLWjDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645766110569_100896_8767"/>
  <JMM:ServiceObject xmi:id="_bBLWjTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643989887732_726456_7848"/>
  <JMM:ServiceObject xmi:id="_bBLWjjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645101833980_646602_7482"/>
  <JMM:ServiceObject xmi:id="_bBLWjzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645101806123_659810_7416"/>
  <JMM:ServiceObject xmi:id="_bBLWkDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974092486_695981_7812"/>
  <JMM:ServiceObject xmi:id="_bBLWkTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645002047057_85091_6602"/>
  <JMM:ServiceObject xmi:id="_bBLWkjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634108447517_938911_6298"/>
  <JMM:ServiceObject xmi:id="_bBLWkzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635343884423_513128_9370"/>
  <JMM:ServiceObject xmi:id="_bBLWlDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634109363867_578933_6415"/>
  <JMM:ServiceObject xmi:id="_bBLWlTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634108460027_728205_6320"/>
  <JMM:ServiceObject xmi:id="_bBLWljA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634117581860_381384_6457"/>
  <JMM:ServiceObject xmi:id="_bBLWlzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634273046627_846167_6839"/>
  <JMM:ServiceObject xmi:id="_bBLWmDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634228437084_1997_7202"/>
  <JMM:ServiceObject xmi:id="_bBLWmTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145078807_370303_6747"/>
  <JMM:ServiceObject xmi:id="_bBLWmjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634148141334_510482_6872"/>
  <JMM:ServiceObject xmi:id="_bBLWmzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634148129444_60131_6850"/>
  <JMM:ServiceObject xmi:id="_bBLWnDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145114362_675145_6792"/>
  <JMM:ServiceObject xmi:id="_bBLWnTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145103751_101719_6770"/>
  <JMM:ServiceObject xmi:id="_bBLWnjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634117906395_138598_6505"/>
  <JMM:ServiceObject xmi:id="_bBLWnzA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1213515458699_700727_915"/>
  <JMM:ServiceObject xmi:id="_bBLWoDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637043194196_665498_6378"/>
  <JMM:ServiceObject xmi:id="_bBLWoTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637043525778_805288_6498"/>
  <JMM:ServiceObject xmi:id="_bBLWojA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1599576767482_160708_11955"/>
  <JMM:ServiceObject xmi:id="_bBLWozA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637043222214_266721_6400"/>
  <JMM:ServiceObject xmi:id="_bBLWpDA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1311660470211_906951_2518"/>
  <JMM:ServiceObject xmi:id="_bBLWpTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635137313132_313619_7067"/>
  <JMM:ServiceObject xmi:id="_bBLWpjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563810232004_652573_12365"/>
  <JMM:ServiceObject xmi:id="_bBLWpzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598334544480_733589_12167"/>
  <JMM:ServiceObject xmi:id="_bBLWqDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563810232004_508527_12364"/>
  <JMM:ServiceObject xmi:id="_bBLWqTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1565676148611_124438_13100"/>
  <JMM:ServiceObject xmi:id="_bBLWqjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635137388281_262393_7092"/>
  <JMM:ServiceObject xmi:id="_bBLWqzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1547622684803_659125_11278"/>
  <JMM:ServiceObject xmi:id="_bBLWrDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598343828344_920402_12568"/>
  <JMM:ServiceObject xmi:id="_bBLWrTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598341692279_133910_12531"/>
  <JMM:ServiceObject xmi:id="_bBLWrjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598341182729_934336_12497"/>
  <JMM:ServiceObject xmi:id="_bBLWrzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598334593134_142681_12191"/>
  <JMM:ServiceObject xmi:id="_bBLWsDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_29b40597_1598335128333_216344_12445"/>
  <JMM:ServiceObject xmi:id="_bBLWsTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563810232004_842253_12363"/>
  <JMM:ServiceObject xmi:id="_bBLWsjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563809813380_839706_12293"/>
  <JMM:ServiceObject xmi:id="_bBLWszA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563809848745_834465_12316"/>
  <JMM:ServiceObject xmi:id="_bBLWtDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1c200dd_1278516095593_156655_2123"/>
  <JMM:ServiceObject xmi:id="_bBLWtTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1212744359754_198540_1246" hasCustomImplementation="true"/>
  <JMM:ServiceObject xmi:id="_bBLWtjA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1213515897336_719895_979"/>
  <JMM:ServiceObject xmi:id="_bBLWtzA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1311660441223_149702_2498"/>
  <JMM:ServiceObject xmi:id="_bBLWuDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563778436774_353737_11308"/>
  <JMM:ServiceObject xmi:id="_bBLWuTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246603ec_1344520197406_875355_2353"/>
  <JMM:ServiceObject xmi:id="_bBLWujA_Ee2z7qeqSnoW6A" base_Class="_16_8_19450325_1358788910270_714157_2838"/>
  <JMM:ServiceObject xmi:id="_bBLWuzA_Ee2z7qeqSnoW6A" base_Class="_16_8_19450325_1358788901138_963077_2837"/>
  <JMM:ServiceObject xmi:id="_bBLWvDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19450325_1358789872424_302560_3960"/>
  <JMM:PersistentObject xmi:id="_bBLWvTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_134505_918" classID="1103" table="BANK"/>
  <JMM:PersistentObject xmi:id="_bBLWvjA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_502307_922" classID="1104"/>
  <JMM:PersistentObject xmi:id="_bBLWvzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1244642703562_380177_409" classID="1120"/>
  <JMM:PersistentObject xmi:id="_bBLWwDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1236926665881_127294_476" classID="1110" table="SAMPLE_ADDRESS"/>
  <JMM:PersistentObject xmi:id="_bBLWwTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_86321_916" classID="1111" table="ACCOUNT"/>
  <JMM:PersistentObject xmi:id="_bBLWwjA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_353841_924" classID="1108"/>
  <JMM:PersistentObject xmi:id="_bBLWwzA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_275373_926" classID="1105"/>
  <JMM:PersistentObject xmi:id="_bBLWxDA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_893059_928" classID="1106"/>
  <JMM:PersistentObject xmi:id="_bBLWxTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_831215_932" classID="1109"/>
  <JMM:PersistentObject xmi:id="_bBLWxjA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_378160_920" classID="1102"/>
  <JMM:PersistentObject xmi:id="_bBLWxzA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194387303953_486390_930" classID="1107" table="SAMPLE_PERSON"/>
  <JMM:PersistentObject xmi:id="_bBLWyDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634890161991_61251_8865" classID="1017"/>
  <JMM:PersistentObject xmi:id="_bBLWyTA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1311683636581_275221_5820" classID="1012"/>
  <JMM:PersistentObject xmi:id="_bBLWyjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238535989355_668965_1000" classID="1003" table="M_RELEATION"/>
  <JMM:PersistentObject xmi:id="_bBLWyzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238534541239_715370_886" classID="1000" table="BASE_CLASS"/>
  <JMM:PersistentObject xmi:id="_bBLWzDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1262075771796_23502_596" classID="1009" table="C_MANY"/>
  <JMM:PersistentObject xmi:id="_bBLWzTA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1283407742187_775815_1761" classID="1010"/>
  <JMM:PersistentObject xmi:id="_bBLWzjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238536111652_890299_1020" classID="1002" table="N_RELATION"/>
  <JMM:PersistentObject xmi:id="_bBLWzzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1239140765829_604931_523" classID="1006"/>
  <JMM:PersistentObject xmi:id="_bBLW0DA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238617790920_504052_1157" classID="1004"/>
  <JMM:PersistentObject xmi:id="_bBLW0TA_Ee2z7qeqSnoW6A" base_Class="_16_8_1933031a_1390246544941_72785_5039" classID="1015"/>
  <JMM:PersistentObject xmi:id="_bBLW0jA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1258116379625_127009_733" classID="1008"/>
  <JMM:PersistentObject xmi:id="_bBLW0zA_Ee2z7qeqSnoW6A" base_Class="_16_8_1933031a_1390246566229_797791_5059" classID="1016"/>
  <JMM:PersistentObject xmi:id="_bBLW1DA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1315205260051_242720_5576" classID="1014"/>
  <JMM:PersistentObject xmi:id="_bBLW1TA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1258116368375_221676_713" classID="1007"/>
  <JMM:PersistentObject xmi:id="_bBLW1jA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1315205277042_670253_5577" classID="1013" OIDRowName="MY_OID" VersionLabelRowName="MY_VERSION_LABEL"/>
  <JMM:PersistentObject xmi:id="_bBLW1zA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238617819420_847924_1180" classID="1005"/>
  <JMM:PersistentObject xmi:id="_bBLW2DA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1238534549879_710391_906" classID="1001" table="CHILD"/>
  <JMM:PersistentObject xmi:id="_bBLW2TA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1283407749346_274996_1781" classID="1011"/>
  <JMM:JEAFService xmi:id="_bBLW2jA_Ee2z7qeqSnoW6A" base_Interface="_16_8_1ea00f4_1282713114801_661699_2227"/>
  <JMM:JEAFService xmi:id="_bBLW2zA_Ee2z7qeqSnoW6A" base_Interface="_16_8_1ea00f4_1282714853934_888313_2793"/>
  <JMM:JEAFService xmi:id="_bBLW3DA_Ee2z7qeqSnoW6A" base_Interface="_16_8_1ea00f4_1282713061121_869634_2207"/>
  <JMM:JEAFService xmi:id="_bBLW3TA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1274114116343_672221_728"/>
  <JMM:JEAFService xmi:id="_bBLW3jA_Ee2z7qeqSnoW6A" base_Interface="_16_8_2aa0154_1279811619357_247697_2282"/>
  <JMM:JEAFService xmi:id="_bBLW3zA_Ee2z7qeqSnoW6A" base_Interface="_16_8_19940331_1287322009177_991665_5677"/>
  <JMM:JEAFService xmi:id="_bBLW4DA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1265398749218_346091_672"/>
  <JMM:JEAFService xmi:id="_bBLW4TA_Ee2z7qeqSnoW6A" base_Interface="_16_8_197a0330_1459310432192_781744_3946"/>
  <JMM:JEAFService xmi:id="_bBLW4jA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1265061847640_126685_803"/>
  <JMM:JEAFService xmi:id="_bBLW4zA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1265398749218_332351_673"/>
  <JMM:JEAFService xmi:id="_bBLW5DA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1265061847640_956439_801"/>
  <JMM:JEAFService xmi:id="_bBLW5TA_Ee2z7qeqSnoW6A" base_Interface="_16_8_246b03eb_1313472570911_719324_19856"/>
  <JMM:JEAFService xmi:id="_bBLW5jA_Ee2z7qeqSnoW6A" base_Interface="_16_8_197a0330_1459310870697_82950_4024"/>
  <JMM:JEAFService xmi:id="_bBLW5zA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1265061847640_171212_834"/>
  <JMM:JEAFService xmi:id="_bBLW6DA_Ee2z7qeqSnoW6A" base_Interface="_12_5_1ea00f4_1194617669684_839205_925"/>
  <JMM:JEAFService xmi:id="_bBLW6TA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1204190434609_597562_710"/>
  <JMM:JEAFService xmi:id="_bBLW6jA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1204190671609_305157_803"/>
  <JMM:JEAFService xmi:id="_bBLW6zA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1232316618430_150345_1049"/>
  <JMM:JEAFService xmi:id="_bBLW7DA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1655183701679_311203_7029"/>
  <JMM:JEAFService xmi:id="_bBLW7TA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1650876317158_497375_9608"/>
  <JMM:JEAFService xmi:id="_bBLW7jA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1634200394708_707747_7020"/>
  <JMM:JEAFService xmi:id="_bBLW7zA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1635340281989_329980_8577"/>
  <JMM:JEAFService xmi:id="_bBLW8DA_Ee2z7qeqSnoW6A" base_Interface="_18_5_3_29b40597_1580846757252_258376_13127"/>
  <JMM:JEAFService xmi:id="_bBLW8TA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1268930343578_99415_610"/>
  <JMM:JEAFService xmi:id="_bBLW8jA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1211615508056_445944_843"/>
  <JMM:JEAFService xmi:id="_bBLW8zA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1635136250833_749023_7031"/>
  <JMM:JEAFService xmi:id="_bBQOQDA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1224535613264_399955_496"/>
  <JMM:JEAFService xmi:id="_bBQOQTA_Ee2z7qeqSnoW6A" base_Interface="_16_8_1c200dd_1278507535687_110013_1872"/>
  <JMM:JEAFService xmi:id="_bBQOQjA_Ee2z7qeqSnoW6A" base_Interface="_16_8_1c200dd_1278506850265_501599_1782"/>
  <JMM:JEAFService xmi:id="_bBQOQzA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1211615495495_206652_824"/>
  <JMM:JEAFService xmi:id="_bBQORDA_Ee2z7qeqSnoW6A" base_Interface="_16_8_158b02e7_1287062730265_869716_5223"/>
  <JMM:JEAFService xmi:id="_bBQORTA_Ee2z7qeqSnoW6A" base_Interface="_16_8_2aa0154_1283334300689_278924_1761"/>
  <JMM:JEAFService xmi:id="_bBQORjA_Ee2z7qeqSnoW6A" base_Interface="_18_5_3_1ea00f4_1547573655484_425967_10128"/>
  <JMM:JEAFService xmi:id="_bBQORzA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1236351027406_465349_437"/>
  <JMM:JEAFService xmi:id="_bBQOSDA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1211699792279_134630_1538"/>
  <JMM:JEAFService xmi:id="_bBQOSTA_Ee2z7qeqSnoW6A" base_Interface="_16_0_1_2aa0154_1257808615187_245990_567"/>
  <JMM:JEAFService xmi:id="_bBQOSjA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1211615353371_608330_781"/>
  <JMM:JEAFService xmi:id="_bBQOSzA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211020252_688222_1114"/>
  <JMM:JEAFService xmi:id="_bBQOTDA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211185143_55351_1214"/>
  <JMM:JEAFService xmi:id="_bBQOTTA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211169065_688565_1195"/>
  <JMM:JEAFService xmi:id="_bBQOTjA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211198096_493104_1233"/>
  <JMM:JEAFService xmi:id="_bBQOTzA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211104581_282923_1138"/>
  <JMM:JEAFService xmi:id="_bBQOUDA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211154096_918295_1176"/>
  <JMM:JEAFService xmi:id="_bBQOUTA_Ee2z7qeqSnoW6A" base_Interface="_12_5_2aa0154_1218211132877_852934_1157"/>
  <JMM:PersistenceUnit xmi:id="_bBQOUjA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1234506944986_491752_1067"/>
  <JMM:PersistenceUnit xmi:id="_bBQOUzA_Ee2z7qeqSnoW6A" base_Component="_18_5_3_29b40597_1588159875818_44781_13213" entityManagerJNDI="JUnitEntityManager" showSQL="GLOBAL_PROPERTY" formatSQL="FALSE"/>
  <JMM:PersistenceUnit xmi:id="_bBQOVDA_Ee2z7qeqSnoW6A" base_Component="_18_5_3_29b40597_1588161721921_909286_13384" entityManagerJNDI="SomeNotExistingEntityManager" showSQL="INDIVIDUAL_PROPERTY" formatSQL="INDIVIDUAL_PROPERTY"/>
  <JMM:ObjectMapping xmi:id="_bBQOVTA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927282391_299719_1306"/>
  <JMM:ObjectMapping xmi:id="_bBQOVjA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1634840490993_124641_7890"/>
  <JMM:ObjectMapping xmi:id="_bBQOVzA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927302173_801070_1315"/>
  <JMM:ObjectMapping xmi:id="_bBQOWDA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359706833429_802062_4409"/>
  <JMM:ObjectMapping xmi:id="_bBQOWTA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359706828530_403282_4405" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQOWjA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359706838393_882499_4417"/>
  <JMM:ObjectMapping xmi:id="_bBQOWzA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1239230168038_51671_1073"/>
  <JMM:ObjectMapping xmi:id="_bBQOXDA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359698638819_18767_3927"/>
  <JMM:ObjectMapping xmi:id="_bBQOXTA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236813223347_629257_894"/>
  <JMM:ObjectMapping xmi:id="_bBQOXjA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236813207580_57604_891"/>
  <JMM:ObjectMapping xmi:id="_bBQOXzA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1237529721456_452420_935"/>
  <JMM:ObjectMapping xmi:id="_bBQOYDA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1239230151413_501042_1066"/>
  <JMM:ObjectMapping xmi:id="_bBQOYTA_Ee2z7qeqSnoW6A" base_Dependency="_12_5_1ea00f4_1199284328087_953172_917"/>
  <JMM:ObjectMapping xmi:id="_bBQOYjA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359698651425_426482_3930"/>
  <JMM:ObjectMapping xmi:id="_bBQOYzA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_19590324_1359698656190_392193_3933" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQOZDA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927597951_563702_1389"/>
  <JMM:ObjectMapping xmi:id="_bBQOZTA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1239230129147_293860_1059"/>
  <JMM:ObjectMapping xmi:id="_bBQOZjA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927587732_464613_1383"/>
  <JMM:ObjectMapping xmi:id="_bBQOZzA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927218923_22473_1303"/>
  <JMM:ObjectMapping xmi:id="_bBQOaDA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927297782_150041_1312"/>
  <JMM:ObjectMapping xmi:id="_bBQOaTA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236813228394_12245_897" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQOajA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927288625_696472_1309"/>
  <JMM:ObjectMapping xmi:id="_bBQOazA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1236927592607_630195_1386" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQObDA_Ee2z7qeqSnoW6A" base_Dependency="_12_5_1ea00f4_1199284430931_537247_934" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQObTA_Ee2z7qeqSnoW6A" base_Dependency="_16_0_1_2aa0154_1238446874422_138206_489" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQObjA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1637043591043_589364_6522"/>
  <JMM:ObjectMapping xmi:id="_bBQObzA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1637048823724_513352_8054"/>
  <JMM:ObjectMapping xmi:id="_bBQOcDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598335181711_681061_12472"/>
  <JMM:ObjectMapping xmi:id="_bBQOcTA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1637043490115_241722_6487"/>
  <JMM:ObjectMapping xmi:id="_bBQOcjA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1637043484437_45816_6484"/>
  <JMM:ObjectMapping xmi:id="_bBQOczA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598335189424_352220_12475"/>
  <JMM:ObjectMapping xmi:id="_bBQOdDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598423216781_329735_12656"/>
  <JMM:ObjectMapping xmi:id="_bBQOdTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1599543452360_928035_11920"/>
  <JMM:ObjectMapping xmi:id="_bBQOdjA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420169369_571893_12634"/>
  <JMM:ObjectMapping xmi:id="_bBQOdzA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598423199245_398738_12649"/>
  <JMM:ObjectMapping xmi:id="_bBQOeDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420158582_577104_12627"/>
  <JMM:ObjectMapping xmi:id="_bBQOeTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420147448_193054_12620"/>
  <JMM:ObjectMapping xmi:id="_bBQOejA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420134571_210479_12613"/>
  <JMM:ObjectMapping xmi:id="_bBQOezA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420122774_640079_12606"/>
  <JMM:ObjectMapping xmi:id="_bBQOfDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_29b40597_1598420109732_332601_12599"/>
  <JMM:ObjectMapping xmi:id="_bBQOfTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565156287671_12840_11249"/>
  <JMM:ObjectMapping xmi:id="_bBQOfjA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565756916822_842079_11774" onCreate="false" onUpdate="false"/>
  <JMM:ObjectMapping xmi:id="_bBQOfzA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565674163155_434257_12624"/>
  <JMM:ObjectMapping xmi:id="_bBQOgDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565756874228_565324_11764"/>
  <JMM:ObjectMapping xmi:id="_bBQOgTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1566201748377_774601_12007"/>
  <JMM:ObjectMapping xmi:id="_bBQOgjA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565242710279_916326_11687"/>
  <JMM:ObjectMapping xmi:id="_bBQOgzA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1566193772000_677111_11962"/>
  <JMM:ObjectMapping xmi:id="_bBQOhDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565241264922_664517_11513"/>
  <JMM:ObjectMapping xmi:id="_bBQOhTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565616724094_948942_11524"/>
  <JMM:ObjectMapping xmi:id="_bBQOhjA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1564404348795_843833_12457"/>
  <JMM:ObjectMapping xmi:id="_bBQOhzA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565157524833_30982_11288"/>
  <JMM:ObjectMapping xmi:id="_bBQOiDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565153510019_436943_11222"/>
  <JMM:ObjectMapping xmi:id="_bBQOiTA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1564412834393_905850_12817"/>
  <JMM:ObjectMapping xmi:id="_bBQOijA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1565153441744_399126_11195"/>
  <JMM:ObjectMapping xmi:id="_bBQOizA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1564412811191_380413_12802"/>
  <JMM:ObjectMapping xmi:id="_bBQOjDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1564405421490_615107_12565"/>
  <JMM:ObjectMapping xmi:id="_bBQOjTA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_246b03eb_1315371090079_292492_2455"/>
  <JMM:ObjectMapping xmi:id="_bBQOjjA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1566881611725_26972_11689"/>
  <JMM:ObjectMapping xmi:id="_bBQOjzA_Ee2z7qeqSnoW6A" base_Dependency="_16_8_246b03eb_1315371098566_343468_2458"/>
  <JMM:ObjectMapping xmi:id="_bBQOkDA_Ee2z7qeqSnoW6A" base_Dependency="_18_5_3_1ea00f4_1566207573411_733654_12582"/>
  <JMM:Role xmi:id="_bBQOkTA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926763048_935371_507">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcYDA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1221481662233_368223_1153" foreignKeyOwner="true" batchSize="20">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcYTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387561125_822061_1497" batchSize="9"/>
  <JMM:Role xmi:id="_bBRcYjA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387357718_951353_1223"/>
  <JMM:Role xmi:id="_bBRcYzA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387739750_589322_1612">
    <cascade>SAVE-UPDATE</cascade>
    <cascade>REFRESH</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcZDA_Ee2z7qeqSnoW6A" linkTable="ACCOUNT_PERSON_LINK" base_Property="_12_5_1ea00f4_1194388250546_977445_1971" batchSize="5"/>
  <JMM:Role xmi:id="_bBRcZTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194388199375_68481_1916" batchSize="13"/>
  <JMM:Role xmi:id="_bBRcZjA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387817593_913161_1670" foreignKeyOwner="true"/>
  <JMM:Role xmi:id="_bBRcZzA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387880187_889573_1725"/>
  <JMM:Role xmi:id="_bBRcaDA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387739750_918276_1613"/>
  <JMM:Role xmi:id="_bBRcaTA_Ee2z7qeqSnoW6A" linkTable="EMPLOYEE_CUSTOMER_LINK" base_Property="_12_5_1ea00f4_1194387561125_890283_1496"/>
  <JMM:Role xmi:id="_bBRcajA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387817593_881219_1669"/>
  <JMM:Role xmi:id="_bBRcazA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387605234_981268_1552"/>
  <JMM:Role xmi:id="_bBRcbDA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387605234_430511_1551"/>
  <JMM:Role xmi:id="_bBRcbTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387465734_275573_1385" foreignKeyOwner="true"/>
  <JMM:Role xmi:id="_bBRcbjA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387357718_354249_1222"/>
  <JMM:Role xmi:id="_bBRcbzA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387412203_595251_1277" foreignKeyOwner="true"/>
  <JMM:Role xmi:id="_bBRccDA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387412203_772685_1278">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRccTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387880187_49314_1724"/>
  <JMM:Role xmi:id="_bBRccjA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194388199375_273268_1917"/>
  <JMM:Role xmi:id="_bBRcczA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194387465734_895779_1386"/>
  <JMM:Role xmi:id="_bBRcdDA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1194388250546_433596_1972"/>
  <JMM:Role xmi:id="_bBRcdTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634890291360_502010_8900">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcdjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634890329824_110673_8928">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcdzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634890329824_288278_8927">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRceDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1262075903500_830313_630">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRceTA_Ee2z7qeqSnoW6A" linkTable="M_N_LINK" base_Property="_16_0_1_2aa0154_1238536172137_227119_1045" batchSize="10">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcejA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238536172137_250806_1046">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcezA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1258116477343_950466_763" foreignKeyName="B_ONE_BO_FK" foreignKeyOwner="true">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcfDA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1315205306441_758987_5619" foreignKeyName="CLASS_B_FK">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcfTA_Ee2z7qeqSnoW6A" base_Property="_16_8_1933031a_1390246639308_858271_5084">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcfjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1262075903500_52536_629">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcfzA_Ee2z7qeqSnoW6A" base_Property="_16_8_246b03eb_1315205306442_965754_5620">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:Role xmi:id="_bBRcgDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1258116477343_795191_762">
    <cascade>NONE</cascade>
  </JMM:Role>
  <JMM:DomainObject xmi:id="_bBRcgTA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359698572557_802149_3877"/>
  <JMM:DomainObject xmi:id="_bBRcgjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903813760_824178_6079"/>
  <JMM:DomainObject xmi:id="_bBRcgzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637043380796_519283_6451"/>
  <JMM:DomainObject xmi:id="_bBRchDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903813760_293679_6077"/>
  <JMM:DomainObject xmi:id="_bBRchTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903813759_114146_6076"/>
  <JMM:DomainObject xmi:id="_bBRchjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903813760_999165_6078"/>
  <JMM:DomainObject xmi:id="_bBRchzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637043358513_199825_6429"/>
  <JMM:DomainObject xmi:id="_bBRciDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359126958535_821675_4039"/>
  <JMM:DomainObject xmi:id="_bBRciTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634885788132_15054_8818"/>
  <JMM:DomainObject xmi:id="_bBRcijA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1644391606198_234379_9192"/>
  <JMM:DomainObject xmi:id="_bBRcizA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634885274657_147848_8074"/>
  <JMM:DomainObject xmi:id="_bBRcjDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1550148354292_212123_11688"/>
  <JMM:DomainObject xmi:id="_bBRcjTA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359126858339_139841_3992" hasCustomImplementation="true"/>
  <JMM:DomainObject xmi:id="_bBRcjjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1550141614773_599180_11672"/>
  <JMM:DomainObject xmi:id="_bBRcjzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1550141526675_954123_11666"/>
  <JMM:DomainObject xmi:id="_bBRckDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359125372263_999934_3265"/>
  <JMM:DomainObject xmi:id="_bBRckTA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359125333055_979617_3225"/>
  <JMM:DomainObject xmi:id="_bBRckjA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359125310692_354314_3205"/>
  <JMM:DomainObject xmi:id="_bBRckzA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359126713353_752204_3955"/>
  <JMM:DomainObject xmi:id="_bBRclDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359125358102_443354_3245"/>
  <JMM:JEAFComponent xmi:id="_bBRclTA_Ee2z7qeqSnoW6A" base_Component="_12_5_1ea00f4_1194618455620_612_990"/>
  <JMM:JEAFComponent xmi:id="_bBRcljA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1204190411796_357260_687"/>
  <JMM:JEAFComponent xmi:id="_bBRclzA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1204190659953_89586_781"/>
  <JMM:JEAFComponent xmi:id="_bBRcmDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1656324584589_129954_7135"/>
  <JMM:JEAFComponent xmi:id="_bBRcmTA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211512565_950051_1633" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcmjA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1211615627037_824644_1132" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcmzA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1211615590136_556478_1131" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcnDA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211478424_629466_1587" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcnTA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211497706_641902_1610" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcnjA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211828913_85784_1811" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcnzA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211533065_331408_1656" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcoDA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211463252_530427_1564" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcoTA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1218211437987_525553_1541" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcojA_Ee2z7qeqSnoW6A" transactionBehavior="NOT_SUPPORTED" base_Component="_16_8_1b700da_1280240610428_60013_1781" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcozA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1224535783656_762690_557" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcpDA_Ee2z7qeqSnoW6A" transactionBehavior="NOT_SUPPORTED" base_Component="_16_8_1c200dd_1278507012109_77405_1804"/>
  <JMM:JEAFComponent xmi:id="_bBRcpTA_Ee2z7qeqSnoW6A" base_Component="_16_0_1_2aa0154_1271796759687_699447_621"/>
  <JMM:JEAFComponent xmi:id="_bBRcpjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1641396823040_328774_6357"/>
  <JMM:JEAFComponent xmi:id="_bBRcpzA_Ee2z7qeqSnoW6A" base_Component="_16_8_158b02e7_1287062936468_789297_5297"/>
  <JMM:JEAFComponent xmi:id="_bBRcqDA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1211702968716_514721_1579" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcqTA_Ee2z7qeqSnoW6A" base_Component="_16_0_1_2aa0154_1257808634625_725596_568" useJEAFSecurity="false"/>
  <JMM:JEAFComponent xmi:id="_bBRcqjA_Ee2z7qeqSnoW6A" base_Component="_12_5_2aa0154_1235419304422_516320_589" useJEAFSecurity="false"/>
  <JMM:SystemException xmi:id="_bBRcqzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1268068220671_535255_721"/>
  <JMM:SystemException xmi:id="_bBRcrDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1b700da_1276244647180_611269_1777"/>
  <JMM:SystemException xmi:id="_bBRcrTA_Ee2z7qeqSnoW6A" base_Class="_16_8_195a0325_1437128408675_762648_4051"/>
  <JMM:SystemException xmi:id="_bBRcrjA_Ee2z7qeqSnoW6A" base_Class="_16_8_157a02e7_1286374697812_414738_2869"/>
  <JMM:SystemException xmi:id="_bBRcrzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1309347171259_217496_21604"/>
  <JMM:SystemException xmi:id="_bBRcsDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265398749203_386297_669"/>
  <JMM:SystemException xmi:id="_bBRcsTA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_75886_841"/>
  <JMM:SystemException xmi:id="_bBRcsjA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1211005191392_384871_918"/>
  <JMM:SystemException xmi:id="_bBRcszA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635156496457_136172_7920"/>
  <JMM:QueryObject xmi:id="_bBRctDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282715305945_494749_2827"/>
  <JMM:QueryObject xmi:id="_bBRctTA_Ee2z7qeqSnoW6A" base_Class="_16_8_282013d_1283176834314_284503_2234"/>
  <JMM:QueryObject xmi:id="_bBRctjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313488636497_487024_20667"/>
  <JMM:QueryObject xmi:id="_bBRctzA_Ee2z7qeqSnoW6A" base_Class="_16_8_1c200dd_1283256244296_692847_2307"/>
  <JMM:QueryObject xmi:id="_bBRcuDA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1282022577389_65835_1814"/>
  <JMM:QueryObject xmi:id="_bBRcuTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635145953476_483621_7740"/>
  <JMM:QueryObject xmi:id="_bBRcujA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635145752815_801579_7706"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcuzA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_19550320_1438927244429_231217_3578"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcvDA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_19560321_1475467221657_448443_2331"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcvTA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_195a0325_1437483667608_94235_3561"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcvjA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_1ea00f4_1282717079484_384061_2584"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcvzA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_2aa0154_1282799890241_270804_2645"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcwDA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_246b03eb_1306845071653_98025_18182"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcwTA_Ee2z7qeqSnoW6A" base_Enumeration="_16_0_1_2aa0154_1265404241453_933196_1535"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcwjA_Ee2z7qeqSnoW6A" base_Enumeration="_16_0_1_2aa0154_1265398749218_599565_674"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcwzA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_197a0330_1460718592803_555851_4186"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcxDA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_18440315_1335975741766_603011_4849"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcxTA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_18100304_1404140027511_229990_3602"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcxjA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_19550320_1462338391871_139126_3893"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcxzA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_246b03eb_1313043490098_634264_18789"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcyDA_Ee2z7qeqSnoW6A" base_Enumeration="_16_0_1_2aa0154_1253741300640_231157_570"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcyTA_Ee2z7qeqSnoW6A" base_Enumeration="_18_5_3_1ea00f4_1534265514023_65523_8909"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcyjA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316742_642449_9532" extensibleEnum="true"/>
  <JMM:JEAFEnumeration xmi:id="_bBRcyzA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316727_745113_9466"/>
  <JMM:JEAFEnumeration xmi:id="_bBRczDA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316727_695136_9461"/>
  <JMM:JEAFEnumeration xmi:id="_bBRczTA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1648318110338_812376_6686" extensibleEnum="true"/>
  <JMM:JEAFEnumeration xmi:id="_bBRczjA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1661874482193_155033_7648"/>
  <JMM:JEAFEnumeration xmi:id="_bBRczzA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1634013013865_772449_6159"/>
  <JMM:JEAFEnumeration xmi:id="_bBRc0DA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1634108529355_19017_6342"/>
  <JMM:JEAFEnumeration xmi:id="_bBRc0TA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1630903813760_809034_6080"/>
  <JMM:JEAFEnumeration xmi:id="_bBRc0jA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1635153694710_419427_7859"/>
  <JMM:JEAFEnumeration xmi:id="_bBRc0zA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1635153685729_778042_7839"/>
  <JMM:JEAFEnumeration xmi:id="_bBRc1DA_Ee2z7qeqSnoW6A" base_Enumeration="_16_8_19590324_1359126552439_914804_3882"/>
  <JMM:JEAFActivity xmi:id="_bBRc1TA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1631006357822_556322_8246"/>
  <JMM:JEAFActivity xmi:id="_bBRc1jA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1631006253234_337872_8245"/>
  <JMM:JEAFActivity xmi:id="_bBRc1zA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1630992753208_406649_6872"/>
  <JMM:JEAFActivity xmi:id="_bBRc2DA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1630992385999_765951_6765"/>
  <JMM:JEAFActivity xmi:id="_bBRc2TA_Ee2z7qeqSnoW6A" base_Activity="_18_5_3_1ea00f4_1550130463618_415042_10953"/>
  <JMM:JEAFActivity xmi:id="_bBRc2jA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1631000582422_870805_8240"/>
  <JMM:JEAFActivity xmi:id="_bBRc2zA_Ee2z7qeqSnoW6A" base_Activity="_19_0_4_29b40597_1635227218591_284364_7351"/>
  <JMM:JEAFActivity xmi:id="_bBRc3DA_Ee2z7qeqSnoW6A" base_Activity="_18_5_3_1ea00f4_1550209355151_791333_11737"/>
  <JMM:JEAFActivity xmi:id="_bBRc3TA_Ee2z7qeqSnoW6A" base_Activity="_18_5_3_1ea00f4_1550129360712_451131_10724"/>
  <JMM:POJO xmi:id="_bBRc3jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662696441757_351272_7326"/>
  <JMM:POJO xmi:id="_bBRc3zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1631123005867_660511_6722"/>
  <JMM:POJO xmi:id="_bBRc4DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1631122403566_623890_6602"/>
  <JMM:POJO xmi:id="_bBRc4TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1631122440524_789981_6646"/>
  <JMM:POJO xmi:id="_bBRc4jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_836105_9542"/>
  <JMM:POJO xmi:id="_bBRc4zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662617418116_407392_8305"/>
  <JMM:POJO xmi:id="_bBRc5DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_651694_9632"/>
  <JMM:POJO xmi:id="_bBRc5TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_899899_9633"/>
  <JMM:POJO xmi:id="_bBRc5jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_993301_9610"/>
  <JMM:POJO xmi:id="_bBRc5zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_673990_9490"/>
  <JMM:POJO xmi:id="_bBRc6DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_735344_9494"/>
  <JMM:POJO xmi:id="_bBRc6TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_145984_9496"/>
  <JMM:POJO xmi:id="_bBRc6jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_890015_9498"/>
  <JMM:POJO xmi:id="_bBRc6zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_691006_9508"/>
  <JMM:POJO xmi:id="_bBRc7DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_696589_9553"/>
  <JMM:POJO xmi:id="_bBRc7TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_649261_9554"/>
  <JMM:POJO xmi:id="_bBRc7jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_296032_9541"/>
  <JMM:POJO xmi:id="_bBRc7zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_932786_9551"/>
  <JMM:POJO xmi:id="_bBRc8DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_908776_9550"/>
  <JMM:POJO xmi:id="_bBRc8TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_529455_9547"/>
  <JMM:POJO xmi:id="_bBRc8jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_198788_9546"/>
  <JMM:POJO xmi:id="_bBRc8zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_860313_9540"/>
  <JMM:POJO xmi:id="_bBRc9DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_724680_9514"/>
  <JMM:POJO xmi:id="_bBRc9TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_270924_9543"/>
  <JMM:POJO xmi:id="_bBRc9jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_834447_9539"/>
  <JMM:POJO xmi:id="_bBRc9zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_432031_9538"/>
  <JMM:POJO xmi:id="_bBRc-DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_542116_9516"/>
  <JMM:POJO xmi:id="_bBRc-TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_369026_9536"/>
  <JMM:POJO xmi:id="_bBRc-jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_571392_9535"/>
  <JMM:POJO xmi:id="_bBRc-zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_464515_9537"/>
  <JMM:POJO xmi:id="_bBRc_DA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_717721_9520"/>
  <JMM:POJO xmi:id="_bBRc_TA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_342431_9533"/>
  <JMM:POJO xmi:id="_bBRc_jA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_46785_9460"/>
  <JMM:POJO xmi:id="_bBRc_zA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_88989_9531"/>
  <JMM:POJO xmi:id="_bBRdADA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_127183_9530"/>
  <JMM:POJO xmi:id="_bBRdATA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_635330_9529"/>
  <JMM:POJO xmi:id="_bBRdAjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_425205_9525"/>
  <JMM:POJO xmi:id="_bBRdAzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_445218_9524"/>
  <JMM:POJO xmi:id="_bBRdBDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_12644_9523"/>
  <JMM:POJO xmi:id="_bBRdBTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_170546_9522"/>
  <JMM:POJO xmi:id="_bBRdBjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_371383_9521"/>
  <JMM:POJO xmi:id="_bBRdBzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_891956_9459"/>
  <JMM:POJO xmi:id="_bBRdCDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_460834_9519"/>
  <JMM:POJO xmi:id="_bBRdCTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_451489_9518"/>
  <JMM:POJO xmi:id="_bBRdCjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_957958_9517"/>
  <JMM:POJO xmi:id="_bBRdCzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_897268_9515"/>
  <JMM:POJO xmi:id="_bBRdDDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_34061_9513"/>
  <JMM:POJO xmi:id="_bBRdDTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_234180_9502"/>
  <JMM:POJO xmi:id="_bBRdDjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_34903_9509"/>
  <JMM:POJO xmi:id="_bBRdDzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_331431_9504"/>
  <JMM:POJO xmi:id="_bBRdEDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_131817_9505"/>
  <JMM:POJO xmi:id="_bBRdETA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_138694_9501"/>
  <JMM:POJO xmi:id="_bBRdEjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_937385_9500"/>
  <JMM:POJO xmi:id="_bBRdEzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_7936_9499"/>
  <JMM:POJO xmi:id="_bBRdFDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_80986_9495"/>
  <JMM:POJO xmi:id="_bBRdFTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_106678_9492"/>
  <JMM:POJO xmi:id="_bBRdFjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_531332_9491"/>
  <JMM:POJO xmi:id="_bBRdFzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_26968_9469"/>
  <JMM:POJO xmi:id="_bBRdGDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_276212_9478"/>
  <JMM:POJO xmi:id="_bBRdGTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_683094_9488"/>
  <JMM:POJO xmi:id="_bBRdGjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_289231_9485"/>
  <JMM:POJO xmi:id="_bBRdGzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_356649_9484"/>
  <JMM:POJO xmi:id="_bBRdHDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_20174_9483"/>
  <JMM:POJO xmi:id="_bBRdHTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_853648_9482"/>
  <JMM:POJO xmi:id="_bBRdHjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_249385_9480"/>
  <JMM:POJO xmi:id="_bBRdHzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_684758_9479"/>
  <JMM:POJO xmi:id="_bBRdIDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_208570_9477"/>
  <JMM:POJO xmi:id="_bBRdITA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_411030_9476"/>
  <JMM:POJO xmi:id="_bBRdIjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_13966_9475"/>
  <JMM:POJO xmi:id="_bBRdIzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_773347_9473"/>
  <JMM:POJO xmi:id="_bBRdJDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_802699_9471"/>
  <JMM:POJO xmi:id="_bBRdJTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_412412_9465"/>
  <JMM:POJO xmi:id="_bBRdJjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_588172_9464"/>
  <JMM:POJO xmi:id="_bBRdJzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903820948_115446_6315"/>
  <JMM:POJO xmi:id="_bBRdKDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903820949_137846_6317"/>
  <JMM:POJO xmi:id="_bBRdKTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903820949_582243_6316"/>
  <JMM:POJO xmi:id="_bBRdKjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1630903820949_165279_6318"/>
  <JMM:POJO xmi:id="_bBRdKzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1644390500939_781126_8804" hasCustomImplementation="true"/>
  <JMM:POJO xmi:id="_bBRdLDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647445829711_472028_7965" hasCustomImplementation="true"/>
  <JMM:POJO xmi:id="_bBRdLTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647445873161_173510_7988"/>
  <JMM:POJO xmi:id="_bBRdLjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1564412666204_293772_12628"/>
  <JMM:POJO xmi:id="_bBRdLzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1564412644315_289351_12625"/>
  <JMM:POJO xmi:id="_bBRdMDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563879090147_148916_11480"/>
  <JMM:POJO xmi:id="_bBRdMTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563946588039_740569_11157"/>
  <JMM:POJO xmi:id="_bBRdMjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563601839903_187550_10877"/>
  <JMM:POJO xmi:id="_bBRdMzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563433316889_667130_11065"/>
  <JMM:POJO xmi:id="_bBRdNDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563426574719_517428_10809"/>
  <JMM:POJO xmi:id="_bBRdNTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563426546802_12335_10786"/>
  <JMM:POJO xmi:id="_bBRdNjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563426525618_230907_10763"/>
  <JMM:POJO xmi:id="_bBRdNzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563426500436_900291_10740"/>
  <JMM:POJO xmi:id="_bBRdODA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563204635509_67192_10956"/>
  <JMM:POJO xmi:id="_bBRdOTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563203693868_816419_10861"/>
  <JMM:POJO xmi:id="_bBRdOjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563203797385_718200_10913"/>
  <JMM:POJO xmi:id="_bBRdOzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563203750060_15565_10888"/>
  <JMM:Identifiable xmi:id="_bBRdPDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713543135_442765_2314"/>
  <JMM:Identifiable xmi:id="_bBRdPTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1306821607139_539828_17866"/>
  <JMM:Identifiable xmi:id="_bBRdPjA_Ee2z7qeqSnoW6A" base_Class="_16_8_19940331_1287322265827_56552_7779"/>
  <JMM:Identifiable xmi:id="_bBRdPzA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713435635_968018_2270"/>
  <JMM:Identifiable xmi:id="_bBRdQDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19940331_1287322119261_810130_7752"/>
  <JMM:Identifiable xmi:id="_bBRdQTA_Ee2z7qeqSnoW6A" base_Class="_16_8_1d410399_1436975011429_54205_3475"/>
  <JMM:Identifiable xmi:id="_bBRdQjA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282713293546_765903_2246"/>
  <JMM:Identifiable xmi:id="_bBRdQzA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1282717308795_696344_2610"/>
  <JMM:Identifiable xmi:id="_bBRdRDA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1279862713614_34081_2743"/>
  <JMM:Identifiable xmi:id="_bBRdRTA_Ee2z7qeqSnoW6A" base_Class="_16_8_248d03f8_1328508638565_608509_2644"/>
  <JMM:Identifiable xmi:id="_bBRdRjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1306821004717_891047_17816"/>
  <JMM:Identifiable xmi:id="_bBRdRzA_Ee2z7qeqSnoW6A" base_Class="_16_8_2aa0154_1279811663053_114998_2322"/>
  <JMM:Identifiable xmi:id="_bBRdSDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_84754_836"/>
  <JMM:Identifiable xmi:id="_bBRdSTA_Ee2z7qeqSnoW6A" base_Class="_16_8_1ea00f4_1278059623655_610082_2618"/>
  <JMM:Identifiable xmi:id="_bBRdSjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_764215_837"/>
  <JMM:Identifiable xmi:id="_bBRdSzA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313071546812_894351_20510"/>
  <JMM:Identifiable xmi:id="_bBRdTDA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1311920471215_324742_19174"/>
  <JMM:Identifiable xmi:id="_bBRdTTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313071316622_472689_20467"/>
  <JMM:Identifiable xmi:id="_bBRdTjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_162663_804"/>
  <JMM:Identifiable xmi:id="_bBRdTzA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1317621508528_724409_5896"/>
  <JMM:Identifiable xmi:id="_bBRdUDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_443216_820"/>
  <JMM:Identifiable xmi:id="_bBRdUTA_Ee2z7qeqSnoW6A" base_Class="_16_8_18230311_1335192315812_371691_4774"/>
  <JMM:Identifiable xmi:id="_bBRdUjA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313129548192_774247_19131"/>
  <JMM:Identifiable xmi:id="_bBRdUzA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1314713936663_160105_4468"/>
  <JMM:Identifiable xmi:id="_bBRdVDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_777139_835"/>
  <JMM:Identifiable xmi:id="_bBRdVTA_Ee2z7qeqSnoW6A" base_Class="_16_8_248d03f8_1328513752776_796413_2879"/>
  <JMM:Identifiable xmi:id="_bBRdVjA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1265061847640_355272_830"/>
  <JMM:Identifiable xmi:id="_bBRdVzA_Ee2z7qeqSnoW6A" base_Class="_16_8_180f0303_1385473935405_736341_3712"/>
  <JMM:Identifiable xmi:id="_bBRdWDA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313043280385_486897_15853"/>
  <JMM:Identifiable xmi:id="_bBRdWTA_Ee2z7qeqSnoW6A" base_Class="_16_8_246b03eb_1313069176764_772568_20108"/>
  <JMM:Identifiable xmi:id="_bBRdWjA_Ee2z7qeqSnoW6A" base_Class="_16_8_183a030e_1496071688523_179908_3235"/>
  <JMM:Identifiable xmi:id="_bBRdWzA_Ee2z7qeqSnoW6A" base_Class="_16_8_19550320_1441824511790_379993_3365"/>
  <JMM:Identifiable xmi:id="_bBRdXDA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1236638183765_726460_1083"/>
  <JMM:Identifiable xmi:id="_bBRdXTA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1204275369812_518583_1133"/>
  <JMM:Identifiable xmi:id="_bBRdXjA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1232316805239_788091_1122"/>
  <JMM:Identifiable xmi:id="_bBRdXzA_Ee2z7qeqSnoW6A" base_Class="_16_0_1_2aa0154_1239229857335_145980_947"/>
  <JMM:Identifiable xmi:id="_bBRdYDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359706734431_28718_4310"/>
  <JMM:Identifiable xmi:id="_bBRdYTA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194617887244_723645_945"/>
  <JMM:Identifiable xmi:id="_bBRdYjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643973801656_621928_7686"/>
  <JMM:Identifiable xmi:id="_bBRdYzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974063378_495017_7788"/>
  <JMM:Identifiable xmi:id="_bBRdZDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974092486_695981_7812"/>
  <JMM:Identifiable xmi:id="_bBRdZTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634109363867_578933_6415"/>
  <JMM:Identifiable xmi:id="_bBRdZjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634117581860_381384_6457"/>
  <JMM:Identifiable xmi:id="_bBRdZzA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1213515458699_700727_915"/>
  <JMM:Identifiable xmi:id="_bBRdaDA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1311660470211_906951_2518"/>
  <JMM:Identifiable xmi:id="_bBRdaTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563810232004_508527_12364"/>
  <JMM:Identifiable xmi:id="_bBRdajA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563810232004_842253_12363"/>
  <JMM:Identifiable xmi:id="_bBRdazA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563809848745_834465_12316"/>
  <JMM:Identifiable xmi:id="_bBRdbDA_Ee2z7qeqSnoW6A" base_Class="_16_8_195e0323_1311660441223_149702_2498"/>
  <JMM:Identifiable xmi:id="_bBRdbTA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563778436774_353737_11308"/>
  <JMM:Identifiable xmi:id="_bBRdbjA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563879090147_148916_11480"/>
  <JMM:Identifiable xmi:id="_bBRdbzA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563946588039_740569_11157"/>
  <JMM:Identifiable xmi:id="_bBRdcDA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359125372263_999934_3265"/>
  <JMM:Identifiable xmi:id="_bBRdcTA_Ee2z7qeqSnoW6A" base_Class="_16_8_19590324_1359126713353_752204_3955"/>
  <JMM:RESTResource xmi:id="_bBRdcjA_Ee2z7qeqSnoW6A" base_Interface="_12_5_1ea00f4_1194617669684_839205_925" path="/api/v1/accounting">
    <produces>APPLICATION_XML</produces>
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_XML</consumes>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRdczA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1661922236471_686767_9418">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRddDA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1661922105302_824816_7158" path="invalid-path"/>
  <JMM:RESTResource xmi:id="_bBRddTA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1655183701679_311203_7029" path="/rest-products">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRddjA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1650876317158_497375_9608" path="/products">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRddzA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1634200394708_707747_7020" path="/products">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRdeDA_Ee2z7qeqSnoW6A" base_Interface="_19_0_4_29b40597_1635340281989_329980_8577" path="/do/something">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTResource xmi:id="_bBRdeTA_Ee2z7qeqSnoW6A" base_Interface="_18_5_3_29b40597_1580846757252_258376_13127" path="/api">
    <produces>APPLICATION_JSON</produces>
    <produces>APPLICATION_XML</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTResource>
  <JMM:RESTOperation xmi:id="_bBRdejA_Ee2z7qeqSnoW6A" path="test-date-header-params-beans/{path}" base_Operation="_19_0_4_29b40597_1662696388235_115561_7232">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdezA_Ee2z7qeqSnoW6A" path="test-date-header-params/{path}" base_Operation="_19_0_4_29b40597_1662696388231_807051_7231">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdfDA_Ee2z7qeqSnoW6A" path="bookings" async="true" base_Operation="_12_5_2aa0154_1204197679281_377321_1362">
    <httpMethods>PUT</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdfTA_Ee2z7qeqSnoW6A" path="test-enum-params/{channelType}" base_Operation="_19_0_4_29b40597_1662015708808_627849_7147">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdfjA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1661932692696_79234_10211">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdfzA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1661949778244_170997_10777">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdgDA_Ee2z7qeqSnoW6A" path="/invalid-operation-path" base_Operation="_19_0_4_29b40597_1661934658857_73042_10220">
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdgTA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1661922161426_384139_9407">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdgjA_Ee2z7qeqSnoW6A" path="test-date-query-params/{path}" base_Operation="_19_0_4_29b40597_1662113225550_634548_7157">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdgzA_Ee2z7qeqSnoW6A" path="test-date-query-params-beans/{path}" base_Operation="_19_0_4_29b40597_1662619290011_381256_8399">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdhDA_Ee2z7qeqSnoW6A" path="test-enum-header-params" base_Operation="_19_0_4_29b40597_1662043440399_236220_8036">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdhTA_Ee2z7qeqSnoW6A" path="ExternalBeanParam" base_Operation="_19_0_4_29b40597_1650876317396_326830_10078">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdhjA_Ee2z7qeqSnoW6A" path="test-params" base_Operation="_19_0_4_29b40597_1655911709829_60815_7091">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdhzA_Ee2z7qeqSnoW6A" path="async-currencies/{channelCode}" async="true" base_Operation="_19_0_4_29b40597_1655279341786_994252_9881">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdiDA_Ee2z7qeqSnoW6A" path="currencies/{channelCode}" base_Operation="_19_0_4_29b40597_1655268015710_654984_7065">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdiTA_Ee2z7qeqSnoW6A" path="deprecated/complexReturn" base_Operation="_19_0_4_29b40597_1650876317396_831059_10071">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdijA_Ee2z7qeqSnoW6A" path="test-init" base_Operation="_19_0_4_29b40597_1655184407986_337500_9439">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdizA_Ee2z7qeqSnoW6A" path="sortiment/{id}" base_Operation="_19_0_4_29b40597_1655183701685_263253_7033">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBRdjDA_Ee2z7qeqSnoW6A" path="ChannelCode" base_Operation="_19_0_4_29b40597_1655183701685_136150_7034">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU4DA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1655183701686_553778_7035">
    <httpMethods>HEAD</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU4TA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1655183701684_87264_7032">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU4jA_Ee2z7qeqSnoW6A" async="true" base_Operation="_19_0_4_29b40597_1655183701684_903925_7030" externalDocsURL="https://jeaf.anaptecs.de/link2">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU4zA_Ee2z7qeqSnoW6A" path="{id}" base_Operation="_19_0_4_29b40597_1655183701684_483080_7031">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU5DA_Ee2z7qeqSnoW6A" path="currencies/valid" base_Operation="_19_0_4_29b40597_1650876317396_965190_10075">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU5TA_Ee2z7qeqSnoW6A" path="deprecated/context" base_Operation="_19_0_4_29b40597_1650876317396_27150_10066">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU5jA_Ee2z7qeqSnoW6A" path="ChildBeanParam" base_Operation="_19_0_4_29b40597_1650876317396_620788_10079">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU5zA_Ee2z7qeqSnoW6A" path="specific/{id}" base_Operation="_19_0_4_29b40597_1650876317396_126448_10072">
    <httpMethods>PATCH</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU6DA_Ee2z7qeqSnoW6A" path="codeTypeUsages" base_Operation="_19_0_4_29b40597_1650876317396_341852_10076">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU6TA_Ee2z7qeqSnoW6A" path="LocalBeanParam" base_Operation="_19_0_4_29b40597_1650876317396_684530_10077">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU6jA_Ee2z7qeqSnoW6A" path="currencies" base_Operation="_19_0_4_29b40597_1650876317396_464542_10074">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU6zA_Ee2z7qeqSnoW6A" path="ChannelCodeObject" base_Operation="_19_0_4_29b40597_1650876317396_139704_10073">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU7DA_Ee2z7qeqSnoW6A" path="deprecated/body" base_Operation="_19_0_4_29b40597_1650876317396_687435_10069">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU7TA_Ee2z7qeqSnoW6A" path="deprecated/complexBody" base_Operation="_19_0_4_29b40597_1650876317396_855505_10070">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU7jA_Ee2z7qeqSnoW6A" path="deprecated/operation" base_Operation="_19_0_4_29b40597_1650876317396_433683_10065">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU7zA_Ee2z7qeqSnoW6A" path="ChannelCode" base_Operation="_19_0_4_29b40597_1650876317396_109596_10063">
    <httpMethods>POST</httpMethods>
    <produces>APPLICATION_JSON</produces>
    <consumes>APPLICATION_JSON</consumes>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU8DA_Ee2z7qeqSnoW6A" path="deprecated/beanParams" base_Operation="_19_0_4_29b40597_1650876317396_410447_10067">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU8TA_Ee2z7qeqSnoW6A" path="deprecated/params" base_Operation="_19_0_4_29b40597_1650876317396_824310_10068">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU8jA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1650876317396_291845_10064">
    <httpMethods>HEAD</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU8zA_Ee2z7qeqSnoW6A" path="sortiment/{id}" base_Operation="_19_0_4_29b40597_1650876317396_689413_10062">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU9DA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1650876317396_833642_10061">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU9TA_Ee2z7qeqSnoW6A" async="true" base_Operation="_19_0_4_29b40597_1650876317396_114207_10059" externalDocsURL="https://jeaf.anaptecs.de/link2">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU9jA_Ee2z7qeqSnoW6A" path="{id}" base_Operation="_19_0_4_29b40597_1650876317396_521617_10060">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU9zA_Ee2z7qeqSnoW6A" path="test-date-query-params-beans/{path}" base_Operation="_19_0_4_29b40597_1662643409736_231426_8413">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU-DA_Ee2z7qeqSnoW6A" path="currencies" base_Operation="_19_0_4_29b40597_1646653765592_313591_7446">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU-TA_Ee2z7qeqSnoW6A" path="async-currencies/{channelCode}" async="true" base_Operation="_19_0_4_29b40597_1655278319037_907592_9844">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU-jA_Ee2z7qeqSnoW6A" path="DefaultChannel" base_Operation="_19_0_4_29b40597_1651074553573_964657_7020">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU-zA_Ee2z7qeqSnoW6A" path="deprecated/beanParams" base_Operation="_19_0_4_29b40597_1635344212851_55162_9440">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU_DA_Ee2z7qeqSnoW6A" path="currencies/{channelCode}" base_Operation="_19_0_4_29b40597_1655269618053_855631_7629">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU_TA_Ee2z7qeqSnoW6A" path="ChildBeanParam" base_Operation="_19_0_4_29b40597_1648756070090_182337_10162">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU_jA_Ee2z7qeqSnoW6A" path="test-date-query-params/{path}" base_Operation="_19_0_4_29b40597_1662613857055_701194_7193">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWU_zA_Ee2z7qeqSnoW6A" path="codeTypeUsages" statusCode="202_ACCEPTED" base_Operation="_19_0_4_29b40597_1648635415541_475658_8256">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVADA_Ee2z7qeqSnoW6A" path="LocalBeanParam" base_Operation="_19_0_4_29b40597_1648752515433_147080_10069">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVATA_Ee2z7qeqSnoW6A" path="channels" base_Operation="_19_0_4_29b40597_1651074402258_159489_7008">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVAjA_Ee2z7qeqSnoW6A" path="currencies/valid" base_Operation="_19_0_4_29b40597_1646653810088_414681_7450">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVAzA_Ee2z7qeqSnoW6A" path="deprecated/operation" base_Operation="_19_0_4_29b40597_1635343824869_675998_9366">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVBDA_Ee2z7qeqSnoW6A" path="deprecated/params" base_Operation="_19_0_4_29b40597_1635344369872_440153_9449">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVBTA_Ee2z7qeqSnoW6A" path="ExternalBeanParam" base_Operation="_19_0_4_29b40597_1648755724339_622069_10099">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVBjA_Ee2z7qeqSnoW6A" path="ChannelCodeObject" base_Operation="_19_0_4_29b40597_1645720798112_293932_8745">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVBzA_Ee2z7qeqSnoW6A" path="IBAN" base_Operation="_19_0_4_29b40597_1650896434228_315329_10720">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVCDA_Ee2z7qeqSnoW6A" path="specific/{id}" base_Operation="_19_0_4_29b40597_1645002282790_705809_7421">
    <httpMethods>PATCH</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVCTA_Ee2z7qeqSnoW6A" path="deprecated/complexBody" base_Operation="_19_0_4_29b40597_1635396297258_69060_7032">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVCjA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1634632000071_626514_7153">
    <httpMethods>HEAD</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVCzA_Ee2z7qeqSnoW6A" path="deprecated/complexReturn" base_Operation="_19_0_4_29b40597_1635408494454_842421_6410">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVDDA_Ee2z7qeqSnoW6A" path="deprecated/context" base_Operation="_19_0_4_29b40597_1635344079339_347608_9431">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVDTA_Ee2z7qeqSnoW6A" path="deprecated/body" base_Operation="_19_0_4_29b40597_1635394850848_830271_6323">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVDjA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1634218398510_479224_7175">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVDzA_Ee2z7qeqSnoW6A" path="ChannelCode" base_Operation="_19_0_4_29b40597_1634630601286_406158_7139">
    <httpMethods>POST</httpMethods>
    <produces>APPLICATION_XML</produces>
    <consumes>APPLICATION_XML</consumes>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVEDA_Ee2z7qeqSnoW6A" path="sortiment/{id}" base_Operation="_19_0_4_29b40597_1634533462979_783397_6289">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVETA_Ee2z7qeqSnoW6A" path="{id}" base_Operation="_19_0_4_29b40597_1634200714181_306812_7058">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVEjA_Ee2z7qeqSnoW6A" async="true" base_Operation="_19_0_4_29b40597_1634200453970_431024_7040" externalDocsURL="https://jeaf.anaptecs.de/link2">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVEzA_Ee2z7qeqSnoW6A" path="dep/async" async="true" base_Operation="_19_0_4_29b40597_1635340547388_890023_8618">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVFDA_Ee2z7qeqSnoW6A" path="dep/async" async="true" base_Operation="_19_0_4_29b40597_1635340419995_205364_8607">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVFTA_Ee2z7qeqSnoW6A" path="beanParam2" base_Operation="_19_0_4_29b40597_1634273182067_181949_6898">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVFjA_Ee2z7qeqSnoW6A" base_Operation="_19_0_4_29b40597_1635340346384_395412_8596">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVFzA_Ee2z7qeqSnoW6A" path="deprecation/dep2" base_Operation="_19_0_4_29b40597_1635223722981_257347_7294">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVGDA_Ee2z7qeqSnoW6A" path="deprecation/dep3" base_Operation="_19_0_4_29b40597_1635223776787_356649_7299">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVGTA_Ee2z7qeqSnoW6A" path="deprcation/dep1" base_Operation="_19_0_4_29b40597_1635223697113_461413_7290">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVGjA_Ee2z7qeqSnoW6A" path="beanParam1" base_Operation="_19_0_4_29b40597_1634273134831_591486_6894">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVGzA_Ee2z7qeqSnoW6A" path="something/{id}" base_Operation="_19_0_4_29b40597_1634193652680_202119_6688">
    <httpMethods>GET</httpMethods>
    <produces>APPLICATION_JSON</produces>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVHDA_Ee2z7qeqSnoW6A" path="very/special/path" base_Operation="_18_5_3_29b40597_1580899081193_940544_12219">
    <httpMethods>PUT</httpMethods>
    <consumes>APPLICATION_OCTET_STREAM</consumes>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBWVHTA_Ee2z7qeqSnoW6A" statusCode="205_RESET_CONTENT" async="true" base_Operation="_18_5_3_29b40597_1580846870708_269616_13176">
    <httpMethods>POST</httpMethods>
  </JMM:RESTOperation>
  <JMM:RESTOperation xmi:id="_bBXjADA_Ee2z7qeqSnoW6A" statusCode="202_ACCEPTED" base_Operation="_18_5_3_29b40597_1580846799436_397375_13168">
    <httpMethods>GET</httpMethods>
  </JMM:RESTOperation>
  <JMM:OpenAPI3Specification xmi:id="_bBXjBDA_Ee2z7qeqSnoW6A" resourceName="products/product-services.yml" base_Component="_19_0_4_29b40597_1650876317158_372597_9609" contactName="JEAF Development Team" contactURL="https://www.anaptecs.de/jeaf" contactEmail="jeaf@anaptecs.de" licenseName="Apache 2.0" licenseURL="https://www.apache.org/licenses/LICENSE-2.0.html" termsOfUseURL="https://www.anaptecs.de/jeaf/TermsOfUse" securityOptional="true"/>
  <JMM:OpenAPI3Specification xmi:id="_bBXjBTA_Ee2z7qeqSnoW6A" resourceName="base/product-base.yml" apiVersion="0.0.1" base_Component="_19_0_4_29b40597_1650876316727_111572_9458" contactName="JEAF Development Team" contactURL="https://www.anaptecs.de/jeaf" contactEmail="jeaf@anaptecs.de" licenseName="Apache 2.0" licenseURL="https://www.apache.org/licenses/LICENSE-2.0.html" explicityTypeOrdering="true"/>
  <JMM:OpenAPI3Specification xmi:id="_bBXjBjA_Ee2z7qeqSnoW6A" resourceName="products/product-services.yml" base_Component="_19_0_4_29b40597_1634201895250_971889_7106" contactName="JEAF Development Team" contactURL="https://www.anaptecs.de/jeaf" contactEmail="jeaf@anaptecs.de" licenseName="Apache 2.0" licenseURL="https://www.apache.org/licenses/LICENSE-2.0.html" termsOfUseURL="https://www.anaptecs.de/jeaf/TermsOfUse" securityOptional="true"/>
  <JMM:OpenAPI3Specification xmi:id="_bBXjBzA_Ee2z7qeqSnoW6A" resourceName="base/product-base.yml" apiVersion="0.0.1" base_Component="_19_0_4_29b40597_1633945444491_928896_6215" contactName="JEAF Development Team" contactURL="https://www.anaptecs.de/jeaf" contactEmail="jeaf@anaptecs.de" licenseName="Apache 2.0" licenseURL="https://www.apache.org/licenses/LICENSE-2.0.html" explicityTypeOrdering="true"/>
  <JMM:OpenAPIType xmi:id="_bBXjCDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_993301_9610"/>
  <JMM:OpenAPIType xmi:id="_bBXjCTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_673990_9490"/>
  <JMM:OpenAPIType xmi:id="_bBXjCjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_735344_9494"/>
  <JMM:OpenAPIType xmi:id="_bBXjCzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_145984_9496"/>
  <JMM:OpenAPIType xmi:id="_bBXjDDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_691006_9508"/>
  <JMM:OpenAPIType xmi:id="_bBXjDTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_649261_9554"/>
  <JMM:OpenAPIType xmi:id="_bBXjDjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_932786_9551"/>
  <JMM:OpenAPIType xmi:id="_bBXjDzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_908776_9550"/>
  <JMM:OpenAPIType xmi:id="_bBXjEDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_529455_9547"/>
  <JMM:OpenAPIType xmi:id="_bBXjETA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_198788_9546"/>
  <JMM:OpenAPIType xmi:id="_bBXjEjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_270924_9543"/>
  <JMM:OpenAPIType xmi:id="_bBXjEzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_342431_9533"/>
  <JMM:OpenAPIType xmi:id="_bBXjFDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_46785_9460"/>
  <JMM:OpenAPIType xmi:id="_bBXjFTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_88989_9531"/>
  <JMM:OpenAPIType xmi:id="_bBXjFjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_127183_9530"/>
  <JMM:OpenAPIType xmi:id="_bBXjFzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_635330_9529"/>
  <JMM:OpenAPIType xmi:id="_bBXjGDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_425205_9525"/>
  <JMM:OpenAPIType xmi:id="_bBXjGTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_445218_9524"/>
  <JMM:OpenAPIType xmi:id="_bBXjGjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_12644_9523"/>
  <JMM:OpenAPIType xmi:id="_bBXjGzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_170546_9522"/>
  <JMM:OpenAPIType xmi:id="_bBXjHDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_371383_9521"/>
  <JMM:OpenAPIType xmi:id="_bBXjHTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_891956_9459"/>
  <JMM:OpenAPIType xmi:id="_bBXjHjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_34903_9509"/>
  <JMM:OpenAPIType xmi:id="_bBXjHzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_138694_9501"/>
  <JMM:OpenAPIType xmi:id="_bBXjIDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_937385_9500"/>
  <JMM:OpenAPIType xmi:id="_bBXjITA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_7936_9499"/>
  <JMM:OpenAPIType xmi:id="_bBXjIjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_80986_9495"/>
  <JMM:OpenAPIType xmi:id="_bBXjIzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_106678_9492"/>
  <JMM:OpenAPIType xmi:id="_bBXjJDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_531332_9491"/>
  <JMM:OpenAPIType xmi:id="_bBXjJTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_26968_9469"/>
  <JMM:OpenAPIType xmi:id="_bBXjJjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_276212_9478"/>
  <JMM:OpenAPIType xmi:id="_bBXjJzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_20174_9483"/>
  <JMM:OpenAPIType xmi:id="_bBXjKDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_853648_9482"/>
  <JMM:OpenAPIType xmi:id="_bBXjKTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_249385_9480"/>
  <JMM:OpenAPIType xmi:id="_bBXjKjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_684758_9479"/>
  <JMM:OpenAPIType xmi:id="_bBXjKzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_208570_9477"/>
  <JMM:OpenAPIType xmi:id="_bBXjLDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_411030_9476"/>
  <JMM:OpenAPIType xmi:id="_bBXjLTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_13966_9475"/>
  <JMM:OpenAPIType xmi:id="_bBXjLjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_773347_9473"/>
  <JMM:OpenAPIType xmi:id="_bBXjLzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_802699_9471"/>
  <JMM:OpenAPIType xmi:id="_bBXjMDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_412412_9465"/>
  <JMM:OpenAPIType xmi:id="_bBXjMTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1637824792881_916793_6393"/>
  <JMM:OpenAPIType xmi:id="_bBXjMjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650882679104_502442_8986"/>
  <JMM:OpenAPIType xmi:id="_bBXjMzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1649652438720_431305_6584"/>
  <JMM:OpenAPIType xmi:id="_bBXjNDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643973801656_621928_7686"/>
  <JMM:OpenAPIType xmi:id="_bBXjNTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655920335_172948_8893"/>
  <JMM:OpenAPIType xmi:id="_bBXjNjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655394918_388083_8804"/>
  <JMM:OpenAPIType xmi:id="_bBXjNzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655901084_16413_8871"/>
  <JMM:OpenAPIType xmi:id="_bBXjODA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648655349933_740058_8782"/>
  <JMM:OpenAPIType xmi:id="_bBXjOTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648632267318_850834_8183"/>
  <JMM:OpenAPIType xmi:id="_bBXjOjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876696092_555482_8345"/>
  <JMM:OpenAPIType xmi:id="_bBXjOzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648496072676_784337_7758"/>
  <JMM:OpenAPIType xmi:id="_bBXjPDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876716238_73622_8389"/>
  <JMM:OpenAPIType xmi:id="_bBXjPTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974063378_495017_7788"/>
  <JMM:OpenAPIType xmi:id="_bBXjPjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928415765_515986_6667"/>
  <JMM:OpenAPIType xmi:id="_bBXjPzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647428226749_852272_7464"/>
  <JMM:OpenAPIType xmi:id="_bBXjQDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928400521_654557_6645"/>
  <JMM:OpenAPIType xmi:id="_bBXjQTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647928358661_303389_6620"/>
  <JMM:OpenAPIType xmi:id="_bBXjQjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876706660_574340_8367"/>
  <JMM:OpenAPIType xmi:id="_bBXjQzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647877019674_643818_8430"/>
  <JMM:OpenAPIType xmi:id="_bBXjRDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647876672375_65594_8321"/>
  <JMM:OpenAPIType xmi:id="_bBXjRTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647443754194_362498_7508"/>
  <JMM:OpenAPIType xmi:id="_bBXjRjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643973845625_433637_7709"/>
  <JMM:OpenAPIType xmi:id="_bBXjRzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643989887732_726456_7848"/>
  <JMM:OpenAPIType xmi:id="_bBXjSDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645443335712_800478_8224"/>
  <JMM:OpenAPIType xmi:id="_bBXjSTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645101833980_646602_7482"/>
  <JMM:OpenAPIType xmi:id="_bBXjSjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645101806123_659810_7416"/>
  <JMM:OpenAPIType xmi:id="_bBXjSzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635495304178_812334_7120"/>
  <JMM:OpenAPIType xmi:id="_bBXjTDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974092486_695981_7812"/>
  <JMM:OpenAPIType xmi:id="_bBXjTTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634109363867_578933_6415"/>
  <JMM:OpenAPIType xmi:id="_bBXjTjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634108460027_728205_6320"/>
  <JMM:OpenAPIType xmi:id="_bBXjTzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634117581860_381384_6457"/>
  <JMM:OpenAPIType xmi:id="_bBXjUDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145078807_370303_6747"/>
  <JMM:OpenAPIType xmi:id="_bBXjUTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634148141334_510482_6872"/>
  <JMM:OpenAPIType xmi:id="_bBXjUjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634148129444_60131_6850"/>
  <JMM:OpenAPIType xmi:id="_bBXjUzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634013013865_671314_6158"/>
  <JMM:OpenAPIType xmi:id="_bBXjVDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145114362_675145_6792"/>
  <JMM:OpenAPIType xmi:id="_bBXjVTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634145103751_101719_6770"/>
  <JMM:OpenAPIType xmi:id="_bBXjVjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634140145761_661818_6636"/>
  <JMM:OpenAPIType xmi:id="_bBXjVzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634137875201_288640_6544"/>
  <JMM:OpenAPIType xmi:id="_bBXjWDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634117906395_138598_6505"/>
  <JMM:OpenAPIType xmi:id="_bBXjWTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634133524525_345297_6452"/>
  <JMM:OpenAPIType xmi:id="_bBXjWjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634013013862_167847_6157"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjWzA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316742_985847_9489"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjXDA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316742_642449_9532" extensibleEnum="true"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjXTA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316727_745113_9466"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjXjA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1650876316727_695136_9461"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjXzA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1648318110338_812376_6686" extensibleEnum="true"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjYDA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1661874482193_155033_7648"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjYTA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1635423836732_686917_6326"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjYjA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1634013013865_772449_6159"/>
  <JMM:OpenAPIEnumeration xmi:id="_bBXjYzA_Ee2z7qeqSnoW6A" base_Enumeration="_19_0_4_29b40597_1634108529355_19017_6342"/>
  <JMM:OpenAPIServer xmi:id="_bBXjZDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_235251_9612" url="https://test-jeaf.anaptecs.de" order="2"/>
  <JMM:OpenAPIServer xmi:id="_bBXjZTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_272254_9614" url="https://demo-jeaf.anaptecs.de" order="1"/>
  <JMM:OpenAPIServer xmi:id="_bBXjZjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_586913_9613" url="https://jeaf.anaptecs.de" order="3"/>
  <JMM:OpenAPIServer xmi:id="_bBXjZzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876316727_144873_9463" url="https://accounting.jeaf.de"/>
  <JMM:OpenAPIServer xmi:id="_bBXjaDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876316727_303346_9462" url="http://localhost:8080/test"/>
  <JMM:OpenAPIServer xmi:id="_bBXjaTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1644945471940_214696_6515" url="https://test-jeaf.anaptecs.de" order="2"/>
  <JMM:OpenAPIServer xmi:id="_bBXjajA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1644989456128_953807_6553" url="https://demo-jeaf.anaptecs.de" order="1"/>
  <JMM:OpenAPIServer xmi:id="_bBXjazA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1644945520032_53992_6545" url="https://jeaf.anaptecs.de" order="3"/>
  <JMM:OpenAPIServer xmi:id="_bBXjbDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1634016302565_564401_6340" url="https://accounting.jeaf.de"/>
  <JMM:OpenAPIServer xmi:id="_bBXjbTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1634016240660_990341_6310" url="http://localhost:8080/test"/>
  <JMM:PathParam xmi:id="_bBXjbjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388238_80752_7246" value="path"/>
  <JMM:PathParam xmi:id="_bBXjbzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388235_726322_7233" value="path"/>
  <JMM:PathParam xmi:id="_bBXjcDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662619344070_745546_8403" value="path"/>
  <JMM:PathParam xmi:id="_bBXjcTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662562409302_726039_7181" value="path"/>
  <JMM:PathParam xmi:id="_bBXjcjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662015799207_301471_7151" value="channelType"/>
  <JMM:PathParam xmi:id="_bBXjczA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655279341786_910327_9882" value="channelCode"/>
  <JMM:PathParam xmi:id="_bBXjdDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655268212100_58792_7603" value="channelCode"/>
  <JMM:PathParam xmi:id="_bBXjdTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701691_38654_7055" value="id"/>
  <JMM:PathParam xmi:id="_bBXjdjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317424_919218_10438" value="id"/>
  <JMM:PathParam xmi:id="_bBXjdzA_Ee2z7qeqSnoW6A" value="id" base_Property="_19_0_4_29b40597_1650876317327_776713_9842"/>
  <JMM:PathParam xmi:id="_bBXjeDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662643409736_672819_8414" value="path"/>
  <JMM:PathParam xmi:id="_bBXjeTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655278319038_902744_9845" value="channelCode"/>
  <JMM:PathParam xmi:id="_bBXjejA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857059_545827_7194" value="path"/>
  <JMM:PathParam xmi:id="_bBXjezA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655269650636_733698_7631" value="channelCode"/>
  <JMM:PathParam xmi:id="_bBXjfDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634200741622_85840_7060" value="id"/>
  <JMM:PathParam xmi:id="_bBXjfTA_Ee2z7qeqSnoW6A" value="id" base_Property="_19_0_4_29b40597_1634272621117_75780_6822"/>
  <JMM:PathParam xmi:id="_bBXjfjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634193741754_92076_6690" value="id"/>
  <JMM:PathParam xmi:id="_bBXjfzA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_29b40597_1580846833054_928128_13170" value="{ID}"/>
  <JMM:HeaderParam xmi:id="_bBXjgDA_Ee2z7qeqSnoW6A" value="Local-Time" base_Property="_19_0_4_29b40597_1662696441759_108175_7330"/>
  <JMM:HeaderParam xmi:id="_bBXjgTA_Ee2z7qeqSnoW6A" value="Calendar" base_Property="_19_0_4_29b40597_1662696441759_614898_7333"/>
  <JMM:HeaderParam xmi:id="_bBXjgjA_Ee2z7qeqSnoW6A" value="Offset-Time" base_Property="_19_0_4_29b40597_1662696441758_257710_7328"/>
  <JMM:HeaderParam xmi:id="_bBXjgzA_Ee2z7qeqSnoW6A" value="SQL-Date" base_Property="_19_0_4_29b40597_1662696441759_551539_7336"/>
  <JMM:HeaderParam xmi:id="_bBXjhDA_Ee2z7qeqSnoW6A" value="SQL-Time" base_Property="_19_0_4_29b40597_1662696441759_729131_7335"/>
  <JMM:HeaderParam xmi:id="_bBXjhTA_Ee2z7qeqSnoW6A" value="SQL-Timestamp" base_Property="_19_0_4_29b40597_1662696441759_169944_7334"/>
  <JMM:HeaderParam xmi:id="_bBXjhjA_Ee2z7qeqSnoW6A" value="Local-Date" base_Property="_19_0_4_29b40597_1662696441759_557134_7331"/>
  <JMM:HeaderParam xmi:id="_bBXjhzA_Ee2z7qeqSnoW6A" value="Offset-Date-Time" base_Property="_19_0_4_29b40597_1662696441758_721061_7327"/>
  <JMM:HeaderParam xmi:id="_bBXjiDA_Ee2z7qeqSnoW6A" value="Local-Date-Time" base_Property="_19_0_4_29b40597_1662696441758_379026_7329"/>
  <JMM:HeaderParam xmi:id="_bBXjiTA_Ee2z7qeqSnoW6A" value="Util-Date" base_Property="_19_0_4_29b40597_1662696441759_740144_7332"/>
  <JMM:HeaderParam xmi:id="_bBXjijA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_565780_7239" value="Calendar"/>
  <JMM:HeaderParam xmi:id="_bBXjizA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_797598_7243" value="SQL-Date"/>
  <JMM:HeaderParam xmi:id="_bBXjjDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_833332_7242" value="SQL-Time"/>
  <JMM:HeaderParam xmi:id="_bBXjjTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388236_989146_7234" value="Offset-Date-Time"/>
  <JMM:HeaderParam xmi:id="_bBXjjjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_771406_7241" value="SQL-Timestamp"/>
  <JMM:HeaderParam xmi:id="_bBXjjzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388236_840288_7236" value="Local-Date-Time"/>
  <JMM:HeaderParam xmi:id="_bBXjkDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_64180_7238" value="Local-Date"/>
  <JMM:HeaderParam xmi:id="_bBXjkTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_354850_7237" value="Local-Time"/>
  <JMM:HeaderParam xmi:id="_bBXjkjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388236_345681_7235" value="Offset-Time"/>
  <JMM:HeaderParam xmi:id="_bBXjkzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662696388237_769284_7240" value="Util-Date"/>
  <JMM:HeaderParam xmi:id="_bBXjlDA_Ee2z7qeqSnoW6A" base_Parameter="_12_5_2aa0154_1210933199174_207662_1211"/>
  <JMM:HeaderParam xmi:id="_bBXjlTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662043440399_957265_8039" value="Extensible-Enum"/>
  <JMM:HeaderParam xmi:id="_bBXjljA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662043440399_675442_8038" value="Time-Unit"/>
  <JMM:HeaderParam xmi:id="_bBXjlzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662043440399_993172_8037" value="Channel-Type"/>
  <JMM:HeaderParam xmi:id="_bBXjmDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655911762279_411167_7096" value="Big-Header"/>
  <JMM:HeaderParam xmi:id="_bBXjmTA_Ee2z7qeqSnoW6A" value="X-Child-Property" base_Property="_19_0_4_29b40597_1650876317396_104319_10137"/>
  <JMM:HeaderParam xmi:id="_bBXjmjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317396_897583_10135"/>
  <JMM:HeaderParam xmi:id="_bBXjmzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317396_938262_10134"/>
  <JMM:HeaderParam xmi:id="_bBXjnDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_169351_10050"/>
  <JMM:HeaderParam xmi:id="_bBXjnTA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1650876317327_361084_9851"/>
  <JMM:HeaderParam xmi:id="_bBXjnjA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1650876317327_878107_9845"/>
  <JMM:HeaderParam xmi:id="_bBXjnzA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1650876317327_356061_9852"/>
  <JMM:HeaderParam xmi:id="_bBXjoDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317426_329097_10460" value="param1"/>
  <JMM:HeaderParam xmi:id="_bBXjoTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_676475_10049"/>
  <JMM:HeaderParam xmi:id="_bBXjojA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_785328_9890"/>
  <JMM:HeaderParam xmi:id="_bBXjozA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1650876317327_27725_9846"/>
  <JMM:HeaderParam xmi:id="_bBXjpDA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1650876317327_964343_9839"/>
  <JMM:HeaderParam xmi:id="_bBXjpTA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1650876317327_158702_9840"/>
  <JMM:HeaderParam xmi:id="_bBXjpjA_Ee2z7qeqSnoW6A" value="X-Child-Property" base_Property="_19_0_4_29b40597_1648755985534_345403_10157"/>
  <JMM:HeaderParam xmi:id="_bBXjpzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1648752441198_771688_10040"/>
  <JMM:HeaderParam xmi:id="_bBXjqDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1648752441198_137638_10041"/>
  <JMM:HeaderParam xmi:id="_bBXjqTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1635344394443_911014_9451" value="param1"/>
  <JMM:HeaderParam xmi:id="_bBXjqjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1648751218480_136148_9598"/>
  <JMM:HeaderParam xmi:id="_bBXjqzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1648751235943_849628_9600"/>
  <JMM:HeaderParam xmi:id="_bBXjrDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645002186729_642396_6627"/>
  <JMM:HeaderParam xmi:id="_bBXjrTA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1635343884423_221172_9372"/>
  <JMM:HeaderParam xmi:id="_bBXjrjA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1635343884423_898237_9371"/>
  <JMM:HeaderParam xmi:id="_bBXjrzA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1634273091758_207152_6861"/>
  <JMM:HeaderParam xmi:id="_bBXjsDA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1634273091757_340668_6860"/>
  <JMM:HeaderParam xmi:id="_bBXjsTA_Ee2z7qeqSnoW6A" value="lang" base_Property="_19_0_4_29b40597_1634228569628_993218_7225"/>
  <JMM:HeaderParam xmi:id="_bBXjsjA_Ee2z7qeqSnoW6A" value="token" base_Property="_19_0_4_29b40597_1634228550843_742548_7223"/>
  <JMM:HeaderParam xmi:id="_bBXjszA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1635223764363_694833_7297"/>
  <JMM:HeaderParam xmi:id="_bBXjtDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1635223796924_27311_7301"/>
  <JMM:HeaderParam xmi:id="_bBXjtTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634193741755_297294_6691" value="token"/>
  <JMM:HeaderParam xmi:id="_bBXjtjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1635223764360_175587_7296"/>
  <JMM:QueryParam xmi:id="_bBXjtzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662365174168_244997_7698" value="localStartDate"/>
  <JMM:QueryParam xmi:id="_bBcbgDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618594154_559633_8353"/>
  <JMM:QueryParam xmi:id="_bBcbgTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618606113_430553_8355"/>
  <JMM:QueryParam xmi:id="_bBcbgjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655911980219_205320_7098" value="locale"/>
  <JMM:QueryParam xmi:id="_bBcbgzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662365160118_502608_7697" value="localStartTime"/>
  <JMM:QueryParam xmi:id="_bBcbhDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618695509_763879_8365"/>
  <JMM:QueryParam xmi:id="_bBcbhTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618677373_102015_8363"/>
  <JMM:QueryParam xmi:id="_bBcbhjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618660191_429418_8361"/>
  <JMM:QueryParam xmi:id="_bBcbhzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618647337_125701_8359"/>
  <JMM:QueryParam xmi:id="_bBcbiDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618626454_387684_8357"/>
  <JMM:QueryParam xmi:id="_bBcbiTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662364999989_268819_7159" value="localStartTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcbijA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618579103_694144_8351"/>
  <JMM:QueryParam xmi:id="_bBcbizA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618567470_293868_8349"/>
  <JMM:QueryParam xmi:id="_bBcbjDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662618552029_786010_8347"/>
  <JMM:QueryParam xmi:id="_bBcbjTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662372837133_407567_7720" value="utilDate"/>
  <JMM:QueryParam xmi:id="_bBcbjjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662452550951_900766_7176" value="sqlTime"/>
  <JMM:QueryParam xmi:id="_bBcbjzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662452550949_884409_7175" value="sqlDate"/>
  <JMM:QueryParam xmi:id="_bBcbkDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662537705712_166773_7176" value="sqlTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcbkTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662372809016_400130_7719" value="calendar"/>
  <JMM:QueryParam xmi:id="_bBcbkjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662372778067_189099_7717" value="startTime"/>
  <JMM:QueryParam xmi:id="_bBcbkzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662365160117_694785_7696" value="startTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcblDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662015799209_31826_7153" value="extensibleEnum"/>
  <JMM:QueryParam xmi:id="_bBcblTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662015799209_755175_7152" value="timeUnit"/>
  <JMM:QueryParam xmi:id="_bBcbljA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655803915105_210420_7089" value="maxResult"/>
  <JMM:QueryParam xmi:id="_bBcblzA_Ee2z7qeqSnoW6A" value="q1" base_Property="_19_0_4_29b40597_1650876317327_525938_9854"/>
  <JMM:QueryParam xmi:id="_bBcbmDA_Ee2z7qeqSnoW6A" value="q2" base_Property="_19_0_4_29b40597_1650876317327_388303_9847"/>
  <JMM:QueryParam xmi:id="_bBcbmTA_Ee2z7qeqSnoW6A" value="q1" base_Property="_19_0_4_29b40597_1650876317327_619106_9843"/>
  <JMM:QueryParam xmi:id="_bBcbmjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_829855_8432"/>
  <JMM:QueryParam xmi:id="_bBcbmzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_898514_8431"/>
  <JMM:QueryParam xmi:id="_bBcbnDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_305274_8429"/>
  <JMM:QueryParam xmi:id="_bBcbnTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_648419_8436"/>
  <JMM:QueryParam xmi:id="_bBcbnjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_821876_8434"/>
  <JMM:QueryParam xmi:id="_bBcbnzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_694988_8427"/>
  <JMM:QueryParam xmi:id="_bBcboDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_16743_8435"/>
  <JMM:QueryParam xmi:id="_bBcboTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_70952_8433"/>
  <JMM:QueryParam xmi:id="_bBcbojA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_709226_8430"/>
  <JMM:QueryParam xmi:id="_bBcbozA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1662643579658_329946_8428"/>
  <JMM:QueryParam xmi:id="_bBcbpDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857061_687241_7202" value="sqlTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcbpTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857060_660532_7198" value="localStartTime"/>
  <JMM:QueryParam xmi:id="_bBcbpjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857061_515430_7200" value="calendar"/>
  <JMM:QueryParam xmi:id="_bBcbpzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857061_808295_7201" value="utilDate"/>
  <JMM:QueryParam xmi:id="_bBcbqDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857061_475072_7204" value="sqlDate"/>
  <JMM:QueryParam xmi:id="_bBcbqTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857061_445669_7203" value="sqlTime"/>
  <JMM:QueryParam xmi:id="_bBcbqjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857060_567661_7199" value="localStartDate"/>
  <JMM:QueryParam xmi:id="_bBcbqzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857060_852348_7197" value="localStartTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcbrDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857060_922189_7196" value="startTime"/>
  <JMM:QueryParam xmi:id="_bBcbrTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1662613857060_275711_7195" value="startTimestamp"/>
  <JMM:QueryParam xmi:id="_bBcbrjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1651074447274_962055_7010" value="channelTypes"/>
  <JMM:QueryParam xmi:id="_bBcbrzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1651074587549_57666_7022" value="channelType"/>
  <JMM:QueryParam xmi:id="_bBcbsDA_Ee2z7qeqSnoW6A" value="q2" base_Property="_19_0_4_29b40597_1635343985929_131572_9419"/>
  <JMM:QueryParam xmi:id="_bBcbsTA_Ee2z7qeqSnoW6A" value="q1" base_Property="_19_0_4_29b40597_1635343884423_117594_9375"/>
  <JMM:QueryParam xmi:id="_bBcbsjA_Ee2z7qeqSnoW6A" value="q1" base_Property="_19_0_4_29b40597_1634272695182_30469_6831"/>
  <JMM:QueryParam xmi:id="_bBcbszA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634193741756_319324_6692" value="filter"/>
  <JMM:CookieParam xmi:id="_bBcbtDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655911896296_258120_7097" value="giveMeMoreCookies"/>
  <JMM:CookieParam xmi:id="_bBcbtTA_Ee2z7qeqSnoW6A" value="reseller" base_Property="_19_0_4_29b40597_1650876317327_556284_9853"/>
  <JMM:CookieParam xmi:id="_bBcbtjA_Ee2z7qeqSnoW6A" value="reseller" base_Property="_19_0_4_29b40597_1650876317327_390537_9841"/>
  <JMM:CookieParam xmi:id="_bBcbtzA_Ee2z7qeqSnoW6A" value="reseller" base_Property="_19_0_4_29b40597_1635343884423_486982_9373"/>
  <JMM:CookieParam xmi:id="_bBcbuDA_Ee2z7qeqSnoW6A" value="reseller" base_Property="_19_0_4_29b40597_1634230054501_522588_7248"/>
  <JMM:CookieParam xmi:id="_bBcbuTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634227379883_4925_7183" value="cookieEntry"/>
  <JMM:BeanParam xmi:id="_bBdpoDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662696441757_351272_7326"/>
  <JMM:BeanParam xmi:id="_bBdpoTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662617418116_407392_8305"/>
  <JMM:BeanParam xmi:id="_bBdpojA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_651694_9632" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdpozA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_899899_9633" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdppDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317426_162985_10457"/>
  <JMM:BeanParam xmi:id="_bBdppTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_890015_9498"/>
  <JMM:BeanParam xmi:id="_bBdppjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_696589_9553" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdppzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648755950650_513968_10132" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdpqDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648752441198_124114_10039" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdpqTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_683094_9488"/>
  <JMM:BeanParam xmi:id="_bBdpqjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_356649_9484"/>
  <JMM:BeanParam xmi:id="_bBdpqzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1662643579658_916325_8426"/>
  <JMM:BeanParam xmi:id="_bBdprDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1635344239415_892066_9442"/>
  <JMM:BeanParam xmi:id="_bBdprTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648750106722_351838_9576" inline="false"/>
  <JMM:BeanParam xmi:id="_bBdprjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645002047057_85091_6602"/>
  <JMM:BeanParam xmi:id="_bBdprzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1635343884423_513128_9370"/>
  <JMM:BeanParam xmi:id="_bBdpsDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634228437084_1997_7202"/>
  <JMM:BeanParam xmi:id="_bBdpsTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634273202138_240550_6900"/>
  <JMM:OpenAPISpecReference xmi:id="_bBdpsjA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1650876317312_264126_9697" location="../"/>
  <JMM:OpenAPISpecReference xmi:id="_bBdpszA_Ee2z7qeqSnoW6A" base_Dependency="_19_0_4_29b40597_1634640695050_311201_7200" location="../"/>
  <JMM:Example xmi:id="_bBdptDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701693_455066_7064" exampleValue="MOBILE_APP"/>
  <JMM:Example xmi:id="_bBdptTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701691_38654_7055" exampleValue="1234-345"/>
  <JMM:Example xmi:id="_bBdptjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701691_52080_7059" exampleValue="true"/>
  <JMM:Example xmi:id="_bBdptzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317427_152343_10478" exampleValue="[&quot;CHF&quot;, &quot;EUR&quot;, &quot;USD&quot;]"/>
  <JMM:Example xmi:id="_bBdpuDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_356061_9852" exampleValue="en"/>
  <JMM:Example xmi:id="_bBdpuTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317426_391021_10447" exampleValue="MOBILE_APP"/>
  <JMM:Example xmi:id="_bBdpujA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317424_919218_10438" exampleValue="1234-345"/>
  <JMM:Example xmi:id="_bBdpuzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317424_634950_10442" exampleValue="true"/>
  <JMM:Example xmi:id="_bBdpvDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_302093_9948" exampleValue="CHF"/>
  <JMM:Example xmi:id="_bBdpvTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_284646_9750" exampleValue="https://www.company.com/products/1345-345"/>
  <JMM:Example xmi:id="_bBdpvjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_937588_9722" exampleValue="MOBILE_APP"/>
  <JMM:Example xmi:id="_bBdpvzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_158702_9840" exampleValue="en"/>
  <JMM:Example xmi:id="_bBdpwDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_32183_9760" exampleValue="12:07"/>
  <JMM:Example xmi:id="_bBdpwTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1646653804865_465632_7448" exampleValue="[&quot;CHF&quot;, &quot;EUR&quot;, &quot;USD&quot;]"/>
  <JMM:Example xmi:id="_bBdpwjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634630623599_423669_7141" exampleValue="MOBILE_APP"/>
  <JMM:Example xmi:id="_bBdpwzA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634200741622_85840_7060" exampleValue="1234-345"/>
  <JMM:Example xmi:id="_bBdpxDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634218434731_255746_7178" exampleValue="true"/>
  <JMM:Example xmi:id="_bBdpxTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645766878202_772404_9252" exampleValue="CHF"/>
  <JMM:Example xmi:id="_bBdpxjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634108612035_25061_6403" exampleValue="MOBILE_APP"/>
  <JMM:Example xmi:id="_bBdpxzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635343884423_221172_9372" exampleValue="en"/>
  <JMM:Example xmi:id="_bBdpyDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634228569628_993218_7225" exampleValue="en"/>
  <JMM:Example xmi:id="_bBdpyTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634137584833_525872_6496" exampleValue="12:07"/>
  <JMM:Example xmi:id="_bBdpyjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634118937747_472825_6550" exampleValue="https://www.company.com/products/1345-345"/>
  <JMM:Deprecated xmi:id="_bBdpyzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317427_368072_10466"/>
  <JMM:Deprecated xmi:id="_bBdpzDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317426_572413_10461"/>
  <JMM:Deprecated xmi:id="_bBdpzTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317396_433683_10065"/>
  <JMM:Deprecated xmi:id="_bBdpzjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317427_366910_10470"/>
  <JMM:Deprecated xmi:id="_bBdpzzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317426_639209_10463"/>
  <JMM:Deprecated xmi:id="_bBdp0DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317426_329097_10460"/>
  <JMM:Deprecated xmi:id="_bBdp0TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_985847_9489"/>
  <JMM:Deprecated xmi:id="_bBdp0jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_683094_9488"/>
  <JMM:Deprecated xmi:id="_bBdp0zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_388303_9847"/>
  <JMM:Deprecated xmi:id="_bBdp1DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_912723_9836"/>
  <JMM:Deprecated xmi:id="_bBdp1TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_818823_9835"/>
  <JMM:Deprecated xmi:id="_bBdp1jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_980029_9834"/>
  <JMM:Deprecated xmi:id="_bBdp1zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_679655_9833"/>
  <JMM:Deprecated xmi:id="_bBdp2DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_853648_9482"/>
  <JMM:Deprecated xmi:id="_bBdp2TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_879952_9735"/>
  <JMM:Deprecated xmi:id="_bBdp2jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343824869_675998_9366"/>
  <JMM:Deprecated xmi:id="_bBdp2zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635344394444_847398_9453"/>
  <JMM:Deprecated xmi:id="_bBdp3DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635396338581_703949_7034"/>
  <JMM:Deprecated xmi:id="_bBdp3TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635408517101_197158_6413"/>
  <JMM:Deprecated xmi:id="_bBdp3jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635394872851_412516_6325"/>
  <JMM:Deprecated xmi:id="_bBdp3zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635344394443_911014_9451"/>
  <JMM:Deprecated xmi:id="_bBdp4DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635423836732_686917_6326"/>
  <JMM:Deprecated xmi:id="_bBdp4TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343985929_131572_9419"/>
  <JMM:Deprecated xmi:id="_bBdp4jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343884423_513128_9370"/>
  <JMM:Deprecated xmi:id="_bBdp4zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635340547388_890023_8618"/>
  <JMM:Deprecated xmi:id="_bBdp5DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343499251_976575_8695"/>
  <JMM:Deprecated xmi:id="_bBdp5TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635416190448_259845_6451"/>
  <JMM:Deprecated xmi:id="_bBdp5jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343472649_996427_8672"/>
  <JMM:Deprecated xmi:id="_bBdp5zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343442780_497939_8664"/>
  <JMM:Deprecated xmi:id="_bBdp6DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634148129444_60131_6850"/>
  <JMM:Deprecated xmi:id="_bBdp6TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635343396152_150497_8661"/>
  <JMM:Deprecated xmi:id="_bBdp6jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635340281989_329980_8577"/>
  <JMM:Deprecated xmi:id="_bBdp6zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635223697113_461413_7290"/>
  <JMM:Deprecated xmi:id="_bBdp7DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635153694710_419427_7859"/>
  <JMM:Deprecated xmi:id="_bBdp7TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635223764363_694833_7297"/>
  <JMM:Deprecated xmi:id="_bBdp7jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635340436856_70868_8610"/>
  <JMM:Deprecated xmi:id="_bBdp7zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635223796926_299424_7302"/>
  <JMM:Deprecated xmi:id="_bBdp8DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635340453844_991923_8611"/>
  <JMM:Deprecated xmi:id="_bBdp8TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635137313132_313619_7067"/>
  <JMM:Deprecated xmi:id="_bBdp8jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635146779673_866944_7768"/>
  <JMM:Deprecated xmi:id="_bBdp8zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635156479068_519757_7898"/>
  <JMM:Deprecated xmi:id="_bBdp9DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635156496457_136172_7920"/>
  <JMM:Deprecated xmi:id="_bBdp9TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635153755241_582170_7890"/>
  <JMM:Deprecated xmi:id="_bBdp9jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635145852079_490132_7730"/>
  <JMM:Deprecated xmi:id="_bBdp9zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635338309522_748830_8282"/>
  <JMM:Deprecated xmi:id="_bBdp-DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635145953476_483621_7740"/>
  <JMM:Deprecated xmi:id="_bBdp-TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635338309521_43441_8281"/>
  <JMM:Deprecated xmi:id="_bBdp-jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635137459298_428329_7117"/>
  <JMM:Deprecated xmi:id="_bBdp-zA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635137753098_524463_7683"/>
  <JMM:Deprecated xmi:id="_bBdp_DA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635137441832_459633_7115"/>
  <JMM:Deprecated xmi:id="_bBdp_TA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635137722307_357597_7664"/>
  <JMM:Deprecated xmi:id="_bBdp_jA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635136250833_749023_7031"/>
  <JMM:Deprecated xmi:id="_bBdp_zA_Ee2z7qeqSnoW6A" base_Element="_12_5_2aa0154_1211615546159_367489_863"/>
  <JMM:Deprecated xmi:id="_bBdqADA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635146749299_876214_7764"/>
  <JMM:Deprecated xmi:id="_bBdqATA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634890545985_512625_10043"/>
  <JMM:Deprecated xmi:id="_bBdqAjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635434956233_669647_6995"/>
  <JMM:Deprecated xmi:id="_bBdqAzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634878990792_924527_6994"/>
  <JMM:Deprecated xmi:id="_bBdqBDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634890291360_502010_8900"/>
  <JMM:Deprecated xmi:id="_bBdqBTA_Ee2z7qeqSnoW6A" base_Element="_18_5_3_1ea00f4_1564412666204_293772_12628"/>
  <JMM:Deprecated xmi:id="_bBdqBjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634830350387_44400_7439"/>
  <JMM:Deprecated xmi:id="_bBdqBzA_Ee2z7qeqSnoW6A" base_Element="_18_5_3_1ea00f4_1566193443009_998323_11589"/>
  <JMM:Deprecated xmi:id="_bBdqCDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635325877952_415900_7928"/>
  <JMM:Deprecated xmi:id="_bBdqCTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634890329824_288278_8927"/>
  <JMM:Deprecated xmi:id="_bBdqCjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635325877951_711046_7926"/>
  <JMM:Deprecated xmi:id="_bBdqCzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634831060459_779986_7841"/>
  <JMM:Deprecated xmi:id="_bBdqDDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635227295122_754849_7357"/>
  <JMM:Deprecated xmi:id="_bBdqDTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635227270637_315892_7354"/>
  <JMM:Deprecated xmi:id="_bBdqDjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1631000582422_870805_8240"/>
  <JMM:Deprecated xmi:id="_bBdqDzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634890242756_794000_8892"/>
  <JMM:Deprecated xmi:id="_bBdqEDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635326559092_398998_8265"/>
  <JMM:Deprecated xmi:id="_bBdqETA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634879026515_52257_6999"/>
  <JMM:Deprecated xmi:id="_bBdqEjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634878964474_972282_6973"/>
  <JMM:Deprecated xmi:id="_bBdqEzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635231162173_397262_7501"/>
  <JMM:Deprecated xmi:id="_bBdqFDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634879087416_726052_7026"/>
  <JMM:Deprecated xmi:id="_bBdqFTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635231162172_34712_7500"/>
  <JMM:Deprecated xmi:id="_bBdqFjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635326559092_196833_8264"/>
  <JMM:Deprecated xmi:id="_bBdqFzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635436848733_264231_6706"/>
  <JMM:Deprecated xmi:id="_bBdqGDA_Ee2z7qeqSnoW6A" base_Element="_16_8_1935031b_1285930120480_9617_2276"/>
  <JMM:Deprecated xmi:id="_bBdqGTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635435578655_468066_8543"/>
  <JMM:Deprecated xmi:id="_bBdqGjA_Ee2z7qeqSnoW6A" base_Element="_16_0_1_2aa0154_1239140765829_604931_523"/>
  <JMM:Deprecated xmi:id="_bBdqGzA_Ee2z7qeqSnoW6A" base_Element="_16_8_19590324_1359126958535_821675_4039"/>
  <JMM:Deprecated xmi:id="_bBdqHDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634885301573_93063_8095"/>
  <JMM:Deprecated xmi:id="_bBdqHTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634885788132_15054_8818"/>
  <JMM:Deprecated xmi:id="_bBdqHjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635315528586_291694_6385"/>
  <JMM:Deprecated xmi:id="_bBdqHzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1635315528586_613809_6384"/>
  <JMM:Deprecated xmi:id="_bBdqIDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634885332110_788897_8099"/>
  <JMM:Deprecated xmi:id="_bBdqITA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634885382973_804681_8109"/>
  <JMM:Deprecated xmi:id="_bBdqIjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634885416358_585644_8132"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqIzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_295718_9868"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqJDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_692436_9869" nullable="false"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqJTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_491417_9867" accessType="WRITE_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqJjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_940743_9866"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqJzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_106651_9865" accessType="READ_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqKDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_370125_9864" nullable="false"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqKTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_613666_9862" accessType="WRITE_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqKjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_721709_9863"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqKzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_992766_9861"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqLDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_177840_9860" accessType="READ_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqLTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_176620_9724" accessType="READ_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqLjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635495366453_915371_7144"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqLzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635499010049_690616_6339"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqMDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635499083577_207180_6348" nullable="false"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqMTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635499064474_398052_6346"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqMjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635499036373_780006_6341" accessType="WRITE_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqMzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635495495496_322228_7792" nullable="false"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqNDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635495477944_937086_7790"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqNTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635498990637_324225_6337" accessType="READ_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqNjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635495390409_490784_7146" accessType="WRITE_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqNzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635495350079_227151_7142" accessType="READ_ONLY"/>
  <JMM:OpenAPIProperty xmi:id="_bBdqODA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634108579126_161962_6376" accessType="READ_ONLY"/>
  <JMM:Transient xmi:id="_bBdqOTA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204275430046_70920_1159"/>
  <JMM:Transient xmi:id="_bBdqOjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1643712839978_732261_8110"/>
  <JMM:Transient xmi:id="_bBdqOzA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1222880445606_37229_1020"/>
  <JMM:Transient xmi:id="_bBdqPDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_929666_9954"/>
  <JMM:Transient xmi:id="_bBdqPTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_626537_9952"/>
  <JMM:Transient xmi:id="_bBdqPjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_590068_9755"/>
  <JMM:Transient xmi:id="_bBdqPzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_558902_9742"/>
  <JMM:Transient xmi:id="_bBdqQDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_633189_9728"/>
  <JMM:Transient xmi:id="_bBdqQTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1647443777922_359261_7535"/>
  <JMM:Transient xmi:id="_bBdqQjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1647444211594_742207_7578"/>
  <JMM:Transient xmi:id="_bBdqQzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634117605319_341568_6483"/>
  <JMM:Transient xmi:id="_bBdqRDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634117923342_700497_6532"/>
  <JMM:Transient xmi:id="_bBdqRTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634109388294_807351_6442"/>
  <JMM:Transient xmi:id="_bBdqRjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1647445921866_490595_8028"/>
  <JMM:Transient xmi:id="_bBdqRzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1647446035847_708812_8071"/>
  <JMM:Transient xmi:id="_bBdqSDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1647445915627_595666_8015"/>
  <JMM:OpenAPIResponse xmi:id="_bBdqSTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_284480_9615" contentType="TEXT_PLAIN" unexpectedErrorResponse="true">
    <statusCodes>400_BAD_REQUEST</statusCodes>
  </JMM:OpenAPIResponse>
  <JMM:OpenAPIResponse xmi:id="_bBdqSjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_234180_9502" unexpectedErrorResponse="true" globalDefaultErrorResponse="true">
    <statusCodes>400_BAD_REQUEST</statusCodes>
    <statusCodes>403_FORBIDDEN</statusCodes>
    <statusCodes>500_INTERNAL_SERVER_ERROR</statusCodes>
  </JMM:OpenAPIResponse>
  <JMM:OpenAPIResponse xmi:id="_bBdqSzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1651467132761_10674_7515" contentType="APPLICATION_JSON">
    <statusCodes>204_NO_CONTENT</statusCodes>
  </JMM:OpenAPIResponse>
  <JMM:OpenAPIResponse xmi:id="_bBdqTDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645545405182_208522_7424" contentType="TEXT_PLAIN" unexpectedErrorResponse="true">
    <statusCodes>400_BAD_REQUEST</statusCodes>
  </JMM:OpenAPIResponse>
  <JMM:OpenAPIResponse xmi:id="_bBdqTTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645531843098_67065_7356" unexpectedErrorResponse="true" globalDefaultErrorResponse="true">
    <statusCodes>400_BAD_REQUEST</statusCodes>
    <statusCodes>403_FORBIDDEN</statusCodes>
    <statusCodes>500_INTERNAL_SERVER_ERROR</statusCodes>
  </JMM:OpenAPIResponse>
  <JMM:OpenAPIDataType xmi:id="_bBdqTjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_836105_9542" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqTzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_296032_9541" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqUDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_860313_9540" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqUTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_724680_9514"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqUjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_834447_9539" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqUzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_432031_9538" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqVDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_542116_9516"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqVTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_369026_9536" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqVjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_571392_9535" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqVzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_464515_9537" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqWDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_717721_9520"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqWTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_460834_9519"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqWjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_451489_9518"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqWzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_957958_9517"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqXDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_897268_9515"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqXTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_34061_9513"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqXjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_331431_9504" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqXzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_131817_9505"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqYDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_588172_9464"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqYTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631725821_54752_7987" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqYjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631714423_630869_7965" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqYzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631774661_989793_8097" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqZDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539634769_639650_7992"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqZTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650896012354_901730_10660"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqZjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539830653_102057_8092"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqZzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631740182_606036_8031" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqaDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539872471_650927_8117"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqaTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539915276_77382_8142"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqajA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631760199_656242_8075" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqazA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631786110_420826_8121" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqbDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631750525_311608_8053" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqbTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648631732822_181473_8009" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqbjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539952922_598192_8167"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqbzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645766794250_864848_9231"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqcDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539687269_162583_8017"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqcTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539731019_46847_8042"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqcjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1647539781153_367076_8067"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqczA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1645766110569_100896_8767" inline="false"/>
  <JMM:OpenAPIDataType xmi:id="_bBdqdDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634108447517_938911_6298"/>
  <JMM:ModuleFactory xmi:id="_bBdqdTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876316742_732608_9512"/>
  <JMM:ModuleFactory xmi:id="_bBdqdjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1647534638369_228575_7961"/>
  <JMM:OpenAPITag xmi:id="_bBdqdzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_428417_9619"/>
  <JMM:OpenAPITag xmi:id="_bBdqeDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_644776_9618" order="2"/>
  <JMM:OpenAPITag xmi:id="_bBdqeTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_771158_9617" externalDocsURL="https//jeaf.anaptecs.de/link1" order="1"/>
  <JMM:OpenAPITag xmi:id="_bBdqejA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_947116_9620"/>
  <JMM:OpenAPITag xmi:id="_bBdqezA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1647847427155_943099_8069" order="2"/>
  <JMM:OpenAPITag xmi:id="_bBdqfDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1647842923280_933807_7708" externalDocsURL="https//jeaf.anaptecs.de/link1" order="1"/>
  <JMM:OpenAPITag xmi:id="_bBdqfTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1647863270568_622874_8211"/>
  <JMM:OpenAPITag xmi:id="_bBdqfjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1647862148439_60724_8175"/>
  <JMM:OpenAPISecurityScheme xmi:id="_bBdqfzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_270462_9622" type="oauth2"/>
  <JMM:OpenAPISecurityScheme xmi:id="_bBdqgDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1648537156637_687396_7823" type="oauth2"/>
  <JMM:OAuthFlow xmi:id="_bBdqgTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_254783_9626" flowType="authorizationCode" authorizationURL="https://example.com/api/oauth/dialog" tokenURL="https://example.com/api/oauth/dialog" refreshURL="https://example.com/api/oauth/dialog"/>
  <JMM:OAuthFlow xmi:id="_bBdqgjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_998532_9623" authorizationURL="https://example.com/api/oauth/dialog" refreshURL="https://example.com/api/oauth/dialog"/>
  <JMM:OAuthFlow xmi:id="_bBdqgzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1648537351404_851324_7853" authorizationURL="https://example.com/api/oauth/dialog" refreshURL="https://example.com/api/oauth/dialog"/>
  <JMM:OAuthFlow xmi:id="_bBdqhDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1648551977408_799856_8396" flowType="authorizationCode" authorizationURL="https://example.com/api/oauth/dialog" tokenURL="https://example.com/api/oauth/dialog" refreshURL="https://example.com/api/oauth/dialog"/>
  <JMM:OAuthScope xmi:id="_bBdqhTA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_276846_9625" name="read:pets" description="Read pets data"/>
  <JMM:OAuthScope xmi:id="_bBdqhjA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1650876317158_97974_9624" name="write:pets" description="Modify pets"/>
  <JMM:OAuthScope xmi:id="_bBdqhzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1648539348616_670463_8325" name="read:pets" description="Read pets data"/>
  <JMM:OAuthScope xmi:id="_bBdqiDA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1648538920485_976352_8287" name="write:pets" description="Modify pets"/>
  <JMM:Ordered xmi:id="_bBdqiTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_836105_9542" order="2080"/>
  <JMM:Ordered xmi:id="_bBdqijA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_296032_9541" order="2070"/>
  <JMM:Ordered xmi:id="_bBdqizA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_860313_9540" order="2060"/>
  <JMM:Ordered xmi:id="_bBdqjDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_834447_9539" order="2040"/>
  <JMM:Ordered xmi:id="_bBdqjTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_432031_9538" order="2030"/>
  <JMM:Ordered xmi:id="_bBdqjjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_369026_9536" order="2010"/>
  <JMM:Ordered xmi:id="_bBdqjzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_571392_9535" order="2050"/>
  <JMM:Ordered xmi:id="_bBdqkDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_464515_9537" order="2020"/>
  <JMM:Ordered xmi:id="_bBdqkTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_642449_9532" order="2005"/>
  <JMM:Ordered xmi:id="_bBdqkjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876316742_342431_9533" order="2006"/>
  <JMM:Ordered xmi:id="_bBdqkzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631725821_54752_7987" order="2010"/>
  <JMM:Ordered xmi:id="_bBiiIDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631714423_630869_7965" order="2050"/>
  <JMM:Ordered xmi:id="_bBiiITA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631774661_989793_8097" order="2070"/>
  <JMM:Ordered xmi:id="_bBiiIjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648318110338_812376_6686" order="2005"/>
  <JMM:Ordered xmi:id="_bBiiIzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631740182_606036_8031" order="2030"/>
  <JMM:Ordered xmi:id="_bBiiJDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631760199_656242_8075" order="2060"/>
  <JMM:Ordered xmi:id="_bBiiJTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631786110_420826_8121" order="2080"/>
  <JMM:Ordered xmi:id="_bBiiJjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631750525_311608_8053" order="2040"/>
  <JMM:Ordered xmi:id="_bBiiJzA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648631732822_181473_8009" order="2020"/>
  <JMM:Ordered xmi:id="_bBiiKDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1648496072676_784337_7758" order="2006"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiKTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_583834_9630"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiKjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876317158_225218_9628"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiKzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_603040_9552"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiLDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648733805681_491305_9545"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiLTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648731634882_847441_8952"/>
  <JMM:ResponseHeaderGroup xmi:id="_bBiiLjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1648731286404_967425_8888"/>
  <JMM:DefaultLiteral xmi:id="_bBiiLzA_Ee2z7qeqSnoW6A" base_EnumerationLiteral="_19_0_4_29b40597_1650876317327_359741_9732"/>
  <JMM:DefaultLiteral xmi:id="_bBiiMDA_Ee2z7qeqSnoW6A" base_EnumerationLiteral="_19_0_4_29b40597_1661874507647_963445_7668"/>
  <JMM:DefaultLiteral xmi:id="_bBiiMTA_Ee2z7qeqSnoW6A" base_EnumerationLiteral="_19_0_4_29b40597_1634108558592_829058_6365"/>
  <JMM:OpenAPIFormat xmi:id="_bBiiMjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_696930_9756" format="uri"/>
  <JMM:OpenAPIFormat xmi:id="_bBiiMzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1649138259591_898927_8720" format="uri"/>
  <JMM:OpenAPIAliasName xmi:id="_bBiiNDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_749428_10032" openAPIPropertyName="previousName"/>
  <JMM:OpenAPIAliasName xmi:id="_bBiiNTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_347287_10037" openAPIPropertyName="_links"/>
  <JMM:OpenAPIAliasName xmi:id="_bBiiNjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1649652480742_939140_6612" openAPIPropertyName="_links"/>
  <JMM:OpenAPIAliasName xmi:id="_bBiiNzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1649652533435_502585_6634" openAPIPropertyName="previousName"/>
  <JMM:OpenAPIPattern xmi:id="_bBiiODA_Ee2z7qeqSnoW6A" pattern="^DE\d{2}\s?([0-9a-zA-Z]{4}\s?){4}[0-9a-zA-Z]{2}$" base_Parameter="_19_0_4_29b40597_1650896462625_271962_10722"/>
  <JMM:OpenAPIPattern xmi:id="_bBiiOTA_Ee2z7qeqSnoW6A" pattern="^DE\d{2}\s?([0-9a-zA-Z]{4}\s?){4}[0-9a-zA-Z]{2}$" base_Property="_19_0_4_29b40597_1650896024532_340491_10681"/>
  <JMM:OpenAPIPattern xmi:id="_bBiiOjA_Ee2z7qeqSnoW6A" pattern="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}" base_Property="_19_0_4_29b40597_1650882711103_921934_9007"/>
  <JMM:ObjectMapperFactory xmi:id="_bBiiOzA_Ee2z7qeqSnoW6A" base_Component="_19_0_4_29b40597_1652333641821_320953_9227"/>
  <JMM:Valid xmi:id="_bBiiPDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236638480293_668831_1254"/>
  <JMM:Valid xmi:id="_bBiiPTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1222880445606_426489_1019"/>
  <JMM:Valid xmi:id="_bBiiPjA_Ee2z7qeqSnoW6A" base_Parameter="_16_0_1_2aa0154_1242132722140_310013_1184"/>
  <JMM:Valid xmi:id="_bBiiPzA_Ee2z7qeqSnoW6A" base_Class="_12_5_2aa0154_1204197442437_906165_1229"/>
  <JMM:Valid xmi:id="_bBiiQDA_Ee2z7qeqSnoW6A" base_Class="_12_5_1ea00f4_1194617887244_723645_945"/>
  <JMM:Valid xmi:id="_bBiiQTA_Ee2z7qeqSnoW6A" base_Parameter="_16_0_1_2aa0154_1239227646857_992679_549"/>
  <JMM:Valid xmi:id="_bBiiQjA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316742_80986_9495"/>
  <JMM:Valid xmi:id="_bBiiQzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1650876316727_26968_9469"/>
  <JMM:Valid xmi:id="_bBiiRDA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1643974092486_695981_7812"/>
  <JMM:Valid xmi:id="_bBiiRTA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1634109363867_578933_6415"/>
  <JMM:Valid xmi:id="_bBiiRjA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547622946489_715989_11421"/>
  <JMM:Valid xmi:id="_bBiiRzA_Ee2z7qeqSnoW6A" base_Class="_19_0_4_29b40597_1644390500939_781126_8804"/>
  <JMM:Valid xmi:id="_bBiiSDA_Ee2z7qeqSnoW6A" base_Class="_18_5_3_1ea00f4_1563204635509_67192_10956"/>
  <JMM:DecimalMax xmi:id="_bBiiSTA_Ee2z7qeqSnoW6A" severity="Error" errorCode="12345" base_Property="_12_5_1ea00f4_1199284396587_941011_932" maxValue="1.2345" inclusive="false"/>
  <JMM:DecimalMax xmi:id="_bBiiSjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_349914_9904" maxValue="3.14159265359"/>
  <JMM:DecimalMax xmi:id="_bBiiSzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_445375_9903" maxValue="299792458" inclusive="false"/>
  <JMM:DecimalMax xmi:id="_bBiiTDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_776887_7429" maxValue="3.14159265359"/>
  <JMM:DecimalMax xmi:id="_bBjwQDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_17616_7428" maxValue="299792458" inclusive="false"/>
  <JMM:Min xmi:id="_bBjwQTA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1199284270181_679129_893" minValue="123"/>
  <JMM:Min xmi:id="_bBjwQjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_517132_9901" minValue="100"/>
  <JMM:Min xmi:id="_bBjwQzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_431379_9900" minValue="4711"/>
  <JMM:Min xmi:id="_bBjwRDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_262359_9897" minValue="-237"/>
  <JMM:Min xmi:id="_bBjwRTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_273988_7422" minValue="-237"/>
  <JMM:Min xmi:id="_bBjwRjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_368397_7426" minValue="100"/>
  <JMM:Min xmi:id="_bBjwRzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_758520_7425" minValue="4711"/>
  <JMM:Min xmi:id="_bBjwSDA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547576441117_790060_10713" minValue="4711"/>
  <JMM:Max xmi:id="_bBjwSTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_517132_9901" maxValue="1000"/>
  <JMM:Max xmi:id="_bBjwSjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_368397_7426" maxValue="1000"/>
  <JMM:DecimalMin xmi:id="_bBjwSzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_569770_9911" minValue="4711.0815"/>
  <JMM:DecimalMin xmi:id="_bBjwTDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_349914_9904" minValue="-3.14159265359"/>
  <JMM:DecimalMin xmi:id="_bBjwTTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_776887_7429" minValue="-3.14159265359"/>
  <JMM:DecimalMin xmi:id="_bBjwTjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_185257_7436" minValue="4711.0815"/>
  <JMM:Email xmi:id="_bBjwTzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1631122543116_416232_6676"/>
  <JMM:Email xmi:id="_bBjwUDA_Ee2z7qeqSnoW6A" base_Property="_18_5_3_1ea00f4_1547622731294_289584_11301"/>
  <JMM:Digits xmi:id="_bBjwUTA_Ee2z7qeqSnoW6A" severity="Error" errorCode="12345" base_Property="_12_5_1ea00f4_1199284396587_941011_932" integer="9" fraction="5"/>
  <JMM:Negative xmi:id="_bBjwUjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_941134_9895"/>
  <JMM:Negative xmi:id="_bBjwUzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_305790_7420"/>
  <JMM:NegativeOrZero xmi:id="_bBjwVDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_268376_9896"/>
  <JMM:NegativeOrZero xmi:id="_bBjwVTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_698041_7421"/>
  <JMM:NotBlank xmi:id="_bBjwVjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1238446855110_228190_487"/>
  <JMM:NotBlank xmi:id="_bBjwVzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1631122489172_946504_6672"/>
  <JMM:NotBlank xmi:id="_bBjwWDA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204275477343_947017_1211"/>
  <JMM:NotBlank xmi:id="_bBjwWTA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204275466906_978856_1209"/>
  <JMM:NotBlank xmi:id="_bBjwWjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926997726_736574_1167"/>
  <JMM:NotBlank xmi:id="_bBjwWzA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236927010851_377242_1169"/>
  <JMM:NotBlank xmi:id="_bBjwXDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1631122531543_396581_6674"/>
  <JMM:NotBlank xmi:id="_bBjwXTA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701693_455066_7064"/>
  <JMM:NotBlank xmi:id="_bBjwXjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317426_391021_10447"/>
  <JMM:NotBlank xmi:id="_bBjwXzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_531180_9743"/>
  <JMM:NotBlank xmi:id="_bBjwYDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634630623599_423669_7141"/>
  <JMM:NotBlank xmi:id="_bBjwYTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1643365220372_657457_7671"/>
  <JMM:NotEmpty xmi:id="_bBjwYjA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1655183701691_38654_7055"/>
  <JMM:NotEmpty xmi:id="_bBjwYzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_361084_9851"/>
  <JMM:NotEmpty xmi:id="_bBjwZDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1650876317424_919218_10438"/>
  <JMM:NotEmpty xmi:id="_bBjwZTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_740055_9925"/>
  <JMM:NotEmpty xmi:id="_bBjwZjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_674050_9913"/>
  <JMM:NotEmpty xmi:id="_bBjwZzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_964343_9839"/>
  <JMM:NotEmpty xmi:id="_bBjwaDA_Ee2z7qeqSnoW6A" base_Parameter="_19_0_4_29b40597_1634200741622_85840_7060"/>
  <JMM:NotEmpty xmi:id="_bBjwaTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_411282_7438"/>
  <JMM:NotEmpty xmi:id="_bBjwajA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101833980_331607_7493"/>
  <JMM:NotEmpty xmi:id="_bBjwazA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635343884423_898237_9371"/>
  <JMM:NotEmpty xmi:id="_bBjwbDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634228550843_742548_7223"/>
  <JMM:NotEmpty xmi:id="_bBjwbTA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547574096851_42583_10621"/>
  <JMM:NotEmpty xmi:id="_bBjwbjA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547576294634_831127_10680"/>
  <JMM:NotNull xmi:id="_bBjwbzA_Ee2z7qeqSnoW6A" base_Parameter="_16_8_195e0323_1308723235417_87960_5619"/>
  <JMM:NotNull xmi:id="_bBjwcDA_Ee2z7qeqSnoW6A" base_Parameter="_16_0_1_2aa0154_1242132722140_560119_1185"/>
  <JMM:NotNull xmi:id="_bBjwcTA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204197462171_38656_1248"/>
  <JMM:NotNull xmi:id="_bBjwcjA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236638183781_338071_1092"/>
  <JMM:NotNull xmi:id="_bBjwczA_Ee2z7qeqSnoW6A" base_Parameter="_16_8_19590324_1359706530377_927809_4267"/>
  <JMM:NotNull xmi:id="_bBjwdDA_Ee2z7qeqSnoW6A" base_Parameter="_16_0_1_2aa0154_1239227646857_992679_549"/>
  <JMM:NotNull xmi:id="_bBjwdTA_Ee2z7qeqSnoW6A" base_Parameter="_16_0_1_2aa0154_1236949722568_629513_1423"/>
  <JMM:NotNull xmi:id="_bBjwdjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_377348_9940"/>
  <JMM:NotNull xmi:id="_bBjwdzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_949627_9939"/>
  <JMM:NotNull xmi:id="_bBjweDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_905518_9938"/>
  <JMM:NotNull xmi:id="_bBjweTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_643581_9707"/>
  <JMM:NotNull xmi:id="_bBjwejA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_937588_9722"/>
  <JMM:NotNull xmi:id="_bBjwezA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_412331_9708"/>
  <JMM:NotNull xmi:id="_bBjwfDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645443335714_346208_8227"/>
  <JMM:NotNull xmi:id="_bBjwfTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645443335714_930223_8226"/>
  <JMM:NotNull xmi:id="_bBjwfjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645443335714_235656_8225"/>
  <JMM:NotNull xmi:id="_bBjwfzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634108612035_25061_6403"/>
  <JMM:NotNull xmi:id="_bBjwgDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634013013867_512779_6165"/>
  <JMM:NotNull xmi:id="_bBjwgTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634013013867_675469_6164"/>
  <JMM:NotNull xmi:id="_bBjwgjA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547576294634_615892_10681"/>
  <JMM:NotNull xmi:id="_bBjwgzA_Ee2z7qeqSnoW6A" base_Property="_18_5_3_1ea00f4_1547622731294_289584_11301"/>
  <JMM:NotNull xmi:id="_bBjwhDA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547574096834_71326_10620"/>
  <JMM:NotNull xmi:id="_bBjwhTA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547576379667_129320_10697"/>
  <JMM:NotNull xmi:id="_bBjwhjA_Ee2z7qeqSnoW6A" base_Parameter="_18_5_3_1ea00f4_1547574005051_433914_10618"/>
  <JMM:NotNull xmi:id="_bBjwhzA_Ee2z7qeqSnoW6A" base_Property="_18_5_3_1ea00f4_1563203835532_933488_10938"/>
  <JMM:Past xmi:id="_bBjwiDA_Ee2z7qeqSnoW6A" base_Property="_18_5_3_1ea00f4_1547622782095_620436_11304"/>
  <JMM:PastOrPresent xmi:id="_bBjwiTA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204275496203_290834_1213"/>
  <JMM:Pattern xmi:id="_bBjwijA_Ee2z7qeqSnoW6A" base_Property="_12_5_2aa0154_1204197379171_666866_1226" regexp="[A-Z]+">
    <flags>CASE_INSENSITIVE</flags>
    <flags>MULTILINE</flags>
  </JMM:Pattern>
  <JMM:Positive xmi:id="_bBjwizA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236926989133_238400_1165"/>
  <JMM:Positive xmi:id="_bBjwjDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_186358_9946"/>
  <JMM:Positive xmi:id="_bBjwjTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_499607_9898"/>
  <JMM:Positive xmi:id="_bBjwjjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645766150351_560774_8789"/>
  <JMM:Positive xmi:id="_bBjwjzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_717061_7423"/>
  <JMM:PositiveOrZero xmi:id="_bBjwkDA_Ee2z7qeqSnoW6A" base_Property="_16_0_1_2aa0154_1236813132056_559232_881"/>
  <JMM:PositiveOrZero xmi:id="_bBjwkTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_323091_9899"/>
  <JMM:PositiveOrZero xmi:id="_bBjwkjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_91538_7424"/>
  <JMM:PositiveOrZero xmi:id="_bBjwkzA_Ee2z7qeqSnoW6A" base_Property="_18_5_3_1ea00f4_1563203739634_357536_10885"/>
  <JMM:Size xmi:id="_bBjwlDA_Ee2z7qeqSnoW6A" base_Property="_12_5_1ea00f4_1222880445606_426489_1019" min="0" max="100"/>
  <JMM:Size xmi:id="_bBjwlTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_302093_9948" min="3" max="3"/>
  <JMM:Size xmi:id="_bBjwljA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_109384_9932" min="4" max="12"/>
  <JMM:Size xmi:id="_bBjwlzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_990746_9918" max="32768"/>
  <JMM:Size xmi:id="_bBjwmDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_861351_9912" min="8" max="32"/>
  <JMM:Size xmi:id="_bBjwmTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317343_674050_9913" max="128"/>
  <JMM:Size xmi:id="_bBjwmjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_912723_9836" max="4711"/>
  <JMM:Size xmi:id="_bBjwmzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_245950_9829" min="10" max="100"/>
  <JMM:Size xmi:id="_bBjwnDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_810042_9824" min="11" max="42"/>
  <JMM:Size xmi:id="_bBjwnTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_25472_9752" min="7" max="42"/>
  <JMM:Size xmi:id="_bBjwnjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_531180_9743" max="32"/>
  <JMM:Size xmi:id="_bBjwnzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1650876317327_84942_9748" min="12"/>
  <JMM:Size xmi:id="_bBjwoDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645766878202_772404_9252" min="3" max="3"/>
  <JMM:Size xmi:id="_bBjwoTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101833980_814903_7500" min="4" max="12"/>
  <JMM:Size xmi:id="_bBjwojA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101833980_243706_7486" max="32768"/>
  <JMM:Size xmi:id="_bBjwozA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_411282_7438" max="128"/>
  <JMM:Size xmi:id="_bBjwpDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645101806137_880396_7437" min="8" max="32"/>
  <JMM:Size xmi:id="_bBjwpTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1634145227514_915111_6826" min="11" max="42"/>
  <JMM:Size xmi:id="_bBjwpjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1643365242435_74080_7673" min="12"/>
  <JMM:Size xmi:id="_bBjwpzA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1635416190448_259845_6451" max="4711"/>
  <JMM:Size xmi:id="_bBjwqDA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1649131393715_414971_8694" min="10" max="100"/>
  <JMM:Size xmi:id="_bBjwqTA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1643365220372_657457_7671" max="32"/>
  <JMM:Size xmi:id="_bBjwqjA_Ee2z7qeqSnoW6A" base_Property="_19_0_4_29b40597_1645768426105_905041_9292" min="7" max="42"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwrjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928317442_452687_11825" base_Classifier="_10_5_622020d_1132928317442_452687_11825" base_Class="_10_5_622020d_1132928317442_452687_11825"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwrzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928318123_146809_12526" base_Classifier="_10_5_622020d_1132928318123_146809_12526" base_Class="_10_5_622020d_1132928318123_146809_12526"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwsDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928310993_29427_7240" base_Classifier="_10_5_622020d_1132928310993_29427_7240" base_Class="_10_5_622020d_1132928310993_29427_7240"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwsTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928310292_771921_6711" base_Classifier="_10_5_622020d_1132928310292_771921_6711" base_Class="_10_5_622020d_1132928310292_771921_6711"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwsjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308169_578222_5173" base_Classifier="_10_5_622020d_1132928308169_578222_5173" base_Class="_10_5_622020d_1132928308169_578222_5173"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwszA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308259_747804_5227" base_Classifier="_10_5_622020d_1132928308259_747804_5227" base_Class="_10_5_622020d_1132928308259_747804_5227"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwtDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308379_68065_5302" base_Classifier="_10_5_622020d_1132928308379_68065_5302" base_Class="_10_5_622020d_1132928308379_68065_5302"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwtTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307468_978843_4760" base_Classifier="_10_5_622020d_1132928307468_978843_4760" base_Class="_10_5_622020d_1132928307468_978843_4760"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwtjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307438_945392_4737" base_Classifier="_10_5_622020d_1132928307438_945392_4737" base_Class="_10_5_622020d_1132928307438_945392_4737"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwtzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307668_884490_4816" base_Classifier="_10_5_622020d_1132928307668_884490_4816" base_Class="_10_5_622020d_1132928307668_884490_4816"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwuDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928309331_599207_6035" base_Classifier="_10_5_622020d_1132928309331_599207_6035" base_Class="_10_5_622020d_1132928309331_599207_6035"/>
  <UMLProfileforJava:JavaEnumeration xmi:id="_bBjwuTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308259_340946_5221" base_Classifier="_10_5_622020d_1132928308259_340946_5221" base_Class="_10_5_622020d_1132928308259_340946_5221"/>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwujA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473548237_21834_22250">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwuzA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546784_593808_10451">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwvDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928315119_87500_9681">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwvTA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473548378_395629_23686">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwvjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928315099_134272_9624">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwvzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928314879_243650_9273">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwwDA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546706_410169_8979">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwwTA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546737_196025_9631">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwwjA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546596_823672_7427">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwwzA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546612_518938_7489">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwxDA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_194437_8245">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwxTA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_802478_8165">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwxjA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_545853_8205">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwxzA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_773928_8201">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwyDA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_792577_8203">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwyTA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_493406_8171">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwyjA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_632655_8167">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwyzA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_635484_8173">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwzDA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_693677_8161">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwzTA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_876526_8237">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwzjA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_136691_8453">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjwzzA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_479921_8433">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjw0DA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546690_4106_8539">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaElement xmi:id="_bBjw0TA_Ee2z7qeqSnoW6A" base_Element="_9_5_f720368_1110473546674_944917_8451">
    <JavaAnnotations>@Deprecated</JavaAnnotations>
  </UMLProfileforJava:JavaElement>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBjw0jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307448_409688_4744" base_Classifier="_10_5_622020d_1132928307448_409688_4744" base_Interface="_10_5_622020d_1132928307448_409688_4744">
    <JavaAnnotations>@Documented</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.RUNTIME)</JavaAnnotations>
    <JavaAnnotations>@Target(ElementType.ANNOTATION_TYPE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBjw0zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307438_67267_4729" base_Classifier="_10_5_622020d_1132928307438_67267_4729" base_Interface="_10_5_622020d_1132928307438_67267_4729">
    <JavaAnnotations>@Documented</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.RUNTIME)</JavaAnnotations>
    <JavaAnnotations>@Target(ElementType.ANNOTATION_TYPE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBjw1DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307458_137197_4752" base_Classifier="_10_5_622020d_1132928307458_137197_4752" base_Interface="_10_5_622020d_1132928307458_137197_4752">
    <JavaAnnotations>@Documented</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.RUNTIME)</JavaAnnotations>
    <JavaAnnotations>@Target(ElementType.ANNOTATION_TYPE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBjw1TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308049_4885_5101" base_Classifier="_10_5_622020d_1132928308049_4885_5101" base_Interface="_10_5_622020d_1132928308049_4885_5101">
    <JavaAnnotations>@Target(ElementType.METHOD)</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.SOURCE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBoowDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307468_207929_4764" base_Classifier="_10_5_622020d_1132928307468_207929_4764" base_Interface="_10_5_622020d_1132928307468_207929_4764">
    <JavaAnnotations>@Documented</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.RUNTIME)</JavaAnnotations>
    <JavaAnnotations>@Target(ElementType.ANNOTATION_TYPE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBoowTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928308169_974030_5162" base_Classifier="_10_5_622020d_1132928308169_974030_5162" base_Interface="_10_5_622020d_1132928308169_974030_5162">
    <JavaAnnotations>@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.SOURCE)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <UMLProfileforJava:JavaAnnotation xmi:id="_bBoowjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928307939_514099_5008" base_Classifier="_10_5_622020d_1132928307939_514099_5008" base_Interface="_10_5_622020d_1132928307939_514099_5008">
    <JavaAnnotations>@Documented</JavaAnnotations>
    <JavaAnnotations>@Retention(RetentionPolicy.RUNTIME)</JavaAnnotations>
  </UMLProfileforJava:JavaAnnotation>
  <Standard:ModelLibrary xmi:id="_bCHw8DA_Ee2z7qeqSnoW6A" base_Package="_16_6_2_1ea00f4_1276549074937_787297_695"/>
  <Standard:ModelLibrary xmi:id="_bCHw8TA_Ee2z7qeqSnoW6A" base_Package="_19_0_4_29b40597_1648122965114_605324_4796"/>
  <Standard:ModelLibrary xmi:id="_bCHw9TA_Ee2z7qeqSnoW6A" base_Package="_16_8_19940331_1289320018194_6661_14472"/>
  <Standard:ModelLibrary xmi:id="_bCI_FDA_Ee2z7qeqSnoW6A" base_Package="_9_5_f720368_1110801802169_446586_0"/>
  <MagicDrawProfile:auxiliaryResource xmi:id="_bCbTGjA_Ee2z7qeqSnoW6A" base_Element="magicdraw_uml_standard_profile_v_0001"/>
  <MagicDrawProfile:TODO_Owner xmi:id="_bCgLiTA_Ee2z7qeqSnoW6A" base_Element="_18_5_3_1ea00f4_1563203693868_816419_10861">
    <TODO>This is something I always wanted to say, but nobody listens ;-)</TODO>
  </MagicDrawProfile:TODO_Owner>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLjDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322520_653475_14851" base_NamedElement="_10_5_622020d_1132928322520_653475_14851"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLjTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323892_605080_18144" base_NamedElement="_10_5_622020d_1132928323892_605080_18144"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLjjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323892_842300_18167" base_NamedElement="_10_5_622020d_1132928323892_842300_18167"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLjzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323351_62754_16570" base_NamedElement="_10_5_622020d_1132928323351_62754_16570"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLkDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323281_156069_16304" base_NamedElement="_10_5_622020d_1132928323281_156069_16304"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLkTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323301_691605_16379" base_NamedElement="_10_5_622020d_1132928323301_691605_16379"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLkjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928323301_426146_16384" base_NamedElement="_10_5_622020d_1132928323301_426146_16384"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLkzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322920_328313_15810" base_NamedElement="_10_5_622020d_1132928322920_328313_15810"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLlDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322930_411747_15817" base_NamedElement="_10_5_622020d_1132928322930_411747_15817"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLlTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322930_846562_15821" base_NamedElement="_10_5_622020d_1132928322930_846562_15821"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLljA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321558_618875_13488" base_NamedElement="_10_5_622020d_1132928321558_618875_13488"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLlzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321578_278729_13532" base_NamedElement="_10_5_622020d_1132928321578_278729_13532"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLmDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322580_607670_14982" base_NamedElement="_10_5_622020d_1132928322580_607670_14982"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLmTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322490_370567_14772" base_NamedElement="_10_5_622020d_1132928322490_370567_14772"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLmjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_11462_14765" base_NamedElement="_10_5_622020d_1132928322480_11462_14765"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLmzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322610_475882_15051" base_NamedElement="_10_5_622020d_1132928322610_475882_15051"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLnDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322530_725245_14863" base_NamedElement="_10_5_622020d_1132928322530_725245_14863"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLnTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322500_8993_14802" base_NamedElement="_10_5_622020d_1132928322500_8993_14802"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLnjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322570_992407_14968" base_NamedElement="_10_5_622020d_1132928322570_992407_14968"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLnzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_739049_14748" base_NamedElement="_10_5_622020d_1132928322480_739049_14748"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLoDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322630_146643_15103" base_NamedElement="_10_5_622020d_1132928322630_146643_15103"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLoTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322500_624396_14809" base_NamedElement="_10_5_622020d_1132928322500_624396_14809"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLojA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322580_884119_14977" base_NamedElement="_10_5_622020d_1132928322580_884119_14977"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLozA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322510_266009_14816" base_NamedElement="_10_5_622020d_1132928322510_266009_14816"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLpDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322490_670350_14778" base_NamedElement="_10_5_622020d_1132928322490_670350_14778"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLpTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322520_254777_14844" base_NamedElement="_10_5_622020d_1132928322520_254777_14844"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLpjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_160438_14744" base_NamedElement="_10_5_622020d_1132928322480_160438_14744"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLpzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322610_204477_15040" base_NamedElement="_10_5_622020d_1132928322610_204477_15040"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLqDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322610_734122_15059" base_NamedElement="_10_5_622020d_1132928322610_734122_15059"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLqTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322660_992969_15164" base_NamedElement="_10_5_622020d_1132928322660_992969_15164"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLqjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322550_324382_14918" base_NamedElement="_10_5_622020d_1132928322550_324382_14918"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLqzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322470_692996_14714" base_NamedElement="_10_5_622020d_1132928322470_692996_14714"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLrDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322460_639101_14705" base_NamedElement="_10_5_622020d_1132928322460_639101_14705"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLrTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322560_381015_14923" base_NamedElement="_10_5_622020d_1132928322560_381015_14923"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLrjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322530_578839_14857" base_NamedElement="_10_5_622020d_1132928322530_578839_14857"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLrzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322660_70883_15168" base_NamedElement="_10_5_622020d_1132928322660_70883_15168"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLsDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322580_37023_14986" base_NamedElement="_10_5_622020d_1132928322580_37023_14986"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLsTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322540_363570_14884" base_NamedElement="_10_5_622020d_1132928322540_363570_14884"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLsjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322660_511354_15160" base_NamedElement="_10_5_622020d_1132928322660_511354_15160"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLszA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322640_250415_15126" base_NamedElement="_10_5_622020d_1132928322640_250415_15126"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLtDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322600_126640_15036" base_NamedElement="_10_5_622020d_1132928322600_126640_15036"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLtTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322560_549296_14946" base_NamedElement="_10_5_622020d_1132928322560_549296_14946"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLtjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322520_250731_14838" base_NamedElement="_10_5_622020d_1132928322520_250731_14838"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLtzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322590_319544_15004" base_NamedElement="_10_5_622020d_1132928322590_319544_15004"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLuDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322540_173472_14889" base_NamedElement="_10_5_622020d_1132928322540_173472_14889"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLuTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_882361_14760" base_NamedElement="_10_5_622020d_1132928322480_882361_14760"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLujA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322620_480057_15091" base_NamedElement="_10_5_622020d_1132928322620_480057_15091"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLuzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322550_238139_14898" base_NamedElement="_10_5_622020d_1132928322550_238139_14898"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLvDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322630_434165_15095" base_NamedElement="_10_5_622020d_1132928322630_434165_15095"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLvTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_309783_14740" base_NamedElement="_10_5_622020d_1132928322480_309783_14740"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLvjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322500_371963_14797" base_NamedElement="_10_5_622020d_1132928322500_371963_14797"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLvzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322590_140820_14999" base_NamedElement="_10_5_622020d_1132928322590_140820_14999"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLwDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322490_426362_14789" base_NamedElement="_10_5_622020d_1132928322490_426362_14789"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLwTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322620_276390_15076" base_NamedElement="_10_5_622020d_1132928322620_276390_15076"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLwjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322530_132470_14868" base_NamedElement="_10_5_622020d_1132928322530_132470_14868"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLwzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322470_406203_14723" base_NamedElement="_10_5_622020d_1132928322470_406203_14723"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLxDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322600_579660_15019" base_NamedElement="_10_5_622020d_1132928322600_579660_15019"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLxTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322480_860807_14756" base_NamedElement="_10_5_622020d_1132928322480_860807_14756"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLxjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322490_35705_14783" base_NamedElement="_10_5_622020d_1132928322490_35705_14783"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLxzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322650_831637_15130" base_NamedElement="_10_5_622020d_1132928322650_831637_15130"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLyDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322510_693272_14825" base_NamedElement="_10_5_622020d_1132928322510_693272_14825"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLyTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322460_511299_14700" base_NamedElement="_10_5_622020d_1132928322460_511299_14700"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLyjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322610_496943_15044" base_NamedElement="_10_5_622020d_1132928322610_496943_15044"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLyzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322650_794897_15143" base_NamedElement="_10_5_622020d_1132928322650_794897_15143"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLzDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322550_175403_14910" base_NamedElement="_10_5_622020d_1132928322550_175403_14910"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLzTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322259_282425_14444" base_NamedElement="_10_5_622020d_1132928322259_282425_14444"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLzjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322009_950717_14375" base_NamedElement="_10_5_622020d_1132928322009_950717_14375"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgLzzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322269_824759_14450" base_NamedElement="_10_5_622020d_1132928322269_824759_14450"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL0DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321999_800194_14363" base_NamedElement="_10_5_622020d_1132928321999_800194_14363"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL0TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322009_321902_14382" base_NamedElement="_10_5_622020d_1132928322009_321902_14382"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL0jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322239_66945_14416" base_NamedElement="_10_5_622020d_1132928322239_66945_14416"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL0zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322009_246331_14386" base_NamedElement="_10_5_622020d_1132928322009_246331_14386"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL1DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322259_617753_14428" base_NamedElement="_10_5_622020d_1132928322259_617753_14428"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL1TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322239_614900_14420" base_NamedElement="_10_5_622020d_1132928322239_614900_14420"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL1jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321989_582562_14355" base_NamedElement="_10_5_622020d_1132928321989_582562_14355"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL1zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322269_986190_14463" base_NamedElement="_10_5_622020d_1132928322269_986190_14463"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL2DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321989_283025_14359" base_NamedElement="_10_5_622020d_1132928321989_283025_14359"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL2TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322279_611817_14488" base_NamedElement="_10_5_622020d_1132928322279_611817_14488"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL2jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322259_732594_14433" base_NamedElement="_10_5_622020d_1132928322259_732594_14433"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL2zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321989_740687_14350" base_NamedElement="_10_5_622020d_1132928321989_740687_14350"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL3DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322239_716444_14412" base_NamedElement="_10_5_622020d_1132928322239_716444_14412"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL3TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322299_507015_14517" base_NamedElement="_10_5_622020d_1132928322299_507015_14517"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL3jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928536788_403472_18999" base_NamedElement="_10_5_622020d_1132928536788_403472_18999"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL3zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322009_461318_14369" base_NamedElement="_10_5_622020d_1132928322009_461318_14369"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL4DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321969_71626_14320" base_NamedElement="_10_5_622020d_1132928321969_71626_14320"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL4TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321969_865860_14327" base_NamedElement="_10_5_622020d_1132928321969_865860_14327"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL4jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321959_670944_14313" base_NamedElement="_10_5_622020d_1132928321959_670944_14313"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL4zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322259_938209_14440" base_NamedElement="_10_5_622020d_1132928322259_938209_14440"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL5DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322009_147826_14391" base_NamedElement="_10_5_622020d_1132928322009_147826_14391"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL5TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322269_891118_14467" base_NamedElement="_10_5_622020d_1132928322269_891118_14467"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL5jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322269_521368_14455" base_NamedElement="_10_5_622020d_1132928322269_521368_14455"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL5zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322269_925424_14471" base_NamedElement="_10_5_622020d_1132928322269_925424_14471"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL6DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322019_44427_14395" base_NamedElement="_10_5_622020d_1132928322019_44427_14395"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL6TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322019_759053_14405" base_NamedElement="_10_5_622020d_1132928322019_759053_14405"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL6jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322019_822336_14400" base_NamedElement="_10_5_622020d_1132928322019_822336_14400"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL6zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322289_355058_14508" base_NamedElement="_10_5_622020d_1132928322289_355058_14508"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL7DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322299_275509_14513" base_NamedElement="_10_5_622020d_1132928322299_275509_14513"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL7TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322279_16326_14475" base_NamedElement="_10_5_622020d_1132928322279_16326_14475"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL7jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928324302_758275_18747" base_NamedElement="_10_5_622020d_1132928324302_758275_18747"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL7zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322550_990582_14914" base_NamedElement="_10_5_622020d_1132928322550_990582_14914"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL8DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322510_697143_14831" base_NamedElement="_10_5_622020d_1132928322510_697143_14831"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL8TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322570_168554_14950" base_NamedElement="_10_5_622020d_1132928322570_168554_14950"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL8jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322590_480921_14995" base_NamedElement="_10_5_622020d_1132928322590_480921_14995"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL8zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322570_511185_14954" base_NamedElement="_10_5_622020d_1132928322570_511185_14954"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL9DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322600_396674_15030" base_NamedElement="_10_5_622020d_1132928322600_396674_15030"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL9TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321679_383419_13717" base_NamedElement="_10_5_622020d_1132928321679_383419_13717"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL9jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322600_275131_15025" base_NamedElement="_10_5_622020d_1132928322600_275131_15025"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL9zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322660_595171_15155" base_NamedElement="_10_5_622020d_1132928322660_595171_15155"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL-DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928322640_574367_15122" base_NamedElement="_10_5_622020d_1132928322640_574367_15122"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL-TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321448_677845_13329" base_NamedElement="_10_5_622020d_1132928321448_677845_13329"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL-jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321729_809327_13821" base_NamedElement="_10_5_622020d_1132928321729_809327_13821"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL-zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321658_338592_13675" base_NamedElement="_10_5_622020d_1132928321658_338592_13675"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL_DA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321679_782714_13713" base_NamedElement="_10_5_622020d_1132928321679_782714_13713"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL_TA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321608_706139_13579" base_NamedElement="_10_5_622020d_1132928321608_706139_13579"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL_jA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321679_165469_13721" base_NamedElement="_10_5_622020d_1132928321679_165469_13721"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgL_zA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321658_545223_13669" base_NamedElement="_10_5_622020d_1132928321658_545223_13669"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMADA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321669_477586_13704" base_NamedElement="_10_5_622020d_1132928321669_477586_13704"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMATA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321689_111514_13733" base_NamedElement="_10_5_622020d_1132928321689_111514_13733"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMAjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321648_880251_13647" base_NamedElement="_10_5_622020d_1132928321648_880251_13647"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMAzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321628_377743_13626" base_NamedElement="_10_5_622020d_1132928321628_377743_13626"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMBDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321679_69205_13709" base_NamedElement="_10_5_622020d_1132928321679_69205_13709"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMBTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321648_626485_13656" base_NamedElement="_10_5_622020d_1132928321648_626485_13656"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMBjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321669_54718_13683" base_NamedElement="_10_5_622020d_1132928321669_54718_13683"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMBzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321669_590717_13699" base_NamedElement="_10_5_622020d_1132928321669_590717_13699"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMCDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321689_923904_13741" base_NamedElement="_10_5_622020d_1132928321689_923904_13741"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMCTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321628_319954_13616" base_NamedElement="_10_5_622020d_1132928321628_319954_13616"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMCjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321628_825173_13620" base_NamedElement="_10_5_622020d_1132928321628_825173_13620"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMCzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321699_864498_13762" base_NamedElement="_10_5_622020d_1132928321699_864498_13762"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMDDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928324232_498755_18742" base_NamedElement="_10_5_622020d_1132928324232_498755_18742"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMDTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321679_287856_13725" base_NamedElement="_10_5_622020d_1132928321679_287856_13725"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMDjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321648_934758_13642" base_NamedElement="_10_5_622020d_1132928321648_934758_13642"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMDzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321919_101432_14265" base_NamedElement="_10_5_622020d_1132928321919_101432_14265"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMEDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321899_186674_14224" base_NamedElement="_10_5_622020d_1132928321899_186674_14224"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMETA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321759_28233_13900" base_NamedElement="_10_5_622020d_1132928321759_28233_13900"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMEjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321799_191554_13990" base_NamedElement="_10_5_622020d_1132928321799_191554_13990"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMEzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321749_899826_13889" base_NamedElement="_10_5_622020d_1132928321749_899826_13889"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMFDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321819_6022_14027" base_NamedElement="_10_5_622020d_1132928321819_6022_14027"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMFTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321809_550836_14020" base_NamedElement="_10_5_622020d_1132928321809_550836_14020"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMFjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321809_669172_14014" base_NamedElement="_10_5_622020d_1132928321809_669172_14014"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMFzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321799_404690_13995" base_NamedElement="_10_5_622020d_1132928321799_404690_13995"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMGDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321929_11005_14279" base_NamedElement="_10_5_622020d_1132928321929_11005_14279"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMGTA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321769_979686_13929" base_NamedElement="_10_5_622020d_1132928321769_979686_13929"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMGjA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321709_31631_13774" base_NamedElement="_10_5_622020d_1132928321709_31631_13774"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMGzA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321709_863162_13779" base_NamedElement="_10_5_622020d_1132928321709_863162_13779"/>
  <MagicDrawProfile:autoGeneratedName xmi:id="_bCgMHDA_Ee2z7qeqSnoW6A" base_Element="_10_5_622020d_1132928321929_564602_14275" base_NamedElement="_10_5_622020d_1132928321929_564602_14275"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMHTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_946472_3078"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMHjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_135512_3016"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMHzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_870944_4004"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMIDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_79670_4006"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMITA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_418781_4227"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMIjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_52112_3111"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMIzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_183143_2953"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMJDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_762088_3088"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMJTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_785322_3060"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMJjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_241504_4009"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMJzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_599765_3042"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMKDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_680650_4583"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMKTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_388174_3162"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMKjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_600963_2880"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMKzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_750060_3066"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMLDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_55170_2971"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMLTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_235851_2962"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMLjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_266999_2806"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMLzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_155536_2861"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMMDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_569471_2909"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMMTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_18039_2802"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMMjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_469046_3068"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMMzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_52491_2778"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMNDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_698342_3026"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMNTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_546600_2990"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMNjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_242006_2900"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMNzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_872038_2986"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMODA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_581030_2832"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMOTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_124719_3725"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMOjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_931807_3058"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMOzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_386978_2934"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMPDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_717337_3982"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMPTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_397245_2918"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMPjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_569068_3091"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMPzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_37058_2787"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMQDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_424746_2846"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMQTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_132333_3685"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMQjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_181990_3688"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMQzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_833053_4665"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMRDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_79344_3176"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMRTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_360756_4198"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMRjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794060_402705_994"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMRzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_440128_3705"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMSDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_84656_1109"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMSTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_75666_1080"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMSjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_496565_3421"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMSzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_585382_3727"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMTDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_637441_4029"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMTTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_887928_3128"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMTjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_680661_4186"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMTzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_878000_3345"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMUDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_183641_4370"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMUTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_938332_3736"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMUjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_289033_3732"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMUzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_800815_3730"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMVDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_870963_3970"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMVTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_762273_1488"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMVjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_725998_1187"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMVzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794060_928282_996"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMWDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_901243_1031"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMWTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_859943_3701"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMWjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_463644_1111"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMWzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_914960_1074"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMXDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_545789_1185"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMXTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_368186_1038"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMXjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_681322_1033"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMXzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_999160_1153"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMYDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_899378_3302"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMYTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_581075_3330"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMYjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_740624_3698"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMYzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_762990_2443"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMZDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_680842_3696"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMZTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_724146_4575"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMZjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_666243_4572"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMZzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_147275_1493"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMaDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_302427_3278"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMaTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_659821_3293"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMajA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_396066_1612"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMazA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_418546_4305"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMbDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_50924_3342"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMbTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_198447_3339"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMbjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_797099_3337"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMbzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_833649_3410"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMcDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_506806_3130"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMcTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_965665_3713"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMcjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_886235_4512"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMczA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_737630_3132"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMdDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_787150_1497"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMdTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_536662_1501"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMdjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_12971_1490"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMdzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_75144_2727"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMeDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_827128_1365"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMeTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_447804_1360"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMejA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_671832_1358"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMezA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_451408_2566"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMfDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_918698_1756"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMfTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_835386_1290"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMfjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_358779_2441"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMfzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_693446_2446"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMgDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_784369_2775"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMgTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_47836_2546"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMgjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_917320_2075"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMgzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_83273_2725"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMhDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_452954_1610"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMhTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_981163_1680"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMhjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_857202_1783"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMhzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_62846_2071"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMiDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_732626_2435"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMiTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_509083_2080"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMijA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_969776_2061"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMizA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_687176_2064"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMjDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_363373_2756"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMjTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_660237_2068"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMjjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_769111_1718"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMjzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_683994_2758"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMkDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_720163_1781"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMkTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_42302_1432"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMkjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_683816_1468"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMkzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_686556_1412"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMlDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_673648_1436"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMlTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_795548_1427"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMljA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_153638_1324"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMlzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794247_419216_2683"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMmDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_160040_1786"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMmTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_524105_1328"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMmjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_337028_1322"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMmzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_274361_1415"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMnDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_789151_1266"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMnTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794247_313715_2680"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMnjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794247_546303_2678"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMnzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_21929_1275"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMoDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_100734_3999"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMoTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_7156_1271"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMojA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_767303_1268"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMozA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_627546_4001"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMpDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_563088_4680"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMpTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_574085_4677"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMpjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_319399_4669"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMpzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_210504_4080"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMqDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_654121_4078"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMqTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_839530_4253"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMqjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_670880_4249"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMqzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_566794_4246"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMrDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_612877_4244"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMrTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_115896_4024"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMrjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_157977_4236"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMrzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_118651_4233"/>
  <MagicDrawProfile:constructor xmi:id="_bCgMsDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_683479_4026"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCmSKjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794263_345359_2807" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngMDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794263_98919_2813" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngMTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_540870_4592" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngMjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_270111_4627" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngMzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_684765_3550" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngNDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794294_312442_3243" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngNTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_582649_3573" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngNjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794294_400470_3264" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngNzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_120723_4650" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngODA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_946759_4644" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngOTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_480718_4623" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngOjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794279_644824_2991" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngOzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_136633_4599" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngPDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_75610_4619" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngPTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_312316_4606" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngPjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794279_726667_2997" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngPzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794435_757997_4176" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngQDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794357_123419_3953" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngQTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794263_984811_2826" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngQjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794279_60544_3010" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngQzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794435_854720_4169" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngRDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_688970_3740" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngRTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_297714_4654" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngRjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_698907_3454" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngRzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_854784_3522" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngSDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794294_414584_3271" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngSTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_101533_1208" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngSjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_422235_3528" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngSzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_579530_3532" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngTDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_999047_3544" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngTTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_639900_3644" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngTjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_666769_3601" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngTzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_478983_3637" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngUDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_993752_3605" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngUTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_956736_3595" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngUjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_628827_3589" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngUzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_59070_3582" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngVDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_131740_3557" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngVTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_741462_3538" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngVjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_112441_1141" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngVzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_526068_1190" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngWDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_608869_1220" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngWTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_837198_3459" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngWjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_814749_3449" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngWzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794325_255603_3443" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngXDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_177699_3766" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngXTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794435_862131_4148" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngXjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794357_498140_3960" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngXzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794357_738397_3932" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngYDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_944358_4541" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngYTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_508109_3802" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngYjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_420492_3796" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngYzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_185207_3786" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngZDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794310_298640_3387" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngZTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_260783_3773" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngZjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_423454_3760" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngZzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794341_838950_3753" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngaDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_290183_1214" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngaTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_875088_1198" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngajA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_188841_1194" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngazA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_721469_1250" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngbDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_625302_1244" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngbTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_755_1238" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngbjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_462936_1127" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngbzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794076_409955_1115" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngcDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_461256_1297" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngcTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794310_949069_3323" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngcjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794310_348119_3317" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngczA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_83131_2119" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngdDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_318868_1772" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngdTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794247_649561_2653" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngdjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_949104_4400" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngdzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_314851_1758" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngeDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794310_834286_3381" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngeTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794107_950655_1578" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngejA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_537752_4535" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngezA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_51428_2343" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngfDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794466_89866_4528" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngfTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_635429_2369" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngfjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794107_560183_1571" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngfzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_592809_2255" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnggDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794107_545012_1552" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnggTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794107_327071_1546" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnggjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_650400_1620" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnggzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_906932_1666" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnghDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_80241_1646" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnghTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_683612_1673" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnghjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794091_485040_1303" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnghzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_518448_2178" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngiDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_543142_2498" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngiTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_870930_2476" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngijA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_981357_2505" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngizA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_295975_2531" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngjDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_81079_2113" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngjTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_49900_2525" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngjjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_316864_2139" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngjzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_734550_2155" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngkDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_196704_1653" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngkTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_289317_2422" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngkjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_688870_2396" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngkzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_541083_2389" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnglDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_920250_2376" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnglTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794185_390243_2336" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngljA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_949515_2327" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnglzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_685623_2323" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngmDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_295482_1719" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngmTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_148829_2261" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngmjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_455070_2149" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngmzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794138_23514_1827" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngnDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_438332_2163" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngnTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_628305_2053" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngnjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794169_443131_2170" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngnzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_962404_2083" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngoDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_859152_2106" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngoTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_57268_2126" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngojA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_476039_2047" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngozA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794138_831997_1914" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngpDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_607038_2093" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngpTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794263_184755_2719" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngpjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_420525_2016" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngpzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_616494_1750" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngqDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_36200_1692" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngqTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794138_371676_1833" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngqjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_345483_2023" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngqzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_125290_1947" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngrDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_781914_1967" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngrTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_565223_1960" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngrjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794154_567410_1940" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngrzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794123_4995_1788" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngsDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794263_138996_2712" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngsTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_308367_4282" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngsjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_216827_4276" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngszA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_384715_4270" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngtDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_542421_4264" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngtTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_535218_4260" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngtjA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_105528_4256" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCngtzA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_768333_4299" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnguDA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_356398_4293" typeModifier="[]"/>
  <MagicDrawProfile:typeModifier xmi:id="_bCnguTA_Ee2z7qeqSnoW6A" base_Element="_16_6_2_1ea00f4_1276548794450_883434_4287" typeModifier="[]"/>
  <MagicDrawProfile:getter xmi:id="_bCngujA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_511651_3156"/>
  <MagicDrawProfile:getter xmi:id="_bCnguzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_646113_3159"/>
  <MagicDrawProfile:getter xmi:id="_bCngvDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_886845_4013"/>
  <MagicDrawProfile:getter xmi:id="_bCngvTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_29130_4214"/>
  <MagicDrawProfile:getter xmi:id="_bCngvjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_932654_3169"/>
  <MagicDrawProfile:getter xmi:id="_bCngvzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_888495_3191"/>
  <MagicDrawProfile:getter xmi:id="_bCngwDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_206919_3218"/>
  <MagicDrawProfile:getter xmi:id="_bCngwTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_378829_4649"/>
  <MagicDrawProfile:getter xmi:id="_bCngwjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_577958_2938"/>
  <MagicDrawProfile:getter xmi:id="_bCngwzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_409615_4020"/>
  <MagicDrawProfile:getter xmi:id="_bCngxDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_965986_2941"/>
  <MagicDrawProfile:getter xmi:id="_bCngxTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_95479_3030"/>
  <MagicDrawProfile:getter xmi:id="_bCngxjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_732406_3150"/>
  <MagicDrawProfile:getter xmi:id="_bCngxzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_325410_3153"/>
  <MagicDrawProfile:getter xmi:id="_bCngyDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_200123_3147"/>
  <MagicDrawProfile:getter xmi:id="_bCngyTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_644091_2887"/>
  <MagicDrawProfile:getter xmi:id="_bCngyjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_686216_3144"/>
  <MagicDrawProfile:getter xmi:id="_bCngyzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_596317_2974"/>
  <MagicDrawProfile:getter xmi:id="_bCngzDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_236423_2884"/>
  <MagicDrawProfile:getter xmi:id="_bCngzTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_946808_2868"/>
  <MagicDrawProfile:getter xmi:id="_bCngzjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_887961_2865"/>
  <MagicDrawProfile:getter xmi:id="_bCngzzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_400741_3959"/>
  <MagicDrawProfile:getter xmi:id="_bCng0DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_929488_2812"/>
  <MagicDrawProfile:getter xmi:id="_bCng0TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_448653_3949"/>
  <MagicDrawProfile:getter xmi:id="_bCng0jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_17337_4168"/>
  <MagicDrawProfile:getter xmi:id="_bCng0zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_711694_2996"/>
  <MagicDrawProfile:getter xmi:id="_bCng1DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_262788_3046"/>
  <MagicDrawProfile:getter xmi:id="_bCng1TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_478191_4074"/>
  <MagicDrawProfile:getter xmi:id="_bCng1jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_237331_3427"/>
  <MagicDrawProfile:getter xmi:id="_bCng1zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_155931_2922"/>
  <MagicDrawProfile:getter xmi:id="_bCng2DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_447534_3098"/>
  <MagicDrawProfile:getter xmi:id="_bCng2TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794279_794546_3095"/>
  <MagicDrawProfile:getter xmi:id="_bCng2jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_92712_2790"/>
  <MagicDrawProfile:getter xmi:id="_bCng2zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_812107_3692"/>
  <MagicDrawProfile:getter xmi:id="_bCng3DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_110553_4659"/>
  <MagicDrawProfile:getter xmi:id="_bCng3TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_755753_3472"/>
  <MagicDrawProfile:getter xmi:id="_bCng3jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_182879_3481"/>
  <MagicDrawProfile:getter xmi:id="_bCng3zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_114148_4641"/>
  <MagicDrawProfile:getter xmi:id="_bCng4DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_860772_4637"/>
  <MagicDrawProfile:getter xmi:id="_bCng4TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_760264_4634"/>
  <MagicDrawProfile:getter xmi:id="_bCng4jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_306950_3270"/>
  <MagicDrawProfile:getter xmi:id="_bCng4zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_115428_3263"/>
  <MagicDrawProfile:getter xmi:id="_bCng5DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_521618_3260"/>
  <MagicDrawProfile:getter xmi:id="_bCng5TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_764957_3241"/>
  <MagicDrawProfile:getter xmi:id="_bCng5jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_940681_3215"/>
  <MagicDrawProfile:getter xmi:id="_bCng5zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_786599_3212"/>
  <MagicDrawProfile:getter xmi:id="_bCng6DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_260834_3205"/>
  <MagicDrawProfile:getter xmi:id="_bCng6TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_244790_3198"/>
  <MagicDrawProfile:getter xmi:id="_bCng6jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_688405_3181"/>
  <MagicDrawProfile:getter xmi:id="_bCng6zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_764967_3184"/>
  <MagicDrawProfile:getter xmi:id="_bCng7DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_363318_3187"/>
  <MagicDrawProfile:getter xmi:id="_bCng7TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_265171_3178"/>
  <MagicDrawProfile:getter xmi:id="_bCng7jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_5497_4205"/>
  <MagicDrawProfile:getter xmi:id="_bCng7zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_599163_4211"/>
  <MagicDrawProfile:getter xmi:id="_bCng8DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_330853_4217"/>
  <MagicDrawProfile:getter xmi:id="_bCng8TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_6986_1161"/>
  <MagicDrawProfile:getter xmi:id="_bCng8jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_395593_4208"/>
  <MagicDrawProfile:getter xmi:id="_bCng8zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_630922_1050"/>
  <MagicDrawProfile:getter xmi:id="_bCng9DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_406844_1123"/>
  <MagicDrawProfile:getter xmi:id="_bCng9TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_567109_1088"/>
  <MagicDrawProfile:getter xmi:id="_bCng9jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_6504_3537"/>
  <MagicDrawProfile:getter xmi:id="_bCng9zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_397652_4456"/>
  <MagicDrawProfile:getter xmi:id="_bCng-DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_592585_3527"/>
  <MagicDrawProfile:getter xmi:id="_bCng-TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_557753_4448"/>
  <MagicDrawProfile:getter xmi:id="_bCng-jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_71886_3519"/>
  <MagicDrawProfile:getter xmi:id="_bCng-zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_139231_3515"/>
  <MagicDrawProfile:getter xmi:id="_bCng_DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_195977_3509"/>
  <MagicDrawProfile:getter xmi:id="_bCng_TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_484177_3512"/>
  <MagicDrawProfile:getter xmi:id="_bCng_jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_83919_3506"/>
  <MagicDrawProfile:getter xmi:id="_bCng_zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_680154_3503"/>
  <MagicDrawProfile:getter xmi:id="_bCnhADA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_524286_3500"/>
  <MagicDrawProfile:getter xmi:id="_bCnhATA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_232370_3497"/>
  <MagicDrawProfile:getter xmi:id="_bCnhAjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_549822_3466"/>
  <MagicDrawProfile:getter xmi:id="_bCnhAzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_574721_3463"/>
  <MagicDrawProfile:getter xmi:id="_bCnhBDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_401880_3436"/>
  <MagicDrawProfile:getter xmi:id="_bCnhBTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_295824_3430"/>
  <MagicDrawProfile:getter xmi:id="_bCnhBjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_313940_3433"/>
  <MagicDrawProfile:getter xmi:id="_bCnhBzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_335003_3424"/>
  <MagicDrawProfile:getter xmi:id="_bCnhCDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794372_320441_4071"/>
  <MagicDrawProfile:getter xmi:id="_bCnhCTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_427685_4175"/>
  <MagicDrawProfile:getter xmi:id="_bCnhCjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_887052_3815"/>
  <MagicDrawProfile:getter xmi:id="_bCnhCzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_482919_4165"/>
  <MagicDrawProfile:getter xmi:id="_bCnhDDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_823347_3828"/>
  <MagicDrawProfile:getter xmi:id="_bCnhDTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_680897_4146"/>
  <MagicDrawProfile:getter xmi:id="_bCnhDjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_309477_4123"/>
  <MagicDrawProfile:getter xmi:id="_bCnhDzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_566401_4117"/>
  <MagicDrawProfile:getter xmi:id="_bCnhEDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_123592_4120"/>
  <MagicDrawProfile:getter xmi:id="_bCnhETA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_147243_4110"/>
  <MagicDrawProfile:getter xmi:id="_bCnhEjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_980180_4103"/>
  <MagicDrawProfile:getter xmi:id="_bCnhEzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_338449_3852"/>
  <MagicDrawProfile:getter xmi:id="_bCnhFDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_613096_4096"/>
  <MagicDrawProfile:getter xmi:id="_bCnhFTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_397681_4092"/>
  <MagicDrawProfile:getter xmi:id="_bCnhFjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_942370_4089"/>
  <MagicDrawProfile:getter xmi:id="_bCnhFzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_905976_4086"/>
  <MagicDrawProfile:getter xmi:id="_bCnhGDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_46330_4083"/>
  <MagicDrawProfile:getter xmi:id="_bCnhGTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_632568_3952"/>
  <MagicDrawProfile:getter xmi:id="_bCnhGjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_802746_3880"/>
  <MagicDrawProfile:getter xmi:id="_bCnhGzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_573435_3930"/>
  <MagicDrawProfile:getter xmi:id="_bCnhHDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_553841_3907"/>
  <MagicDrawProfile:getter xmi:id="_bCnhHTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_47283_3904"/>
  <MagicDrawProfile:getter xmi:id="_bCnhHjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_476075_3901"/>
  <MagicDrawProfile:getter xmi:id="_bCnhHzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_947559_3894"/>
  <MagicDrawProfile:getter xmi:id="_bCnhIDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_430391_3887"/>
  <MagicDrawProfile:getter xmi:id="_bCnhITA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_706682_3876"/>
  <MagicDrawProfile:getter xmi:id="_bCnhIjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_318234_3870"/>
  <MagicDrawProfile:getter xmi:id="_bCnhIzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_552816_3873"/>
  <MagicDrawProfile:getter xmi:id="_bCnhJDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_929145_3867"/>
  <MagicDrawProfile:getter xmi:id="_bCnhJTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_895620_3849"/>
  <MagicDrawProfile:getter xmi:id="_bCnhJjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_682157_3842"/>
  <MagicDrawProfile:getter xmi:id="_bCnhJzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_127071_1590"/>
  <MagicDrawProfile:getter xmi:id="_bCnhKDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_477547_3717"/>
  <MagicDrawProfile:getter xmi:id="_bCnhKTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_154192_3825"/>
  <MagicDrawProfile:getter xmi:id="_bCnhKjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_784396_3822"/>
  <MagicDrawProfile:getter xmi:id="_bCnhKzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_111740_3808"/>
  <MagicDrawProfile:getter xmi:id="_bCnhLDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_795508_3795"/>
  <MagicDrawProfile:getter xmi:id="_bCnhLTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_428642_4337"/>
  <MagicDrawProfile:getter xmi:id="_bCnhLjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_994500_3765"/>
  <MagicDrawProfile:getter xmi:id="_bCnhLzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_956177_3758"/>
  <MagicDrawProfile:getter xmi:id="_bCnhMDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_296205_3991"/>
  <MagicDrawProfile:getter xmi:id="_bCnhMTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_753413_3739"/>
  <MagicDrawProfile:getter xmi:id="_bCnhMjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_366077_3979"/>
  <MagicDrawProfile:getter xmi:id="_bCsYsDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_528754_1225"/>
  <MagicDrawProfile:getter xmi:id="_bCsYsTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_231833_4413"/>
  <MagicDrawProfile:getter xmi:id="_bCsYsjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_747285_1219"/>
  <MagicDrawProfile:getter xmi:id="_bCsYszA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_174625_1213"/>
  <MagicDrawProfile:getter xmi:id="_bCsYtDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_721240_4444"/>
  <MagicDrawProfile:getter xmi:id="_bCsYtTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_786808_1207"/>
  <MagicDrawProfile:getter xmi:id="_bCsYtjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_243668_1204"/>
  <MagicDrawProfile:getter xmi:id="_bCsYtzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_713025_4437"/>
  <MagicDrawProfile:getter xmi:id="_bCsYuDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_319940_4433"/>
  <MagicDrawProfile:getter xmi:id="_bCsYuTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_958792_1085"/>
  <MagicDrawProfile:getter xmi:id="_bCsYujA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794060_889957_1000"/>
  <MagicDrawProfile:getter xmi:id="_bCsYuzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_615345_1126"/>
  <MagicDrawProfile:getter xmi:id="_bCsYvDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_819578_4482"/>
  <MagicDrawProfile:getter xmi:id="_bCsYvTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_323214_1120"/>
  <MagicDrawProfile:getter xmi:id="_bCsYvjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_917504_3709"/>
  <MagicDrawProfile:getter xmi:id="_bCsYvzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_832915_1047"/>
  <MagicDrawProfile:getter xmi:id="_bCsYwDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_854140_1044"/>
  <MagicDrawProfile:getter xmi:id="_bCsYwTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794076_147395_1158"/>
  <MagicDrawProfile:getter xmi:id="_bCsYwjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_295014_2111"/>
  <MagicDrawProfile:getter xmi:id="_bCsYwzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_812340_3322"/>
  <MagicDrawProfile:getter xmi:id="_bCsYxDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_785613_3316"/>
  <MagicDrawProfile:getter xmi:id="_bCsYxTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_603010_2771"/>
  <MagicDrawProfile:getter xmi:id="_bCsYxjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_981341_4485"/>
  <MagicDrawProfile:getter xmi:id="_bCsYxzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_489892_2456"/>
  <MagicDrawProfile:getter xmi:id="_bCsYyDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_649472_4471"/>
  <MagicDrawProfile:getter xmi:id="_bCsYyTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_341690_4461"/>
  <MagicDrawProfile:getter xmi:id="_bCsYyjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_168634_4452"/>
  <MagicDrawProfile:getter xmi:id="_bCsYyzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_520143_4440"/>
  <MagicDrawProfile:getter xmi:id="_bCsYzDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_72879_1313"/>
  <MagicDrawProfile:getter xmi:id="_bCsYzTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_378631_4428"/>
  <MagicDrawProfile:getter xmi:id="_bCsYzjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_409602_2572"/>
  <MagicDrawProfile:getter xmi:id="_bCsYzzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_698289_4420"/>
  <MagicDrawProfile:getter xmi:id="_bCsY0DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_515889_4424"/>
  <MagicDrawProfile:getter xmi:id="_bCsY0TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_670685_2744"/>
  <MagicDrawProfile:getter xmi:id="_bCsY0jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_552412_4416"/>
  <MagicDrawProfile:getter xmi:id="_bCsY0zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_238745_4405"/>
  <MagicDrawProfile:getter xmi:id="_bCsY1DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_609152_4396"/>
  <MagicDrawProfile:getter xmi:id="_bCsY1TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_69828_4399"/>
  <MagicDrawProfile:getter xmi:id="_bCsY1jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_281064_1374"/>
  <MagicDrawProfile:getter xmi:id="_bCsY1zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_263624_4388"/>
  <MagicDrawProfile:getter xmi:id="_bCsY2DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_116399_1377"/>
  <MagicDrawProfile:getter xmi:id="_bCsY2TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_747094_4379"/>
  <MagicDrawProfile:getter xmi:id="_bCsY2jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_810198_4383"/>
  <MagicDrawProfile:getter xmi:id="_bCsY2zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_4990_4374"/>
  <MagicDrawProfile:getter xmi:id="_bCsY3DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_847718_4579"/>
  <MagicDrawProfile:getter xmi:id="_bCsY3TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_826304_3995"/>
  <MagicDrawProfile:getter xmi:id="_bCsY3jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_889923_1508"/>
  <MagicDrawProfile:getter xmi:id="_bCsY3zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_139365_3988"/>
  <MagicDrawProfile:getter xmi:id="_bCsY4DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_390016_3985"/>
  <MagicDrawProfile:getter xmi:id="_bCsY4TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_260598_4328"/>
  <MagicDrawProfile:getter xmi:id="_bCsY4jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_319529_1524"/>
  <MagicDrawProfile:getter xmi:id="_bCsY4zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_817813_1565"/>
  <MagicDrawProfile:getter xmi:id="_bCsY5DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_549917_3386"/>
  <MagicDrawProfile:getter xmi:id="_bCsY5TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794310_8129_3380"/>
  <MagicDrawProfile:getter xmi:id="_bCsY5jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_48812_4041"/>
  <MagicDrawProfile:getter xmi:id="_bCsY5zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794372_852546_4061"/>
  <MagicDrawProfile:getter xmi:id="_bCsY6DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_157942_4038"/>
  <MagicDrawProfile:getter xmi:id="_bCsY6TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_596389_4035"/>
  <MagicDrawProfile:getter xmi:id="_bCsY6jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_500275_3720"/>
  <MagicDrawProfile:getter xmi:id="_bCsY6zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_265697_4193"/>
  <MagicDrawProfile:getter xmi:id="_bCsY7DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_87300_4190"/>
  <MagicDrawProfile:getter xmi:id="_bCsY7TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_582720_3120"/>
  <MagicDrawProfile:getter xmi:id="_bCsY7jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_50419_4519"/>
  <MagicDrawProfile:getter xmi:id="_bCsY7zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_793310_4540"/>
  <MagicDrawProfile:getter xmi:id="_bCsY8DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_383624_2348"/>
  <MagicDrawProfile:getter xmi:id="_bCsY8TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_114143_4533"/>
  <MagicDrawProfile:getter xmi:id="_bCsY8jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_852266_4523"/>
  <MagicDrawProfile:getter xmi:id="_bCsY8zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_319405_4527"/>
  <MagicDrawProfile:getter xmi:id="_bCsY9DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_600206_4516"/>
  <MagicDrawProfile:getter xmi:id="_bCsY9TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_430779_2365"/>
  <MagicDrawProfile:getter xmi:id="_bCsY9jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_759685_2385"/>
  <MagicDrawProfile:getter xmi:id="_bCsY9zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_870242_2277"/>
  <MagicDrawProfile:getter xmi:id="_bCsY-DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_997983_1587"/>
  <MagicDrawProfile:getter xmi:id="_bCsY-TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_91074_2405"/>
  <MagicDrawProfile:getter xmi:id="_bCsY-jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_821496_1527"/>
  <MagicDrawProfile:getter xmi:id="_bCtm0DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_718232_1642"/>
  <MagicDrawProfile:getter xmi:id="_bCtm0TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_666588_1672"/>
  <MagicDrawProfile:getter xmi:id="_bCtm0jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_497352_1381"/>
  <MagicDrawProfile:getter xmi:id="_bCtm0zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_904948_1371"/>
  <MagicDrawProfile:getter xmi:id="_bCtm1DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_804774_1368"/>
  <MagicDrawProfile:getter xmi:id="_bCtm1TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_212500_2640"/>
  <MagicDrawProfile:getter xmi:id="_bCtm1jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_779632_2637"/>
  <MagicDrawProfile:getter xmi:id="_bCtm1zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_874988_2568"/>
  <MagicDrawProfile:getter xmi:id="_bCtm2DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_832555_2552"/>
  <MagicDrawProfile:getter xmi:id="_bCtm2TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_682677_2486"/>
  <MagicDrawProfile:getter xmi:id="_bCtm2jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_887352_2504"/>
  <MagicDrawProfile:getter xmi:id="_bCtm2zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_545847_2460"/>
  <MagicDrawProfile:getter xmi:id="_bCtm3DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_726205_2453"/>
  <MagicDrawProfile:getter xmi:id="_bCtm3TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_468528_2524"/>
  <MagicDrawProfile:getter xmi:id="_bCtm3jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_291553_2768"/>
  <MagicDrawProfile:getter xmi:id="_bCtm3zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_918123_2118"/>
  <MagicDrawProfile:getter xmi:id="_bCtm4DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_515751_2517"/>
  <MagicDrawProfile:getter xmi:id="_bCtm4TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_251165_2514"/>
  <MagicDrawProfile:getter xmi:id="_bCtm4jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_425933_2511"/>
  <MagicDrawProfile:getter xmi:id="_bCtm4zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_904688_2148"/>
  <MagicDrawProfile:getter xmi:id="_bCtm5DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_833309_2494"/>
  <MagicDrawProfile:getter xmi:id="_bCtm5TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_528244_2497"/>
  <MagicDrawProfile:getter xmi:id="_bCtm5jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_738440_2561"/>
  <MagicDrawProfile:getter xmi:id="_bCtm5zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_822272_2558"/>
  <MagicDrawProfile:getter xmi:id="_bCtm6DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_310993_2555"/>
  <MagicDrawProfile:getter xmi:id="_bCtm6TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_121764_2195"/>
  <MagicDrawProfile:getter xmi:id="_bCtm6jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794201_115229_2549"/>
  <MagicDrawProfile:getter xmi:id="_bCtm6zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_233243_2732"/>
  <MagicDrawProfile:getter xmi:id="_bCtm7DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_701322_1665"/>
  <MagicDrawProfile:getter xmi:id="_bCtm7TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_162823_1662"/>
  <MagicDrawProfile:getter xmi:id="_bCtm7jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_789330_2208"/>
  <MagicDrawProfile:getter xmi:id="_bCtm7zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_498287_1652"/>
  <MagicDrawProfile:getter xmi:id="_bCtm8DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_711502_1645"/>
  <MagicDrawProfile:getter xmi:id="_bCtm8TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_83738_1625"/>
  <MagicDrawProfile:getter xmi:id="_bCtm8jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_210728_2225"/>
  <MagicDrawProfile:getter xmi:id="_bCtm8zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_554663_1618"/>
  <MagicDrawProfile:getter xmi:id="_bCtm9DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_310925_2242"/>
  <MagicDrawProfile:getter xmi:id="_bCtm9TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_467312_2402"/>
  <MagicDrawProfile:getter xmi:id="_bCtm9jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_963125_2395"/>
  <MagicDrawProfile:getter xmi:id="_bCtm9zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_686857_2388"/>
  <MagicDrawProfile:getter xmi:id="_bCtm-DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_5576_2281"/>
  <MagicDrawProfile:getter xmi:id="_bCtm-TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_291451_2287"/>
  <MagicDrawProfile:getter xmi:id="_bCtm-jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_901567_2368"/>
  <MagicDrawProfile:getter xmi:id="_bCtm-zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_443257_2375"/>
  <MagicDrawProfile:getter xmi:id="_bCtm_DA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_530416_2341"/>
  <MagicDrawProfile:getter xmi:id="_bCtm_TA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_23246_2293"/>
  <MagicDrawProfile:getter xmi:id="_bCtm_jA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_697891_2290"/>
  <MagicDrawProfile:getter xmi:id="_bCtm_zA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_556114_2284"/>
  <MagicDrawProfile:getter xmi:id="_bCtnADA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_559682_2270"/>
  <MagicDrawProfile:getter xmi:id="_bCtnATA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_508526_2267"/>
  <MagicDrawProfile:getter xmi:id="_bCtnAjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_897179_2254"/>
  <MagicDrawProfile:getter xmi:id="_bCtnAzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_727102_2235"/>
  <MagicDrawProfile:getter xmi:id="_bCtnBDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_53869_2228"/>
  <MagicDrawProfile:getter xmi:id="_bCtnBTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_442246_1796"/>
  <MagicDrawProfile:getter xmi:id="_bCtnBjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_687557_2211"/>
  <MagicDrawProfile:getter xmi:id="_bCtnBzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_565045_2218"/>
  <MagicDrawProfile:getter xmi:id="_bCtnCDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_913332_2214"/>
  <MagicDrawProfile:getter xmi:id="_bCtnCTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_822170_2205"/>
  <MagicDrawProfile:getter xmi:id="_bCtnCjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_654313_2202"/>
  <MagicDrawProfile:getter xmi:id="_bCtnCzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_386999_2092"/>
  <MagicDrawProfile:getter xmi:id="_bCtnDDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_448123_1986"/>
  <MagicDrawProfile:getter xmi:id="_bCtnDTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_615950_2183"/>
  <MagicDrawProfile:getter xmi:id="_bCtnDjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_799496_2161"/>
  <MagicDrawProfile:getter xmi:id="_bCtnDzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_767043_1995"/>
  <MagicDrawProfile:getter xmi:id="_bCtnEDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_820216_1861"/>
  <MagicDrawProfile:getter xmi:id="_bCtnETA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_502719_1858"/>
  <MagicDrawProfile:getter xmi:id="_bCtnEjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_969789_1334"/>
  <MagicDrawProfile:getter xmi:id="_bCtnEzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_577752_1851"/>
  <MagicDrawProfile:getter xmi:id="_bCtnFDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_350169_1839"/>
  <MagicDrawProfile:getter xmi:id="_bCtnFTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_396426_1806"/>
  <MagicDrawProfile:getter xmi:id="_bCtnFjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_477779_1802"/>
  <MagicDrawProfile:getter xmi:id="_bCtnFzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_302014_1746"/>
  <MagicDrawProfile:getter xmi:id="_bCtnGDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_219208_1826"/>
  <MagicDrawProfile:getter xmi:id="_bCtnGTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_397883_1819"/>
  <MagicDrawProfile:getter xmi:id="_bCtnGjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_27763_1793"/>
  <MagicDrawProfile:getter xmi:id="_bCtnGzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_203223_2029"/>
  <MagicDrawProfile:getter xmi:id="_bCtnHDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_534203_2014"/>
  <MagicDrawProfile:getter xmi:id="_bCtnHTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_585069_2005"/>
  <MagicDrawProfile:getter xmi:id="_bCtnHjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_96972_1939"/>
  <MagicDrawProfile:getter xmi:id="_bCtnHzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_655295_1975"/>
  <MagicDrawProfile:getter xmi:id="_bCtnIDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_120907_1966"/>
  <MagicDrawProfile:getter xmi:id="_bCtnITA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_164877_1956"/>
  <MagicDrawProfile:getter xmi:id="_bCtnIjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_214556_1959"/>
  <MagicDrawProfile:getter xmi:id="_bCtnIzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_619067_1946"/>
  <MagicDrawProfile:getter xmi:id="_bCtnJDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_789832_1936"/>
  <MagicDrawProfile:getter xmi:id="_bCtnJTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_447002_1472"/>
  <MagicDrawProfile:getter xmi:id="_bCtnJjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_856567_1919"/>
  <MagicDrawProfile:getter xmi:id="_bCtnJzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_282733_1912"/>
  <MagicDrawProfile:getter xmi:id="_bCtnKDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_705003_1446"/>
  <MagicDrawProfile:getter xmi:id="_bCtnKTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_220122_1884"/>
  <MagicDrawProfile:getter xmi:id="_bCtnKjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_499946_1867"/>
  <MagicDrawProfile:getter xmi:id="_bCtnKzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_934013_1864"/>
  <MagicDrawProfile:getter xmi:id="_bCtnLDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_732810_4700"/>
  <MagicDrawProfile:getter xmi:id="_bCtnLTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_507582_1338"/>
  <MagicDrawProfile:getter xmi:id="_bCtnLjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_694586_1816"/>
  <MagicDrawProfile:getter xmi:id="_bCtnLzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_132768_1813"/>
  <MagicDrawProfile:getter xmi:id="_bCtnMDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_39235_1799"/>
  <MagicDrawProfile:getter xmi:id="_bCtnMTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_317436_1280"/>
  <MagicDrawProfile:getter xmi:id="_bCtnMjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_446962_1331"/>
  <MagicDrawProfile:getter xmi:id="_bCtnMzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_127766_2761"/>
  <MagicDrawProfile:getter xmi:id="_bCtnNDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_50495_1419"/>
  <MagicDrawProfile:getter xmi:id="_bCtnNTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_326156_1422"/>
  <MagicDrawProfile:getter xmi:id="_bCtnNjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_841345_1443"/>
  <MagicDrawProfile:getter xmi:id="_bCtnNzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_897197_1475"/>
  <MagicDrawProfile:getter xmi:id="_bCtnODA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_252480_2701"/>
  <MagicDrawProfile:getter xmi:id="_bCtnOTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_270517_2694"/>
  <MagicDrawProfile:getter xmi:id="_bCtnOjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_867165_2687"/>
  <MagicDrawProfile:getter xmi:id="_bCtnOzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_41892_1283"/>
  <MagicDrawProfile:getter xmi:id="_bCtnPDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_366015_4709"/>
  <MagicDrawProfile:getter xmi:id="_bCtnPTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_532255_4717"/>
  <MagicDrawProfile:getter xmi:id="_bCtnPjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_235043_4706"/>
  <MagicDrawProfile:getter xmi:id="_bCtnPzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_937214_4703"/>
  <MagicDrawProfile:getter xmi:id="_bCtnQDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_413514_4697"/>
  <MagicDrawProfile:getter xmi:id="_bCtnQTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_781179_4694"/>
  <MagicDrawProfile:getter xmi:id="_bCtnQjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_716032_4691"/>
  <MagicDrawProfile:getter xmi:id="_bCtnQzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794481_11975_4688"/>
  <MagicDrawProfile:getter xmi:id="_bCtnRDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_536525_4281"/>
  <MagicDrawProfile:getter xmi:id="_bCtnRTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_303936_4275"/>
  <MagicDrawProfile:getter xmi:id="_bCtnRjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_802270_4269"/>
  <MagicDrawProfile:getter xmi:id="_bCtnRzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_24296_4240"/>
  <MagicDrawProfile:setter xmi:id="_bCtnSDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_668130_4016"/>
  <MagicDrawProfile:setter xmi:id="_bCtnSTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_473659_3194"/>
  <MagicDrawProfile:setter xmi:id="_bCtnSjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_187734_3201"/>
  <MagicDrawProfile:setter xmi:id="_bCtnSzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_873399_4106"/>
  <MagicDrawProfile:setter xmi:id="_bCtnTDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_695176_4126"/>
  <MagicDrawProfile:setter xmi:id="_bCtnTTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_957024_3248"/>
  <MagicDrawProfile:setter xmi:id="_bCtnTjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_628369_3230"/>
  <MagicDrawProfile:setter xmi:id="_bCtnTzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_710833_3234"/>
  <MagicDrawProfile:setter xmi:id="_bCtnUDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_7614_3225"/>
  <MagicDrawProfile:setter xmi:id="_bCtnUTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_269772_3221"/>
  <MagicDrawProfile:setter xmi:id="_bCtnUjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_359576_3208"/>
  <MagicDrawProfile:setter xmi:id="_bCtnUzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794294_20725_3172"/>
  <MagicDrawProfile:setter xmi:id="_bCtnVDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_423627_3565"/>
  <MagicDrawProfile:setter xmi:id="_bCtnVTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_421821_3572"/>
  <MagicDrawProfile:setter xmi:id="_bCtnVjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_615194_3556"/>
  <MagicDrawProfile:setter xmi:id="_bCtnVzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794325_987313_3475"/>
  <MagicDrawProfile:setter xmi:id="_bCtnWDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_693804_3748"/>
  <MagicDrawProfile:setter xmi:id="_bCtnWTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_693961_3745"/>
  <MagicDrawProfile:setter xmi:id="_bCtnWjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_291362_3771"/>
  <MagicDrawProfile:setter xmi:id="_bCtnWzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_805213_3801"/>
  <MagicDrawProfile:setter xmi:id="_bCtnXDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_485930_3818"/>
  <MagicDrawProfile:setter xmi:id="_bCtnXTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_654060_4153"/>
  <MagicDrawProfile:setter xmi:id="_bCtnXjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_676699_4139"/>
  <MagicDrawProfile:setter xmi:id="_bCtnXzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_256643_4135"/>
  <MagicDrawProfile:setter xmi:id="_bCtnYDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_401788_4130"/>
  <MagicDrawProfile:setter xmi:id="_bCtnYTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_963666_4113"/>
  <MagicDrawProfile:setter xmi:id="_bCtnYjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_867663_3845"/>
  <MagicDrawProfile:setter xmi:id="_bCtnYzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794435_927336_4099"/>
  <MagicDrawProfile:setter xmi:id="_bCtnZDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_886003_3937"/>
  <MagicDrawProfile:setter xmi:id="_bCtnZTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_165016_3914"/>
  <MagicDrawProfile:setter xmi:id="_bCtnZjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_22192_3923"/>
  <MagicDrawProfile:setter xmi:id="_bCtnZzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_714730_3919"/>
  <MagicDrawProfile:setter xmi:id="_bCtnaDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_868492_3910"/>
  <MagicDrawProfile:setter xmi:id="_bCtnaTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_71433_3897"/>
  <MagicDrawProfile:setter xmi:id="_bCtnajA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_190795_3890"/>
  <MagicDrawProfile:setter xmi:id="_bCtnazA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_972568_3883"/>
  <MagicDrawProfile:setter xmi:id="_bCtnbDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_280102_3855"/>
  <MagicDrawProfile:setter xmi:id="_bCtnbTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_453667_3837"/>
  <MagicDrawProfile:setter xmi:id="_bCtnbjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_518727_3832"/>
  <MagicDrawProfile:setter xmi:id="_bCtnbzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_610595_3811"/>
  <MagicDrawProfile:setter xmi:id="_bCtncDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_643088_4340"/>
  <MagicDrawProfile:setter xmi:id="_bCtncTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794341_832265_3779"/>
  <MagicDrawProfile:setter xmi:id="_bCtncjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_619565_2537"/>
  <MagicDrawProfile:setter xmi:id="_bCtnczA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794466_678803_4466"/>
  <MagicDrawProfile:setter xmi:id="_bCtndDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_410026_4409"/>
  <MagicDrawProfile:setter xmi:id="_bCtndTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_239259_4392"/>
  <MagicDrawProfile:setter xmi:id="_bCtndjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_27969_1515"/>
  <MagicDrawProfile:setter xmi:id="_bCtndzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794450_56286_4331"/>
  <MagicDrawProfile:setter xmi:id="_bCtneDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794372_435703_4064"/>
  <MagicDrawProfile:setter xmi:id="_bCtneTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794357_138559_4031"/>
  <MagicDrawProfile:setter xmi:id="_bCtnejA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_753819_1630"/>
  <MagicDrawProfile:setter xmi:id="_bCtnezA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_308317_1520"/>
  <MagicDrawProfile:setter xmi:id="_bCtnfDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794107_901683_1511"/>
  <MagicDrawProfile:setter xmi:id="_bCtnfTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_818541_1397"/>
  <MagicDrawProfile:setter xmi:id="_bCtnfjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_608765_1392"/>
  <MagicDrawProfile:setter xmi:id="_bCtnfzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_264797_1388"/>
  <MagicDrawProfile:setter xmi:id="_bCtngDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_109876_1384"/>
  <MagicDrawProfile:setter xmi:id="_bCtngTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_773633_2449"/>
  <MagicDrawProfile:setter xmi:id="_bCtngjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_730989_2530"/>
  <MagicDrawProfile:setter xmi:id="_bCtngzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_784076_2541"/>
  <MagicDrawProfile:setter xmi:id="_bCtnhDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_259057_2520"/>
  <MagicDrawProfile:setter xmi:id="_bCtnhTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_858619_2124"/>
  <MagicDrawProfile:setter xmi:id="_bCtnhjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_33397_2102"/>
  <MagicDrawProfile:setter xmi:id="_bCtnhzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_816937_2168"/>
  <MagicDrawProfile:setter xmi:id="_bCtniDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_615833_2736"/>
  <MagicDrawProfile:setter xmi:id="_bCtniTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_863043_2186"/>
  <MagicDrawProfile:setter xmi:id="_bCtnijA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_649970_2190"/>
  <MagicDrawProfile:setter xmi:id="_bCtnizA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_737433_2198"/>
  <MagicDrawProfile:setter xmi:id="_bCtnjDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_54845_2221"/>
  <MagicDrawProfile:setter xmi:id="_bCtnjTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_710837_2409"/>
  <MagicDrawProfile:setter xmi:id="_bCtnjjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_531417_2238"/>
  <MagicDrawProfile:setter xmi:id="_bCtnjzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794185_779987_2353"/>
  <MagicDrawProfile:setter xmi:id="_bCtnkDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_570237_2296"/>
  <MagicDrawProfile:setter xmi:id="_bCtnkTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_152731_2305"/>
  <MagicDrawProfile:setter xmi:id="_bCtnkjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_227978_2309"/>
  <MagicDrawProfile:setter xmi:id="_bCtnkzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_77825_2314"/>
  <MagicDrawProfile:setter xmi:id="_bCtnlDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_328845_2300"/>
  <MagicDrawProfile:setter xmi:id="_bCtnlTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_764015_2273"/>
  <MagicDrawProfile:setter xmi:id="_bCtnljA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_859034_2260"/>
  <MagicDrawProfile:setter xmi:id="_bCtnlzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_734927_2249"/>
  <MagicDrawProfile:setter xmi:id="_bCtnmDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_874462_2245"/>
  <MagicDrawProfile:setter xmi:id="_bCtnmTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_75507_2231"/>
  <MagicDrawProfile:setter xmi:id="_bCtnmjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_111639_1999"/>
  <MagicDrawProfile:setter xmi:id="_bCtnmzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_774480_2154"/>
  <MagicDrawProfile:setter xmi:id="_bCtnnDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_153818_1891"/>
  <MagicDrawProfile:setter xmi:id="_bCtnnTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794169_909249_2132"/>
  <MagicDrawProfile:setter xmi:id="_bCtnnjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_311138_2098"/>
  <MagicDrawProfile:setter xmi:id="_bCtnnzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_648092_1345"/>
  <MagicDrawProfile:setter xmi:id="_bCtnoDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_661976_1832"/>
  <MagicDrawProfile:setter xmi:id="_bCtnoTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_447613_1809"/>
  <MagicDrawProfile:setter xmi:id="_bCtnojA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_835710_1822"/>
  <MagicDrawProfile:setter xmi:id="_bCtnozA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_631876_2033"/>
  <MagicDrawProfile:setter xmi:id="_bCtnpDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_667575_1707"/>
  <MagicDrawProfile:setter xmi:id="_bCtnpTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794123_774739_1711"/>
  <MagicDrawProfile:setter xmi:id="_bCyfUDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_36422_1350"/>
  <MagicDrawProfile:setter xmi:id="_bCyfUTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_180366_2021"/>
  <MagicDrawProfile:setter xmi:id="_bCyfUjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_376663_1900"/>
  <MagicDrawProfile:setter xmi:id="_bCyfUzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_645778_2009"/>
  <MagicDrawProfile:setter xmi:id="_bCyfVDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_14873_1990"/>
  <MagicDrawProfile:setter xmi:id="_bCyfVTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794154_496195_1980"/>
  <MagicDrawProfile:setter xmi:id="_bCyfVjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_829970_2697"/>
  <MagicDrawProfile:setter xmi:id="_bCyfVzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_881629_1924"/>
  <MagicDrawProfile:setter xmi:id="_bCyfWDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_604653_1905"/>
  <MagicDrawProfile:setter xmi:id="_bCyfWTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_131905_1896"/>
  <MagicDrawProfile:setter xmi:id="_bCyfWjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_865221_1887"/>
  <MagicDrawProfile:setter xmi:id="_bCyfWzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_60381_1854"/>
  <MagicDrawProfile:setter xmi:id="_bCyfXDA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_403134_1846"/>
  <MagicDrawProfile:setter xmi:id="_bCyfXTA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794138_512748_1842"/>
  <MagicDrawProfile:setter xmi:id="_bCyfXjA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794263_737132_2690"/>
  <MagicDrawProfile:setter xmi:id="_bCyfXzA_Ee2z7qeqSnoW6A" base_Operation="_16_6_2_1ea00f4_1276548794091_911244_1341"/>
  <MagicDrawProfile:deprecated xmi:id="_bCyfYDA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1650876317327_696826_9754"/>
  <MagicDrawProfile:deprecated xmi:id="_bCyfYTA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1647358592013_920900_6749"/>
  <MagicDrawProfile:deprecated xmi:id="_bCyfYjA_Ee2z7qeqSnoW6A" base_Element="_19_0_4_29b40597_1634831360663_314905_7851"/>
</xmi:XMI>
